The OpenWrt One system
The OpenWrt One was designed to be a functional network router that would
serve as a useful tool for the development of OpenWrt itself. To that end,
the hope was to create a device that was entirely supported by upstream
free software, and which was as unbrickable as it could be. The developers
involved concluded that the Banana
Pi boards were already reasonably close to those objectives, so that
was the chosen starting point. Banana Pi is also the manufacturer of the
board that resulted.
The OpenWrt One comes with a two-core Arm Cortex-A53 processor, 1GB of RAM, and 256MB of NAND flash memory. There is also a separate, read-only 16MB NOR flash array in the device. Normally, the OpenWrt One will boot and run from the NAND flash, but there is a small switch in the back that will cause it to boot from the NOR instead. This is a bricking-resistance feature; should a software load break the device, it can be recovered by booting from NOR and flashing a new image into the NAND array.
The device only comes with two Ethernet ports, one configured by default to talk to an upstream router. That choice raised a few eyebrows, since a router can normally be expected to have more ports; in an FAQ posting in January, John Crispin defended that choice this way:
We didn't want to impose additional complexity and costs by including an external managed switch IC. One port is 1GBit/s capable, while the other features a speed up to 2.5GBit/s. This is a limitation of the chosen SoC.
The router has 2.4GHz and 5GHz WiFi radios and three antennas. There is a USB 2.0 port on the front. Within the box, there is a mikroBUS connector for miscellaneous peripheral devices and an M.2 PCIe connector for the attachment of a solid-state drive. The space for M.2 cards is limited to the 2242 or 2230 formats, meaning that it allows the addition of up to 2TB of relatively fast storage with currently available drives. That, in turn, would make it possible to use the router as a network-attached storage server, or to run a more traditional Linux distribution on it.
The OpenWrt one arrived with no documentation whatsoever. Perhaps
surprisingly for a device shipped by the SFC, it also lacked the required
written offer to provide source for the GPL-licensed software contained
within — not that said source is difficult to find. [Correction:
the offer is there, printed on the outside of the box. I missed that, and
apologize for the mistake.] There was no power
supply provided; the user needs to supply a USB-C charger or power over
Ethernet. It draws about three watts when operating.
The device had a minimal OpenWrt snapshot installed. Evidently, it was not the intended image and did not work properly; it would boot and allow logins via SSH, but lacked the ability to install the LuCI web interface. That made life difficult for those of us who, having never taken the time to fully understand OpenWrt's unique package-management and configuration tools, tend to lean hard on LuCI. That, in turn, led to an early exercise of the NOR-flash recovery mechanism, described on this page, to flash a new image. The ritual is a bit cumbersome, involving holding a front-panel button down while connecting power to the rear. But, then, completely reflashing a device should not be something one can do accidentally.
After booting into the new image, the One behaved like any other OpenWrt router. It came up running a 6.6.50 kernel and with LuCI installed; with just a bit of configuration, it was sitting on the local network and providing WiFi service. Nothing exciting to report. That is the thing about working hardware; it just quietly does what is expected of it.
What could be more interesting is seeing this router get into the hands of
developers and enthusiasts who will use it to make OpenWrt (and other
small-system distributions) better. The combination of free software
(with the exception, seemingly, of the firmware blob loaded into the WiFi
adapter) and brick-proof hardware should make the OpenWrt One a relatively
easy and pleasant device to develop for. That will, hopefully, encourage
more developers to join the project and make the system better for
everybody.
Getting there, though, will require some significant documentation improvements. The device lacks even the usual "getting started" page, much less more detailed information on how to connect it to the network or what the three LEDs mean. A nice tutorial on how to build a custom image for this device would be welcome. OpenWrt as a whole has reasonably complete (if sometimes hard to navigate) documentation, so presumably these gaps will be filled over time.
Given the wide range of devices that OpenWrt can run on, the addition of one more might seem like a drop in the bucket. But most of those systems were designed to run something else, even if it is often OpenWrt with a proprietary interface grafted on top, and replacing the software is not always easy or risk-free. A device that was designed to run OpenWrt from the beginning, without limiting the user's freedom, is a welcome addition and a suitable present to the OpenWrt project as it celebrates 20 years of development.
[The OpenWrt One is expected to be generally available by the end of
November. The price of each system will include an (unspecified) donation
to the OpenWrt project. Schematics and data sheets for
the device are also available.]
