Optimizing File Writes

Datalogger board in the PCB box.
Datalogger board in the PCB box.

So, it’s been almost 3 months since the last post on Datalogger, and a lot of progress has been made in that time. The main highlights: FAT32 file system is in a working state with file write speeds at around 600kByte/s, which exceeds our requirements. With some more optimizations, we hope to push this number closer to 800kByte/s, possible allowing for more data (perhaps cockpit audio?) to be recorded.   Additionally, we plan to release everything (circuit schematics, board layout, and all code) as open source under the terms of the three-clause BSD license when it’s ready.

Optimizing SD Card Writes

The Data Logger Board does not actually use BRAIN as its central processing unit.

Everyone’s heard of black boxes – they are devices that record data in the event that something happens to assist in determining why something happened. Did you know that we have a similar device too – the Datalogger board!

You may be wondering where the BRAIN is, and the answer is, we didn’t use one. Initial testing with SD libraries available on the Internet showed insufficient performance. Additionally, there were concerns about overflowing the MCP2515’s 3-level deep receive buffer while the processor is busy doing SD Card writes. So, we chose the dsPIC33FJ128MC802 chip, which has a higher clock speed, integrated CAN module (with a 32-level deep buffer), and direct memory access to allow SPI transfers in the background. However, a future project would be to try the optimized code on a BRAIN and see if it will yield the necessary performance.