OpenWrt One is based on the MediaTek Filogic 820 SoC and has WiFi 6, dual-band, 3×3/2×2, 1x 2.5Gbit WAN, 1x 1Gbit LAN, 1GB DDR4 RAM, 256 MiB NAND, 16 MiB NOR (for recovery), M.2 SSD, USB-C Serial console and USB 2.0. Power Over Ethernet (POE): an IEEE 802.3af/at compliant device can power the device via the RJ-45 2.5 Gbps WAN connector.
Note that recent (2025-10) batches of the OpenWrt One have an M.2 slot with a detached post at the 2230 position and the shipped product contains no way to attach the post.
Schematics and datasheets for the OpenWrt One can be found at https://one.openwrt.org/hardware/
The OpenWrt One HowTo can be found at https://one.openwrt.org/hardware/OpenWrtOne-HowTo.pdf
Each Openwrt One comes flashed with the most current OpenWrt Release Firmware available based on the current manufacturing batch date. LuCI GUI will be installed, and the device is ready to run Out Of the Box using standard default settings.
ssh root@192.168.1.1Note: If you upgrade to the SNAPSHOT Branch from the original OOB factory default, the LuCI GUI will not be installed by default.
Follow the Quick Start Guide to configure the unit for your use.
openwrt-mediatek-filogic-openwrt_one-squashfs-sysupgrade.itb -- renamed from the fully versioned file from either the SNAPSHOT or Release repositoriesThe device will boot from NAND and the bootloader will reflash the kernel and root filesystem on the NAND.
Note: You may have to try other USB drives formatted to FAT32. There are observations that some USB drives have incompatibility issues. Try using a MBR partition table. If you get a Bad device specification usb 0 error from u-boot, increasing the delay may help:
| U-Boot Shell |
|---|
OpenWrt One> setenv usb_pgood_delay 4000 OpenWrt One> usb reset resetting USB... scanning usb for storage devices... 1 Storage Device(s) found |
Note: Early OpenWrt One's (which shipped with a SNAPSHOT from before the 24.10.0 release) had an issue Green LED doesn't turn on at end of OpenWrt One USB-based sysupgrade. The upgrade still succeeds in this case. This anomaly was resolved with https://github.com/openwrt/openwrt/commit/5ef71eaafd4e128ec3708a66b5633214427da373
Follow the relevent wiki articles:
This is similar to the Upgrading the firmware from USB but differs such that the front button is held instead (and no USB stick is needed to be prepared).
The device will boot a recovery initramfs image. You can use any of the Upgrading using other options detailed above.
For installation the factory.ubi, sysupgrade and raw kernel image are offered. In addition, the uboot bl31-uboot.fip FIP 1), factory.bin and preloader.bin are offered in NAND and (stripped down recovery) NOR variants for flashing the respective memories for recovery purposes (see relevant section).
For when the unit does not boot from NAND anymore, there is a failsafe recovery method to boot from NOR. This can be used even if the TF-A 2) or bootloader on the NAND are broken. The process is similar to the the NAND recovery boot, except for the NAND/NOR switch being on NOR (and the USB flash drive needing to be prepared):
The NOR recovery system will then factory re-flash the entire NAND memory.
The NOR recovery memory can be re-flashed, too. This is a two step process:
For the second step, the SPI NOR WP jumper must be in place (factory default position) and a TFTP server must be running and connected to the One's LAN port, to serve the new images.
To copy image over UART, the mtk_uartboot binary needs used.
It can be downloaded from the assets section of the latest Releases.
Select the appropriate archive for your operating system and unpack the mtk_uartboot binary.
On macOS, you may need to remove the quarantine attribute using xattr -d com.apple.quarantine mtk_uartboot.
Also download the DDR4 initialization file and NOR BL31/uboot image for later transfer & boot via UART from the SNAPSHOT or Current Stable Release Download Pages in subdirectory <release-version>/targets/mediatek/filogic:
NOTE: On the page, you will see only partial file name for the second file -openwrt_one-nor-bl31-uboot.fip
Connect an ethernet cable to the computer and to the 1G LAN port of the router. On the computer, set the ethernet interface to manual settings as following:
IP: 192.168.11.23 Mask: 255.255.255.0 Gateway: 192.168.11.11
Prepare a TFTP server to listen on 192.168.11.23 (the OpenWRT One will use an IP of 192.168.11.11). Download the following files from the SNAPSHOT or Current Stable Release Download Pages in subdirectory <release-version>/targets/mediatek/filogic to be served by the TFTP server (images of BL31/uboot, the preloader, and the recovery image):
NOTE 1: On the page, you will see only partial file names, e.g.openwrt_one-nor-bl31-uboot.fipforopenwrt-mediatek-filogic-openwrt_one-nor-bl31-uboot.fip
NOTE 2: The files downloaded will have the release version in their name. You need to remove it since the router asks for a file without version. E.g.openwrt-25.12.2-mediatek-filogic-openwrt_one-nor-bl31-uboot.fip→openwrt-mediatek-filogic-openwrt_one-nor-bl31-uboot.fip
The following command can be used to use the downloaded mtk_uartboot to
copy the boot files and
open a serial console connection using GNU Screen directly thereafter,
s.t., the boot menu recovery can be accessed.
From there, the flashing over TFTP can be initiated. With the router still powered off run on your computer whilst connected through USB-C:
path/to/mtk_uartboot --aarch64 \
--brom-load-baudrate 115200 \
--bl2-load-baudrate 115200 \
-s /dev/ttyACM0 \
-p path/to/mt7981-ram-ddr4-bl2.bin \
-f path/to/openwrt-mediatek-filogic-openwrt_one-nor-bl31-uboot.fip \
&& screen /dev/ttyACM0 115200
Note: Replace the path/to with the correct paths to the downloaded files and
/dev/ttyACM0 with the serial console device of the connection on your host system.
You will need to elevate permissions to gain access to dialout Group for serial devices like /dev/ttyS* and /dev/ttyUSB* and uucp Group for UUCP-related tasks. Add your_username to both the dialout and uucp Groups to your linux host like this:
sudo usermod -aG dialout your_username sudo usermod -aG uucp your_username
Remember to log out and back in to update your permissions.
With mtk_uarboot starting you will see the following output:
mtk_uartboot - 0.1.1 Using serial port: /dev/ttyACM0 Handshake...
Now power on the router and mtk_uartboot will continue with hw code: 0x7981 and
further logs as it uploads the BL2 and FIP (Firmware Image Package).
After the upload succeeded, GNU Screen should start up and you should see the boot menu.
Make sure to interrupt the boot process by pressing down arrow when the boot menu appears.
Within the boot menu, choose 7. Lock NOR. (Remove jumper afterwards).
Note: Successful NOR flashing is slower than when the flashing isn't actually happening.
Once the firmware has been re-flashed the router can be rebooted (and the jumper removed).
The OpenWrt One has a built-in USB-C serial console port on the front panel (next to the USB-A host port), which uses an integrated USB-to-serial converter. This typically appears as a virtual COM port on your PC without needing extra drivers.
Console or Serial access to the OpenWrt One is a necessary process to ensure the maintenance, recovery, and restoration of the firmware environment. These are the general steps to connect to a console session and confirm serial communication with the OpenWrt One device.
To enable password prompt for TTY and serial console access see: securing_tty_and_serial_console
ls /dev/tty*. Peruse the listing for (typically) ttyACM0 or ttyUSBx. You can confirm by disconnecting the cable end from the OpenWrt One and re-invoking the ls /dev/tty* to confirm the expected virtual port is no longer displayed in the listing.ls /dev/tty*. Peruse the listing for (typically) tty.usbmodem00001 or ttyUSBx. You can confirm by disconnecting the cable end from the OpenWrt One and re-invoking the ls /dev/tty* to confirm the expected virtual port is no longer displayed in the listing.screen /dev/ttyACM0 115200[[meta:tags|How to add tags