cancel
Showing results for 
Search instead for 
Did you mean: 

(STM32WL55JC) Is it possible to expand flash or RAM in order to fit my project on this board? If so, what is the most straight forward, feasible way?

MRubi.2
Associate II

My project involves LoRaWAN communication and embedded machine learning. we've trained a basic model which fits in flash memory, but barely. As our data set grows and our model becomes smarter, I imagine we will need more space. As of right now, our model absorbs about 90% of flash memory.

For the other requirement, we also need the device to be a very simple, Class A or B, LoRa end node that sends very small, simple packets of data to a gateway. Loading up the end node example project, the build analyzer shows that it takes up 26% of flash.

Our control loop will be very simple and not add much more to the memory budget, but at this point, I can't see a way forward that will allow me to build my project including both the LoRa stack and our embedded ML model. 

The only solution I can think of is to somehow expand the available memory with some SPI SD card reader or RAM expansion chip of some kind. But I can't find anywhere in the documentation for the STM32WL series where there is some kind of expansion support. 

Could anyone assist with some ideas on how to move forward? I don't see us being able to trim our model, I only see it growing. We're using a third party solution which already does a great job of pruning unnecessary nodes in our CNN.  

Maybe there's a way to trim the unnecessary utilities included in the LoRa End Node example project? If all we need to do is use lmhandler() to send a simple frame, are there any other function calls that can be omitted or is there any way to go lower level in the stack and write our own frame sending function without application utilities or middleware bloat? 

Thank you in advance for any ideas you're willing to share.

2 REPLIES 2

SPI NOR or NAND Flash?

Externally interfaced stuff is going to be relatively slow.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
S.Ma
Principal

If your code has lots of data then it depends how you read it and how frequently. SDIO memories even spi, will be one option as data is mapped into memory space and ok with block reads. Otherwize, compress your data like RLE encoding if the data content is firendly.