Phicomm N1 as the relay Advanced
The Phicomm N1 is a TV box with an Amlogic S905D. With Armbian installed, it runs the OpenXPlay Linux relay: the relay starts whenever the box is powered, its hotspot can use 5 GHz, and the head unit shows CarPlay in its own browser; add a USB Wi-Fi adapter and the head unit’s Carlink app works too. OpenXPlay-Hardware provides the N1’s device package.
You install everything from a computer over SSH, so this guide is for people who are comfortable with the command line. This guide recommends installing by hand; OpenXPlay Flasher can also install the N1, see OpenXPlay Flasher.
At your own risk
- Writing Armbian to the eMMC erases the N1’s current system.
- Tell the community how it went, with the relay and device package versions.
| N1 hardware | What it means for the relay |
|---|---|
| BCM43455 Wi-Fi, 2.4 GHz and 5 GHz | The relay’s hotspot can use 5 GHz, so the picture stutters less |
| BCM4345C0 Bluetooth, Classic and Low Energy | Both wireless CarPlay and Carlink work |
| Gigabit Ethernet | Connects to a router while you install and manage it |
| Two USB 2.0 ports | A USB Wi-Fi adapter here enables Carlink; see One adapter or two |
| 12 V DC power | In the car, too, it needs a supply that delivers a steady 12 V |
One adapter or two
The N1’s built-in Wi-Fi adapter is enough for the head unit’s browser. For the head unit’s Carlink app, add a second Wi-Fi adapter on a USB port (for example an RTL8822BU).
| One adapter (built in) | Two adapters (plus a USB Wi-Fi adapter) | |
|---|---|---|
| Head unit shows CarPlay in | Its browser | Its browser, its Carlink app, or both |
| Built-in adapter | Runs the relay’s hotspot; the iPhone and the head unit both join it | Runs the relay’s hotspot for the iPhone and the head unit’s browser |
| USB adapter | Joins the head unit’s Carlink Wi-Fi; runs the admin hotspot while Carlink isn’t connected | |
| Admin page in the car | Phone joins the relay’s hotspot | Phone joins the relay’s hotspot or the admin hotspot |
With one adapter, the setup guide doesn’t offer Carlink app or Both. Unplug the USB adapter and Carlink pauses; plug it back in and Carlink resumes. These rules need Linux relay 0.1.6 or later.
Using it in the car shows how to connect in each case.
What you need
| You need | Notes |
|---|---|
| A Phicomm N1 | With its 12 V power supply |
| A USB drive | 8 GB or more; everything on it is erased. Keep it afterwards as a rescue drive |
| A network cable and a router | The N1 is wired to the router while you install; the computer joins the same router |
| A computer | Windows, macOS or Linux that can write a USB drive and run ssh (built into Windows 10 and 11) |
| An Apple accessory (MFi) identity | identity.pk8 and certificate.p7b, supplied by you; see What is an Apple accessory (MFi) identity? |
| A USB Wi-Fi adapter (optional) | Only for Carlink; see One adapter or two |
Write Armbian to a USB drive
We test with ophub’s amlogic-s9xxx-armbian: from the release Armbian_trixie_arm64_server_2026.10, download Armbian_26.11.0_amlogic_s905d_trixie_6.12.112_server_2026.10.15.img.gz (Debian 13, kernel 6.12). Its SHA-256 should be:
2a5838ff490db59065f9ab29c6762ea459b08e7ff6802ef22fa1329bfaf37fffCheck it with certutil -hashfile <file> SHA256 on Windows, shasum -a 256 <file> on macOS or sha256sum <file> on Linux. Then unpack the .img file and write it to the USB drive with balenaEtcher or Rufus (Windows).
The device package needs Debian 13 (trixie). ophub’s other Debian 13 images for the N1, such as the one with kernel 6.18, should work too.
Boot the N1 from the USB drive
- Connect the N1 to the router with a network cable, plug in the USB drive, then plug in the power.
- After about 2 minutes, find the device named Armbian in the router’s device list and note its IP address.
The N1 didn’t boot from the USB drive?
An N1 that has run a third-party system such as Armbian or OpenWrt usually boots from the USB drive as soon as it is powered with the drive in.
An N1 that still runs Phicomm’s original system needs ADB debugging turned on in that system first. Then run these two commands on the computer, and the N1 restarts from the USB drive. Some versions of the original system can’t turn on ADB until they are downgraded; follow an N1 community guide for that.
shadb connect <N1 IP> adb shell reboot updateTry the other USB port.
ophub’s documentation covers this in Setting the box to boot from USB/TF/SD.
Install the system to the eMMC
Sign in to the N1 from the computer. The default user is root with the password 1234:
ssh root@<N1 IP>On the first sign-in, Armbian asks you to change the root password and to create a user; follow the prompts, and sign in as that user from then on. Then write the system to the eMMC:
armbian-installEnter 101 (Phicomm-N1), then 1 (ext4), and wait for it to finish. Then shut down:
poweroffAfter about 30 seconds, unplug the power and the USB drive, then plug the power back in: while the USB drive is in, the N1 boots from it first. Once the N1 has booted from the eMMC, sign in as the user you created. The IP address usually stays the same; if it changed, look it up in the router again.
ssh <user>@<N1 IP>Want to keep the original system?
Before writing to the eMMC, run armbian-ddbr in Armbian on the USB drive and enter b. It backs up the original system to /ddbr/BACKUP-arm-64-emmc.img.gz on the USB drive; copy that file to your computer. To go back later, boot from the USB drive, run the same command and enter r. ophub’s documentation covers this in Backup and Restore Using Armbian-ddbr.
Install the device package
From the OpenXPlay-Hardware Releases, choose the newest phicomm-n1-device-v release (all are pre-releases so far; 0.1.1-beta.1 or later is required). On the N1, download it, check its SHA-256, unpack it and run its installer. Set V to the newest version; --dry-run checks everything without changing anything:
V=0.1.1-beta.1
base=https://github.com/OpenXPlay/OpenXPlay-Hardware/releases/download/phicomm-n1-device-v$V
curl -fL -O "$base/openxplay-phicomm-n1-device-$V.tar.gz" -O "$base/SHA256SUMS"
sha256sum --ignore-missing -c SHA256SUMS
tar -xzf openxplay-phicomm-n1-device-$V.tar.gz
D=openxplay-phicomm-n1-device-$(echo "$V" | sed 's/-/~/')
sudo sh "$D/install-device.sh" --dry-run
sudo sh "$D/install-device.sh"
sudo rebootThe unpacked folder writes a pre-release version with ~ in place of - (such as 0.1.1~beta.1); D is that folder. After the reboot, sign in again and check the install:
V=0.1.1-beta.1
sudo sh "openxplay-phicomm-n1-device-$(echo "$V" | sed 's/-/~/')/install-device.sh" --verify| Command | Its last line should be |
|---|---|
--dry-run | OXP-STAGE device preflight-ok version=<version> |
| Install | OXP-STAGE device ok version=<version> reboot=required |
--verify | OXP-STAGE device verified version=<version> |
<version> is written as in the folder name.
The device package brings the Debian packages the relay needs that Armbian lacks, such as BlueZ, so it installs offline. It:
- installs the host profile
/etc/openxplay/host.json; - gives Wi-Fi and Bluetooth their own addresses, derived from the Ethernet MAC address; otherwise every N1 shares the same ones;
- fixes the Ethernet PHY at boot, and again after a kernel update with
armbian-update; - installs newer Cypress Wi-Fi firmware, so 5 GHz channels 36 to 48 work under the CN country code. The stock firmware allows only 149 to 165; 52 to 144 stay disabled.
The N1 can’t reach GitHub?
Download both files on the computer, check the SHA-256 there, copy them to the N1, set V there, and carry on from the tar line:
scp openxplay-phicomm-n1-device-<version>.tar.gz SHA256SUMS <user>@<N1 IP>:Copy the relay package in the next step the same way.
Install the relay
Take the newest linux-v release from Releases; it is linux-v0.1.6 now:
V=0.1.6
base=https://github.com/OpenXPlay/OpenXPlay-Relay/releases/download/linux-v$V
curl -fL -O "$base/openxplay-relay_${V}_arm64.deb" -O "$base/SHA256SUMS"
sha256sum --ignore-missing -c SHA256SUMS
sudo apt-get install --no-install-recommends ./openxplay-relay_${V}_arm64.debSet V to the newest version. The device package already installed the dependencies, so this step works offline. The relay runs as a system service and starts at boot; Install the relay lists what the package installs.
Open the admin page
On a phone or computer on the same network, open https://<N1 IP>:6975; an iPhone, a Mac or a Windows computer can also open https://openxplay-admin.local:6975. The browser warns that the certificate isn’t trusted; continue to the page. The first password is openxplay: sign in, then change it. If you forget it, see Forgot the admin password?
Set the Wi-Fi country
In the admin page, open iPhone connection → Wireless network and set Wi-Fi country to where you are, for example CN in mainland China.
Left at System setting, the N1 usually follows the worldwide rules (00): no 5 GHz channel may host a hotspot, so the relay opens its hotspot on 2.4 GHz channel 6. With CN and the device package installed, the N1 can host its hotspot on 5 GHz channels 36 to 48 and 149 to 165.
Add your CarPlay identity
In the admin page, open Settings → Identity and certificates and choose identity.pk8 and certificate.p7b, or a ZIP that contains both. You can also put the files in place by hand.
Answer the setup guide
Work through the admin page’s setup guide: your car, the output (the head unit’s browser, its Carlink app, or both; with one adapter only the browser) and the network, then what it lists under getting ready. The relay’s own hotspot is OpenXPlay-Linux-XXXX with the password openxplay, unless you set your own. Answer the setup guide explains each choice.
Pair the iPhone
When Home asks you to pair the iPhone, tap Pair; pairing stays open for 10 minutes. On the iPhone, open Settings → Bluetooth and choose OpenXPlay Linux.
Open CarPlay on the head unit
Join the relay’s hotspot from the head unit and open https://10.77.0.1:8443/ in its browser; the admin page lists the head-unit address. Accept the certificate warning the first time; Troubleshooting explains why it appears. For the Carlink app, see Carlink app.
The N1 is now ready for the car: give it 12 V and the relay starts by itself. Using it in the car shows how to connect.
Using it in the car
One adapter
- The iPhone joins the relay’s hotspot
OpenXPlay-Linux-XXXXby itself and wireless CarPlay starts. - The head unit joins the same hotspot and opens
https://10.77.0.1:8443/in its browser. - Admin page: join the relay’s hotspot from your phone and open
https://openxplay-car.local:6975orhttps://10.77.0.1:6975.
Two adapters
- The iPhone joins the relay’s hotspot
OpenXPlay-Linux-XXXXby itself and wireless CarPlay starts. - Start the head unit’s Carlink app; the relay joins the head unit’s Carlink Wi-Fi with the USB adapter by itself, see Carlink app. For the head unit’s browser as well, the head unit joins the relay’s hotspot, as with one adapter.
- Admin page: join the relay’s hotspot from your phone and open
https://openxplay-car.local:6975orhttps://10.77.0.1:6975. While Carlink isn’t connected, you can also join the admin hotspotOpenXPlay-Adminand openhttps://openxplay-admin.local:6975orhttps://10.79.0.1:6975. The admin hotspot is off by default; turn it on under iPhone connection → Wireless network → Interfaces and network roles.
openxplay-car.local works on the iPhone’s network: the relay’s hotspot, or the car’s hotspot if you chose it; openxplay-admin.local works on the other networks, such as the admin hotspot and your home network. iPhones, Macs and Windows computers open these .local addresses; many Android phones can’t, so use the IP address there. Bookmark the page or add it to the Home Screen the first time, and you won’t need to type the address again.
Network and Wi-Fi
- The N1 can run its hotspot and a Wi-Fi station connection together only on one shared channel.
- Plug in a USB Wi-Fi adapter and the relay gives it Carlink by itself; you can also assign it by hand, or give it the admin hotspot, under iPhone connection → Wireless network → Interfaces and network roles in the admin page.
- The network cable can stay plugged in: at home, open
https://openxplay-admin.local:6975or the address the router gave the N1, or sign in over SSH.
Updates
- Relay: download and check the new
.deb, then runsudo openxplay-relay-update openxplay-relay_<version>_arm64.deb. If the new version doesn’t come up, it puts the previous one back; see Update the relay. - Device package: install the newer bundle as in Install the device package, then reboot. The installer never downgrades installed packages.
- Armbian kernel: after
armbian-updateinstalls a new kernel, the device package fixes the Ethernet PHY again by itself.
OpenXPlay Flasher
OpenXPlay Flasher has an N1 profile that installs the device package and the relay over SSH on the network, and its signed package list lists both N1 packages. Installing by hand with this guide is recommended. Flasher doesn’t install Armbian.
Uninstall
sudo apt-get purge openxplay-relay
sudo apt-get purge openxplay-phicomm-n1The first command removes the relay and keeps the settings, pairings and identity in /var/lib/openxplay; delete them with sudo rm -rf /var/lib/openxplay once you no longer need them. The second removes the device package and puts the original boot device tree back. To go back to the original system, see Want to keep the original system?
The device package uses the OpenXPlay-Hardware licence: open source, no commercial use; see Licensing.
Next
- Everyday use and settings: connecting on each drive, and the head-unit page’s settings.
- Trusted HTTPS: remove the certificate warning with a free domain name.
- Something not working? See Troubleshooting, and tell the community how your N1 did.
