meetjestad / mjs_firmware

8 stars 4 forks source link

Improvement: Implement a more flexible packet format #5

Open matthijskooijman opened 6 years ago

matthijskooijman commented 6 years ago

Currently, the radio packet format is fixed, and must be exactly matched on the server side. Adding extra data fields, or modifying something else is cumbersome and requires a lot of changes in the entire stack. Ideally, the node could (to some degree) declare its own packet format, put multiple measurements in one packet (related to #1), not send its GPS position in every packet, do some more compression of data (values relative to the previous value?), etc.

There is some work ongoing on defining a more flexible packet format, and server stack that allows such things. See also https://www.thethingsnetwork.org/forum/t/flexible-backend-system-for-processing-sensor-data/ or contact me if you're interested in this.

matthijskooijman commented 5 years ago

We have been working on this for a while now. A first (very, very rough) prototype of the backend is available at https://github.com/meetjestad/mjs_backend_design/tree/backend-prototype with the corresponding Arduino code at https://github.com/meetjestad/mjs_backend_design/tree/arduino-new-protocol. Documentation is still sparse (the README in the arduino code branch is not updated at all) and the design is still very much in flux, but I wanted to share the status now already.