pkg/bplib: Experimental UWB CLA - #22647
Conversation
This implements an experimental CLA used over UWB with decadriver. The CLA logic itself is not UWB specific, but could apply to all 802.15.4 frames, so this could be generalized in future efforts.
A manual execution test between two boards with decadriver compatible modules.
crasbe
left a comment
There was a problem hiding this comment.
Thank you very much again :)
I haven't tested it yet, but some initial comments from the first review round are below.
Don't worry about the failing buildsystem sanity check static test, that will be fixed once #22645 is merged.
| dw3000_hw_init(); | ||
| dw3000_hw_init_interrupt(); | ||
| dw3000_hw_reset(); | ||
|
|
||
| dwt_probe((struct dwt_probe_s *)&dw3000_probe_interf); | ||
| uint32_t dev_id = dwt_readdevid(); | ||
| printf("[deca init] detected device id: %"PRIx32"\n", dev_id); |
There was a problem hiding this comment.
Would it make sense to adapt the error checking from the other UWB test here too?
| MSG="Warning: No default decadriver configuration for \"$(BOARD)\"."\ | ||
| "Make sure to set all CFLAGS manually!" | ||
| $(shell $(COLOR_ECHO) "$(COLOR_YELLOW)$(MSG)$(COLOR_RESET)" 1>&2) |
There was a problem hiding this comment.
| MSG="Warning: No default decadriver configuration for \"$(BOARD)\"."\ | |
| "Make sure to set all CFLAGS manually!" | |
| $(shell $(COLOR_ECHO) "$(COLOR_YELLOW)$(MSG)$(COLOR_RESET)" 1>&2) | |
| $(call echowarn,("Warning: No default decadriver configuration for \"$(BOARD)\"."\ | |
| "Make sure to set all required CFLAGS manually!")) |
There was a problem hiding this comment.
Of course out of scope of this PR but is there a way to put default configurations and detection thereof into decadriver?
Like this every example involving decadriver needs to warn and also have the Makefile.board.dep
There was a problem hiding this comment.
The general philosophy is to keep board-dependant stuff out of the general modules and rather keep it in the examples.
|
The BOARD_INSUFFICIENT_MEMORY := \
airfy-beacon \
b-l072z-lrwan1 \
blackpill-stm32f103c8 \
blackpill-stm32f103cb \
bluepill-stm32f030c8 \
bluepill-stm32f103c8 \
bluepill-stm32f103cb \
e104-bt5010a-tb \
e104-bt5011a-tb \
hifive1 \
hifive1b \
i-nucleo-lrwan1 \
im880b \
lsn50 \
maple-mini \
nucleo-c031c6 \
nucleo-c071rb \
nucleo-f030r8 \
nucleo-f031k6 \
nucleo-f042k6 \
nucleo-f070rb \
nucleo-f072rb \
nucleo-f103rb \
nucleo-f303k8 \
nucleo-f334r8 \
nucleo-g031k8 \
nucleo-l011k4 \
nucleo-l031k6 \
nucleo-l053r8 \
nucleo-l073rz \
olimexino-stm32 \
samd10-xmini \
saml10-xpro \
saml11-xpro \
slstk3400a \
spark-core \
stk3200 \
stm32f030f4-demo \
stm32f0discovery \
stm32l0538-disco \
yunjia-nrf51822 \
# |
|
Can I rebase? I think I added all current review points |
|
Yes 👍 |
Contribution description
This adds an experimental, non standard, CLA (Convergence Layer Adapter) for bplib. This allows sending bundles over UWB using decadriver.
This could be generalized to a 802.15.4 CLA, since the communication itself is not UWB specific.
The other CLAs have an example instead of a test, here I thought this might (in its current state) be a little too specific and experimental to be put into the example folder.
Testing procedure
Added
tests/pkg/bplib_cla_uwbto test this. One needs two boards with decadriver compatible UWB modules.Then, using e.g. the
bp send 0 "Hello World"shell command, one can see the bundle arrive on the other side, meaning it was successfully sent though a BPv7 encoded bundle over the CLA via the UWB PHY.Issues/PRs references
no
Declaration of AI-Tools / LLMs usage:
AI-Tools / LLMs that were used are: