Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Discussion options

Can someone please give me advice/instructions on how to load Micropython onto the Adafruit Feather nRF52840? There are no instructions at https://micropython.org/download/FEATHER52/. I've used urf2conv.py / uf2families.json and the nrf/FEATERH52 micropython v1.23.0 hex to make a uf2-compatible file, firmware.uf2.zip. But when I dragged it onto the UF2 bootloader folder, it failed. The board serial port disappeared, and when I rebooted it, I saw that this method erased the SoftDevice. The UF2 Bootloader version is 0.9.0.

I needed to re-load the SoftDevice (S140 6.1.1) using the Arduino IDE onto the board to flash Circuitpython onto it. But I'd like to load it with Micropython instead. I'd appreciate instructions/advice.

I'm using a Mac OS 12.6.

Thank you, Jay

You must be logged in to vote

Thank you, jkorte-dev - I was able to load your uf2 build onto the nRF52! I was successful after reloading the bootloader using the Arduino IDE. I can now get to REPL via Terminal and Thonny. I appreciate you letting me borrow your code to test this. This is great - now I will learn how to build the hex on the Mac, incorporating your tips, generating the uf2 using your instructions, and see if I can do it myself.

Replies: 18 comments · 18 replies

Comment options

andrewleech
Jul 18, 2024
Collaborator Sponsor

Yes the nrf port hasn't had as much development as some others so gaps in docs like this are common.

Many of the default builds for nrf generally don't include SD support at all so flash straight over it looks you saw.

It can be recompiled for SD at which point the SD can be flashed automatically too:

https://github.com/micropython/micropython/tree/master/ports/nrf#compile-and-flash-with-bluetooth-stack

It would certainly be helpful if the uf2 conversion could be done automatically for boards like this that need it by default, that would be a worthwhile addition to the Makefile.

You must be logged in to vote
0 replies
Comment options

I had the same/similar problem. See this discussion.

You must be logged in to vote
0 replies
Comment options

