The upgrade for all your small footprint Arduino projects. These Atmega644 & Atmega1284 Arduino compatible boards give you 2 to 8 times more flash and RAM memories and total compatibility.

644/1284 Narrow: Atmega644 & Atmega1284 Arduino compatible boards
-
Does your project needs more resources than available on your Nano, UNO, Leonardo or even Mega2560 (RAM)?
-
While keeping a very small footprint?
==> “644 Narrow” and “1284 Narrow” boards are the best solution!
Still more resources needed
The Nano is a fantastic board that lets you test your project on a breadboard, but many Arduino projects are consuming more and more resources, particularly if you would like to use an OLED or TFT display. Flash and RAM resources are likely to miss.
The first solution that comes to the mind nowadays is to use a 32 bits board. Unfortunately this is not such a good solution and one should not consider only their raw specifications.
The 32 bits board (like the “Blue Pill”) challenge:
- More processing power but also more resources needed
These boards have a higher clock frequency, 32 bits buses and more flash and RAM (but no EEPROM). In theory this provides a processing powered multiplied by 5 to 10 as compared to an Atmega328. But experience shows that the compiled code is also much heavier. Hence: a sketch that could download to an Atmega328 with 32 Kb of flash won’t fit in a 64 Kb board like the Blue Pill (STM32F103) !
This table shows the resources needed to download the usual Blink.ino sketch:
Comparison of flash and RAM used by "blink" sketch. | Arduino Uno / Nano Arduino core | 644 Narrow MightyCore | 1284 Narrow MightyCore | Arduino Mega Arduino core | Arduino Zero Arduino core | Cortex M3 Blue pill STM32duino core | Cortex M4 Arduino core_STM32 | ESP32 Arduino-esp32 core |
---|---|---|---|---|---|---|---|---|
MCU | Atmega328 | Atmega644 | Atmega1284 | Atmega2560 | SAMD21G18 | STM32F103 | STM32F401 | ESP32WROOM32 |
Flash | 930 (3%) | 1122 (1%) | 1214 (0%) | 1460 (0%) | 10624 (4%) | 15828 (24%) | 23516 (4%) | 194472 (14%) |
RAM | 9 (0%) | 9 (0%) | 9 (0%) | 9 (0%) | 2732 (8%) | 3088 (15%) | 3244 (1%) | 13332 (4%) |
Has EEPROM | x | x | x | x |
- Compatibility problems
Unfortunately the integration of STM32 boards in Arduino is a work in progress.
The best Arduino core for STM32 used to be provided by STM32duino.com. This website was also the best source of information for developers. But it closed this summer 2019. It has become quite difficult to program on STM32 in the Arduino environment due to a terrible lack of programming references.
Considering the ESP32, that seems a very exciting upgrade possibility, the analogWrite function is not yet supported! You should also notice that while this chip can run at 240 MHz (with a terrible increase in current consumption), in fact it is configured at 80 MHz in the Arduino IDE, and the chip is even limited to 40 MHz when using an external clock.
- Power
STM32 and ESP32 MCUs are running on 3.3V. Atmegas run on 5V and possibly on 3.3V. It is not this easy to reconsider the powering of a project. All the components have to comply with the new voltage and it might need some level shifters.
So what?
The fastest and most satisfying solution to upgrade your Arduino project is to use the most advanced line of 644/1284 MCUs since Arduino was developed on the basis of Atmega 8 bits chips.
Atmega644 and Atmega1284 MCUs are providing you with much more resources while keeping a total compatibility thanks to the MightyCore.
644 Narrow and 1284 Narrow
These boards are designed to be close relatives to the Nano board. Even though they are a little larger (+2.7mm) and longer (+8 mm) they will fit perfectly on a test breadboard.
Advantages:
- Instant upgrade, 100% compatible of your Arduino project.
- 10 more digital IOs than on a Uno / Nano.
- Much more flash et RAM (644 Narrow : x2, 1284 Narrow x8).
- Real EEPROM offering 10x the durability of emulated EEPROM.
- Small footprint.
- Low power consumption.
- Lower cost than a Mega2560
- Can be fitted with a 0.49″ OLED in option

Footprints of Nano, Narrow, Uno and Mega boards
Optional OLED
One of the main reasons to increase memory resources is for use with newer OLED and TFT displays. Since many users may wish to include some kind of visual rendering or rich graphic content when using these boards, they come with a specialized port (GND, 5V, SCL, SDA) for OLED modules with an I²C interface. An optional 0.49″ OLED is also available, which has the advantage of fitting perfectly above the host board without the need to cable anything or consume any more surface area.


Compared specifications:
Arduino Nano | 644 Narrow | 1284 Narrow | Arduino Mega 2560 | |
---|---|---|---|---|
Operating Voltage | 5V | 5V | 5V | 5V |
Input Voltage (recommended) | 7-12V | 7-12V | 7-12V | 7-12V |
DC Current per I/O Pin | 40 mA | 40 mA | 40 mA | 40 mA |
Flash | 32 KB | 64 KB | 128 KB | 256 KB |
RAM | 2 KB | 4 KB | 16 KB | 8 KB |
EEPROM | 1 KB | 2 KB | 4 KB | 4 KB |
Digital I/O pins | 14 | 24 | 24 | 54 |
Analog pins | 8 | 8 | 8 | 16 |
PWM | 6 | 6 | 8 | 14 |
SPI | 1 | 1 | 1 | 1 |
USART | 1 | 2 | 2 | 4 |
I2C | 1 | 1 | 1 | 1 |
Current consumption | 35 mA | 35 mA | 35 mA | 80 mA |
Size (mm2) | 810 | 1097 | 1097 | 5411 |
Weight | 7 g | 8 g | 8 g | 37 g |
Price | 20$ + shipping | 29$ | 35$ | 35$ + shipping |

644/1284 Narrow v0.9 pinout