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 Narrow & 1284 Narrow: Atmega644 & Atmega1284 Arduino compatible boards

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
1284 Narrow
Arduino Mega
Arduino core
Arduino Zero
Arduino core
Cortex M3
Blue pill
STM32duino core
Cortex M4
Arduino core_STM32
Arduino-esp32 core
Flash930 (3%)1122 (1%)1214 (0%)1460 (0%)10624 (4%)15828 (24%)23516 (4%)194472 (14%)
RAM9 (0%)9 (0%)9 (0%)9 (0%)2732 (8%)3088 (15%)3244 (1%)13332 (4%)
Has EEPROMxxxx
  • 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 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.


  • 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

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.

644/1284 Narrow with 0.49" OLED

Narrow with OLED lines
Narrow with OLED font 8x8

Compared specifications:

Arduino Nano644 Narrow1284 NarrowArduino Mega 2560
Operating Voltage 5V5V5V5V
Input Voltage (recommended)7-12V7-12V7-12V7-12V
DC Current per I/O Pin40 mA40 mA40 mA40 mA
Flash32 KB64 KB128 KB256 KB
Digital I/O pins14242454
Analog pins88816
Current consumption35 mA35 mA35 mA80 mA
Size (mm2)810109710975411
Weight7 g8 g8 g37 g
Price20$ + shipping29$35$35$ + shipping
644/1284 Narrow v0.9 pinout

644/1284 Narrow v0.9 pinout