Skip to content

drivers/sen5x: Add device driver for SEN5x#19955

Merged
crasbe merged 4 commits intoRIOT-OS:masterfrom
dprigoshij:sen5x
Apr 8, 2025
Merged

drivers/sen5x: Add device driver for SEN5x#19955
crasbe merged 4 commits intoRIOT-OS:masterfrom
dprigoshij:sen5x

Conversation

@dprigoshij
Copy link
Copy Markdown

Contribution description

Testing procedure

tests/drivers/sen5x:

  1. Connect a SEN5x device via i2c to a supported board
  2. Navigate to tests/drivers/sen5x
  3. Flash and execute the test

SAUL:

  1. Navigate to examples/saul
  2. Add the following to the Makefile: USEMODULE += sen5x
  3. Flash the saul example and also use the target term
  4. Use saul read [ID] to test the outputs

@github-actions github-actions bot added Area: doc Area: Documentation Area: tests Area: tests and testing framework Area: build system Area: Build system Area: pkg Area: External package ports Area: drivers Area: Device drivers Area: SAUL Area: Sensor/Actuator Uber Layer Area: Kconfig Area: Kconfig integration labels Sep 28, 2023
@MrKevinWeiss
Copy link
Copy Markdown
Contributor

I wonder if any maintainer has access to one of these?

@MrKevinWeiss
Copy link
Copy Markdown
Contributor

If you are still interested in getting this in I would suggest removing the Kconfig dependency modelling aspect and posting test results :)

@janschlicht
Copy link
Copy Markdown

I wonder if any maintainer has access to one of these?

Hi, if this is a problem we (TU Braunschweig) could try to send you one of ours ;)
For example sending one to HAW shouldn't be a problem.

@dprigoshij
Copy link
Copy Markdown
Author

dprigoshij commented Apr 19, 2024

Regarding the test results, the SEN55 outputs its measurements every two seconds. Here are three sample iterations of the test:

2024-04-19 12:43:14,556 # Mass concentration pm1p0: 0.5 µg/m³
2024-04-19 12:43:14,560 # Mass concentration pm2p5: 1.8 µg/m³
2024-04-19 12:43:14,563 # Mass concentration pm4p0: 2.8 µg/m³
2024-04-19 12:43:14,566 # Mass concentration pm10p0: 3.2 µg/m³
2024-04-19 12:43:14,569 # Ambient humidity: 33.2 %RH
2024-04-19 12:43:14,571 # Ambient temperature: 23.4 °C
2024-04-19 12:43:14,573 # Voc index: 60.0
2024-04-19 12:43:14,574 # Nox index: 1.0
2024-04-19 12:43:16,595 # Mass concentration pm1p0: 0.6 µg/m³
2024-04-19 12:43:16,599 # Mass concentration pm2p5: 2.0 µg/m³
2024-04-19 12:43:16,602 # Mass concentration pm4p0: 3.2 µg/m³
2024-04-19 12:43:16,606 # Mass concentration pm10p0: 3.8 µg/m³
2024-04-19 12:43:16,608 # Ambient humidity: 33.1 %RH
2024-04-19 12:43:16,611 # Ambient temperature: 23.4 °C
2024-04-19 12:43:16,612 # Voc index: 60.0
2024-04-19 12:43:16,614 # Nox index: 1.0
2024-04-19 12:43:18,635 # Mass concentration pm1p0: 0.7 µg/m³
2024-04-19 12:43:18,639 # Mass concentration pm2p5: 2.4 µg/m³
2024-04-19 12:43:18,642 # Mass concentration pm4p0: 3.8 µg/m³
2024-04-19 12:43:18,646 # Mass concentration pm10p0: 4.5 µg/m³
2024-04-19 12:43:18,648 # Ambient humidity: 33.0 %RH
2024-04-19 12:43:18,651 # Ambient temperature: 23.4 °C
2024-04-19 12:43:18,652 # Voc index: 60.0
2024-04-19 12:43:18,654 # Nox index: 1.0

I'm a bit confused as to what you mean by the Kconfig dependency modelling aspect. Can you elaborate this a bit further?

@crasbe
Copy link
Copy Markdown
Contributor

crasbe commented Feb 27, 2025

@dprigoshij Are you still interested in merging this? I recently acquired a SEN55-SDN-T sensor and tested this PR with an nRF52840DK and everything seems to work as it should 👍

