Inside a MicroSD Card

I’ve been working with the BeagleBone Black and discovered today that I had a bad SD card. Not only could I not access it, but it was also getting hot. Instead of just throwing it away, I decided to do what any other curious person would do – I removed the solder mask so I could get a look at the layout.

These devices are basically just PCBs with flash memory molded into the substrate. I do a lot of PCB layouts, but this was particularly impressive to me, given the trace/space distance and the free form trace routing. Due to the transfer speeds and layout requirements some of the traces are probably length-matched, which would help explain the routing. Also, this is done in a very restrictive form factor.

I got some images with my digital microscope, so you can really see the detail.

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

MicroSD Card PCB Layout Detail

Hub Shields Arrived!

I’m getting a bit ahead of the posts here, but I just received the bare boards for the other end of the Wireless RH/Temp Sensor system.

On the other end of this system, there needs to be a device to collect the data being generated by the sensor modules. I chose to go with a daughter board to the BeagleBone Black, which already includes an Ethernet interface to push the data to a server. The shield (cape, etc.) contains the radio device for receiving the data, the standard cape EEPROM, another RH/Temp sensor, a buzzer and some LEDs for indication.

The board has already been designed, and I had three PCBs fabbed. You may recognize the signature purple solder mask, courtesy of OSH Park. Well they arrived the other day and I wanted to share.

Bare Hub Shield PCBs.

Bare Hub Shield PCBs.

Building a Low-Cost Reflow Oven

Whenever I have a project that I’m working on that involves custom hardware, personal or professional, I have typically assembled PCBs by hand. It takes time, and can be tedious. In low volumes (<5 pcs.) it isn’t too bad. I could send them out to have them populated but this can get expensive, especially for low volumes. If you research reflow ovens or hot air baths, they can be quite costly and I couldn’t justify purchasing one without doing it all the time. But, there are other options.

I had heard about people converting toaster ovens into cheap reflow ovens, so I decided this would be the way to go. I did a bit of research and stumbled upon a few videos showing how it’s done. First from The Ben Heck Show:

That one was a little more complex than I really wanted to get, but the basic principle is the same. I also found the following video from R&TPreppers:

This one was a bit simpler, so I decided to follow it as a baseline for the build. I went ahead and got the RocketScream Reflow Oven Controller Shield, the solid state relay, and various other build materials like the fiberglass weave, pop riveter, hardware etc. (all from McMaster Carr.) I already had a thermocouple that I was planning on using in a temperature controller for my smoker. It turns out that the one I had was actually problematic, but more on that later. I eventually got one from Adafruit.

I also purchased the toaster oven from Amazon. I’m not sure why the price has gone up so much since, but I bought it at $28.00. It’s a fairly cheap one with quartz elements. Below are a few photos of its unboxing.

Black and Decker Toaster Oven

Black and Decker Toaster Oven

Unpacking the oven.

Unpacking the oven.

Unpacking the oven.

Unpacking the oven.

Getting everything together, I would try to emulate the R&T build as much as I could. I knew I didn’t want the electronics inside the enclosure because I didn’t want to deal with cutting display holes in the front panel. I decided to mount the electronics on the outside of the unit, with the understanding that I would need to protect the live terminals on the SSR. I have yet to do that, but I could easily make a plastic guard or something similar. For now I just leave it unplugged when I’m not using it.

Solid State Relay

Solid State Relay

Arduino Uno + RocketScream Reflow Oven Shield + SSR

Arduino Uno + RocketScream Reflow Oven Shield + SSR

The RocketScream Shield required adding headers, as a lot of shields do. I ordered the headers from Mouser in the correct pin count. I always hated cutting the breakaway headers – they end up not cutting very well.

Assembling the RocketScream Shield

Assembling the RocketScream Shield

Next I gutted the oven. B&D used anti-tamper torx screws on the bottom of the case. I have torx, just not the ones with the pin hole in the middle. Nothing a pair of pliers can’t remedy. I’ve already voided this warranty so I don’t particularly care at this point.

Disassembling the oven.

Disassembling the oven.

Disassembling the oven.

Disassembling the oven.

Taking out the guts.

Taking out the guts.

Stripping it down.

Stripping it down.

Once I had the oven dismantled, the next step was to test the shield. I snagged the MAX31855 library, the PID library, and once I loaded up the example sketch from the repo provided by RocketScream, the thermocouple registered the correct temp on the display. I first had it hooked up in reverse and heating it up caused the reading to decrease. This would have been very bad in the oven, causing it to just continue heating.

Testing on the bench.

Testing on the bench.

Then I made patterns on the outside of the case for the Arduino and SSR hole patterns and drilled some holes in the enclosure. I also added a hole for a grommet, to safely guide the wiring in and out of the unit.

Drilling holes

Drilling holes

I made an internal hole for mounting the original thermocouple, which was threaded with a nut. I wasn’t sure how it would perform compared to the example projects I’ve seen from others. What I found was that because the shell of the thermocouple is electrically connected to the case, when I first tested the unit – the SSR switching on and off caused a lot of noise in the thermocouple measurement. The conclusion was that one side of the thermocouple must be electrically connected to the shell. Testing with a DMM confirmed this. Rather than trying to make this one work, I just got the glass-bead type and shoved it through the hole I already made.

Installing the thermocouple.

Installing the thermocouple.

Inside thermocouple.

Inside thermocouple.

Next I installed a fiberglass blanket on the inside around the perimeter of the heating case. I bought a riveter to do this, and I don’t know why I never had one before – it’s an awesome tool. I’ve used them in the past but forgot how useful they are. Rivets are cheap. The tool was a little pricey but I feel like I’ll use it a lot. I had to cut holes in the fiberglass to accommodate the components and wiring, which was really easy because of the nature of the fiberglass weave. I riveted it in four spots on each side, and it stayed pretty snug.

Pop riveter.

Pop riveter.

Fiberglass insulation.

Fiberglass insulation.

Installing the fiberglass.

Installing the fiberglass.

Riveting the fiberglass.

Riveting the fiberglass.

Next came the wiring. The elements are in parallel, and I had to make a couple patch wires, but I ended up using just wire nuts for the connections (with the exception of one which I soldered.) I included the original light from the front panel in the wiring because – why not? The thermocouple leads and the broken hot side were fished through the grommet on the outside, where I connected them to the shield and SSR, respectively. I made a short jumper from the shield to the SSR and the wiring was done.

I only had an external DC wall-wart for the Arduino power, which I just plugged in separately.

Rewiring the heating elements.

Rewiring the heating elements.

Installing the SSR and Arduino + RocketScream.

Installing the SSR and Arduino + RocketScream.

Wired up.

Wired up.

Ready for first test.

Ready for first test.

Finally, I tested it. After replacing the thermocouple it ran great! The Arduino will output data points as it’s running, but I haven’t looked at the curve data yet. Watching it, however, the temp ramp and values seemed to be correct. The cool-down period does take a while, and I have heard of others opening the door at a specific point in the cycle to better mimic the JEDEC curve.

Testing the oven.

Testing the oven.

I have already done a single board for the Wireless RH/Temp Sensors in this oven that I will post about later. For now there are some changes that I will probably make to the system including:

  • Putting aluminum foil on the inside of the door with a viewing slit, to retain the heat better.
  • Making a guard for the SSR to prevent anyone from getting shocked.
  • Installing a dedicated DC supply in the unit for the Arduino.