boards/seeedstudio-xiao-nrf52840-sense: Add Initial Support#21332
boards/seeedstudio-xiao-nrf52840-sense: Add Initial Support#21332mguetschow merged 4 commits intoRIOT-OS:masterfrom
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. |
mguetschow
left a comment
There was a problem hiding this comment.
Thanks for this! Will try that (with a non-Sense version of the board) on Monday, but already left some comments below.
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_compatwhile 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
mguetschow
left a comment
There was a problem hiding this comment.
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/lsm6dsxxlibrary.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/lsm6dsxxtest appear to be plausible:Also you can check the generated doxygen documentation.
Issues/PRs
Depends on #21334.