main(): This is RIOT! (Version: 2024.01-devel-468-gac785-sen5x)
Mass concentration pm1p0: 3.1 µg/m³
Mass concentration pm2p5: 3.3 µg/m³
Mass concentration pm4p0: 3.4 µg/m³
Mass concentration pm10p0: 3.4 µg/m³
Ambient humidity: 38.5 %RH
Ambient temperature: 21.5 °C
Voc index: 23.0
Nox index: 1.0
Mass concentration pm1p0: 3.2 µg/m³
Mass concentration pm2p5: 3.4 µg/m³
Mass concentration pm4p0: 3.4 µg/m³
Mass concentration pm10p0: 3.4 µg/m³
Ambient humidity: 38.5 %RH
Ambient temperature: 21.5 °C
Voc index: 23.0
Nox index: 1.0
Mass concentration pm1p0: 3.2 µg/m³
Mass concentration pm2p5: 3.4 µg/m³
Mass concentration pm4p0: 3.4 µg/m³
Mass concentration pm10p0: 3.4 µg/m³
Ambient humidity: 38.5 %RH
Ambient temperature: 21.5 °C
Voc index: 24.0
Nox index: 1.0
Mass concentration pm1p0: 3.2 µg/m³
Mass concentration pm2p5: 3.4 µg/m³
Mass concentration pm4p0: 3.5 µg/m³
Mass concentration pm10p0: 3.5 µg/m³
Ambient humidity: 38.5 %RH
Ambient temperature: 21.5 °C
Voc index: 24.0
Nox index: 1.0
Mass concentration pm1p0: 3.3 µg/m³
Mass concentration pm2p5: 3.5 µg/m³
Mass concentration pm4p0: 3.5 µg/m³
Mass concentration pm10p0: 3.5 µg/m³
Ambient humidity: 38.5 %RH
Ambient temperature: 21.5 °C
Voc index: 24.0
Nox index: 1.0

@janschlicht
Copy link
Copy Markdown

Hey, we are still interested in merging the driver. Please let us know if any further changes are required.

@crasbe
Copy link
Copy Markdown
Contributor

crasbe commented Mar 18, 2025

Hey, we are still interested in merging the driver. Please let us know if any further changes are required.

I'll take a closer look at it then for a review, but it certainly has to be rebased and there are two conflicts in drivers/Kconfig and pkg/Kconfig that have to be resolved.

The early commits should be squashed and all commit messages have to adhere to our Commit Conventions: https://github.com/RIOT-OS/RIOT/blob/master/CONTRIBUTING.md#commit-conventions

Other than that I don't think major changes are required. One functional change I would suggest is to keep the test running forever instead of just 100 cycles. The SEN5x takes some time until the values stabilize and the test is already over once the values stabilize.
I think NOx can even take up to an hour or so?

@dprigoshij
Copy link
Copy Markdown
Author

Alright, thanks for your input. It's been some time since I've worked on this, but I'll see to get it done.

@github-actions github-actions bot added Area: network Area: Networking Area: core Area: RIOT kernel. Handle PRs marked with this with care! Platform: AVR Platform: This PR/issue effects AVR-based platforms Area: BLE Area: Bluetooth Low Energy support labels Apr 3, 2025
@maribu
Copy link
Copy Markdown
Member

maribu commented Apr 3, 2025

Thx for the PR. The code looks quite good in the first sight. I'll try to take an in-depth review soonish.

Would you mind to squash the commits and format the commit title according to conventions, e.g. like the PR title?

One commit to add the base driver is sufficient. On top of that a second commit to add a SAUL integration and a third to add a test would be well in line with conventions. (As it stands now, the RIOT git history would be completely dominated by this PR if merged.)

@dprigoshij
Copy link
Copy Markdown
Author

I believe I've adhered to all the input you've given me until now. If there are any more problems, please let me know.

@crasbe
Copy link
Copy Markdown
Contributor

crasbe commented Apr 3, 2025

There is a duplicate of the driver test in tests/driver_sen5x.

Also currently the test does not compile for me:

cbuec@W11nMate:~/RIOTstuff/riot-sen5x/RIOT$ BOARD=nucleo-l073rz make -C tests/drivers/sen5x
make: Entering directory '/home/cbuec/RIOTstuff/riot-sen5x/RIOT/tests/drivers/sen5x'
Building application "tests_sen5x" for "nucleo-l073rz" with CPU "stm32".

"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/pkg/cmsis/
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/pkg/driver_sen5x/
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/build/pkg/driver_sen5x -f /home/cbuec/RIOTstuff/riot-sen5x/RIOT/pkg/driver_sen5x/driver_sen5x.mk
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/boards
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/boards/common/init
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/boards/nucleo-l073rz
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/boards/common/nucleo
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/core
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/core/lib
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/stm32
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/cortexm_common
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/cortexm_common/periph
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/stm32/periph
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/stm32/stmclk
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/stm32/vectors
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/periph_common
"make" -C /home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x
In file included from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/core/lib/include/compiler_hints.h:24,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/core/lib/include/kernel_defines.h:26,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/cortexm_common/include/irq_arch.h:25,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/core/lib/include/irq.h:94,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/cortexm_common/include/cpu.h:33,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/cpu/stm32/include/periph_cpu.h:26,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/boards/nucleo-l073rz/include/periph_conf.h:29,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/include/periph/i2c.h:115,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/include/sen5x.h:27,
                 from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:21:
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c: In function 'sen5x_data_ready_flag':
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:81:19: error: 'status' undeclared (first use in this function)
   81 |     assert(dev && status);
      |                   ^~~~~~
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/core/lib/include/assert.h:65:54: note: in definition of macro '_likel'
   65 | #define _likely(x)      __builtin_expect((uintptr_t)(x), 1)
      |                                                      ^
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:81:5: note: in expansion of macro 'assert'
   81 |     assert(dev && status);
      |     ^~~~~~
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:81:19: note: each undeclared identifier is reported only once for each function it appears in
   81 |     assert(dev && status);
      |                   ^~~~~~
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/core/lib/include/assert.h:65:54: note: in definition of macro '_likel'
   65 | #define _likely(x)      __builtin_expect((uintptr_t)(x), 1)
      |                                                      ^
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:81:5: note: in expansion of macro 'assert'
   81 |     assert(dev && status);
      |     ^~~~~~
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:85:27: error: passing argument 1 of 'sen5x_read_data_ready' from incompatible pointer type [-Werror=incompatible-pointer-types]
   85 |     sen5x_read_data_ready(&status);
      |                           ^~~~~~~
      |                           |
      |                           _Bool **
In file included from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:25:
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/build/pkg/driver_sen5x/sen5x_i2c.h:113:37: note: expected '_Bool *' but argument is of type '_Bool **'
  113 | int16_t sen5x_read_data_ready(bool* data_ready);
      |                                     ^
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c: At top level:
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:91:6: error: conflicting types for 'sen5x_read_values'
   91 | void sen5x_read_values(sen5x_t *dev ,sen5x_measurement_t *values)
      |      ^~~~~~~~~~~~~~~~~
In file included from /home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x/sen5x.c:21:
/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/include/sen5x.h:137:6: note: previous declaration of 'sen5x_read_values' was here
  137 | void sen5x_read_values(const sen5x_t *dev, sen5x_measurement_t *values);
      |      ^~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[3]: *** [/home/cbuec/RIOTstuff/riot-sen5x/RIOT/Makefile.base:149: /home/cbuec/RIOTstuff/riot-sen5x/RIOT/tests/drivers/sen5x/bin/nucleo-l073rz/sen5x/sen5x.o] Error 1
make[2]: *** [/home/cbuec/RIOTstuff/riot-sen5x/RIOT/Makefile.base:31: ALL--/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers/sen5x] Error 2
make[1]: *** [/home/cbuec/RIOTstuff/riot-sen5x/RIOT/Makefile.base:31: ALL--/home/cbuec/RIOTstuff/riot-sen5x/RIOT/drivers] Error 2
make: *** [/home/cbuec/RIOTstuff/riot-sen5x/RIOT/tests/drivers/sen5x/../../../Makefile.include:752: application_tests_sen5x.module] Error 2
make: Leaving directory '/home/cbuec/RIOTstuff/riot-sen5x/RIOT/tests/drivers/sen5x'

@dprigoshij
Copy link
Copy Markdown
Author

I've added all the things you've mentioned and fixed all the errors. I guess I must've made a mistake somewhere during the rebase.
Just tested it myself and it seems to be working again now.

Copy link
Copy Markdown
Contributor

@crasbe crasbe left a comment

Choose a reason for hiding this comment

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

I tested this driver again with the nucleo-l073rz and everything seems to work as it should.

Once the last small changes are in and CI is happy, this is ready for merge 🥳
Thank you for addressing all the suggestions.

Some logging traces:

From the test program:

