2 * Do header hiding to avoid excess globals and make specific includes necessary for various things - remove core/derived vars from visibility inside calc functions, pass pointers as params. remove from general freeems header too. keep more stuff private
3 * Apply YAGNI principal to code base
4 * After serial testing is in place by EssEss refactor comms receive to do checksum and length calcs in non-ISR time
6 Big low priority items:
7 * create task scheduler - keep main loop time consistent and low
8 * create hardware abstraction layer - registering port usage etc
9 * get full testing setup in place:
10 * comms protocol itself, low level
11 * core comms protocol, shared packets
12 * freeems-vanilla packets and behaviour
13 * over-comms unit testing of testable functions - could be done with cross compilation also, but that's harder!
14 * scheduler testing via autonomous decoder type
17 * Write decoders for most platforms