Module 3.5: SD Cards and the FAT File System

Hi Everyone, 

We've got a module release for you going into your weekend - happy Friday! Please use this thread to ask any questions that pop up as you work your way through module 3.5, available here

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. 

Happy building everyone!

Steph

cc- @Freaklabs and @JC 




Thanks for your effort, glad to get back to work!

PS: Can you check the subtitles? In the last videos they don't appear

Thanks !

In Module 3, Lab 5b the output is: "Pi is equal to 3.14"
But the value of Pi in the write command was "3.14159".  Debugging by printing to Serial too shows the same thing (3.14 and not 3.14159).  This seems odd as the standard precision is 6 digits so 3.14159 should be able to be handled.  Is this a limitation of (say) the number to string conversion used by print/println command? 

Thanks,
John