025-04-04 14:46:54,414 # Mass concentration pm1p0: 6553.5 µg/m³
2025-04-04 14:46:54,418 # Mass concentration pm2p5: 6553.5 µg/m³
2025-04-04 14:46:54,422 # Mass concentration pm4p0: 6553.5 µg/m³
2025-04-04 14:46:54,426 # Mass concentration pm10p0: 6553.5 µg/m³
2025-04-04 14:46:54,428 # Ambient humidity: n/a
2025-04-04 14:46:54,430 # Ambient temperature: n/a
2025-04-04 14:46:54,431 # Voc index: n/a
2025-04-04 14:46:54,432 # Nox index: n/a
2025-04-04 14:46:56,454 # Mass concentration pm1p0: 5.2 µg/m³
2025-04-04 14:46:56,458 # Mass concentration pm2p5: 9.3 µg/m³
2025-04-04 14:46:56,461 # Mass concentration pm4p0: 12.5 µg/m³
2025-04-04 14:46:56,466 # Mass concentration pm10p0: 14.0 µg/m³
2025-04-04 14:46:56,468 # Ambient humidity: 22.9 %RH
2025-04-04 14:46:56,471 # Ambient temperature: 28.8 °C
2025-04-04 14:46:56,472 # Voc index: 0.0
2025-04-04 14:46:56,474 # Nox index: n/a
2025-04-04 14:46:58,495 # Mass concentration pm1p0: 5.1 µg/m³
2025-04-04 14:46:58,499 # Mass concentration pm2p5: 7.2 µg/m³
2025-04-04 14:46:58,503 # Mass concentration pm4p0: 8.8 µg/m³
2025-04-04 14:46:58,506 # Mass concentration pm10p0: 9.6 µg/m³
2025-04-04 14:46:58,509 # Ambient humidity: 22.9 %RH
2025-04-04 14:46:58,512 # Ambient temperature: 28.8 °C
2025-04-04 14:46:58,513 # Voc index: 0.0
2025-04-04 14:46:58,514 # Nox index: n/a
2025-04-04 14:47:00,536 # Mass concentration pm1p0: 5.1 µg/m³
2025-04-04 14:47:00,540 # Mass concentration pm2p5: 7.2 µg/m³
2025-04-04 14:47:00,543 # Mass concentration pm4p0: 8.8 µg/m³
2025-04-04 14:47:00,547 # Mass concentration pm10p0: 9.6 µg/m³
2025-04-04 14:47:00,549 # Ambient humidity: 22.9 %RH
2025-04-04 14:47:00,552 # Ambient temperature: 28.8 °C
2025-04-04 14:47:00,554 # Voc index: 0.0
2025-04-04 14:47:00,555 # Nox index: n/a

Compiled with USEMODULE+=sen5x BOARD=nucleo-l073rz make -C examples/basic/default flash term:

2025-04-04 14:43:29,845 # main(): This is RIOT! (Version: 2025.04-devel-399-g3fa61-sen5x)
2025-04-04 14:43:29,846 # Welcome to RIOT!
> saul
2025-04-04 14:43:32,576 # saul
2025-04-04 14:43:32,577 # ID	Class		Name
2025-04-04 14:43:32,617 # #0	ACT_SWITCH	LED(green)
2025-04-04 14:43:32,617 # #1	SENSE_BTN	Button(B1 User)
2025-04-04 14:43:32,617 # #2	SENSE_PM	sen5x
2025-04-04 14:43:32,618 # #3	SENSE_PM	sen5x
2025-04-04 14:43:32,618 # #4	SENSE_PM	sen5x
2025-04-04 14:43:32,618 # #5	SENSE_PM	sen5x
2025-04-04 14:43:32,619 # #6	SENSE_PULSE_COUNT	sen5x
2025-04-04 14:43:32,619 # #7	SENSE_PULSE_COUNT	sen5x
2025-04-04 14:43:32,620 # #8	SENSE_PULSE_COUNT	sen5x
2025-04-04 14:43:32,620 # #9	SENSE_PULSE_COUNT	sen5x
2025-04-04 14:43:32,620 # #10	SENSE_PULSE_COUNT	sen5x
2025-04-04 14:43:32,621 # #11	SENSE_SIZE	sen5x
2025-04-04 14:43:32,621 # #12	SENSE_HUM	sen5x
2025-04-04 14:43:32,621 # #13	SENSE_TEMP	sen5x
> saul read 2
2025-04-04 14:43:44,482 # saul read 2
2025-04-04 14:43:44,508 # Reading from #2 (sen5x|SENSE_PM)
2025-04-04 14:43:44,511 # Data:	          66e-7 g/m^3
> saul read 3
2025-04-04 14:43:51,619 # saul read 3
2025-04-04 14:43:51,644 # Reading from #3 (sen5x|SENSE_PM)
2025-04-04 14:43:51,647 # Data:	          79e-7 g/m^3
> saul read 4
2025-04-04 14:43:54,043 # saul read 4
2025-04-04 14:43:54,068 # Reading from #4 (sen5x|SENSE_PM)
2025-04-04 14:43:54,071 # Data:	          82e-7 g/m^3
> saul read 5
2025-04-04 14:43:56,321 # saul read 5
2025-04-04 14:43:56,347 # Reading from #5 (sen5x|SENSE_PM)
2025-04-04 14:43:56,349 # Data:	          83e-7 g/m^3
> saul read 6
2025-04-04 14:44:04,681 # saul read 6
2025-04-04 14:44:04,708 # Reading from #6 (sen5x|SENSE_PULSE_COUNT)
2025-04-04 14:44:04,710 # Data:	         444e-7 #/m^3
> saul read 7
2025-04-04 14:44:06,910 # saul read 7
2025-04-04 14:44:06,938 # Reading from #7 (sen5x|SENSE_PULSE_COUNT)
2025-04-04 14:44:06,940 # Data:	         545e-7 #/m^3
> saul read 12
2025-04-04 14:44:11,487 # saul read 12
2025-04-04 14:44:11,511 # Reading from #12 (sen5x|SENSE_HUM)
2025-04-04 14:44:11,515 # Data:	          23.82 %
> saul read 13
2025-04-04 14:44:15,068 # saul read 13
2025-04-04 14:44:15,094 # Reading from #13 (sen5x|SENSE_TEMP)
2025-04-04 14:44:15,096 # Data:	          27.70 °C
>

