SPI flash upgrade from 8MB to 16MB on Archer C6

Yes, I will confirm it by comparing binary created this way with a flash dump.

1 Like

After 2 returns, I finally got 16MB NOR flash.
What worked for me was to dump original 8MB flash contents to 8MB.rom file, create a new binary file 16MB.rom by concatenating the 8MB.rom file to itself. This gave me 16MB binary which I flashed and everything worked perfectly.
But the amount of space available had still not increased. So, I force flashed us version and router went into a boot loop.
I had to de-solder, program the flash and re-solder to get it working again.
What I can see from this exercise is that I will have to build my own image and modify the partition locations and their sizes while building the image.

Is there any way to modify partitions in a file from which openwrt will pick up the new layout? Like a device tree blob?

FYI:- I used this technique to de-solder easily with a soldering iron. https://www.youtube.com/watch?v=aqGuH6Tfw80

I just posted a similar thread, someone linked me here, did you end up building your own firmware? if not i will look into that and post any finding next week hopefully

I did not, because I didnt get a chance. Soldering and desoldering multiple times damaged the board. As in 2 of the copper pads got removed. I had to eventually buy another router.

yikes... well you saved yourself a lot of trouble, the thing is i have a mikrotik running 128MB openwrt but i like to give myself headaches for no reason so i wanna upgrade ram and rom on the archer i will post an update with the simplest method to get it running in case someone needs it

Difficult part is, for Archer C6 I could not program the flash while it was connected in the circuit. So I had to desolder and solder it each time I fucked up trying to make it detect the full capacity because it would bootloop. It would have been super easy to use a SOP8 socket as somebody else had pointed it out. But since I live in a 3rd world country I couldnt get one locally.

One way I was gonna achieve it without having to compile it was through either modifying device tree or the args passed by uboot to kernel. But I dont know if that would have been a success because I havent looked at how openwrt does it.

Good Luck, hope you succeed and post your findings.

It wasnt easy but i got it working, not only did i have to compile my own image, but the bootloader also needs to be mofidified as tplink hardcoded the partition's offset in there so they couldnt be moved, they even went the extra mile to drag Rx uart to ground, and on top of that uboot sends data at a differend baud than it receives which requires 2 uart links one for tx and one for rx. it is working now next is finding a 16bit ddr2 chip somewhere.

Just a littlr update incase you decide to do it on another tplink device

Hey, thats really really great. Congratulations man. By the way how did you go about programming the flash again and again?

Maybe you can post the .bin for anyone coming here in future.

Does the US version have the kernel in a different place? As noted earlier in the thread you could extract the US bootloader from a US official firmware then the unit should run standard US version builds.

To make the flash chip swappable without a socket, I have soldered short (1cm) bare wires from unraveling some stranded wire to the pads on the board. Bend the wires straight up and tack solder near the top ends to the side of the chip pins. Then you can remove and replace chip without touching the solder points on the board.

1 Like