Particle P1 - Questions about it's 1 Mb Extra Memory

@mdma @ScruffR @BDub @zach @zachary @peekay123

I have a P1 to evaluate and what interested me most was the 1 MB of extra memory. From what I understand the extra memory is the only difference between the P0 and the P1 boards.

I just figured the P1 would work just like the Photon when it came to programming over the web except with the P1 I would just see a larger memory bank when looking at the bottom of the online IDE after successfully compiling my code.

Seeing the metal can on top of the P1 had me just figuring the extra memory was built to the actual chip but now I’m thinking that under that metal can there is a separate 1 MB flash memory chip just like there is on the old Core’s . Is that the case?

What technically prevents us from writing to the extra 1 MB of memory on the P1 via the regular online programming page? I want to use this memory for storing Bitmap image data and I want the ability to update this data remotely via Firmware update over Wifi.

I’m just trying to wrap my head around how exactly the 1 MB flash can be used and if there are any planned updates in the future that will allow this extra memory to be written to.

Ahh should have done this first but I now see we are indeed working with a external 1 MB flash chip.

Now is there really no way write to this chip once its been sent out into the field in a product?

The 1MB external flash is separate chip on the P1 board, just like the old core.

Currently, if you want to send a file/data to the flash over the air, you need to implement your own way to transfer the file to the P1 and have it write to the flash.

There are many ways to do this, and which method is right depends on your application. You may want to learn more about file transfer protocols, checksums, and how to implement storing resources on flash memory.

1 Like

@jakeypoo Its nice to hear that writing to that flash remotely is possible.

I’m not capable of writing the code due to lack of knowledge base but I’m willing to pay for a solution that would allow me to easily flash new firmware + update this extra memory chip at the same time without the need for any extra components.

1 Like

In the good old days of the core, wasn’t the external flash used to hold the backup firmware image + OTA update file before being transferred ed to the internal flash? wouldn’t that have a method of transfer, complete with checksums etc?

1 Like

@Hootie81 If that is indeed what what done on the Core then there they at least figured this out in the past.

@zachary Can you chime in about if flashing data to the extra memory remotely on the P1 is possible or not in the immediate future?

Yep — you can absolutely check out what we do for, e.g., OTA transfers in the firmware code and try to do something similar. You can search the firmware for things like “chunk” and “FileTransfer” and for example look at where we handle the message from the cloud that says an OTA update is about to begin. When you dig in from the hal to the platform check out the code on the Core, since it used the external flash. The Photon and P1 send OTA updates to internal flash.

As mentioned here the interface to the external flash chip is in the SPI flash library.

1 Like