G400 with more code memory. Possible?

The G400 is an awesome module and way faster than the G120 but it lacks USER FLASH memory compared to the G120. This is a shame as it has the potential to take big software designs. My current design is at 1MB already and I still have heaps of coding to do so concerned I will run out of space with the limited 1.4MB that it comes with.

For the GHI guys, what would it take to increase the USER FLASH to the same as the G120 or possibly higher. Could this device not get something like 4MB of flash as I am sure that there is enough RAM to support this?

I have seen a very few cases where developers needed more than 1MB, and that was due to resources, like images. In this case, the images were placed on a secondary flash or SD cards.

But to answer your question, yes we can increase the flash memory size.

Yeah, I could place them in SD but if the user removed the SD the system would not run.

I’ll see how I get on in the next few weeks but I may be in touch to find out how to get some custom G400’s with more FLASH :slight_smile:

@ Dave McLaughlin - adding a flash over spi is also an alternative.

I added 32MB of flash SPI it’s easy and works with the tiny file system found on codeshare. However may be a larger version of flash size could be provided by GHI for few bucks?

@ leforban - what you did is the most straightforward. Increasing the flash size is a few bucks; however, the firmware change is a bit costly.

using a flash of the same brand and series than the one already used should involve only a memory remapping, isn’t it?

Sounds simple but this will be a few days of work, from changes to testing.

you’re right, even smal and simple changes can involve unbelivable issues…

The issue is in deployment and updating. I need to be able to do OTA IFU with this unit so this would mean I need to update the SPI flash as part of the process.

It would be better if this was all part of the GHI G400 itself. I can’t understand why the G120 has almost double the available FLASH than the G400 which offers far more computing power. Actually they both have 4MB but I guess the G400’s firmware takes up far more than the G120 for the same flash? It’s like buying a 3.2GHz processor and only having 8GB or memory but the 1.7GHz option can do 16GB. :frowning:

@ Dave McLaughlin -


I have thought about asking exactly that but never got around to doing it.

Love my Raptor but that would make it so much the better.

But then again, I have never ran out of memory for what I do…

If you run a system with an LCD it is very easy to run into memory issues with BITMAPS and other graphics primitives. This is why I like the G400 because it has enough power to give good graphics performance compared to the G120 which is quite slow, although it works but that 1.4MB is really small for the potential that this processor can offer. The performance increase with the 400Mhz from 120Mhz makes a big difference and you get a nice smooth feel from using it. My client really likes it but I feel that the 50 units he wants may not be enough to have justification on increasing the memory. :slight_smile:

addind SD or SPI flash would be the best solution.

You are mentionning USER flash, you mean the flash used by your application right? Is there a portion of flash that can be adressed directly by the user to store data or anything else?

When I talk about USER FLASH, I mean the memory that is used when you build your programme and deploy it. The memory that this is stored in.

I have an SD card that is used to log data but the issue is that the GUI will be really bad if the graphics are not loaded if there is a failure of the SD card in any way. I will look at this idea as I have about 400KB of images for this system. The issue then is how do I update these as part of the IFU? I would need additional code in the main programme to look for images on the USB or to be downloaded, depending on which method was used to update the firmware. Having it all in the DEPLOYMENT is much better.