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.
I did my first test drive this morning using my arduino GPS hardware (which I will post an article about soon) running my GPX library. The most major issue I found is that apparently I have longitude and latitude swapped in my GPS example code which can be found at the dev branch on github. Here is the track I recorded this morning.
I have completed my first version of a library to [hopefully] help in the generation of GPX files on an Arduino processor. I have successful generated output that validated successful for the example code. I am going to be integrating it into my current GPS project later today so there may be some changes soon.