At the moment I am working on an SD card data logger (well actually it logs to a microSD card). I have been wanting to do this for quite some time now. This project is going to be done from the ground up. I am going to write my own implementation of an SD card library. I still have to find some good on information on the FAT16/FAT32 filesystem I plan to use on the (micro)SD card.
I came up with the first concept for an SD card data logger back in September last year. I wanted to create a datalogger so I could log the temperature and humidity inside a room. I found that this design would have been very specialized and I quickly dropped that design.
A project like this came back to my mind when I saw the OpenLog in a SparkFun product video. While I think the OpenLog is a nice approach to serial data logging at the same time I find that it’s a massive waste of processor resources. Most of the µC’s GPIO pins are not broken out and they are employing the ATmega328P just because of the high memory requirements when implementing SD card data logging (more exactly the file system).
So I breadboarded an SD card and an ATmega328P and after writing some code, I managed to initialize the SD card. Now it is time to implement the filesystem handling and to actually read and write data to the card.
I have come up with a design which gives me the capability to log to a microSD card and still gives me access to all the free GPIO pins using 0.1″ headers so it is breadboard compatible. It also includes an ISP connector so that I am not dependent on any bootloader.
The communication with the microSD card employs the hardware SPI on the microcontroller.
As always I am waiting on the boards to arrive and then I will have to assemble the board and get the code up and running!