The Next Generation Arduino Nano

While we certainly do love the Arduino Nano for its low-cost and versatility in projects, it’s unarguable that every tools has its gripes. For one maker in particular, there were enough complaints to merit a redesign of the entire board. While Arduino may or may not be interested in incorporating these changes into a redesign of the development board, there is certainly room for a new manufacturer to step in and improve some features.

[Kevin Timmerman] takes a look at lower-cost clones of the Nano made in China to highlight a few interesting key differences that make the clones – cheaper but still compatible with legacy systems – more attractive.

The PCB manufacturing for the Arduino Nano currently places components on both sides of the board, requiring two operations for solder paste, pick-and-place, and reflow. Naturally this increases costs, simply designing a two-layer PCB with components on top lowers the price of manufacturing.

Since the ATmega328PB was released, it has proven to be a better and cheaper MCU for manufacturing than the ATmega328P, the current MCU used by the Arduino Nano and clones. While the newer MCU is not backwards compatible like its predecessor, it has additional UART, GPIO, counters, and other features that allow users to take advantage of new libraries and peripherals.

Rather than featuring the typical voltage regulator used by Arduino boards (used to allow the board to be powered by a voltage source greater than 5V), a switching regulator allows for less energy loss but a higher component cost. A better solution than both of these would be to simply not have a voltage regulator. While this may be controversial, there are sufficient battery power sources for this design to work (4 cells of AA or AAA NiMh batteries or a mobile phone charger).

The Arduino Nano uses a bootloader for handling programming the MCU, which requires the USB to serial bridge to be disconnected from anything that could interfere with the programming. Thus, programs using the COM port on the computer must release the port, including the serial monitor. Rather than using the bootloader, ICSP (in-circuit serial programming) and DebugWire are possible alternatives that connect the ICSP pins to the CH551 development board or programming via the reset pin.

There are a number of other spec and firmware improvements suggested in the writeup, as well as comparison between the Arduino Nano, Arduino Every, and Chinese clones. It’s definitely worth a look!

