The majority of issues with using clips in-circuit are from power issues, bus contention, and the clips making poor contact with the flash memory. Unfortunately with so many variables, it can be difficult to pin down exactly what the problem is.
I recommend watching the troubleshooting video along with the more in depth tutorial video to get an idea of what to look for. It might also be helpful to watch the FlashcatUSB Mach1 and XPORT 2.0 Clip Adapters video if you have the newer FCCA adapters.
- Check that the FlashcatUSB and power supply are set to the appropriate voltage
- Make sure nothing is shorting out
- Check that the FlashcatUSB software is set to Parallel Flash Mode, and if you are accessing a NAND make sure in protocol settings that the NAND settings are correct for your setup
- Open the console tab and look for something like this: Connected to Flash (CHIP ID: 0x00000000)
- You can use the Chip ID for some clues as to what is going on. Every time you change something you’ll want to try and detect the flash again (press F1), and see how this number changes
- If the flash is detected it will say so in the console
- If the flash is being detected but isn’t found in the library that means that the FlashcatUSB is receiving some data from the flash but isn’t receiving the correct Chip ID
- Double-check that the flash you are trying to access is supported
The wires in the clip flat flex cable are really thin and are often unable to supply adequate power to the flash while it is still soldered to a device. In my experience, an external power supply connected to the device is always necessary.
- Check the power supply output voltage with a multi-meter to make sure it’s correct
- Directly connect your power supply to the device you are trying to read/write the flash from, try to do this as close to the flash as possible and with the largest gauge wire that is reasonable for your situation. Check nearby test points and see if they’re connected to VCC(+) or GND(-) and solder wires to those, otherwise you may need to solder wires onto a nearby capacitor or some other component
If you have the power supply adapter
- Check if the input voltage from the USB charger is 5v
- Try a different USB charger, I recommend a 2 amp charger or higher
- Try a different USB cable
- Re-seat the voltage selection jumper (old adapter)
- I recommend connecting the FlashcatUSB, clip adapter, and PSU together first. Then plugging the USB cable into the power supply, and then plugging the USB cable into FlashcatUSB. Do the reverse when you're disconnecting everything.
If you’re using an external power supply
- It might be too noisy or sag under load
If the CPU/MCU/FPGA connected to the flash is powered on it may try to access the flash at the same time as the FlashcatUSB, which will cause issues. If that is the case then you’ll have to figure out how to prevent the CPU/MCU/FPGA from doing that, usually by putting it into a reset state.
- You can check for bus contention using an oscilloscope or logic analyzer
- You have a few options of where you can probe: the flash memory pins directly, test points, vias, or the clip adapter
- If you use the clip adapter don't have the FlashcatUSB connected to it. You can find the clip adapter pin-outs on the Embedded Computers parallel adapters page
- Check the datasheet for your memory device to see what each signal does
- Make sure whatever test point you're using are clean
- Connect the power supply to your device as if you were using the FlashcatUSB and probe away!
If you find that the CPU/MCU/FPGA is accessing the flash memory you can try putting it into a reset state.
- Check the datasheet of the CPU/MCU/FPGA and see if it has any reset pins and how to use them
- Check what state the I/O pins will be if putting the CPU/MCU/FPGA into reset
- Check if the CPU/MCU/FPGA reset pin is connected to the flash memory reset pin, if so you will need to find some other way to put the CPU/MCU/FPGA into a reset state
Poor Clip Contact
Even though the flash memory is in a standard package there will always be some variation in size between each specific chip, the same goes for each clip. This is generally the main cause of poor clip contact.
- Make sure the clip is on the right way, dot on the clip matched up to the dot on NOR/NAND
- Clean the legs on the NOR/NAND with isopropyl alcohol
- Trim the sides of the clip if they’re hitting any components next to the NOR/NAND
- Re-seat the clip and any cables
- Make sure to apply even pressure to the clip, sometimes it takes a lot of pressure
- Make sure that your setup is stable, you don’t want to damage the device or have things moving around while you’re trying to access the flash
- Move the clip around while it’s on the NOR/NAND
Examples of Trimmed Clips
If you need to trim the clips because of components around the flash be careful, it’s easy to mess up the pins doing this.
It can take a lot of force to get a good connection. My clips are pretty beat up from all of my testing so hopefully you won’t need to use as much force.
- Use a needle or some other small pointy thing to push the pins on the clip, obviously be careful it’s easy to mess up the pins
E3 NAND Clip Extra Considerations
The E3 clip was not designed for NANDs, but with a little know how you can anyway ;)
- The E3 clip can only go onto the NAND one way. The NAND has a little circle in one of the corners that you need to match up with the E3 clip like in the picture. I put a dot on my clip so I can just match it to the circle on the NAND. (Ignore the tape)
- This is where it gets a little tricky. You want to rest the inside lip of the E3 clip on the top of the NAND, keeping the clip at an angle. Then pull towards you while pressing down on the clip to seat it on the NAND.
- This is to ensure that the top pins on each side line up properly, since there are 8 more pins in the clip than there are on the NAND. So it’s really easy to put the clip on with the wrong pins making contact.
- The clip does not like to stay where it’s supposed to be at all. If you put the clip on and you hear a click then it’s on wrong, the clip has slipped up and you’re now on the second pin in the clip rather then the first.
- I would place the clip on and smoothly transition into pressing firmly down on the clip all while pushing towards the way you were just pulling. I would then try and detect the flash. If I could that meant that I had a good connection.
- Repeat that until it works.
- Once it does work you don’t want the clip to move at all. This is really hard to accomplish. I used two pieces of tape, one on the clip and one on the cable. That doesn’t keep it in place, but keeps it close.
- Then I placed junk on top of the clip in order to put pressure on it. Then I moved that stuff around until I was able to get it to detect again.
- Double check that the flash dump has any data in it. You can do this in the Flashcat software itself or a third party hex editor like HxD. Make sure that the data isn’t all 0’s, F’s, or something like that (unless that is what you’re expecting to get, like a blank flash).
- In HxD you can use Analysis > Statistics as another way to see what the dump consists of
- I recommend dumping the flash three times and comparing those, you can use the FlashcatUSB software to do comparisons. You can also use something like md5Checker to see if the md5 checksums of the dumps match up
- If none of the dumps match up there’s something wrong with your setup, if two of the three match-up those are most likely correct but I would double check by dumping the flash again