NanoPi Zero2 is a tiny headless Arm Linux computer with Gigabit Ethernet, a USB port, and an M.2 Key-E socket for WiFi

FriendlyELEC NanoPi Zero2 is one of the world’s smallest Arm Linux computers with the 45x45mm board featuring a Rockchip RK3528A quad-core Cortex-A53 processor, up to 2GB RAM, microSD and eMMC flash module sockets for storage, a Gigabit Ethernet RJ45 jack, an M.2 socket for WiFi, a USB Type-A port, and a 30-pin GPIO FPC connector for expansion.

When I went to find more information about the earlier NanoPi Zero, I quickly realized… it did not exist, and the closest thing we have is the ZeroPi released in 2019 with an Allwinner H3 Cortex-A7 processor and an even smaller 40x40mm form factor.  The NanoPi Zero2 comes with a 64-bit processor, more memory, and optional support for an M.2 WiFi module among other improvements. It’s designed for headless applications since there’s no video output/display interface.

NanoPi Zero2

NanoPi Zero2 specifications:

  • SoC – Rockchip RK3528A
    • CPU – Quad-core ARM Cortex-A53 @ 2.0 GHz
    • GPU – ARM Mali-450 GPU with support for OpenGL ES1.1, ES2.0, and OpenVG 1.1 APIs
    • VPU – 4K H265/H264 60fps decoding
  • System Memory – 1GB or 2GB LPDDR4/LPDDR4X
  • Storage
    • MicroSD card slot
    • Socket for eMMC flash module
  • Networking
    • Gigabit Ethernet port
    • Optional Wifi and Bluetooth vias M.2 Key-E 2230 module (PCIe 2.1)
  • USB
    • 1x USB 2.0 host Type-A port
    • 1x USB 2.0 device Type-C port for eMMC upgrade
  • Expansion – 30-pin FPC GPIO connector with up to 17x GPIO, 2x PWM, 2x UART, SPI, I2C, 2x I2S, SPDIF Tx, 5V, 3.3V, and GND
  • Debugging – 8-pin debug UART, 3.3V level, 1,500,000 bps
  • Misc
    • 2x GPIO-controlled LEDs (SYS & LED1)
    • 2-pin 1.27/1.25mm battery connector for low-power RTC
    • RESET Button, RECOVERY Button, and MASK Button for eMMC upgrade
  • Power Supply – 5V DC /2A, via USB-C connector or 2.54mm Header
  • Dimensions and Weight
    • PCBA – 45 x 45mm | 16.1 grams
    • Metal enclosure – 49.5 x 49.5 x 25mm | 86.5 grams
  • Temperature Range – 0C to 80°C

Rockchip RK3528A mini SBC

FriendlyELEC provides support for Debian 12 Core, Ubuntu 24.04, OpenMediaVault, and FriendlyWrt fork of OpenWrt 21.05 or 23.05 with all images based on Linux 6.1 LTS. You’ll find the OS images and other documentation on the wiki.

The NanoPi Zero2 SBC is sold for $18 in its basic configuration with 1GB RAM, and you can get a complete system with 2GB RAM, 32GB eMMC flash module, WiFi 5 (RTL8822CE) with two antennas, and a metal enclosure for $54 on the same page.

NanoPi Zero2 GPIO connector pinout
Pinout of the GPIO connector
Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard

