I got a ATWINC-1510 based device in front of me where I want to dump the firmware / flash contents from into a bin file. I know that the IC offers an SPI interface through the pins described in the datasheet. On the site of flashrom I did not find any information whether flashrom is capable of downloading the binary contents of the flash memory. Basically I was unsure as it is not a pure flash chip but like a mircrocontroller.

Would appreciate any help on this.


  • From where do you want to read the data as your datasheet mentions that there is a flash memory on that module. – Rok Tavčar Jul 28 '20 at 5:52
  • So the IC is contained on an IoT device with mostly not interesting parts. I am purely interested in the firmware on the ATWINC. I would like to do the read somehow to my computer. My initial idea would be to use UART or SPI (for example by wiring up to a pi or another device I can use as a serial bridge). As the support for the ATWINC is not mentioned in flashrom I was wondering about how I can do the firmware download. – cobz Jul 29 '20 at 18:53

In the datasheet that you provided are links to more reference documents. One of them is ATWINC1500 Wi-Fi Network Controller Software Design Guide. In chapter 13 is described the WINC Serial Flash Memory, including how to access it.

In case that this doesnt work you can also disassemble ATWINC-1510 module and find direct access to the flash IC and read content from there.

  • Thanks for your answer this helps already approaching the goal. The guide shows some example code with commands being called in C like m2m_wifi_download_mode(); to set the chip to download mode. I suppose it is mostly referring wiring up a certain debug type of the WINC to this Xplainer debug board by Atmel and interacting over the Atmel studio then right? I am wondering now, how can I send these commands to the bare metal chip without the debug hardware? For example with an ESP or Arduino as a SPI bridge, or the SPI hooked to a pi which I would normally use with the flashrom util. – cobz Jul 30 '20 at 19:34
  • @cobz You need to get the library from microchip webpage. You can search for example projects if you already use any of their libraries or IDEs or you can install them. I think you can find libraries which include WINC-1510 support here: microchip.com/mplab/microchip-libraries-for-applications/… but I am not sure as I didnt test it. If it isnt here you will have to search their webpage for other libraries. – Rok Tavčar Jul 31 '20 at 5:57
  • @cobz Another option is here: github.com/Microchip-MPLAB-Harmony/wireless/tree/master/driver/… – Rok Tavčar Jul 31 '20 at 6:04
  • Thanks for the links. The second one looks promising but for me it is still not clear how to use these driver files. For example again the m2m_wifi_download_mode function, which is now included in the driver C files. When I for example wire up SPI between an ESP8266 and the WINC1510, will calling the functions on the ESP8266 directly interact over SPI? Probably not right? So how does these driver files know how to reach the chip. I am also a little bit confused as this MPLAB Harmony is again a referencing to these debug boards. I cannot find an example to interact directly with it. – cobz Aug 1 '20 at 12:24
  • You should read documents more carefully. To read flash memory on this module you need to communicate with the asic chip on module (via SPI) to fetch flash content for you. I dont know if there is any documentation for this communication, but you can see implementation in github.com/Microchip-MPLAB-Harmony/wireless/tree/master/driver/… (depending on your version of module). – Rok Tavčar Aug 2 '20 at 14:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.