-
Notifications
You must be signed in to change notification settings - Fork 2.1k
boards/seeedstudio-xiao-nrf52840-sense: Add Initial Support #21332
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
Conversation
8f4eded
to
cc89a7c
Compare
cc89a7c
to
88e29e6
Compare
If this is mostly a copy&paste, wouldn't it qualify for a new common board to have less code duplication? :P |
I thought about that. The original approach had a lot of Symlinks, but that's not ideal. However the question is "how many similar/same boards justify moving code to the common folder"? |
I'd say two is already enough as it is not much overhead, especially now that #21327 is in. |
1a16a4c
to
3234abd
Compare
The failing static test is expected until #21334 is merged. This PR would be the perfect opportunity to address the undocumented Current list of warnings on master:
|
The documentation has been added and Doxygen does not throw any errors about the Furthermore I corrected the position of the Include Guards as discussed in #21325. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this! Will try that (with a non-Sense version of the board) on Monday, but already left some comments below.
boards/common/seeedstudio-xiao-nrf52840/include/arduino_iomap.h
Outdated
Show resolved
Hide resolved
badd662
to
738aab8
Compare
Unfortunately there seems to be a regression with default module selection. Current $ make -C examples/basic/default BOARD=seeedstudio-xiao-nrf52840 info-modules
auto_init
auto_init_gnrc_netif
auto_init_gnrc_pktbuf
auto_init_gnrc_pktdump
auto_init_random
auto_init_saul
auto_init_usbus
auto_init_ztimer
board
board_common_init
boards_common_adafruit-nrf52-bootloader
core
core_init
core_lib
core_msg
core_panic
core_thread
core_thread_flags
cortexm_common
cortexm_common_periph
cortexm_fpu
cpu
cpu_common
div
eui_provider
event
fmt
frac
gnrc
gnrc_netapi
gnrc_netif
gnrc_netif_hdr
gnrc_netif_ieee802154
gnrc_netif_init_devs
gnrc_netif_pktq
gnrc_netreg
gnrc_pkt
gnrc_pktbuf
gnrc_pktbuf_static
gnrc_pktdump
gnrc_txtsnd
ieee802154
ieee802154_submac
isrpipe
l2util
libc
luid
malloc_thread_safe
mpu_stack_guard
netdev
netdev_default
netdev_ieee802154
netdev_ieee802154_submac
netdev_legacy_api
netdev_register
netif
newlib
newlib_nano
newlib_syscalls_default
nrf52_vectors
nrf5x_common_periph
nrf802154
od
periph
periph_common
periph_cpuid
periph_gpio
periph_gpio_ll_disconnect
periph_gpio_ll_input_pull_down
periph_gpio_ll_input_pull_up
periph_gpio_ll_irq_edge_triggered_both
periph_gpio_ll_irq_unmask
periph_gpio_ll_open_drain
periph_gpio_ll_open_drain_pull_up
periph_gpio_ll_open_source
periph_gpio_ll_open_source_pull_down
periph_hwrng
periph_init
periph_init_cpuid
periph_init_gpio
periph_init_hwrng
periph_init_led0
periph_init_led1
periph_init_led2
periph_init_led3
periph_init_led4
periph_init_led5
periph_init_led6
periph_init_led7
periph_init_leds
periph_init_pm
periph_init_rtt
periph_init_temperature
periph_init_timer
periph_init_uart
periph_init_usbdev
periph_init_usbdev_clk
periph_pm
periph_rtt
periph_temperature
periph_timer
periph_uart
periph_usbdev
periph_usbdev_clk
phydat
preprocessor
preprocessor_successor
prng
prng_musl_lcg
ps
random
saul
saul_default
saul_gpio
saul_init_devs
saul_nrf_temperature
saul_reg
shell
shell_cmd_gnrc_netif
shell_cmd_gnrc_txtsnd
shell_cmd_pm
shell_cmd_ps
shell_cmd_saul_reg
shell_cmd_sys
shell_cmds
shell_cmds_default
stdin
stdio
stdio_available
stdio_cdc_acm
stdio_default
stdio_dispatch
stdio_uart
stdio_uart_rx
sys
tsrb
usb_board_reset
usbus
usbus_cdc_acm
xtimer
ztimer
ztimer_convert
ztimer_convert_frac
ztimer_convert_shift
ztimer_core
ztimer_extend
ztimer_init
ztimer_msec
ztimer_periph_rtt
ztimer_periph_timer
ztimer_usec
ztimer_xtimer_compat while this PR (among others) automatically selects BLE instead of 802.15.4: $ make -C examples/basic/default BOARD=seeedstudio-xiao-nrf52840 info-modules
auto_init
auto_init_gnrc_netif
auto_init_gnrc_pktbuf
auto_init_gnrc_pktdump
auto_init_random
auto_init_saul
auto_init_usbus
auto_init_ztimer
bluetil_ad
bluetil_addr
board
board_common_init
boards_common_adafruit-nrf52-bootloader
boards_common_seeedstudio-xiao-nrf52840
core
core_init
core_lib
core_msg
core_panic
core_thread
core_thread_flags
cortexm_common
cortexm_common_periph
cpu
cpu_common
div
eui_provider
event
event_callback
fmt
frac
gnrc
gnrc_netapi
gnrc_netif
gnrc_netif_hdr
gnrc_netif_init_devs
gnrc_netreg
gnrc_pkt
gnrc_pktbuf
gnrc_pktbuf_static
gnrc_pktdump
gnrc_txtsnd
isrpipe
l2util
libc
luid
malloc_thread_safe
mpu_stack_guard
netdev
netdev_default
netif
newlib
newlib_nano
newlib_syscalls_default
nimble_addr
nimble_controller
nimble_drivers_nrf5x
nimble_host
nimble_host_store_ram
nimble_host_util
nimble_netif
nimble_npl_riot
nimble_porting_nimble
nimble_riot_contrib
nimble_scanlist
nimble_scanner
nimble_transport
nrf52_vectors
nrf5x_common_periph
od
periph
periph_common
periph_cpuid
periph_gpio
periph_gpio_ll_disconnect
periph_gpio_ll_input_pull_down
periph_gpio_ll_input_pull_up
periph_gpio_ll_irq_edge_triggered_both
periph_gpio_ll_irq_unmask
periph_gpio_ll_open_drain
periph_gpio_ll_open_drain_pull_up
periph_gpio_ll_open_source
periph_gpio_ll_open_source_pull_down
periph_hwrng
periph_init
periph_init_cpuid
periph_init_gpio
periph_init_hwrng
periph_init_led0
periph_init_led1
periph_init_led2
periph_init_led3
periph_init_led4
periph_init_led5
periph_init_led6
periph_init_led7
periph_init_leds
periph_init_pm
periph_init_rtt
periph_init_temperature
periph_init_timer
periph_init_uart
periph_init_usbdev
periph_init_usbdev_clk
periph_pm
periph_rtt
periph_temperature
periph_timer
periph_uart
periph_usbdev
periph_usbdev_clk
phydat
preprocessor
preprocessor_successor
prng
prng_musl_lcg
ps
random
saul
saul_default
saul_gpio
saul_init_devs
saul_nrf_temperature
saul_reg
sema
shell
shell_cmd_gnrc_netif
shell_cmd_gnrc_txtsnd
shell_cmd_nimble_netif
shell_cmd_pm
shell_cmd_ps
shell_cmd_saul_reg
shell_cmd_sys
shell_cmds
shell_cmds_default
stdin
stdio
stdio_available
stdio_cdc_acm
stdio_default
stdio_dispatch
stdio_uart
stdio_uart_rx
sys
tsrb
usb_board_reset
usbus
usbus_cdc_acm
ztimer
ztimer_convert
ztimer_convert_frac
ztimer_convert_shift
ztimer_core
ztimer_extend
ztimer_init
ztimer_msec
ztimer_periph_rtt
ztimer_periph_timer
ztimer_usec |
That behavior is caused by moving the Adding
This is the code that causes the behavior: Lines 3 to 9 in 48162bd
To be honest I don't understand why there is such a semi-specific distinction (as in: which are the other nRF52 CPUs?) 🤔 |
Hum, so we can't move this then, I guess :/
There actually is the nRF52832 MCU with no 802.15.4 support (e.g., used by the PineTime). |
Not without additional changes, no. And I'm not sure if would be possible at all without the risk of breaking something else due to the hen-and-egg problem. When changing the Line 22 in 48162bd
This is close to the check that got moved away by #21334, so the RIOT/cpu/nrf52/Makefile.features Lines 8 to 13 in 48162bd
I added a
|
88971a3
to
886e8c6
Compare
I rebased this to include #21334 and reverted the move of |
Please squash already, I'll have another look at the final changes (and test it again) tomorrow. |
886e8c6
to
cee150d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, I doubt anyone else from RIOT maintainers has a XIAO nrf52840 Sense available to test the IMU integration, so trusting your test here. Other than that, I've tested some applications with a XIAO nrf52840 and all seems fine.
Thanks!
@mguetschow Thank you for your patience, again :) |
Contribution description
This is basically copy&paste of #20980 by @mguetschow with support for the LSM6DS3TR-C added that is on board of the Seeedstudio Xiao nRF52840 Sense. The LSM6DS3TR-C (not to be confused with the LSM6DS3!) is register compatible with the LSM6DSL, which is supported by the
drivers/lsm6dsxx
library.Testing procedure
Since this is mostly a Xiao nRF52840, you can do all the tests (except for the IMU test) with that as well (totally not looking at you @mguetschow 👀 ).
The values from the
tests/drivers/lsm6dsxx
test appear to be plausible:Also you can check the generated doxygen documentation.
Issues/PRs
Depends on #21334.