24 Replies to “NanoPi Zero2 is a tiny headless Arm Linux computer with Gigabit Ethernet, a USB port, and an M.2 Key-E socket for WiFi”

  1. Another option for this would be to put an E-key 1TB SSD on it and use it for storage. Too bad there is a tiny serial flash for uboot. Instead you’d have to leave a tfCard in it to boot.

    1. I guess you meant “too bad there is **not** a serial flash”. Another option might be the eMMC though.

      I was initially happy and thought this could replace my aging NanoPI-Neo2 that I’m using as a reverse proxy/mail gateway etc, until I realized that this one has no externally accessible console port AGAIN. I’m really starting to think that there’s someone in the FriendlyElec design team who wants to make sure their devices remain a pain to debug and recover from a failing boot. It’s totally amazing, they’ve been the first ones to provide very nice metal enclosures, yet they continue to design their boards like development boards, making them unfit for production for ridiculous reasons!

      1. out of curiosity @Willy – have you tried messaging friendlyelec with your requirement – I mean after all you are not some random dude on the web but an important voice

        1. They could add the requirement in the next revision of the SBC.

          I also noticed in some circumstances armbian distro finished the kernel switch eg from legacy to edge and rebooted a board without giving user chance to check on it. And don’t know why I am the lucky one who mostly ends up with bricked system. For this cases I found essential to keep system root on microSD card even it was copied to emmc or nvme storage as backup.

          1. Exactly. Let’s be honest, shit happens with kernel upgrades, and more commonly in the ARM world since they’re so tricky with DTB and very small details that are sensitive to tiny variations between many boards that are difficult to check before releasing. While irritating when it happens to you, all you generally want when your machine looks bricked is to be able to roll back without having to pick a screw driver or an eMMC flasher. And I agree with you that sometimes for rollback, SD is easier, but that’s a real shame! Also it allows to rollback but not necessarily to debug.

        2. I regularly exchange with them. Some of the ports on older boards were apparently added after my comments, and next boards dropped them… I really think that they’re putting them only upon request instead of understanding the problem it is not to have one. That is what is annoying. And that’s sad, because otherwise they’re doing really great and solid products! I don’t count the number of times I had to skip their products over the last 6-7 years just for absurdities like this, and other people I know who often need such devices to build monitoring probes or tiny routers/firewalls at customers just told me the same. We’re speaking about a $0.5 saving at best, which cancels a non-null (though difficult to estimate) number of sales.

          1. Seems like this could be addressed with better software. I’ve made plenty of devices without consoles that could upgrade their kernels without bricking.

            For instance, have the bootloader detect a failed boot, or rather lack of successful boot, and after enough failures automatically switch back to old kernel. So if it doesn’t boot, just reset a few times and you’re back.

            And there is an external USB OTG port. Use fastboot in the bootloader to allow reflashing over USB.

            Then there is the SD slot. Maybe the boot ROM can give it first priority, but then fall back to emmc if it doesn’t detect a valid bootloader image on the SD card. Some boot ROMs can do this, IDK about rockchip. So if you brick emmc just stick if a recovery SD card and it’s back.

          2. For the switch-on-multiple-failures I do that as well on appliances. But that doesn’t do everything. Sometimes you just need access to the boot loader to fix something or pass an option to the kernel, or even to capture the oops that’s stopping the boot while loading a module. Similarly it’s quite common when dealing with network configs (especially in devices you carry in your bag to use anywhere in the field) to not be able to recover access. In the past, console ports would require a DB9 connector which was taking some room and that many were already super happy to find on many devices nowadays it’s just a tiny 8x3mm hole with a BOM cost less than $0.5 that turns a brick into a computer usable by anyone. In addition it allows young devices to be debugged in the field by early adopters and quickly fixed. SolidRun has been providing that for many years now. Radxa has understood that as well and is now providing easy access to their devices. Radxa used to be lacking nice enclosures, now they’re making some that are similar to FriendlyElec’s, so they’re getting closer. And more active on marketing and present everywhere on the web than FE, that does help as well.

          3. There still the usb-c connector. The bootloader can use something like fastboot or USB MSC to allow recovery options that way, including bootloader commands.

            I also see there’s a recovery button on the side. IDK if this interacts with the boot ROM, but the bootloader can surely use it to boot a recovery kernel if held down on boot.

          4. There was one thing I really liked on the GL.iNet 6416A, it had a tiny web interface embedded in the boot loader (“pepe2k”). You would just hold the button for 6 seconds during boot and it would start it, and from which you could upload a flash image to replace everything. This is generally sufficient (and even better) for consumer devices as it allows to unbrick them and to flash already tested images that the vendor has validated on the exact same device. I’ve done that as well for many devices. However this was not the type of thing you’d want to update often at home nor in production as it would easily wipe all your config as well. And there were bugs in this tool as well, as some images would never boot, apparently based on their checksum so if one would not boot you had to modify the contents of your image and try again, so that was significantly increasing development time. In the end that was really just for first-time installation or complete replacement in the field.

            I agree that many such hacks are possible. But frankly, when you know that each and every of your updates are going to be painful, you just stop doing them. For example I’ve used a WRT1900ACSv2 as a firewall at home for about 5 years. It uses NAND as storage. Kernel and image upgrades are boring and you need to be super careful. Result? Once I ended up finding a well-working kernel, I stopped updating it and kept the same kernel running for 3 years.

            In the PC world this problem doesn’t exist. You just plug a keyboard and a VGA or HDMI cable, you have access to the BIOS and the boot loader, and you can manipulate anything to apply the changes in a reversible way. In the Arm world, very often if you want to *try* to fix something, either you need to perform a risky change, or you’re doing it blindly, stupidly waiting for the board to possibly eventually boot while in fact it’s hung from the beginning in the boot loader saying “cannot decompress image” or such stuff. And finally you take a screwdriver, you find your USB-TTL adapter you look on the device’s wiki to figure the pinouts of the internal UART connector and you try again this way, then in 5 minutes it’s fixed as if it were a PC. All this for that…

          5. The ZBT 5G/4G gateway I purchased has this feature as well and it is really nice, especially if you modify and flash OpenWrt much

          6. I just unpacked a NenoPC T6. Could it be your comments have been used just for the more expensive boards? It includes a USB-C with ch341, Power button and mask key are accessible from the outside.

            The R5C has the maskrom accessible, but lacks the ch341.

            For the lowcost boards leaving out any spare connector lowers the resale price. And basically you are just grumbling they traded your time to lower the price. I’d say you get what you paid for (although for the R5C the ch341 + USB-C would be a nice addition).

          7. Yeah I know it’s been available on a few models. I’d be willing to pay more to have this on smaller models. Really. Spending hours drilling holes in enclosures, finding connectors to solder and gluing modules is not worth a few dollars.

            The thing is, RK3588 still has very poor mainline support while RK3568 has a great one. For a router/fw I’d rather take the latter. FriendlyELEC’s enclosures are compact and well designed, and in general their devices are quite stable, which is why I look there first.

            And yes, I too asked for R5C+uart as well. It’s not just a matter of trading time for money, it’s a matter of making a device much less attractive for a whole class of use cases just to save a few cents.
            They could even sell the module as a paid option like they already have plenty, I would always happily take it, even for $5, thus they could even make money out of it! It’s just that having to do all this modification work oneself is much more painful than it is for the vendor to include it from the start.

      2. I was initially happy and thought this could replace my aging NanoPI-Neo2 that I’m using as a reverse proxy/mail gateway etc, until I realized that this one has no externally accessible console port AGAIN.

        They do have the Debug UART at the edge of the board. It should have been simple to angle the pins and provide an opening in the case. Not as ideal has having a UART to USB-C like the NanoPi R6C but at least usable.

        1. I agree, and that’s what I had done with some of their boards in the past. For others I have glued some USB adapters inside. But then you face stupid problems like the thickness of the enclosure making it difficult to establish contacts to your board, or you need to make a huge hole so that the entire connector passes through.

  2. “1x USB 2.0 device Type-C port for eMMC upgrade”

    What does this mean? I am trying to parse this but can’t think of how these two can be related.

      1. I wonder if it’s only function is this? Or is it a standard USB OTG port with a Linux driver, that could be used for a number of things. External USB flash drive, console serial port, etc.

        1. Standard OTG unless you press the maskrom button _while booting_. At least that’s ‘Rockchip standard’ since a decade but I haven’t dealt with anything RK3528 so far.

          1. That’s what I’d expect. But there’s stuff like the Debug/JTAG USB port on the Espressif ESP32-C3, which is a dedicated USB peripheral that only does a USB CDC serial port. Can’t do anything else USB.

            But the advantage is the driver is way simpler for it, so even the boot rom can do debug console over that USB port.

  3. The gpio flex connector looks really close to the edge of case. I wonder if there’s clearance to install a cable and fold it over the edge of the PCB around to the top side. Or if the case isn’t compatible with the gpio connector.

    https://www.friendlyelec.com/image/catalog/description/zero2_en_06.jpg

    Also looks like there are NO gpios other than this connector!? And they don’t even sell a 30 pin FPC cable or breakout board. Which will cost about as much the board does.

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC