====== Firmware Ideas ====== * Multiple sampling (different sensors have different things) * Firmware Manual * Better code commenting * Better function naming schemes * Command mode WITHOUT disabling or interfering with normal device operation * Power management (sleep modes, etc.), low battery stops * ISR based software flow * Disabling timers * Firmware without the Arduino libraries * Assert statements for runtime debugging * Supporting other microcontrollers (initially ATMega family, possibly others after that) * Automated verification techniques (using emulation and simulation) * Making use of debug LEDs available on cranberry * Advanced XBee control * Implement XBee cyclic sleep (and look at the problems that come with cyclic sleep as well) * Receiving packets through XBee and possibly responding * Remote programming * Unit tests * Static analysis of firmware (code coverage, etc.) * Error codes * Different firmware designs (what is the best way to implement firmware that covers all of the systems?) * Using a more powerful MCU + an RTOS * Using WiFi/ethernet to carry signals (IoT) * Strobe communication protocol to reduce energy consumption on a mesh network, this would eliminate the need for network synchronization