Hacker News new | ask | show | jobs
by koz1000 1554 days ago
I'm curious about the quality of the uSD card holders on all of these units. Do they all use quality non-corrosive fingers with enough force on the contacts?

I once had an intern that told me all about his RPi project to do model rocket telemetry, then after some interrogation sheepishly admitted that the project never quite worked because the g forces and vibration at launch were enough to make the card holder lose contact and the kernel panicked. Bummer.

4 comments

I think a simpler and easier solution when you have plenty of memory is to use an initramfs [0] as your root, which avoids having to read from disk after boot. Considering the Pi 4 can be had with up to eight gigs of memory now, this is a pretty good solution. Additionally, Buildroot [1] can build a kernel with a compressed initramfs image quickly and easily, for a number of popular single board computers, including the entire Pi family. This allows more than enough functionality for simple and reliable data logging.

EDIT: You couldn't be sure when the disk was ready for writes, so you'd have to log to memory, and have a task that attempts to mount the data partition and flush the buffered data to disk atomically before clearing the buffer.

[0] https://www.kernel.org/doc/Documentation/filesystems/ramfs-r...

[1] https://buildroot.org/

I've got a rocket flight computer I develop d during covid and one of the top things people say about designing these is to add a flash chip to it. The ad card is great to store data and transfer it to a computer but during flight? No way can you rely on the contacts. So during flight, you save all the data to flash, then once landed, dump it to the SD card. SD card got loose? Beep in a special pattern and keep trying to connect to it, I come along , hear the pattern and hold the SD card in until it stops beeping and emits a "happy" sound letting me know it all transferred.

Here's the computer for reference:

https://github.com/AdamMarciniak/CygnusX1

Rockets are difficult environments for connectors, the spring loaded compliant mechanism of an sd card holder just isn’t appropriate for that application. You could get it to work but it would involve a lot of vibration analysis and design to be gentle enough to the connector and you would have to keep track of every time a card was connected and removed.
I bet you could achieve the same results in a lot less time with a lot of glue.
That's very true, but then you have a hard time removing it to get the data from it, or to put new code onto it :)
Newer PIs can boot from the network, in case you need to put new code on because the current code doesn't boot... and you could use the network to fetch data as well. Maybe not as convenient, maybe more convenient, depending.
I wonder if you could fix this with some extra casing around the card slot to make it friction fit. Or an even filthier hack - hot glue/solder it in place, and use a wifi enabled micro sd so you can still access it when the rocket comes back down (and reuse your stuck together sd card monstrosity on multiple launches) .