The majority of issues with using clips in-circuit are from the clips making poor contact with the flash memory, bus contention, and power issues.
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.
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 also 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.
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.
Unfortunately with so many variables, it can be difficult to pin down exactly what the problem is. I would start with trying to fix any power issues since they are the most straight forward.
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 for some reason isn’t receiving the correct Chip ID.
- Check that the FlashcatUSB and power supply are set to the appropriate voltage
- 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
- Double-check that the flash you are trying to access is supported
Things you can try
- 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)
If you’re using an external power supply
- It might be too noisy or sag under load
Poor Clip Contact
Things you can try
- 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 further out, 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). If it is there’s likely a power issue with your setup, although it could be a clip issue as well
- 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