Module 3.5: SD Cards and the FAT File System

Welcome to the fifth part of Build Your Own Data Logger module 3. In these videos, we'll get into the process of writing our data logger application and carrying out our proof-of-concept strategy.

Our course directory has a full list of modules and videos with links. Follow our Build Your Own Data Logger playlist on our Youtube channel to catch every module as it goes live, and register for our full course to be the first to know about our module releases, live Q&A events, and course news!

Date published: 2021/01/22

In Module 3.5, we begin with the basics of SD cards in all their wonderful form factors and flavors. We discuss the technology that makes SD cards possible, the types of memory cards, the form factors, their reliability, and power consumption. We also discuss what all those little numbers you normally ignore on your SD card mean, like read speed, card type, speed class, UHS speed class, and bus speed. 

Once that’s done, we talk about file systems and why they’re needed. We go into how a file system fits on top of SD cards, how it organizes the bulk storage on an SD card, and the different types of file systems including FAT32 and exFAT.

In the lab portion, we’ll learn how we access the SD card on the WildLogger, installing the Arduino library to control our SD cards, and how easy it is to implement a system that can access multiple SD cards. We learn how to create and open files for reading, writing, or appending, how to read and write to a file, and things to watch out for to prevent file corruption. We implement a mini DOS system (Wild-DOS?) with commands to list files in a directory, and read, write, and delete files. Finally we finish off by implementing a command to write timestamped sensor data and files to our SD card. 

If you have questions while working through this module, you can ask your question in the Module 3.5 forum thread here

Below the videos, you'll find pdfs of the video slides and module 3.5 terminology cheatsheet. 

Supporting Resources

Coming up in Module 3.6

In our final submodule, we'll be exploring the power of interrupts, and how they can hang a system if we're not careful. We'll also be programming our PIR motion sensor. This will be released at the end of next week. 

By the end of Module 3, we'll have our basic proof of concept with all our functional code blocks working!

Have questions about this module? Jump in the forum thread to get quick answers from your course instructors.