Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

boards: add support for Adafruit Feather nRF52840 Sense #20027

Merged
merged 1 commit into from
Oct 30, 2023

Conversation

MichelRottleuthner
Copy link
Contributor

Contribution description

This adds support for the Adafruit Feather nRF52840 Sense. A nice prototyping board that comes with many onboard sensors. RIOT already supports most of it.

Note: you may need to update the bootloader in order to make flashing work. Version 0.7 worked fine for me. Note that some OSes do not auto mount the UF2 drive which prevents flashing. The uf2 helper dist/tools/uf2/uf2conv.py could use some improvements for handling distro-specific mount paths properly, which also applies to existing boards.

Unsupported features

Making use of the LSM6DS33 gyro/accelerometer might need some work on an existing driver (#17053). Currently there is no support for the PDM peripheral used by the digital MEMS microphone. The NeoPixel LED lacks an nrf52-specific integration for the ws281x driver. All of that can be done in follow ups.

Testing procedure

Flash and run some apps e.g., examples/gnrc_networking and examples/saul and check that both work as intended.
In the saul app > saul read all should give you a bunch of correct readings for the sensors. Both worked fine for me.

Issues/PRs references

None.

@benpicco benpicco added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Oct 27, 2023
Copy link
Contributor

@benpicco benpicco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@MichelRottleuthner MichelRottleuthner force-pushed the pr_feather-nrf52840-sense branch from be64240 to f27f96a Compare October 27, 2023 17:24
@riot-ci
Copy link

riot-ci commented Oct 27, 2023

Murdock results

✔️ PASSED

7842b70 boards: add support for Adafruit Feather nRF52840 Sense

Success Failures Total Runtime
550 0 550 05m:05s

Artifacts

@MichelRottleuthner MichelRottleuthner force-pushed the pr_feather-nrf52840-sense branch from f27f96a to 7842b70 Compare October 30, 2023 08:31
@MichelRottleuthner
Copy link
Contributor Author

Amended missing kconfig sensor declarations to fix make/kconfig module mismatch.

@benpicco
Copy link
Contributor

bors merge

@bors
Copy link
Contributor

bors bot commented Oct 30, 2023

Build succeeded!

The publicly hosted instance of bors-ng is deprecated and will go away soon.

If you want to self-host your own instance, instructions are here.
For more help, visit the forum.

If you want to switch to GitHub's built-in merge queue, visit their help page.

@bors bors bot merged commit d29a0f7 into RIOT-OS:master Oct 30, 2023
@MichelRottleuthner
Copy link
Contributor Author

Thanks for the swift review @benpicco

bors bot added a commit that referenced this pull request Nov 2, 2023
20035: Bump version of UF2 package r=MrKevinWeiss a=MichelRottleuthner

### Contribution description

Bump UF2 package version. The new version, besides many other things, also includes an improvement to search more potential mount paths, which gives better compatibility for different distros.


### Testing procedure

Test if flashing still works for boards that use UF2 (e.g., `feather-nrf52840`, `feather-nrf52840-sense`, `nrf52840-mdk-dongle`):
`BUILD_IN_DOCKER=1 BOARD=feather-nrf52840-sense make -C examples/hello-world all flash term`

With master you should get this error, during flashing: `No drive to deploy.` if you run it on a distro that mounts your device under something like `/run/media/<username>/FTHRSNSBOOT`, or other paths not supported by the old version. To me this happened on Arch.
**Note: you will still get this error if your system doesn't auto mount the device.** But now it will be found when mounted ;)

With this PR try again with the UF2 util:
`rm -rf build/pkg/UF2`
`BUILD_IN_DOCKER=1 BOARD=feather-nrf52840-sense make -C examples/hello-world all flash term`
It should use the new pkg version and flash successfully:
```
...
[INFO] uf2conv.py not found - fetching it from GitHub now
CC= CFLAGS= make -C /home/michel/devel/riot/dist/tools/uf2
[INFO] uf2conv.py successfully fetched!
...
Flashing /run/media/michel/FTHRSNSBOOT (nRF52840-Feather-Sense)
Wrote 63488 bytes to /run/media/michel/FTHRSNSBOOT/NEW.UF2
...
```


### Issues/PRs references

Fixes the mount path problem described in #20027.


Co-authored-by: Michel Rottleuthner <michel.rottleuthner@haw-hamburg.de>
@MrKevinWeiss MrKevinWeiss added this to the Release 2024.01 milestone Feb 7, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Area: boards Area: Board ports Area: doc Area: Documentation Area: Kconfig Area: Kconfig integration CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants