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.
- 3:5.1: Reading and Writing the SD Card
- 3.5.2: The FAT File System and Reading / Writing Our First Files – Lab 1
- 3.5.3: Did I Just Create MS-DOS? – Lab 2
- 3.5.4: Did I Just Create a Data Logger? – Lab 3
- Module 3.5 Discussion (forum thread)
3.5.1 Reading and Writing to the SD Card
In this video we cover:
- differences between common memory cards
- Secure Digital (SD) versus Multimedia Cards (MMC) versus CompactFlash (CF)
- selecting a memory card
- application requirements
- deployment conditions
- card features including power consumption and endurance
- what the symbols mean including
- card types – SD, SDHC, SDXC, SDUX
- sizes – Full SD, miniSD, microSD
- read speed
- video speed class
- UHS Bus speed
- speed class,
- UHS speed class
- Endurance or number of program / erase cycles and their impact on the life-span of the SD card
- SLC, MLC and TLC flash types and how they impact life-span of the memory card
- consumer versus industrial SD cards
3.5.2 The FAT File System and Reading / Writing Our First Files – Lab 1
In this video we cover:
- file systems and how they work
- differences between FAT 12, FAT 16, FAT32 and exFAT file systems
- memory segments and clusters
- file naming
In the Lab, we’ll install the sdFat library and initialise an sdFat object. Then we’ll create and open a file, save data to the file, and read the data via the serial monitor.
3.5.3 Did I Just Create MS-DOS? – Lab 2
In this video we dive straight into Lab 2. We’ll create commands to write and read a sensor reading to a file, delete a file, and list all the files in a directory.
3.5.4 Did I Just Create A Data Logger? – Lab 3
In this video we dive straight into Lab 3. We’ll add date and time stamps to our files and sensor readings. We’ll also add an LED warning indicator to tell us if the SD card isn’t inserted, or isn’t initialising properly.
Reformatting an SD Card
Conversations & Troubleshooting
Module 3.5 Discussion (forum thread)