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

    • [X] set RGB

    • [ ] 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. release nxscope-gui

  6. validate support for fixed point math

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

  8. generate defconfig.dawn based on YAML descriptor

  9. optimise for small systems

    • small system configurations for mem footprint tracking

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

  10. optimise for code execution speed

  11. CAN FD support for simple CAN

  12. 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: lwm2m / wakaama

    • URI-based: /ObjectID/InstanceID/ResourceID example: /3303/1/5700, 3300 - temperature sensor, 1 - instance, 5700 - tempereture

  4. Protocol: MQTT (Sparkplug) support

  5. Protocol: LelyCAN support (CANopen)

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

  6. 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

  7. Demo: Thingy:52

    • simple BLE demo

    • optimise for size

  8. Demo: Thingy:91

    • wakaama demo

  9. Demo: Arduino Control

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

    • AMP demo (CM4 + CM7)

  10. batch support for sensors

  11. 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: Pulse Output

    • write number of pulses to emit

    • pulse train parameters in configuration

    • separate PULSECOUNT from PWM in NuttX

  8. IO: Counter Input / Capture Input

  9. IO: Comparator Input

  10. IO: Opamp IO

    • write for gain control

  11. IO: GNSS

    • how to handle complex data struct returned by NuttX ?

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

  12. IO: Protocol Based IO

    • Dawn device as master for other protocols

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

  13. IO: Microphone Input

    • sampling frequency

    • stream IO like for ADC case

  14. IO: Buzzer Output

    • sound notifications

  15. IO: Joystick

    • easy to use joystick events

  16. Program: more filters

    • high pass filters

  17. Program: voter

    • Safety redundancy logic.

    • Majority and median-based robust value selection.

    • N inputs -> selected/combined output.

  18. how to handle NFC/Contactless

    • shoult it be IO or PROGR, or both ?

    • read from NFC, write to NFC

    • use NFC as device configuratior

  19. Watchdog integration

  20. Functional safety features

  21. Security features

  22. Long-running stability tests

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

  24. Power management support, low power devices

  25. Descriptor templates for common patterns

  26. Descriptor templates for common patterns

    • BLE sensor

    • GPI/GPO over modbus

    • ADC over modbus

    • CAN node