So, here's my thoughts for the PC side software:
- Convert API to C++
- Use Boost.Thread to implement a receive thread that fills an RX buffer on the stack (it seems the hidapi interrupt buffer is pretty limited and I keep dropping data, I think I need to read from it pretty frequently)
- Create a simple QT GUI that can:
- Upload/download firmware
- Read/write the EEPROM (? - would need to backup fw, flash EEPROM reading fw, then restore?)
- Serial terminal (?)
- Create some APIs and templates for use in LPCXpresso, for example:
- Data logging template where user sets the wake up interval with a define then fills in user code to execute on wakeup
- Simple APIs for peripherals, including EEPROM
- A library for a serial command interface compatible with the GUI (? - which could include EEPROM read/write commands)
The idea is to make something cross-platform and easy to use - it would be possible for anyone to download a firmware binary, plug in the board and upload.
Another possibility would be to hack it into the Arduino IDE, which is something JeeLabs worked on a bit: http://jeelabs.org/2015/10/14/arduino-ide-w-lpc824/ - they ran into a problem with using the RTS & DTR signals to trigger the bootloader using an FTDI converter, but I think it should be doable with the CP2110 and some custom bootloader code? I don't know, I've never looked into adding new platforms to Arduino (and I'd rather not use Arduino anyways - ultimately I want this to be a platform for simple, very-low-power applications, and Arduino is far from ideal for that).
Now I just need to learn QT...