[solved] Small Arduino-compatible board with >= 8KB SRAM

Hi forum! I'm building a device with 8 OLED-displays and for this reason I need 8 SSD1306 objects (Adafruit library) in RAM. Arduino Mega with 8KB SRAM is fine, but UNO is just not enough to manage the load.

However, the Mega is larger in height than my entire device. Also, I only need 6 pins (SDA, SCL and 4 digital inputs), so the Mega is clearly overkill.

Are there any small boards (genuinos or clones or whatever) that are compatible with the Arduino library ecosystem and have at least 8KB SRAM? By small I mean that the height is at most 45mm.

Thanks in advance!

There are several Uno-sized (or not much bigger) boards based on the ATmega1284. CrossRoads has a couple. Wicked Devices Wildfire board

There are also some smaller "MEGA" compatibles: https://www.seeedstudio.com/Seeeduino-Mega%28ATmega2560%29-p-717.html (and some others; even smaller, from less well-known vendors.)

Thanks for your reply! The proposed boards are an improvement compared to the mega with respect to their width, but they still have the same height. I'm looking for something smaller than 45mm.

Found my board: The NodeMCU v3 with an ESP8266 has more than 50KB SRAM with a hight of only 30mm. Adafruit's SSD1306 and GFX libraries are compatible. In my test, it feels slightly slower than the Mega, but the performance is nevertheless sufficient.

As a nice bonus, it has WiFi connectivity, so lots of fun incoming. Serial is working fine, too.

Note from my tests: be sure that pin D8 is pulled down to LOW when booting, otherwise the device won't start.

If you want an even smaller ESP8266 board check out the WeMos D1 Mini. I think there are a couple other small ESP8266 boards made by WeMos now that might be worth looking at.

The ESP8266 runs at 80 MHz by default (compared to the 16 MHz of the Mega), and can be easily increased to 160 MHz but it does need to do a lot of work behind the scenes for the WiFi functionality, which negates a lot of that extra speed. You can shut off the WiFi feature if you don’t need it.

Ah. You should have mentioned that you were willing to depart from Standard-ish AVR-based boards.
There are LOTS of possibilities once you consider ARM (teensy3, assorted SAMD21 boards from Adafruit/Sparkfun/etc, the new MKR Arduino boards), ESP8266, ESP32, etc…)

Thanks for your replies! When I mentionned "Arduino compatible" I meant that the Arduino Framework supports them. I use PlatformIO so there's a lot of choice around. I'll definitively have a look at the suggested boards.

kalsan: I only need 6 pins (SDA, SCL and 4 digital inputs)

How do you intend to make 8 displays work with i2c? Most of the easily available display modules have a choice of only two addresses, allowing connection of 2 displays to the bus. Do you plan to use an i2c multiplexer? Will all 8 displays show identical content?

I think it would be wiser to use the SPI version of the displays for this project. Then there is no problem using 8 displays, and they will update much more quickly.

How do you intend to make 8 displays work with i2c? Most of the easily available display modules have a choice of only two addresses, allowing connection of 2 displays to the bus

You are right. I'm using a TCA9548A multiplexer to drive the displays as well as an SN74148N priority encoder to reduce the signals of 8 buttons to 4 wires. In software, I keep an array of 8 display objects and every time I use one, I set the i2c mux to the wire that corresponds to the display.

Your point about SPI is interesting. I'm a total beginner and this is the first time I do a project of this kind. With SPI I wouldn't need 2 wires per display but only one (however 2 extra wires that go to all displays). That would be roughly 6 wires less and no need for a mux. Also, I agree with you that I'd very likely achiever more speed using SPI. Next time I go for a project like this, I'll pick SPI.