2MB flash on the wipy?

Questions and discussion about The WiPy 1.0 board and CC3200 boards.
Target audience: Users with a WiPy 1.0 or CC3200 board.
willie
Posts: 14
Joined: Mon Dec 14, 2015 12:05 am

Re: 2MB flash on the wipy?

Post by willie » Mon Dec 14, 2015 12:19 am

I don't have any wipy's yet but I have to say I'm also a bit distressed by this discussion. I thought micropython was usable on boards with much less flash, like the original micropython board, or the Espruino Pico or maybe even the ESP8266. It's pretty scary to hear (as the OP said) that 90% of the advertised 2MB is unavailable for the application. I'd have hoped at least 50% would be available.

My application really needs a little bit of updateable, nonvolatile memory, but updates will be quite rare so the maneuver of copying pages around in flash is fine. If it's possible to set individual bits to 0 then the 128K page could be divided into 128 blocks of 1K each, with one block used as a metadata table to say which of the other blocks were in use--let's say 2 bytes per block giving a block map entry, a dirty bit saying the block was in use, and a discard bit meaning the block was written to but is no longer needed, leaving a few unassigned bits that might find other uses. So when all the blocks are full, the non-discarded dirty ones can be copied to a newly erased empty block updating the block maps, giving simple compaction. Is it possible to keep running code while the flash erase operation happens in the background? If yes and if the update rate isn't too high, this scheme could have unnoticable overhead.

It would be great if the chip had some eeprom or battery backed ram (maybe the RTC provides a little bit?). Maybe an SPI FRAM could be added to the board?
Last edited by willie on Mon Dec 14, 2015 4:00 am, edited 1 time in total.

willie
Posts: 14
Joined: Mon Dec 14, 2015 12:05 am

Re: 2MB flash on the wipy?

Post by willie » Mon Dec 14, 2015 12:50 am

Iandouglas, maybe you could look at the TI SensorTag. I don't know if it's programmable in MicroPython instead of C, but it's a ready-built device that's pretty cheap and has most of the sensors you want.

Update: it took some digging on the TI site but the SensorTag uses a Cortex M3 processor with 128k of flash and 8k and/or 20k of sram or maybe both. In any case it's probably marginal for Micropython but fine for C or whatever. Also the wifi model is not available yet. The current ones have Zigbee or Bluetooth which have longer range than wifi anyway, according to their chart.

Post Reply