@riot-ci
Copy link
Copy Markdown

riot-ci commented Apr 4, 2025

Murdock results

✔️ PASSED

0fd9959 tests/driver_sen5x: Added a test case for the SEN5X driver

Success Failures Total Runtime
150642 0 150643 02h:07m:59s

Artifacts

@crasbe
Copy link
Copy Markdown
Contributor

crasbe commented Apr 4, 2025

It looks like you have to add a Makefile.ci file to the test to exclude boards with insufficient memory. I set the "no fast fail" flag, so we can see which boards exactly fail.

This is how such a file looks like: https://github.com/RIOT-OS/RIOT/blob/801d19b59093c4498e6d3f2dac145be5eae0f57e/examples/advanced/twr_aloha/Makefile.ci

@dprigoshij
Copy link
Copy Markdown
Author

It looks like you have to add a Makefile.ci file to the test to exclude boards with insufficient memory. I set the "no fast fail" flag, so we can see which boards exactly fail.

This is how such a file looks like: https://github.com/RIOT-OS/RIOT/blob/801d19b59093c4498e6d3f2dac145be5eae0f57e/examples/advanced/twr_aloha/Makefile.ci

I believe it's finished now? I've also added the mentioned "Makefile.ci".

@crasbe
Copy link
Copy Markdown
Contributor

crasbe commented Apr 7, 2025

I believe it's finished now? I've also added the mentioned "Makefile.ci".

Yes (mostly). There are still a couple of small static-test errors that were probably introduced when you added the line breaks, but nothing major.

Thanks a lot for addressing all the review points.
I'm positive we can merge this before the 2025.04 release :)

@dprigoshij
Copy link
Copy Markdown
Author

I believe it's finished now? I've also added the mentioned "Makefile.ci".

Yes (mostly). There are still a couple of small static-test errors that were probably introduced when you added the line breaks, but nothing major.

Thanks a lot for addressing all the review points. I'm positive we can merge this before the 2025.04 release :)

You probably mean the vera++ checks? I've glossed over them, since the test ran trough, but it should be changed now.
Thanks for taking your time working on my PR btw!

Copy link
Copy Markdown
Contributor

@crasbe crasbe left a comment

Choose a reason for hiding this comment

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

Everything done now! 🥳

Unfortunately we have to wait with the merging until our build server mobi3 is fixed, but that won't be long.

@maribu
Copy link
Copy Markdown
Member

maribu commented Apr 8, 2025

Would you mind running make generate-Makefile.ci -C tests/drivers/sen5x? That should locally generate that Makefile.ci file that prepares the CI to expect linking to fail on some boards due to RAM/ROM overflow. The CI will then skip linking for boards it is expected to fail and only compile.

@crasbe
Copy link
Copy Markdown
Contributor

crasbe commented Apr 8, 2025

@dprigoshij Thank you for your contribution and for applying all the suggestions, I know it's been a long journey :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: build system Area: Build system Area: doc Area: Documentation Area: drivers Area: Device drivers Area: Kconfig Area: Kconfig integration Area: pkg Area: External package ports Area: SAUL Area: Sensor/Actuator Uber Layer Area: tests Area: tests and testing framework CI: full build disable CI build filter CI: no fast fail don't abort PR build after first error CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR 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.

7 participants