Back to top

FlashcatUSB Clip Adapters

Developing adapters for accessing memory in-circuit and launching an eCommerce store

Overview

My attempts at accessing some parallel NAND and NOR memory led me to create an eCommerce store with over 100 customers all over the world.

History

My initial attempts of accessing memory in-circuit did not work very well
30AWG wires from a Teensy++2.0 directly to the legs of some NAND memory. Didn't work.
TSOP48 and TSOP56 clips which were attached to a Teensy++2.0 using some jumper wires. Didn’t work.
Using TSOP48 and TSOP56 sockets worked! But the mess of wires was really temperamental.

So I made a PCB for the sockets to clean things up and make them more reliable.

NORwegian Teensy Socket Edition

At this point, I really didn’t need to go any further as the sockets worked for me. But I had all these clips and I liked the idea of not having to desolder memory, so I made a PCB that could work with most of the TSOP48 and TSOP56 clips that were available. This was also the first project I made in Altium.

NORwegian Teensy Clip Edition

I set up a store using GitHub pages to sell a couple boards to try and recoup some of my costs. One of my customers asked if I could make some clip adapter boards for the FlashcatUSB xPort which had much better support for a wider range of flash memory, they also had friends who would be interested in them. I started designing the clip adapters thinking again that I would sell a handful and that would be the end of it, they turned out to be much more popular than I thought.

Designing the FlashcatUSB xPort Clip Adapters

FlashcatUSB xPort Clip Adapters

EmbeddedComputers provided me with the schematics and pin spacing for their parallel adapters for the FlashcatUSB xPort, and since I had already determined the pinouts for the TSOP48 and TSOP56 clips that part of the design was straightforward.

My previous designs had a Teensy++ 2.0 which used multiple pins on the same port in order to provide more current for some of the signals, I decided to buffer those same signals on the clip adapters as a precaution.

One problem with accessing memory in-circuit is that you’re going to power anything else on that power rail. To make things easy I designed a little power supply to be used with the clip adapters. It’s a simple buck converter design powered from a micro-USB port. It has a switch to choose between using the buck converter and passing through 5V from the USB port. The output can also be switched between 3.3V or to use a trim-pot to adjust the output voltage.

Designing the FlashcatUSB Clip Adapters

FlashcatUSB Clip Adapters

After I had been selling my previous adapters for awhile EmbeddedComputers let me know that they were updating the xPort so it could use the same adapters as their Mach1. So I redesigned the clip adapters to support the xPort 2.0 and Mach1.

The TSOP48 and TSOP56 clips aren’t particularly designed for signal integrity, and with the Mach1 operating at much faster speeds, I decided to run some simulations to see if it was something I should be worried about.

3.3V 8mA drive strength with no filter, there is quite a bit of over/undershoot
3.3V 8mA drive strength with a pi filter reduces over/undershoot but adds some ringing

I decided to add filters which worked out pretty well, when I measured the signals with an oscilloscope it was pretty close to the simulation but with less ringing.

The xPort 2.0 and Mach1 added support for a separate I/O voltage, so I also had to redesign the power supply adapter. I used a USB Type-C connector to take advantage of the USB-PD 5V 3A mode. This time I used a synchronous buck converter to avoid needing a diode, the part I chose also supports an output voltage equal to the input voltage so it doesn’t need a separate switch for a 5V output. Instead of using switches and jumpers to adjust the voltage I made the power supply completely automatic. An ATtiny monitors the power supply voltage from the FlashcatUSB and the output voltage from the buck converter and adjusts the buck converters output until they match, alternatively, buttons can be used to manually adjust the output voltage.

The ATtiny uses a DAC to adjust the feedback to the buck converter in order to change the buck converters output voltage.

DAC Controlled Buck Converter Simple Example

I wanted the power supply to have an output voltage range from 1V to 5V, I graphed the output voltage equation to fine-tune the resistor values in order to achieve that.

Buck Converter Control

Voltage Output vs. DAC Output

Production

I hand assemble each board myself, I have a pretty simple reflow setup and use some tweezers and a microscope to place parts.

I try and keep component placement between the adapters the same so I don’t need as many solder paste stencils. Since I assemble each board individually a large stencil and frame is overkill, instead I use a single stencil for multiple designs and trim it to size.

To easily align the stencil with the PCB, I came up with this alignment tool. It’s a stack of PCBs with a grid of holes spaced 5mm apart with pin gauges for alignment. I took into account the tolerances of the holes and pin gauges to be accurate but leave some wiggle room, its worked with 0402’s and 0.4mm pin pitch parts.

Stencil Alignment Block
Stencil Alignment
Partially Assembled Orders

eCommerce

My first store was a static website using GitHub pages. I found a shopping cart service that worked with static sites, processed payments through PayPal, and was pretty inexpensive. I also wrote a bunch of documentation and made some YouTube videos about the clip adapters to put on the website. I didn’t really do much marketing or advertising, I made some Reddit and forum posts but that was it, most sales came from referrals.

As the clip adapters became more popular I set up a virtual private server to use Magento for my eCommerce store and BookStack for documentation. The set up was more difficult but it’s a much better solution and I no longer lose a percentage on each sale.