Roadmap

This roadmap outlines planned features, improvements, and known issues for the Dawn project. Items are organized by priority and category.

Tier 1

  1. dawnpy packages in PIP

  2. find a better way to organise descriptors, now it is a mess

  3. more real HW demos so we cover all supported IO on real HW

    • CAN network example

    • GUI integration example

  4. Demo: Thingy:53

    • [ ] battery state

    • [ ] read sensors over BLE

    • [ ] gas sensor demo

    • [ ] reconfigure sensors parameters over BLE

    • [ ] RF switch support

    • [ ] low power mode

    • [ ] something with button

    • [ ] something with buzzer

    • [ ] something with microphone

    • [ ] something with QSPI mem

    • [ ] something with USB

    • [ ] something with NFC

  5. Demo: Thingy:91

    • [ ] more sensors

    • [ ] update FW

    • [ ] nrf52 support

  6. release nxscope-gui

  7. validate support for fixed point math

  8. Use ISO-TP from NuttX libs for CAN simple (not yet upstream)

  9. generate defconfig.dawn based on YAML descriptor

  10. optimise for small systems

    • small system configurations for mem footprint tracking

    • disable more teardown logic for systems than never exit from Dawn app

  11. optimise for code execution speed

  12. CAN FD support for simple CAN

  13. load descriptor from file

    • configure descriptor file from CLI args

Tier 2

  1. Program: On-off controller

    • setpoint, input, output as IO

    • controller parameters in config

  2. Program: PID controller

    • setpoint, input, output as IO

    • controller parameters in config

  3. Protocol: MQTT (Sparkplug) support

  4. Protocol: LelyCAN support (CANopen)

    • 16b index and 8b subindex, eg.index=0x6000, subindex=0x01

  5. Firmware updates

    • download from web (external link)

    • download over protocol

    • download from external mem (usb, sdcard)

    • reboot to bootlaoder mode or DFU

    • A/B partition support

    • Safe updates with rollback

    • kernel only vs app only vs all

  6. Demo: Thingy:52

    • simple BLE demo

    • optimise for size

  7. Demo: Arduino Control

    • need PMIC support in NuttX so we can remove Arduino bootlaoder

    • AMP demo (CM4 + CM7)

  8. batch support for sensors

  9. batch support for ADC

Tier 3

  1. IO: read system log (syslog)

  2. IO: improve ADC support

    • analyse all ADC use cases

    • optimise for high sample rate

  3. IO: DAC support

    • multi channel support

    • how to use DMA + TIM ? new DAC type ?

  4. IO: LED effects and RGB LED effects

    • easy to use LED effects

  5. IO: GPO bulk output support

    • set many GPIO with single write

    • missing feature on NuttX side

  6. IO: GPI bulk input support

    • read many GPIO with single read

    • missing feature on NuttX side

  7. IO: Counter Input / Capture Input

  8. IO: Comparator Input

  9. IO: Opamp IO

    • write for gain control

  10. IO: GNSS

    • how to handle complex data struct returned by NuttX ?

    • return all data at once, or many IO for different data ?

  11. IO: Protocol Based IO

    • Dawn device as master for other protocols

    • can be hard to configure from descriptor, but should be possible

  12. IO: Microphone Input

    • sampling frequency

    • stream IO like for ADC case

  13. IO: Buzzer Output

    • sound notifications

  14. IO: Joystick

    • easy to use joystick events

  15. Program: more filters

    • high pass filters

  16. Program: voter

    • Safety redundancy logic.

    • Majority and median-based robust value selection.

    • N inputs -> selected/combined output.

  17. how to handle NFC/Contactless

    • shoult it be IO or PROGR, or both ?

    • read from NFC, write to NFC

    • use NFC as device configuratior

  18. Watchdog integration

  19. Functional safety features

  20. Security features

  21. Long-running stability tests

  22. descriptor linter - check for common mistakes (unused objects, unreachable IOs)

  23. Power management support, low power devices

  24. Descriptor templates for common patterns

  25. Descriptor templates for common patterns

    • BLE sensor

    • GPI/GPO over modbus

    • ADC over modbus

    • CAN node