Hi,
I am a big fan of the MatrixPortal M4 and am very impressed on how much performance you got out of a simple Cortex M4. Well done!
But there is one issue that prevents it from being awesome: the undersized RAM. You see, the MatrixPortal M4 has significant RAM requirements to drive the display, handle the web queries and other JSON packing/unpacking, while running CircuitPython.
I've often had random issues running my code until I realized that the board was simply running out of memory.
Rather drastic optimization and frequent use of gc.collect have helped somewhat, but I still think that the board doesn't have enough memory for the intended purpose.
And while writing code in CircuitPython is awesome, I have the feeling that I am spending more time troubleshooting Out of Memory issues than writing useful code. Might as well switch to C++
Now, I believe that the ATSAMD51J20A would give quite a lot more memory, while being highly compatible wit the J19A thart you are currently using. Is this something that you might consider?
Or would have other suggestions?
Hope for a MatrixPortal M4 with more RAM?
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- blnkjns
- Posts: 963
- Joined: Fri Oct 02, 2020 3:33 am
Re: Hope for a MatrixPortal M4 with more RAM?
Maybe you can offload some stuff to the ESP32. That chip is also pretty powerful.
C++ is another option, it will greatly reduce memory footprint.
Third route could be a second microcontroller just for the display, and make that behave as an I2C device to the other board.
C++ is another option, it will greatly reduce memory footprint.
Third route could be a second microcontroller just for the display, and make that behave as an I2C device to the other board.
- sermann
- Posts: 18
- Joined: Wed Jul 08, 2020 5:24 am
Re: Hope for a MatrixPortal M4 with more RAM?
Hi blnkjns,
yes, I can do all these - if I have to, but I think that it would go against the whole idea of the product - it is supposed to be a controller that allows building a web-conneceted HUB75 display, but it doesn't have enough RAM to do that, except for the simplest cases.
I did notice that the PyPortal(s) use the ATSAMD51J20, which does seem more appropriate for web-connected devices, and wished Adafruit would consider releasing a version of the MatrixPortal based on that chip, or on an M7 maybe.
For my project, I guess I'll have to switch to a Raspberry Pi (with a HUB75 bonnet) and see how well CircuitPython runs on it... That might be an interesting ride...
Anyway, thanks for the suggestions.
Cheers,
Stephen
yes, I can do all these - if I have to, but I think that it would go against the whole idea of the product - it is supposed to be a controller that allows building a web-conneceted HUB75 display, but it doesn't have enough RAM to do that, except for the simplest cases.
I did notice that the PyPortal(s) use the ATSAMD51J20, which does seem more appropriate for web-connected devices, and wished Adafruit would consider releasing a version of the MatrixPortal based on that chip, or on an M7 maybe.
For my project, I guess I'll have to switch to a Raspberry Pi (with a HUB75 bonnet) and see how well CircuitPython runs on it... That might be an interesting ride...
Anyway, thanks for the suggestions.
Cheers,
Stephen
Please be positive and constructive with your questions and comments.