Changing IMP003 flash from MX25L4006E to MX25L1606E or MX25R1635FZUIH0, any risk?

Is there any risk if I change from MX25L4006E (4Mbit) to MX25L1606E (16Mbit) without testing? Same family, same package, both support 4KB erases. I think the 16Mbit version is new version. I have read the IMP003 hardware design guide and the IMP003 datasheet.

Same question for the MX25R1635FZUIH0. It’s a lower voltage and lower current compared to MX25L4006E? It supports 4kB erases. What is the risk I change to this component without testing?

How do test

It’s likely worth reworking a single one to test, before you go and do a production run. I was just looking at the MX25R series - we’re just updating the imp003 design guide to recommend wide voltage range parts if you’re running from a single LiMnO2 cell.

Note that when release 34 is out, only the factory image (preloaded onto the imp003) can initialize a flash - you can’t just swap out chips and have the imp re-initialize it. This is because to give the extra squirrel space, we moved the second copy of wifi firmware out there to give us more internal storage space. It is possible to pre-load the flash with the correct content, but obviously you’d need a flash programming setup.

It would be interesting to have a small write up of the external flash consequences for the production process. I read somewhere in the docs that the 005 needs an initialised flash added in production so we need to know how to go about that (recommended flash programming setup, can this be done in-circuit or do we need to preprocess the flash chips) or is the factory image (as mentioned above for the 003) also present on 005 and OO4M which means the module can do the download of the correct firmware and program the flash the first time ?

Yep, that will be added when we get the 005 design guide done; right now it’s done customer by customer on support tickets.

005 is the only device that requires pre-programmed flash for public cloud use, because it has no on-die memory. When the final release 34 comes out, this will be available for download from the website. 003 and 004, at first power up, will initialize the SPI flash from internal storage.

If you’re using any imp with a private cloud, you need to pre-load a flash image, ideally before SMT.

For any of the imps, in-circuit programming is possible with the imp held in reset (or powerdown on 005). This is the way we tend to do it with 005’s, using an FTDI ft2232 cable - the flash programming header is on the breakout board designs.

I don’t think that’s right – imp004, like imp005, will likely need a pre-programmed flash.


Ah yes, I’m about 5000 miles from the epicentre of imp004 development so listen to Peter :slight_smile:

I mean, it’d certainly be good if we could make imp004 as straightforward as imp003 is. But we changed Wifi chip for the imp004, which is a Good Thing in general because the new one is lower-power, but it does have a decidedly larger firmware blob, so the technique we use in the imp003 factory image probably won’t fit in the available internal flash like it does on imp003.