644 Narrow and 1284 Narrow are small, simple, ATmega644/1824-based boards designed to improve your small footprint Arduino projects. The Narrow board gives you two to eight times more flash and RAM resources and ten more digital I/O as compared to an Uno/Nano, plus total compatibility.
Many microcontroller-based projects need to have the smallest possible footprint and a lot of resources. Up until now, the Arduino Nano has certainly been popular for its price/performance value and small footprint. Other boards are also available but they can be too expensive if they incorporate unnecessary features such as Wi-Fi.
The 644 and 1284 Narrow boards both feature a large amount of effective Flash and RAM. "Effective" because the code generated on 8-bit MCUs is much smaller than on 32-bit MCUs. Hence, you can load a bigger program on a 128k 8-bit MCU than on a 256k 32-bit MCU! ATmega644/1284 also have EEPROM that adds to their total storage capabilities. Cortex processors can emulate EEPROM, but this further consumes flash (in whole pages) and wears out the memory.
ATmega644 and ATmega1284 also offer (as compared to UNO and Nano boards):
Narrow boards are approximately 1/5 of the surface of a Mega2560 board, with half its current power consumption.
Narrow board footprint in relation to other boards.
Seamless compatibility is made possible with the MightyCore project that has been maintained for a long time. Integration with the Arduino IDE is very easy, meaning that your original Arduino code will compile and upload directly.
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.
Narrow 1284 board mounted with a 0.49” 64x32 OLED
|Nano||644 Narrow||1284 Narrow||Mega 2560|
|Operating voltage||5 V, with on-board 5 V and 3.3 V regulators.||5 V, with on-board 5 V and 3.3 V regulators.||5 V, with on-board 5 V and 3.3 V regulators.||5 V, with on-board 5 V and 3.3 V regulators.|
|Max current||USB: un-protected VIN: 800 mA||USB: 500 mA limited by a PTC. Vin: 800 mA @ 6.2 V, 25°c||USB: 500 mA limited by a PTC. Vin: 800 mA @ 6.2 V, 25°c||USB: 500 mA limited by a PTC. Vin: 800 mA @ 6.2 V, 25°c|
|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|
|Current consumption||35 mA||35 mA||35 mA||80 mA|
|Size||810 mm²||1097 mm²||1097 mm²||5411 mm²|
|Weight||7 g||8 g||8 g||37 g|
|Price (USD)||$20 + shipping||$29||$35||$35 + shipping|
When I discovered that Cortex microcontrollers (and also ESP32) could be programmed in the Arduino environment, it seemed very appealing to use these boards, with specifications like a clock speed of 48 MHz, 72 MHz or even more and lots of RAM and flash. So I made some prototypes, mainly with the Blue Pill and clone of Maple Mini etc. I ultimately found that even though these chips are interesting, it is very difficult to migrate an existing Arduino project to them. I prefer using 8 bit microcontrollers to Cortex and here are some of the reasons why:
Cortex microcontrollers operate at 3.3 V, so you will have to redesign your circuit, search for new 3.3 V components or use level shifters.
The clocks are not as fast as they seem and they consume a lot of power. For example, the USB base clock is always limited to 48 MHz, even if you use a device that shows a "240 MHz" clock. In any case, a very fast clock means very high current consumption (hundreds of mA) which might not be feasible in a low-power project.
They require far more resources and processing power to do the same job. In short, the 32-bit architecture is very interesting if you need much more pins, more communication buses, etc., but most of their additional RAM and flash and CPU speed will be consumed running their complex architecture.
Their execution time may also be relatively slow. They offer a couple of "horrible" bootloading options (requiring to set a boot pin, and/or press a reset button etc) with poor USB enumeration.
They require a bigger bootloader (for example, 20 Kb instead of 0.5 to 2 Kb) and don’t feature any EEPROM.
There could be compatibility problems if you plan to use libraries. Their programming is totally different and the support for the Arduino core might be weak.
There is a terrible lack of reliable developer’s resources and support available on the web as compared to what one can find regarding Atmega microcontrollers programmed in the Arduino environment.
So, why bother with all these "features" that consume your time and money in order to work with your project when you only need some more RAM, flash, or additional pins? Narrow gives you just what you need without any additional overhead.
As the campaign progresses, you will be provided with a GitHub repository containing: