More than 256K of memory?

Caseyg:
I am planning on a project that I think will end up taking quite a bit of code. Primarily I am looking to create a way to remotely control and monitor my commercial espresso machine and was hoping to make it stand alone. I don't want to have a computer running for it to serve up all of the information about the machine.
Is there a way to store my large (presumably) code base on a flash device? I am not talking strings and such, but large amounts of logic/code itself that would bring my code base past 256K. I have been looking for samples and howtos, but either there are none out there or i am using the wrong search terms. Any guidance would be much appreciated.

I have a hard time imagining an espresso machine needs more than a couple of K of code to monitor.

Maybe you can flesh out your plan. What values need to be monitored? How do you want to access the information?

If you run bitlash, you can pull the code from the SD card.
Bitlash is an interpretive version of the arduino commands, google for it.

If I had to take a guess, I would say the OP probably is thinking of storing stuff like the webpages, etc.. in the main flash. Actual code, I couldn't imagine many projects that would need more than 256K. So, if it data (audio, graphics, HTML, etc...) that will be filling up your memory, move that stuff to some external memory.

Retroplayer:
If I had to take a guess, I would say the OP probably is thinking of storing stuff like the webpages, etc.. in the main flash. Actual code, I couldn't imagine many projects that would need more than 256K. So, if it data (audio, graphics, HTML, etc...) that will be filling up your memory, move that stuff to some external memory.

Well he did say

I am not talking strings and such, but large amounts of logic/code itself that would bring my code base past 256

Unfortunately.. he didn't say much else.

Bob

Do you know it is going to be larger than 256K, or are you just making a wild guess? Just as an example, it is possible to make an entire MP3 player in 90k of Flash, and that was over 15000 lines of code...

Better let the OP respond. :slight_smile:

Haven't heard a word since the original post.

He's probably waiting for the 8-CPU, 4-terabyte RAID, 32GB RAM workstation needed to run the Arduino IDE. :slight_smile:

Gee alla that...? I have an instance running on a 1GHz 1GB Dell D610 laptop... It works fine, Windows 7 Ultimate, though is horribly slow.. I just wanted to see If I could make it work and one more time proved that there are pieces of code too big for a machine... An Expresso Machine?... Does it grow the beans too? I can see where duplicating the environment 'might' require some extra code... but more than 256K?

Bob

I've written a complete Space Invaders game with VGA graphics and sampled sound on an Arduino Uno. I doubt a coffee machine needs that much.

Since we are pressing on without the pleasure of the company of the OP, I was reading yesterday about how one of the first gaming consoles (or devices anyway) only had 128 bytes of RAM, because it was so expensive. It might have been Pong. So each frame refresh, the entire playing field had to be generated from scratch, because it couldn't be stored in RAM.

Sounds like the Atari VCS: Atari 2600 hardware - Wikipedia

128 bytes for everything, including CPU stack, frame buffer, sprites, game variables, etc. I've programmed some limited-resource systems in my time but I'm still amazed anybody managed to make games for the VCS.

Sure, Atmel makes ATtinys with only 64 bytes of RAM, but they don't normally get asked to do graphics and sound and manage multiple aliens.

fungus:
Sure, Atmel makes ATtinys with only 64 bytes of RAM...

Atmel makes ATtiny processors with no SRAM.

The classic 8051 processor contains 128 bytes of RAM.
But we're talking code space, aren't we? PIC10F200 has 256 words of program and 16 bytes of "RAM" (and very few "registers, but it does have some hw stack.) Atmel ATtiny4 has 256 words of program and 32 bytes of RAM, plus some registers. In the AVR case, 256 words of program works out to 512 bytes; for the PIC10, an instruction word is only 12bits...

Whoa.

I withdraw that comment. The early processors (eg. 6800, 6502) had no RAM as such. But you wouldn't operate them without RAM on the bus.

There is at least one Atmel AVR ATtiny processor with no SRAM. The one I looked at has three "slots" for return addresses so CALL (barely) works but it otherwise has no memory. All data has to be kept in registers (32 bytes) (or EEPROM).

Whoa.

No doubt! "ATtiny" is apropo.

Talk about the room being so small you had to go out side to change your mind...

The Atari 2600 had no video memory. The video signal out was generated on the fly. This was not just pong, but for every game that ran on this system. I think it generated an interrupt when a scanline needed to be started for output to the TV and then it was up to the CPU to provide the data on the fly.

A lot of vector games worked this way too. For vector monitors this makes total sense because the main program has control of the electron gun and doesn't even have the constraints of timing, except how many inches of line it can draw between refresh cycles.