37 thoughts on “The Next Generation Arduino Nano

  1. Excuse me, what is the use-case for Arduino Nano? 32U4 does it all better (more RAM, programmable via USB). Yes, it is more expensive, but engineering time on figuring out how to connect it via USB-to-serial will cost you much more.
    Multi-board project with many boards? I did one this year, controlling many boards from PC via USB. 328P is useless for it since serial port there is not usable (you cannot use serial and use USB-to-PC data and program from PC at the same time. Unlike 32U4).
    Save money on mass production? Well, why use Arduino Mini in mass production, design a custom board!

    1. The article isn’t about saving money in mass production by using a Nano. It’s about saving money in mass producing the (new) Nano itself.

      The Arduino Nano is an extremely handy component for hobby projects, one-offs, and small-run devices. You can buy them cheaply by the dozen. They fit into all but the smallest enclosures. They are capable enough for most projects, and are really easy to use.

      If you’re doing some project that calls for a lot of simultaneous USB and serial communication, it’s simply not the tool for the job. But you’re basically saying bicycles are pointless because they can’t cross the ocean. :P

    2. I also liked 32U4, but I had also problems with them.
      On one suddenly USB died, on another i was able to broke the USB by SW (I don’t remember now how exactly, but flashing bootloader with ISP fixed it back).
      Also I had problem with hanging of 32u4 when using TWI (I2C). You can find this bug on internet…
      So after all I ended back on Nano, because it’s simply more rock solid…

      1. The only problem I’ve had with the 32u4 is when it’s recognized on a different com port after a reset/program, which screws up reading initial serial monitor info, but that’s probably more Windows’ fault than the MCU. I have a few strips of 328p’s in various packages, and I’ve yet to use any of them… I keep going for the 32u4 for it’s ease of USB. That and the Tiny841, which has almost totally replaced my use of the Tiny85, has covered anything I’ve wanted/needed to do for a while now.

    3. The 32U4 in arduino-land can sometimes be a bit problematic with regards to firmware updating and reset issues, “brickable” as it were.

      The Nano footprint is quite nice (similar in size to a large IC, use machine pin headers and it works really nicely in that way) and the 328P is more than you need for a lot of things, the only problem with the Nano is power draw, the regulator(s) and USB-UART combined tend to draw a minimum of 6mA doing nothing (in power down sleep mode)

      I made my own version which dropped the USB-UART on board in favour of using an “ftdi” pinout (so like a “pro-mini” in nano footprint) , holtek low quiescent regulators, and no leds except for the usual D13, this will get you to about 10 microamps with the same code.

      Unfortunately mine is still double-side loaded 2-layer (I still wanted the “standard” 2×3 ISP header otherwise I might have gotten away with single side, especially if I just went with a single regulator).

    4. The 32u4 Arduinos haveall sorts of problems, especially whem trying to debug over serial. It’s probably good for a device that you program once and then leave in place, but for a development platform it’s a giant PITA. Not sure if this is due to the 32u4 itself, Arduino’s implementarion of USB, or general windows crappyness, but I have moved from the Leonardo, Pro Mini etc back to the Uno/Nano and pro micro (or whichever one you program over ftdi!)

      This has decreased my frustration enormously, but YMMV of course :-)

    5. my favorite 8-bit arduinos are the leonardo and the pro micro (sparkfun’s design) as they both are very simple and have native usb support. the 3.3v pro micro is usually my go to for custom game controllers, makes building simpits a sinch. normally most people would reach for a teensy but i like these better for their cheapness (especially the chinese knockoffs). if i need more power i usually grab a stm32.

      we should really switch over to 3v3 parts just on the grounds of sensor availability, and while you can get the atmegas to run 3v3 it kind of gimps your performance by half. an arm can get you more performance with lower power consumption and without gimping your clock.

    1. It does remove the VR, but doesn’t remove any serial port nor take away your option to use the bootloader. It provides an extra serial port and provides an alternative way to program the device besides using a bootloader.

      1. Speaking personally, I’ve made custom systems around an ATMEGA328P chip which remove the bootloader, d1 and d2 lines, and the USb adapting FTDI chip, you can program the arduino chip over ICSP with the same circuitry as you use to reload a bootloaer on a fresh chip. I’d never make a PCB design without a (form of) voltage regulator though. without voltage regulation you can’t use battries or any power source that depletes over time, nor can you handle things where the power load can substantially change when the device is in different operating modes (low when it’s just doing calculations, high when it starts turning LEDs or motors on…).

        1. AVRs run from 1.8V to 5.5V, enough for unregulated 2 or 3 alkaline/NiMH cells or single Li-xxx cell. Using ratiometric/digital sensors (or on-chip reference) you don’t need regulated supply voltage.

  2. I’ve been considering doing something like this for the pro micro (32U4). Having A0 and A1 unconnected on it is disappointing since they are used for the differential ADC inputs. It would probably end up looking like a teensy 2.0 but with an open bootloader.

  3. It can’t work without a regulator. If you tried that then as the battery level reduced over time all voltages on the board would (asuming everything you connect to is also powered from the same battery), or (if you connect to something powered from elsewhere) then the arduino’s levels will change while the other thing stays constant. Either way analog measurements become unreliable over time and, if the drop is large enough and the levels were close to the cut-off point to start with, then some digital signals such as interacting with a 3.3V device also fail as the batetry level changes. There are many options for regulators, including in a custom design just buying an atmega chip (rather than full arduino) for youself and adding a regulator for your whole custom board of “arduino+other stuff and periphrals” rather than a regulator within the arduino, but all designs need a regulator somewhere (unless you are willing to limit yourself to being only ever powered by something like a USB port/plug socket adaptor/powerbank.

    1. Nonsense. Analog can use the internal reference instead of Vdd (if they need an absolute rather than ratiometric measurement), and digital levels are based on Vdd are specifically relatively insensitive to smallish variations, and can vary from 1.8V to 5.5V for many modern chips. There’s LOTS of things you can do running directly off of a couple batteries. (and powering off of USB is not great from a regulation PoV, either.)
      But that’s irrelevant, since I think the point was that voltage regulation has moved into power-supplies themselves. While in 2004 the “wall wart” you picked up was likely to be unregulated, these days, you’re MORE likely to be able to find a regulated 5V “phone charger” or something. And a 5V phone “battery pack” And even unregulated batteries have a pretty flat discharge curve, compared to “long ago.”
      (and on top of that, the Nano Clone voltage regulation has always been pretty “questionable.” There isn’t enough heat-sinking to get anywhere near the current that people expect, and there have been reports of incorrect regulator chips (7805 vs 1117 pinout, for example) installed that “no one noticed, until…” because they usually ran off of USB power anyway.

  4. I’m using Chinese nano clones for teaching students, and my biggest gripe is the lack of a PTC fuse. Students make a lot of shorts. I’ve modified my boards by replacing diodes on USB power with a PTC.
    The presented design doesn’t have a PTC, unfortunately.

  5. I prefer my version that I made some months ago:
    https://i.imgur.com/NuHozUZ.jpg
    size of a PCB next to a classic Z80 CPU.

    The PCB is slightly larger than a 32 pin 600mil DIP package and converts ATMega328 TQFP to DIP. The best part of my design is it’s made to work with 328pB which makes full use of A7 pin (on non B version, A7 is only analog input, can’t be used as output), and has 2 more GPIO: pin 3 and 6 as D23 and D24 instead of another GND and VCC pins. Has pads for I2C pullup resistors, can be programmed via ISP header, has D13 LED like standard Arduino, and optional external clock chip (or use internal clock, max 8MHz, and have 2 more external GPIO)

    Only reason I made the board is because Microchip (which owns and makes all of ATMega chips) never made DIP version of the ‘B’ version

    1. There are some ARM “Arduino-like” boards. There are also 16- and 32-bit platforms that use Arduino-style firmware and software. I tried Pinguino on 8-bit PIC18F45K50 (with hardware USB 2.0), it works for other chips too. I also have Digilent chipKIT32…

  6. What if you put the voltage regulator on the the second side (ie. the bottom) – but left it unpopulated?
    Or had a separate board, that could be stacked on top / bottom – like a shield?

  7. Hi,
    it’s interesting to read how the Nano has been used in so many ways and has been adopted and modified to suit very different goals. in this spirit in Arduino we expanded the family with 4 new products, the Nano Every, Nano 33 IoT, Nano 33 BLE and Nano 33 BLE Sense.
    As it has been said in one of the comments for us the key takeaway is usability and we strive to give customers the best components and maximum flexibility. for this reason on all the new Nanos we used a DC-DC converter to efficiently support higher supply voltages and have components on one side only, not just to save money (to do that we had to use 4 layers) but rather to give our users the possibility to mount the Nano as a SMT component, taking advantage of the castellated pads.
    The Nano Every has a very aggressive price and bundles a newer processor (ATMega4809) with more memory, an additional UART and, most importantly, a software compatibility layer that will make even low level register accesses for fast GPIO handling compatible, regardless of the different register map. Nano Every also has a SAMD11 as USB-UART bridge that allows supporting also other protocols such as HID.
    all the other new Nanos are arm based, 3.3V and pack a lot of technology: the Nano 33 IoT contains a SAMD21 and a NINA W102 WiFi/BT Module based on ESP32 whereas the Nano BLEs use the NINA B306 which is based on Nordic nRF52840 and add quite some sensors such as microphone, 9 axis IMU, environmental sensors (pressure, temperature, humidity), ambient light/color/gesture sensor and, most importantly are the first boards that support Arduino on top of mbed.
    if the above is not enough let us know… we’re listening and we want to keep pleasing our users with the best features you dream of making them simple to use and easy to understand.

    1. Nano like my hot glue sticks. Cheap China mart poor QC hard to beat on price. Minis somehow more expensive.
      Two new Nano Every only got blink tested and waiting for a proper torturing. Got nothing to say other than working, no readily apparent IDE issues, and clean solid manufacture.
      Ya you dont know want cheaper, faster, and more toys– um peripherals. Uh huh.

  8. I have only one complaint with the nano, I found that there is a bug in the bootloader that prevents the watchdog timer from being functional. (can’t make it through the boot sequence without the WDT timing out) I reflashed the boot loader with Uno code and not had problems, though I am concerned some bogiebug is lurking. My application is a wireless mess network controlling water lift pumps and logging the on/off times to afford an estimation of water lifted. More times than I like, electrical noise makes a node unavailable, thus the need to reboot.

    1. Arduino did fix that on official Nanos recently, by using the same bootloader as Uno (Optiboot. Which fixed this a LONG time ago.) Unfortunately, the many derivatives haven’t kept up, and the way this was implemented in the IDE causes people with older (or derivative) Nanos to have upload failures unless they notice that they notice that they need to set the “Processor” in the “tools” menu to “ATmega328p (Old Bootloader)”

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.