circuitpython/nrf5
Glenn Ruben Bakke c28e94b534 nrf5/modules/machine: Reserving timer0 instance for bluetooth if compiled in. Leaving timer1 and timer2 for application. Note that music module soft-pwm will also occupy timer1 if enabled. 2017-06-02 19:21:51 +02:00
..
boards nrf5/boards/feather52: Updating pins.csv for the feather52 board. 2017-05-25 22:16:46 +02:00
device nrf5/device: Remove old startup files in asm, which has now been replaced with c-implementation. 2017-05-21 23:10:45 +02:00
drivers nrf5/modules/music: Update ticker and modmusic to share global ticks counter as a volatile variable. Use Timer1 hardware peripheral instead of instance 0. Timer0 is not free if used in combination with a bluetooth stack. Update IRQ priority to levels that are compatible in use with a bluetooth stack for both nrf51 and nrf52. Apply nrf51 PAN fixes for Timer1 instead of original Timer0. 2017-05-25 00:25:14 +02:00
examples nrf5/examples: Adding some notes on which pin layout that has been used in the seeed_tft.py ILI9341 driver for driving the display. 2017-05-29 23:09:53 +02:00
freeze nrf5: Renaming python modules folder to freeze to give the folder its right meaning. The scripts put into this folder will be frozen. 2017-02-04 23:46:29 +01:00
hal nrf5/hal/timer: Implementing hal_timer to 1us prescaler. Multiplier inside to get to millisecond resolution. Callback must be registered before starting a timer. 2017-06-02 19:21:51 +02:00
modules nrf5/modules/machine: Reserving timer0 instance for bluetooth if compiled in. Leaving timer1 and timer2 for application. Note that music module soft-pwm will also occupy timer1 if enabled. 2017-06-02 19:21:51 +02:00
.gitignore ignore default build folders 2016-11-16 23:40:38 +01:00
Makefile nrf5: Makefile cleanup. Removing duplicate include and unused netutils.c used by BLE 6lowpan network which has been removed for now. 2017-06-02 19:19:55 +02:00
README.md Adding a README for the nRF5 port 2017-05-29 21:37:39 +02:00
bluetooth_conf.h nrf5/drivers/bluetooth: Enable ubluepy central by default if running nrf52/s132 bluetooth stack. Maturity of the module is pretty OK now. 2017-05-25 22:20:17 +02:00
builtin_open.c nrf5: Updating port with new content. SPI, SDcard (trough sdcard.py), Pin, and machine module. Also adding some basic modules depending on SDK and bluetooth stack from nordic semiconductor. NUS is module copied from original port by tralamazza, and new basic module for 6lowpan over BLE which can be used by modnetwork and modusocket. Basic BLE module to enable bluetooth stack and start a eddystone advertisment is kept, and still works without SDK, even if in the SDK folder (its placed there as it needs bluetooth stack from an SDK). 2016-12-13 20:27:26 +01:00
fatfs_port.c nrf5: Aligning code after upmerge with master. Mostly FAT FS related updates. Not tested after merge. 2017-02-07 23:30:54 +01:00
font_petme128_8x8.h nrf5/lcd: Changing framebuffer to use petme128 8x8 font. This is vertical font. Code modified to flip and mirror the font when rendering a character. Adding copy of the font from stmhal. 2016-12-29 15:35:24 +01:00
gccollect.c Base support for nrf51 and nrf52 base without depending on SDK. SoftDevice usage optional. 2016-11-16 21:38:25 +01:00
gccollect.h nrf5: Updating port with new content. SPI, SDcard (trough sdcard.py), Pin, and machine module. Also adding some basic modules depending on SDK and bluetooth stack from nordic semiconductor. NUS is module copied from original port by tralamazza, and new basic module for 6lowpan over BLE which can be used by modnetwork and modusocket. Basic BLE module to enable bluetooth stack and start a eddystone advertisment is kept, and still works without SDK, even if in the SDK folder (its placed there as it needs bluetooth stack from an SDK). 2016-12-13 20:27:26 +01:00
help.c nrf5: Syncing code after upmerge with master. 2017-01-22 22:18:44 +01:00
main.c nrf5/main: Move initializaton of modmusic to the module itself. Upon init of the module, the hardware, pwm and ticker will be started. Could be moved back to main if pwm or ticker should be shared among more modules and have to be initialized more global. 2017-05-25 00:25:14 +02:00
mpconfigport.h nrf5: Facilitate option to configure away the modble if needed. Enabled if MICROPY_PY_BLE config is enabled in bluetooth_conf.h. 2017-05-18 23:11:41 +02:00
mphalport.c nrf5: Force implementation of tx_str_cooked function if BLE NUS enabled. 2017-02-28 23:18:31 +01:00
mphalport.h nrf5/hal: Moving hal_gpio functions, types and defines from mphalport.h to a new hal_gpio.h. 2017-04-09 21:39:15 +02:00
nrf51_af.csv nrf5: Updating nrf51_af.csv to reflect pins having ADC on the chip. 2017-01-11 20:13:59 +01:00
nrf52_af.csv nrf5/pin: Adding more pins to nrf52_af.csv file for nrf52840. Port '1' will be prefixed 'B'. 2017-01-08 16:10:47 +01:00
pin_defs_nrf5.h nrf5/pin: Adding PORT_B to Pin port enum to reflect gpio port 1 on nrf52840. 2017-01-08 16:08:47 +01:00
pin_named_pins.c nrf5: Updating port with new content. SPI, SDcard (trough sdcard.py), Pin, and machine module. Also adding some basic modules depending on SDK and bluetooth stack from nordic semiconductor. NUS is module copied from original port by tralamazza, and new basic module for 6lowpan over BLE which can be used by modnetwork and modusocket. Basic BLE module to enable bluetooth stack and start a eddystone advertisment is kept, and still works without SDK, even if in the SDK folder (its placed there as it needs bluetooth stack from an SDK). 2016-12-13 20:27:26 +01:00
qstrdefsport.h nrf5: Add modmusic QSTR definition of notes to qstrdefsport.h. 2017-05-18 23:11:41 +02:00

README.md

MicroPython port to the NRF5

This is a port of MicroPython to the Nordic nRF5 series of chips.

Supported features

  • UART
  • SPI
  • LEDs
  • Pins
  • ADC
  • I2C
  • PWM (nRF52 only)
  • Temperature
  • RTC
  • Some BLE support including REPL over BLE

Note that this port is still a work-in-progress and some modules are not fully feature complete.

Tested hardware

Build steps

Example is for the Adafruit Feather nRF52:

> sudo apt-get install build-essential libffi-dev pkg-config gcc-arm-none-eabi git python python-pip
> git clone https://github.com/adafruit/Adafruit_nRF52_Arduino.git
> cd Adafruit_nRF52_Arduino/tools/nrfutil-0.5.2/
> sudo pip install -r requirements.txt
> sudo python setup.py install
> cd ../../..
> git clone https://github.com/tralamazza/micropython.git nrf5_no_sdk
> cd nrf5_no_sdk/
> git submodule update --init
> make -C mpy-cross
> cd nrf5/
> make BOARD=feather52
> make BOARD=feather52 dfu-gen
> make BOARD=feather52 dfu-flash