For starters, the lovely Ladyada has a starting point for you -
http://www.adafruit.com/index.php?main_ ... cts_id=123. Pin compatible and doubles your ram and program space. Alternately you can go to
a Sanguino "fat Arduino", using an at644 with 4K ram and providing lots more I/O pins.
http://sanguino.cc/ You can also use some tricks to minimize ram usage.
If you need even more than that, you can go to ATmega162 or many others.
but you will have to port the Bootloader and Arduino IDE to it.
There are several ways to add more ram to Arduino, especially if you wish to access it sequentially.
You can add an sram (eg 32Kx8), using 8 data bits on your I/Os as data, while running the address
lines with a counter (for eg. an 74HC040). Of course you'll need to use an extra I/O for /we, and to
clock and clear the counter (8+3=11, which blows most of your I/Os), assuming you ground /CS on the sram.
http://elm-chan.org/docs/avr/avrdma_e.htmlElm-chan is a superb engineer, has come up with a pseudo-dma interface to AVR, but
it requires an AVR with external bus interface. If you had that, adding a 32Kx8 sram would be trivial.
Forget the Z80 - it's an ancient obsolete chip and won't crank out the raw mips as a 20 Mhz Atmel will.
If you must, you can always upgrade to an AVR with external memory bus, (just check what Atmel has to offer).
and add as much memory as you want, but then you lose your nice Arduino programming environment.
If you really want to switch family, Atmel has a 32 bit ARM lines, but I can recommend Philips/NPX LPCxxxx
line of ARM microcontrollers. There are several under 10 dollars with 32K sram and 256K flash.