If the board uses the Adafruit UF2 Bootloader with SoftDevice (S140 6.1.1) and you convert the firmware.hex with urf2conv.py
uf2conv.py -c -f 0xADA52840 -o firmware.uf2 firmware.hex
it should report the start address as 0x26000. (see https://github.com/adafruit/Adafruit_nRF52_Bootloader for details). U2F_INO.TXT shows all version information of the bootloader.

If uf2conv.py does not report 0x26000 linking is not correct. I had a similar problem with a Supermini nrf52840 an solved it by adding
LD_FILES += boards/[MY_BOARD_NAME]/bootloader.ld boards/nrf52840_1M_256k.ld
to mpconfigboard.mk
plus the the linker script (I found in the boards directory of SEEED_XIAO_NRF52)
https://github.com/micropython/micropython/blob/master/ports/nrf/boards/SEEED_XIAO_NRF52/XIAO_bootloader.ld

You must be logged in to vote
0 replies
Comment options

Thank you for all the suggestions! It is taking me a while to digest them, as I do not have experience in making micropython binary. I have worked primarily with micropython on the ESP32 and relied on the kind micropython builds made by others and their easy loading using esptool. These are my first tentative steps in building micropython using the Mac...

Thank you, jkorte-dev! I tried your suggestion - the Adafruit Feather nRF2 express board has a UF2 Bootloader 0.9.0 with SoftDevice S140 6.1.1 - using the indicated uf2conv.py instruction with the FEATHER52-20240602-v1.23.0.hex build. But Terminal reported the resulting uf2 start address at 0x0 and not 0x26000. So the linking is probably not correct as you indicated. By any chance, can I have a zip copy of your firmware.uf2 file just to test whether it can load onto the device? If it does, then I'll do a deep dive into how to build microsoft with the instructions you all mentioned.

You must be logged in to vote
0 replies
Comment options

The micropython firmware you tried is for the nRF528320 version of the Feather (Adafruit Feather nRF52). I have overseen that. Here you can find a build for a nrRF52840 board using UF2 Bootloader 0.9.0 with SoftDevice S140:
https://github.com/jkorte-dev/micropython-board-NRF52840/tree/main/firmware/
Please let me know if it works for your Feather board. If your board features a NeoPixel rgb LED please test it with the neopixel module included in the firmware. If your test was successful you can do me a favor and report you result in my PR (#15482) which was the base for the build. Thank you very much

You must be logged in to vote
0 replies
Comment options

Thank you! You are right, its a nRF52840 version of the feather - https://www.adafruit.com/product/4062 .

You must be logged in to vote
4 replies
@jkorte-dev
Comment options

Then we have good chance that the build will work, though default led pin assignment will be wrong. When using thonny there will be a message that RTC is missing. Thats because nrf port lacks RTC support.

@JDRBoston
Comment options

I downloaded your kindly provided uf2 file and dropped in onto the boot folder. This caused a transfer and the folder to close. But then the device no longer exposes a port for me to connect via Terminal / Thonny, even with a power cycle. But this time when I put the board back into boot mode, the SoftDevice is preserved, showing version S 140 6.1.1. When I tried to copy my uf2 file before, it seemed to overwtie the SoftDevice. When entering boot mode, the device reveals an usbmodem401 port. When I connect to that port, there is no response from the device - I cannot get to REPL.

Do you have other suggestions? Thank you.

@jkorte-dev
Comment options

If no usbmodem device shows up when you are using my uf2 file it is very likely that the firmware could not boot. when you still can enter boot mode I would try the a circuitpython build for your board to see if it boots. because if it works soft device and bootloader are ok.
what do you mean with the "uf2 file before" is it the one with the wrong start address ?

@JDRBoston
Comment options

Thank you, jkorte-dev - I was able to load your uf2 build onto the nRF52! I was successful after reloading the bootloader using the Arduino IDE. I can now get to REPL via Terminal and Thonny. I appreciate you letting me borrow your code to test this. This is great - now I will learn how to build the hex on the Mac, incorporating your tips, generating the uf2 using your instructions, and see if I can do it myself.

Answer selected by JDRBoston
Comment options

I am happy to hear that you had success loading the firmware. The Neopixel Pin on your board is P0.16 which resolves to CPU Pin 16.
Unfortunately I did not define the Pin because it is not layout on my board. I'll make a new build for you.

You must be logged in to vote
1 reply
@jkorte-dev
Comment options

I have updated the firmware file micropython-NRF52840-supermini-v1.24.0-preview.uf2 . It should now define all pins of your board

Comment options

Thank you, jkorte. I can toggle the blue led but I am unable to fire the neopixel or toggle the red led on the Adafruit nRF52840 express. Below is my script and I've attached the pin mappings for the board. Do you have suggestions? Should I more this to a new discussion? J

# Test NeoPixel illumination on Adafruit nRF52840 Express Feather
#  running v1.24.0-preview.51.g91717a4f9.dirty

from machine import Pin
from neopixel import NeoPixel
import time

# ESP8226-style
#  docs.micropython.org/en/latest/esp8266/tutorial/neopixel.html
pixel = NeoPixel(Pin(16, Pin.OUT), 1)

pixel[0] = (255, 0, 0)
pixel.write()

# latest style
#  docs.micropython.org/en/latest/library/neopixel.html#output-methods
#  bbp is 3 for RGB LEDs
#  timing is 1 for 800kHz LEDs
pixel1 = NeoPixel(Pin(16, Pin.OUT), bpp=3, timing=1)

pixel1[0] = (255, 0, 0)
pixel1.write()

# Result: No illumination

#  timing is 1 for 400kHz LEDs
pixel2 = NeoPixel(Pin(16, Pin.OUT), 3, 0)

pixel2[0] = (255, 0, 0)
pixel2.write()

# Result: No illumination

# Test Blue LED illumination
#  Pin 42 / P1.10

blue_led = Pin(42, Pin.OUT)
blue_led.value(1)
time.sleep(4)
blue_led.value(0)

# Result: blue led illuminates

# Test Red LED illumination
#  Pin 47 / P1.15

red_led = Pin(47, Pin.OUT)
red_led.value(1)
time.sleep(4)
red_led.value(0)

# Result: ValueError: not a valid pin identifier

Adafruit Feather nRF52840 express pins.pdf

You must be logged in to vote
1 reply
@jkorte-dev
Comment options

from neopixel import NeoPixel
from machine import Pin

p = Pin(16) # or Pin.board.P0_16
np = NeoPixel(p, 1)
np[0] = (255,0,0)
np.write()

is correct and the way I tested it (timing (400, 850, 800, 450)). I have no idea why it does not work. I checked the schematic of your board and it shows a WS2812B on Pin 16 (P0_16). Maybe the neopixel on your board uses different timings, but that is unlikely. I tested four different neopixel leds and the all showed slightly different timing tolerances. Some were labeled as WS2812B others as WS2812, but they all worked after tweaking the timing.

That your script fails to initialize Pin 47 (P1_15) is strange because it is defined. You can have a look at the defined pins with

help(Pin.board) .

is must show P0_16 -- Pin(16, mode=IN, pull=PULL_DISABLED) and P1_15 -- Pin(47, mode=IN, pull=PULL_DISABLED) among other Pins

Did you use the latest build? os.uname() should show:
(sysname='nrf52', nodename='nrf52', release='1.24.0-preview', version='v1.24.0-preview.84.g788c2082a.dirty on 2024-07-29', machine='SuperMini / Nice!Nano / Pro Micro nRF52840 with NRF52840')

Comment options

Hi @jkorte-dev and @JDRBoston,

I've been playing around with the Adafruit Feather nRF52840 Express and haven't been able to get it working. In short; as soon as I upload the uf2 file I can no longer see the device (ls /dev).

To build the uf2 file I download the bin file (https://micropython.org/download/FEATHER52/) and compile it using
python3 uf2conv.py ../../FEATHER52-20241129-v1.24.1.bin -c -b 0x26000 -f 0xADA52840
with output
Converted to uf2, output size: 371200, start address: 0x26000 Wrote 371200 bytes to flash.uf2
which all seems correct if I compare it to the above, however, I am unable to detect it or upload any code.

If I upload @jkorte-dev pre-compiled file it works well.

Do you perhaps know of anything else I can try.

Edit:

What's interesting @jkorte-dev is when I upload your "micropython-NRF52840-supermini-v1.24.0-preview.uf2" the port is renamed to tty.usbmodem0000000000001 and is detectable and works; however, when I upload "micropython-NRF52840-supermini-s140-v1.24.0-preview.uf2" I am unable to detect the device after uploading the firmware.

You must be logged in to vote
2 replies
@jkorte-dev
Comment options

Hi @Eckaard ,

your Board has a nRF52840 . If you look at

https://github.com/micropython/micropython/blob/master/ports/nrf/boards/FEATHER52/mpconfigboard.mk

you see it is for a nRF52832 . The official micropython build is not compatible for your board. See my comment from on Jul 24, 2024.
If you need a newer version of micropython I can make a new build for you. I had to change the pin definitions to make all pins of Adafruit Feather nRF52840 Express accessible.

@Eckaard
Comment options

Thanks for the quick reply @jkorte-dev.

Oooo I see, my mistake I should have checked the Micropython repo. Please, that would be highly appreciated. If you could perhaps guide me on how to do it that would be even better(as I would like to upload it to a custom board in the future).

Thanks in advance, your help is appreciated.

Comment options

I have checked my repo. The pin definitions have already been extended for the Adafruit Feather nRF52840 Express.
To build the firmware you should start with:

https://docs.micropython.org/en/latest/develop/gettingstarted.html#compile-and-build-the-code

and than follow the instructions from my README.md

https://github.com/jkorte-dev/micropython-board-NRF52840

You do not need run uf2conv.py manually, as it is included in the build process.

If you use a Mac please let my know. There are some pit falls.

You must be logged in to vote
1 reply
@Eckaard
Comment options

Great thank you! I'll give it a go. Yes I do use a Mac.

Comment options

OK, then I recommend using xPack GNU Arm Embedded GCC

https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/tag/v14.2.1-1.1

the download script for the bluetooth drivers for the nrf port does do not work on Mac because usually wget is not installed. I have included a patched version in the repo (download_ble_stack.sh) which uses curl instead. I think that's it.

Don't forget to read https://github.com/micropython/micropython/blob/master/ports/nrf/README.md
The board used Softdevice version (SD) 140 (it is set in the board definition anyway)

You must be logged in to vote
0 replies
Comment options

Thanks @jkorte-dev. One aspect I can't grasp is the pin assignment. I had a look at CircuitPython's Repo(https://github.com/adafruit/circuitpython/tree/main/ports/nordic/boards/feather_nrf52840_express) to see if I can get a better understanding. If I compare their pinouts to the MDBT50Q (SoC on the Adafruit NRF52840 express) footprint it makes sense, however, if I do the same for micropython pins I can't figure out how it's allocated. So my question is; when generating a new build, everything remains the same except for the board files which include the "pins" file and two "mpconfigboard" files?

You must be logged in to vote
1 reply
@jkorte-dev
Comment options

Pins definitions (and aliases like LED for led pin) in micropython are generated using pins.csv (unlike in circuitpython where they are defined in c) . The circuitpython pin definitions differ from my pin.csv because I initially wrote the pin definitions for the super mini board and later on added pins for the Feather board which were not accessible on the super mini board.

Comment options

@jkorte-dev, make sense thank you. So what I've done is the following; with the help of chatGPT I created a new board with the following files:

board.json

{ "deploy": [ "../deploy.md" ], "docs": "", "features": [], "images": [ "4062-02.jpg" ], "mcu": "nrf52840", "product": "Feather nRF52840 Express", "thumbnail": "", "url": "https://www.adafruit.com/product/4062", "vendor": "Adafruit" }

mpconfigboard.h
`/*

  • This file is part of the MicroPython project, http://micropython.org/
  • The MIT License (MIT)
    */
    #define MICROPY_HW_BOARD_NAME "Feather nRF52840 Express"
    #define MICROPY_HW_MCU_NAME "NRF52840"
    #define MICROPY_PY_SYS_PLATFORM "nrf52840"

#define MICROPY_PY_MACHINE_UART (1)
#define MICROPY_PY_MACHINE_HW_PWM (1)
#define MICROPY_PY_MACHINE_RTCOUNTER (1)
#define MICROPY_PY_MACHINE_I2C (1)
#define MICROPY_PY_MACHINE_ADC (1)
#define MICROPY_PY_MACHINE_TEMP (1)

#define MICROPY_HW_ENABLE_RNG (1)

#define MICROPY_HW_HAS_LED (1)
#define MICROPY_HW_LED_COUNT (2)
#define MICROPY_HW_LED_PULLUP (0)

#define MICROPY_HW_LED1 (13) // LED1
#define MICROPY_HW_LED2 (7) // LED2

// UART1 config
#define MICROPY_HW_UART1_RX (15)
#define MICROPY_HW_UART1_TX (14)
#define MICROPY_HW_UART1_HWFC (0)

// SPI0 config
#define MICROPY_HW_SPI0_NAME "SPI0"
#define MICROPY_HW_SPI0_SCK (5)
#define MICROPY_HW_SPI0_MOSI (24)
#define MICROPY_HW_SPI0_MISO (23)

#define MICROPY_HW_PWM0_NAME "PWM0"
#define MICROPY_HW_PWM1_NAME "PWM1"
#define MICROPY_HW_PWM2_NAME "PWM2"

#define HELP_TEXT_BOARD_LED "1,2"`

mpconfigboard.mk
`MCU_SERIES = m4
MCU_VARIANT = nrf52
MCU_SUB_VARIANT = nrf52840
SOFTDEV_VERSION = 6.1.1
LD_FILES += boards/nrf52840_1M_256k.ld

NRF_DEFINES += -DNRF52840_XXAA

MICROPY_VFS_LFS2 = 1`

pins.csv
# Pin mapping for Adafruit Feather nRF52840 Express pin, function 0, D0 1, D1 2, D2 3, D3 4, D4 5, SCK 6, D6 7, LED2 8, D8 9, D9 10, D10 11, D11 12, D12 13, LED1 14, TX 15, RX 16, D16 17, D17 18, D18 19, D19 20, SDA 21, SCL 22, D22 23, MISO 24, MOSI 25, D25

and I used the following steps to create the uf2 file:

Make .hex and .bin file:

Get micropython using git
cd micropython
cd mpy-cross
make clean
cd ..
make -C mpy-cross CC=gcc

(If you get an error regarding MICROPY_ALLOC_PATH_MAX go to micropython/mpy-cross/mpconfigport.h and change #define MICROPY_ALLOC_PATH_MAX (PATH_MAX) to #define MICROPY_ALLOC_PATH_MAX 256 )

cd ports/nrf
make BOARD=ADAFRUIT_NRF52840_FEATHER submodules
make BOARD=ADAFRUIT_NRF52840_FEATHER CC=arm-none-eabi-gcc CXX=arm-none-eabi-g++
(The CC is to force it to use the GCC compiler for cortex-m4)

Convert .hex to uf2:
cd to uf2 tool(make sure you execute from the directory uf2/utils)
cd uf2/utils
python3 uf2conv.py --base 0x26000 -c -f 0xADA52840 -o firmware.uf2 ~/Downloads/micropython/ports/nrf/build-ADAFRUIT_NRF52840_FEATHER/firmware.hex

The firmware.uf2 file is created successfully, however, when I upload the file the device is no longer visible.

I then repeated these steps with your SUPERMINI_NRF52840_NIMBLE board which also created the build successfully but also wasn't detectable.

Any advice or tips?

Thanks in advance once again!

You must be logged in to vote
1 reply
@robert-hh
Comment options

Does your build use the s140 soft device? As far as I remember, the base address in that case is 0x27000. See the Seeed device.
Edit: Depends on the s140 version number. Version 7.x has 0x27000, Version 6.x other ones 0x26000. You should be able to skip the --base argument in the call to uf2conv.py, since the addresses are in the hex file.

Comment options

If you compare the csv file to other ones in the boards directory, you can see that the one above is simply wrong. Most likely the are more errors. Do not follow the erratic words from ChatGPT. Better use other board definitions as template, like the SEEED_XIAO_NRF52, which uses as well the Adafruit bootloader.

You must be logged in to vote
0 replies
Comment options

Borrowed from the Cicruitpython pin definitions, a pins.csv file would look like below. But a wrong pins.csv file would not case a non-working firmware.

A0,P4
A1,P5
A2,P30
A3,P28
A4,P2
A5,P3
AREF,P31
VOLTAGE_MONITOR,P29
BATTERY,P29
SWITCH,P34
NFC1,P9
NFC2,P10
D2,P10
D3,P47
D5,P40
D6,P7
D9,P26
D10,P27
D11,P6
D12,P8
D13,P41
NEOPIXEL,P16
// NEOPIXEL_POWER only works on Rev E and later.
NEOPIXEL_POWER,P46
SCK,P14
MOSI,P13
MISO,P15
TX,P25
RX,P24
SCL,P11
SDA,P12
LED,P47
BLUE_LED,P42
You must be logged in to vote
0 replies
Comment options

@Eckaard

as robert-hh said, I would also start with adjusting pins.csv. Use the SUPERMINI_NRF52840 as a starting point and only change pins.csv. You may also change
#define MICROPY_HW_BOARD_NAME "Adafruit Feather nRF52840 Express"

this won't break anything.

I have made quick and dirty board definition for the feather. It compiles but I have no board to test with. You can give it a try and move on with it. If the SUPERMINI_NRF52840 build does not work any more you may check if you have to reinstall your bootloader.

https://github.com/jkorte-dev/micropython-board-NRF52840/tree/develop/FEATHER_NRF52840

You must be logged in to vote
0 replies
Comment options

@jkorte-dev and @robert-hh thank you very much for all the corrections and help, I appreciate it.

So I've made a bit of progress in terms of generating the final uf2 file. I get it to build, however, the port still doesn't appear. I have reloaded the Bootloader using Arduino and tested Circuitpython which works. @jkorte-dev one thing I did notice is that
micropython-NRF52840-supermini-v1.24.0-preview.uf2
works and a port appears however
micropython-NRF52840-supermini-s140-v1.24.0-preview.uf2
doesn't. Besides the extended pin definition is there any other difference.

To compile the SUPERMINI_NRF52840 after a make clean, I do the following in the nrf directory:
make -C mpy-cross
./drivers/bluetooth/download_ble_stack.sh
make BOARD=SUPERMINI_NRF52840 submodules
make BOARD=SUPERMINI_NRF52840

I then copy the file firmware.uf2 to the device in DFU mode.

Is there something I'm doing wrong?

You must be logged in to vote
3 replies
@jkorte-dev
Comment options

I could find out what the difference between the builds was: micropython-NRF52840-supermini-v1.24.0-preview.uf2 is the build using nimble bluetooth the other (micropython-NRF52840-supermini-s140-v1.24.0-preview.uf2) uses the nrf bluetooth based.
I don't think you are doing something wrong and I am sure I had both versions working, because I switched later to nimble bluetooth.
I have to take some time to dig into it. Maybe linking is wrong.

@Eckaard
Comment options

Hi @jkorte-dev,

By linking what exactly do you mean? I've built both the NimBLE version as well as the s140 successfully however as soon as I drop the uf2 file the device is no longer detectable. I also tried the PCA10059 board with no success. I've changed and played around with the MICROPY_HW_USB_PID to see if that makes a difference with no success. I updated the Bootloader to the newest 0.9.2 still nothing. I know the board works as CircuitPython works fine. Do you have any debugging tips I could try.

Thanks once again!

@jkorte-dev
Comment options

How did you build the nimble version, did you use this PR #8318 ?

I have personally never tried to debug an NRF52840 but you can find informations on this here https://github.com/micropython/micropython/tree/master/ports/nrf .

The PCA10059 board does not regard the adafruit bootloader, thus will not work.

There are two issues: One is that my board definition does not work any more with the latest micropython. Adding "#define MICROPY_HW_ENABLE_USBDEV (1)" solves this issue. I have updated https://github.com/jkorte-dev/micropython-board-NRF52840/tree/develop/FEATHER_NRF52840 . You can find some precompiled firmware there.
Second: apparently you can't install a firmware which uses nordic soft device (blue stack) . Micropython does not come with SD. But the binary version of the adafruit uf2 boot loader is a combined binary of the boot loader and the SoftDevice. The bootloader expects a specific application address which depends on the SoftDevice version in your case 0x26000. If the uf2 file you drop does not match the address, the boot loader is smart enough to not overwrite itself but you can overwrite parts of you flash for example the part where the SoftDevice is. The bootloader will still work and you can install and run firmware as long as you do not use the overwritten SoftDevice. (CircuitPython uses nimble as far as I know)
The application address is calculated in the conversion step hex to uf2. If the micropython binary was not linked properly using the right linker scripts (.ld files) the address is wrong.

Comment options

@Eckaard
I am sorry I'll be back when I feel better. Just a few notes:

  1. usb support has change after micropython 1.24.0-preview . you have to add #define MICROPY_HW_ENABLE_USBDEV (1)
    to mpconfigboard.h (e.g. https://github.com/jkorte-dev/micropython-board-NRF52840/tree/develop/FEATHER_NRF52840/mpconfigboard.h) otherwise the firmware will lack usbdevice
  2. micropython-NRF52840-supermini-s140-v1.24.0-preview.uf2 works on my board . rkompass had hard time to restore his bootloader (https://github.com/orgs/micropython/discussions/13482) and JDRBosten in his discussion as well. Maybe your bootloader has not yet been restored successfully.
You must be logged in to vote
4 replies
@Eckaard
Comment options

Hi @jkorte-dev,

You absolute beauty! Thank you for all your help! I owe you and @robert-hh a beer! I rebuilt the FEATHER_NRF52840_NIMBLE project and it worked perfectly!

Here are the steps I follow(for anyone that might need them):

Download https://github.com/jkorte-dev/micropython-board-NRF52840/tree/develop/FEATHER_NRF52840_NIMBLE
git clone https://github.com/andrewleech/micropython.git
cd micropython
git checkout nrf_ubluetooth
make -C mpy-cross
(If you get an error regarding MICROPY_ALLOC_PATH_MAX go to micropython/mpy-cross/mpconfigport.h and change #define MICROPY_ALLOC_PATH_MAX (PATH_MAX) to #define MICROPY_ALLOC_PATH_MAX 256 )
cd ports/nrf
make submodules
(Move FEATHER_NRF52840_NIMBLE folder to boards in ports/nrf)
make BOARD=FEATHER_NRF52840_NIMBLE
Dragged and drop .uf2 file to device.

I still don't quite understand why FEATHER_NRF52840 doesn't work on my board even though the INFO_UF2.TXT shows 0.9.2. I'll keep playing around and see if I can figure something out.

Thank you once again.

@jkorte-dev
Comment options

I am happy that you had success. Does RTC work? I enabled it in the board definition but I wonder if the Branch of Andrew Leech has RTC support.
The Nimble version is a good choice. Andrew did a great job! Have fun.

If you like you can try the neopixel led on your board. It did not work for JDRBoston but I have an idea what might have been the cause.: it seems that some versions of the Adafruit Board have a dedicated power pin (NEOPIXEL_POWER,P46)

@Eckaard
Comment options

Hi @jkorte-dev,

Yes RTC works great, thank you.

With regards to the Neopixel, I ran a very basic script to test if each of the RGB colors worked. Pin 46 didn't work however pin 16 did as I believe it is revision E or later as mentioned by Robert in the pins.c.

`from machine import Pin
from neopixel import NeoPixel

pixel = NeoPixel(Pin(16, Pin.OUT), 1)

pixel[0] = (0, 255, 0)
pixel.write()
`

Thanks again for the help!

@jkorte-dev
Comment options

@Eckaard Thank you for testing. I am glad to have confirmation that the bitstream driver works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
🔌
nRF
Labels
None yet
6 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.