Looking for a solid SPI Programmer

Hal,
Ready to jump in beyond just being a OpenWRT consumer. Looking for a solid SPI Programmer and SOIC16 clip. Generally prefer to buy based on a referral from an experienced user. Too many times I have bought off of Amazon and have spent hours/days troubleshooting the work only to find out that the hardware I purchased is Chinese junk.
Would love your feedback as an experienced user.

ch341a would be a common recommendation for affordable spi-nor flashers, a RPi could do as well.

1 Like

I buy my SPI programmer and chip clips from AliExpress. Unfortunately I don't have a bullet proof suggestion for you. A few people who have contacted me to report issues flashing their switch seemed inexperienced with SPI programming and couldn't get flashrom to read their chip (I suspect due to wiring issues).

I have a number of ch341a programmers purchased from AliExpress that I use for all my SPI programming. I also have SOIC8 and SOIC16 chip clips that I use, though I find that directly soldering is more reliable and that's what I've done on my MS220-8P and MS42. If you solder, you'll want to pick up some SOIC to DIP PCBs and solder to those, as then it's easy to use the same programmer in various devices.

The best advice I can give you is this: buy a programmer, a chip clip, an SOIC8 or SOIC16 socket, and some bare NOR chips (e.g. W25Q128FV). Use the SOIC socket and the bare chips to confirm the programmer works, and test reading/writing to those before you start with actual in-circuit chips.

You should be able to purchase all of the above for <$25.

If you have done all that, and after testing the programmer with the SOIC socket and bare chips, you're still not able to make it work on your actual hardware, contact me and I can try to debug the issue.

ch341 is a common choice, but you may need to modify it for 3.3v operation, see Xiaomi Mi Router 4A Gigabit Edition (R4AG/R4A Gigabit) -- fully supported and flashable with OpenWRTInvasion

I have often heard of people saying you need to modify the ch341a for 3.3V operation. Make your own decision, but I have been using them without modification on numerous devices (PC motherboards, switches, WiFi APs) and they work fine. Nothing I have plugged it into has let out the magic blue smoke yet.

Have one of first versions of https://www.embeddedcomputers.net/products/FlashcatUSB/
If price is not an issue, something from https://www.dediprog.com

1 Like

I've had a handful of proven 5V > 3.3V damage cases, out of maybe tens? of thousands of flashes over the years.

Basically, the 5V levels are kinda floating and is easily pulled down by a light load, so rarely causes a problem for USB-TTL UART adaptors - just don't connect the VCC wire. But it can happen, so if you have money at stake take care. On old cheap ex-CPE I woudln't worry for USB TTL, but maybe more so for SPI programming.

I nowadays use a level shifter on all simple programmers and USB-TTL UART devices to be sure, but some of the kit I'm working on has a 50K USD pricetag and is critical infrastructure so I do need to be as careful as I can.

@momo54 , @hmartin
Would you be willing to advise on solder-less chip clip sets?
The ability to flash chips without removing them from the PCB is important. :wink:

Lots of comments thrown out there on various threads, but electronics isn't my forte.

If various adapters for different chips can swapped it would make for a highly flexible option.


Thank you for any advice.
-Mike

There is no need or point to flash the NAND flash in the MS220 series. The firmware I've created runs entirely from SPI, it never touches NAND except for read-only operations in the following cases:

  1. /etc/boardinfo does not exist because it's the first boot, read the board-config region to determine what switch model we booted on
  2. Kernel modules are not included in squashfs, extract and load kernel modules out of the Meraki firmware if applicable (this is not currently the case, but was designed and tested as a fall back in case someone objects to including binary kernel modules)

I own a 360 clip and you can't use it on the MS220-8P because the orientation of the NAND and heat sink makes fitting the 360 clip impossible unless you want to pop off the heat sink.

Would you be willing to advise on solder-less chip clip sets?

I would advise you to (public health situation permitting) makes friends at your local hackerspace and either have one of them flash the firmware for you, or get a recommendation from them on where to purchase a quality chip clip. Note that the firmware is currently not capable of updating itself on flash, so you'll need to retain a flashing method for the future until this is resolved.

I buy and use SPI programming tools from AliExpress. They work fine, mostly. I don't use chip clips or jigs very much because it's a pain to hold your hand still for 5+ minutes on end while it programs. The biggest issue I see from people attempting to flash their switches is a lack of knowledge as to how SPI works, what flashrom does, and how to debug things if flashrom doesn't detect the chip.

I'm going to repeat myself here:

The best advice I can give you is this: buy a programmer, a chip clip, an SOIC8 or SOIC16 socket, and some bare NOR chips (e.g. W25Q128FV). Use the SOIC socket and the bare chips to confirm the programmer works, and test reading/writing to those before you start with actual in-circuit chips.

Get familiar with using flashrom, reading/writing bare flash chips in a socket before you attempt to flash your switch. If you have at least some understanding of how things are supposed to go, how long it's going to take, etc, you'll be in an infinitely better place than buying an expensive programmer and chip clip and being clueless.

Thank you Hal. I appreciate the response.

-Mike

tôi đã nạp thành công chíp 16 chân bằng bộ nạp "programmer soic8 clip on-board set".
vấn đề đó bạn dùng chương trình nạp không đúng nên khi bộ nhớ đời flash lớn hơn 8mb là không verify được.

When writing in your native language, please always provide an english translation.
This way other users all around the world can take part in the discussion and possibly benefit from the outcome, without having to use a translator.

1 Like