Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

boards: add support for the Waveshare nRF52840 Eval Kit #13860

Merged

Conversation

gschorcht
Copy link
Contributor

@gschorcht gschorcht commented Apr 13, 2020

Contribution description

This PR adds the support for the Waveshare nRF52840 Eval Kit.

The main on-board components of the Waveshare nRF52840 Eval Kit are:

  • Arduino headers for connecting Arduino shields
  • Raspberry Pi GPIO header for connecting Raspberry Pi HATs
  • USB to UART bridge
  • Optical sensor (LDR)
  • 2 user keys RESET and KEY
  • 4 User LEDs
  • TF card slot
  • CR2032 battery holder

The board definition include SAUL support as well Arduino support including Arduino PWM. The follwing peripherals and on-board components were tested:

  • ADC tested with tests/periph_adc / tests/sys_arduino_analog
  • GPIO tested with tests/periph_gpio
  • PWM tested with tests/periph_pwm / tests/sys_arduino_analog
  • UART tested with tests/periph_uart
  • I2C tested with tests/driver_sht3x
  • SPI tested with tests/driver_bme680
  • SD card tested with tests/driver_sdcard_spi
  • Arduino compatibility tested with tests/sys_arduino_analog
  • Bluetooth connectivity
  • IEEE 802.15.4 connectivity tested with examples/gnrc_networking and driver nrf802154

[UPDATE] Commit 84db9c2 can be dropped once PR #13858 is merged.

Testing procedure

Issues/PRs references

Depends on PR #14480

@gschorcht gschorcht added Area: boards Area: Board ports CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Platform: ARM Platform: This PR/issue effects ARM-based platforms Type: new feature The issue requests / The PR implemements a new feature for RIOT labels Apr 13, 2020
@miri64
Copy link
Member

miri64 commented Jun 25, 2020

@RIOT-OS/maintainers does anyone has this board at hand for testing?

@MrKevinWeiss
Copy link
Contributor

We just got some in. I'll have a look when I am back in the office.

@benpicco
Copy link
Contributor

benpicco commented Jul 9, 2020

Probably unrelated, but when I'm flashing my nRF52810 based board with ST-Link I will always get

nRF52 device has a CTRL-AP dedicated to recover the device from AP lock.
A high level adapter (like a ST-Link) you are currently using cannot access
the CTRL-AP so 'nrf52_recover' command will not work.
Do not enable UICR APPROTECT.

When I use my jlink adapter I can flash it just fine. I thought that protection was from the original firmware and would be gone after first flashing RIOT, but I keep getting that message with ST-Link.

@gschorcht gschorcht force-pushed the boards/waveshare_nrf52840_eval_kit branch from de170b8 to e26077f Compare July 10, 2020 07:27
@benpicco
Copy link
Contributor

This board does not come with a programmer, so I don't see why it should depend on #14480.
common/nrf52/Makefile.include will default to JLink, I'm sure the board can be flashed with that.

Having the possibility to flash it with ST-Link is of course nice, but that's not requirement.

Btw, please squash.

@gschorcht
Copy link
Contributor Author

This board does not come with a programmer, so I don't see why it should depend on #14480.
common/nrf52/Makefile.include will default to JLink, I'm sure the board can be flashed with that.

Of course, you are right.

@gschorcht gschorcht force-pushed the boards/waveshare_nrf52840_eval_kit branch from e26077f to 6123711 Compare July 10, 2020 14:56
@benpicco
Copy link
Contributor

benpicco commented Jul 10, 2020

Oh just two things I noticed when adding support for a nRF52-module based board you should check:

  • tests/periph_rtt works
  • examples/nimble_scanner does not get stuck on init (and if you have e.g. the Corona Warn App installed, you should see periodic announcements with scan)

If that works, all clocks should be set up all-right. (my module didn't have any external oscillators)

@stale
Copy link

stale bot commented Jan 14, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions.

@stale stale bot added the State: stale State: The issue / PR has no activity for >185 days label Jan 14, 2021
@gschorcht gschorcht added State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet and removed State: stale State: The issue / PR has no activity for >185 days labels Jan 14, 2021
@MrKevinWeiss MrKevinWeiss added this to the Release 2021.07 milestone Jun 22, 2021
@MrKevinWeiss MrKevinWeiss removed this from the Release 2021.07 milestone Jul 15, 2021
@stale
Copy link

stale bot commented Jun 12, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions.

@stale stale bot added the State: stale State: The issue / PR has no activity for >185 days label Jun 12, 2022
@gschorcht gschorcht removed State: stale State: The issue / PR has no activity for >185 days CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Aug 2, 2022
@gschorcht gschorcht force-pushed the boards/waveshare_nrf52840_eval_kit branch from 6123711 to 3387645 Compare August 2, 2022 10:44
@github-actions github-actions bot added Area: doc Area: Documentation and removed Platform: ARM Platform: This PR/issue effects ARM-based platforms labels Aug 2, 2022
@gschorcht gschorcht added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Aug 3, 2022
@gschorcht
Copy link
Contributor Author

Hm, there is still a problem with Kconfig modelling and makefile dependencies. Probably, we need the fix in PR #18395.

@gschorcht gschorcht requested a review from kaspar030 as a code owner August 3, 2022 07:42
@github-actions github-actions bot added Area: CI Area: Continuous Integration of RIOT components Area: drivers Area: Device drivers labels Aug 3, 2022
@MrKevinWeiss MrKevinWeiss added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Aug 3, 2022
@gschorcht
Copy link
Contributor Author

gschorcht commented Aug 3, 2022

@benpicco Kconfig seems to work now, see the small fixes. Commit 23c20fb is the fix in PR #18395. Once PR #18395, this PR has to be rebased. May I squash the fixes when rebasing?

@benpicco
Copy link
Contributor

benpicco commented Aug 3, 2022

No need to ask for approval to squash in such tiny changes

@gschorcht gschorcht force-pushed the boards/waveshare_nrf52840_eval_kit branch from 23c20fb to 8475804 Compare August 4, 2022 08:30
@github-actions github-actions bot removed the Area: drivers Area: Device drivers label Aug 4, 2022
@benpicco benpicco enabled auto-merge August 4, 2022 08:49
@MrKevinWeiss
Copy link
Contributor

I would also be OK skipping the compile job after this one is complete as it is the intermittent unrelated failure.

@MrKevinWeiss
Copy link
Contributor

Though the binary size difference is a bit scary.

@gschorcht gschorcht added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Aug 4, 2022
@gschorcht
Copy link
Contributor Author

I would also be OK skipping the compile job after this one is complete as it is the intermittent unrelated failure.

Oops, too late. I aborted and restarted the compilation test already, also to give your Murdock test the precedence 😉

@gschorcht
Copy link
Contributor Author

After 3 tries of compilation tests that failed each time due to the unrelated hash mismatch problem (this time in compile/tests/saul/esp32-wrover-kit:gnu), I would restart the CI test without compilation test.

@gschorcht gschorcht added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Aug 4, 2022
@benpicco benpicco merged commit 4896ac6 into RIOT-OS:master Aug 4, 2022
@gschorcht gschorcht deleted the boards/waveshare_nrf52840_eval_kit branch August 31, 2022 07:07
@maribu maribu added this to the Release 2022.10 milestone Oct 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: boards Area: Board ports Area: CI Area: Continuous Integration of RIOT components Area: doc Area: Documentation Area: Kconfig Area: Kconfig integration Area: tools Area: Supplementary tools CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs Type: new feature The issue requests / The PR implemements a new feature for RIOT
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants