Roadmap
This roadmap outlines planned features, improvements, and known issues for the Dawn project. Items are organized by priority and category.
Tier 1
dawnpy packages in PIP
find a better way to organise descriptors, now it is a mess
more real HW demos so we cover all supported IO on real HW
CAN network example
GUI integration example
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
release nxscope-gui
validate support for fixed point math
Use ISO-TP from NuttX libs for CAN simple (not yet upstream)
generate defconfig.dawn based on YAML descriptor
optimise for small systems
small system configurations for mem footprint tracking
disable more teardown logic for systems than never exit from Dawn app
optimise for code execution speed
CAN FD support for simple CAN
load descriptor from file
configure descriptor file from CLI args
Tier 2
Program: On-off controller
setpoint, input, output as IO
controller parameters in config
Program: PID controller
setpoint, input, output as IO
controller parameters in config
Protocol: lwm2m / wakaama
URI-based:
/ObjectID/InstanceID/ResourceIDexample:/3303/1/5700, 3300 - temperature sensor, 1 - instance, 5700 - tempereture
Protocol: MQTT (Sparkplug) support
spBv1.0/group1/device_1/temperature/sensor_1
Protocol: LelyCAN support (CANopen)
16b index and 8b subindex, eg.index=0x6000, subindex=0x01
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
Demo: Thingy:52
simple BLE demo
optimise for size
Demo: Thingy:91
wakaama demo
Demo: Arduino Control
need PMIC support in NuttX so we can remove Arduino bootlaoder
AMP demo (CM4 + CM7)
batch support for sensors
batch support for ADC
Tier 3
IO: read system log (syslog)
IO: improve ADC support
analyse all ADC use cases
optimise for high sample rate
IO: DAC support
multi channel support
how to use DMA + TIM ? new DAC type ?
IO: LED effects and RGB LED effects
easy to use LED effects
IO: GPO bulk output support
set many GPIO with single write
missing feature on NuttX side
IO: GPI bulk input support
read many GPIO with single read
missing feature on NuttX side
IO: Pulse Output
write number of pulses to emit
pulse train parameters in configuration
separate PULSECOUNT from PWM in NuttX
IO: Counter Input / Capture Input
IO: Comparator Input
IO: Opamp IO
write for gain control
IO: GNSS
how to handle complex data struct returned by NuttX ?
return all data at once, or many IO for different data ?
IO: Protocol Based IO
Dawn device as master for other protocols
can be hard to configure from descriptor, but should be possible
IO: Microphone Input
sampling frequency
stream IO like for ADC case
IO: Buzzer Output
sound notifications
IO: Joystick
easy to use joystick events
Program: more filters
high pass filters
Program: voter
Safety redundancy logic.
Majority and median-based robust value selection.
N inputs -> selected/combined output.
how to handle NFC/Contactless
shoult it be IO or PROGR, or both ?
read from NFC, write to NFC
use NFC as device configuratior
Watchdog integration
Functional safety features
Security features
Long-running stability tests
descriptor linter - check for common mistakes (unused objects, unreachable IOs)
Power management support, low power devices
Descriptor templates for common patterns
Descriptor templates for common patterns
BLE sensor
GPI/GPO over modbus
ADC over modbus
CAN node