When I check available memory on the CircuiyPy drive for a Pico W it shows a capacity of 502K for CircuitPython 8.0.2.
If I load the non-W image on a Pico W or Pico non-W it shows a capacity of 1MB.
The Pico has 2MB of total memory.
Can somebody direct me to where there is an explanation of why/how 2MB of storage gets whittled down to just ½ MB?
Also, can DualBank be disabled to get more memory? It seems like an "expensive" feature.
I'm new to this, so if I am in the wrong spot, a kind direction to where I should ask questions like this would be appreciated.
Pico W Available Memory with CircuitPython 8.0.2 is just ½ MB. Why?
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- SeattleDavid
- Posts: 100
- Joined: Wed Sep 18, 2019 2:26 am
- neradoc
- Posts: 542
- Joined: Wed Apr 27, 2016 2:38 pm
Re: Pico W Available Memory with CircuitPython 8.0.2 is just ½ MB. Why?
Hi, the pico W does not implement dualbank. All the space is taken by the Circuitpython firmware, and some more space was needed to make the wifi code fit, which is why there's less space than on a pico. The amount remaining is a compromise between drive space and possible future expansion of the firmware size (for bluetooth in particular).
- SeattleDavid
- Posts: 100
- Joined: Wed Sep 18, 2019 2:26 am
Re: Pico W Available Memory with CircuitPython 8.0.2 is just ½ MB. Why?
OK. So if I understand, of the 2MB of memory, ¾ of it is consumed by system overhead and ¼ of it (500K) is available for the application.
If my understanding is correct, that’s pretty tight!
There are some Pico clones out there with more memory. Will the Pico 8.0.2 built automatically recognize the added memory or does the build also define the memory limit?
That is, if the Pico clone is designed to identically match the Raspberry version except having more memory would that additional memory be recognized by CircuitPython 8.0.2?
If my understanding is correct, that’s pretty tight!
There are some Pico clones out there with more memory. Will the Pico 8.0.2 built automatically recognize the added memory or does the build also define the memory limit?
That is, if the Pico clone is designed to identically match the Raspberry version except having more memory would that additional memory be recognized by CircuitPython 8.0.2?
- neradoc
- Posts: 542
- Joined: Wed Apr 27, 2016 2:38 pm
Re: Pico W Available Memory with CircuitPython 8.0.2 is just ½ MB. Why?
We have Circuitpython support for many RP2040 boards with different flash sizes, including some pico "clones". One or more of those builds could work on a generic clone, it depends on the flash chip that is used, and the board module could be incorrect but that's not a big deal. If it's not supported, board definitions could be added to Circuitpython.
Here is a rather generic 16 MB pico clone for example that seemingly only differs by having a button on GP23:
https://circuitpython.org/board/weact_studio_pico_16mb/
There is no pico W clone that I know of however.
For more file space, an SD card breakout can be added, though it's not accessible as a drive when plugging the board at present time and must be loaded on its own.
Here is a rather generic 16 MB pico clone for example that seemingly only differs by having a button on GP23:
https://circuitpython.org/board/weact_studio_pico_16mb/
There is no pico W clone that I know of however.
For more file space, an SD card breakout can be added, though it's not accessible as a drive when plugging the board at present time and must be loaded on its own.
- SeattleDavid
- Posts: 100
- Joined: Wed Sep 18, 2019 2:26 am
Re: Pico W Available Memory with CircuitPython 8.0.2 is just ½ MB. Why?
Thank you. Good informative reply.
I was hoping that the build would automatically adjust for differing EEPROM sizes, but I understand that it's baked into the build. A little less convenient, but workable.
I was hoping that the build would automatically adjust for differing EEPROM sizes, but I understand that it's baked into the build. A little less convenient, but workable.
- neradoc
- Posts: 542
- Joined: Wed Apr 27, 2016 2:38 pm
Re: Pico W Available Memory with CircuitPython 8.0.2 is just ½ MB. Why?
My understanding is that to be used in fast mode, the flash chip model must be known on build, and Circuitpython has a way to specify a list of models to check and their parameters. But the actual size seems to be detected anyway, the question is whether or not the correct settings are then used...
In any case, there should be no harm in trying the pico build on a clone with more flash.
If it doesn't work, just flash another one.
In any case, there should be no harm in trying the pico build on a clone with more flash.
If it doesn't work, just flash another one.
Please be positive and constructive with your questions and comments.