Well this is not as much a new version but moving the components off the breadboard. It has always been my intension to use the small prototyping area on the microSD shield for my first revision of the hardware. All in all it has worked out well, the shield is for the most part the exact right size, nothing is too tight, but yet it is still small enough to fit in a small box along with the LiPo battery.
As I mentioned in my last post I have cleaned up the Producer-Consumer library I started yesterday. It now includes the Producer class and some examples.
Technically I believe the Producer::writeBuffer(…) method should report back that the buffer is full so that the Producer stops writing to the buffer until the Consumer has read something from the buffer. The particular use I have for this I am more interested in the most recent values rater then stale values in the buffer so if the buffer overflows it will send a buffer overflow message to the Consumer on the next read, then reset the buffer ( _buffRead = _buffWrite ).
Due to some memory and timing issues with my attempt to do everything on a single processor I have split the tasks into two processors. There is one processor dedicated to parsing the info from the GPS as well as any other sensors which will be added later. The other processor takes the input from the sensor processor then builds and writes the GPX file to the microSD card.