Replacing dead obscure SPI flash chips?

I've been trying to port OpenWrt to a weird device, it's the Creality WB-01 "Wi-Fi Box" (helpful name I know), it's designed to allow remote control of 3D printers with a proprietary cloud app but inside it's an MT7688 router chip. Regrettably I decided to go into the process without the proper knowledge and I accidentally overwrote the bootloader by flashing the sysupgrade image straight onto the mtd chip. Next time I will use u-boot to tftp it but for now I have had to reflash the nor flash chip.

The chip is a Boya Micro BY25Q128AS, I found a flashrom PR that supported it, and using a backup that I took before hand I tried to flash it with a raspberry pi, but the soldering job on the flash chip was a bit rubbish and I think i might have shorted a few pins. At first I could get a read of the messed up flash but i had to jump a few wires to disable the write protect and I think thats when it got ruined, at first it identified as an unknown chip and then disappeared. To make sure it wasnt bad soldering or me killing the GPIO on the Pi i bought a CH341A programmer and 3.3v modded it and got a SOIC 8 clip, but that couldn't read the device either, now it just says no EEPROM found. It was only about £20 but I would like to get it working again, but unfortunately the flash is very obscure and I would have to buy one from China for about £10 and wait ages for shipping without a guarantee it would fix the problem.
Therefore I would like to know, how feasible is it for me to buy a different 16 MB SPI flash chip and replace it? Would there be any compatibility issues? What should I look out for? Thanks for the help.

Hi, did you manage to get any progress on this?

Sort of, turns out I never broke it in the first place - just my programmer wasn't connected properly. I had to disconnect pin 8 on the ch341a to make it work. Not sure why the Pi wasn't working but I dont mind since I got it working and managed to reflash my backup rom.

Thanks for replying!
I am kind of in a similar situation. After a failed sysupgrade it is now on a bootloop. I've connected the board to a serial converter and after starting the kernel and some checks it errors at:

unable to read id index table
Flash size not aligned to erase size, reducing to 14080KiB
jffs2: jffs2_scan_eraseblock():  Magic bitmask 0x1985 not found at 0x00000000: 0x7368 instead 
jffs2: jffs2_scan_eraseblock():  Magic bitmask 0x1985 not found at 0x00000004: 0x0a41 instead 
...[and so on]...
jffs2: Further such events for this erase block will not be printed

And these repeats a bunch of times until it panics and reboots.

Immediately after reboot there is the u-boot banner and some options to chose one of which is for entering boot command line interface but i think the countdown is disabled as it's impossible to brake the boot and it goues into Linux immideatly

I was thinking to flash a working rom file with a ch341a as you did but I didn't make any backup. (I'm new to this and as I understood you can't just write the stock binary firmware, you need to write a dumped flash rom from another working device.)

My alternative plan is to dump the already corrupt rom file, edit it to enable the countdown for u-boot shell, write it back, enter u-boot command line and then use tftp to flash the stock firmware or openwrt.

What do you think? Could you share the backup?
Here is my discord if you'd like to keep in touch as I don't see anyone working with this device: jonah1024#4422

Thanks!!!!

I've solved this.
Had to rename a working bin image to root_uImage, copy it on a USB storage and boot the device while holding reset button.
While monitoring the serial output I could see how the corrupt image was being erased and the new image written afterwards. It's working fine now
Thanks anyway! :slight_smile:

1 Like

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.