Enable the UBNT Compliance Test ( Working Method )
Contents
- 1 What Is UBNT Compliance Test Mode?
- 2 What You Need Before Starting
- 3 π Which Method Do You Need? Click Your Device
- 4 All Methods β Step by Step
- 5 Device & Firmware Compatibility
- 6 How to Verify Compliance Test Is Active
- 7 Firmware Issue? Device Above 5.5.6 That Won’t Downgrade
- 8 Related ISP Guides
- 9 Frequently Asked Questions
To enable Compliance Test on UBNT devices: connect via PuTTY SSH to your device β run enable_ct β then touch /etc/persistent/ct β save β reboot. For devices where enable_ct doesn’t work (like PowerBeam 5AC), use the persistent script method below.
Ubiquiti removed the Compliance Test option from airOS starting with firmware 5.5.8, following FCC and other regulatory body requirements. This locked many ISP operators out of licensed frequencies they had the legal right to use. This guide covers every working method to re-enable it β from the simple one-line SSH command to the full persistent script for newer firmwares.
What Is UBNT Compliance Test Mode?
Compliance Test (also called Country Code 511 or “Licensed” mode) is a special country code setting in Ubiquiti airOS that unlocks all available frequencies supported by the radio hardware β including those outside the standard unlicensed bands (2.4 GHz and 5 GHz).
| Mode | Frequencies Available | Who Uses It |
|---|---|---|
| Normal (Country-locked) | Limited to your country’s regulations | Regular home/office users |
| Compliance Test (Code 511) | All hardware-supported frequencies | Licensed ISP operators, engineers |
When you set the country code to 511, the Wireless tab shows a “Compliance Test” or “Licensed” country option and the frequency scan list expands to include all channels the hardware supports β including licensed bands used by ISPs for point-to-point links.
In my work as an ISP network engineer, we use Compliance Test mode on licensed 5 GHz point-to-point links where regulatory congestion on standard channels makes the connection unreliable. The licensed spectrum is cleaner and gives significantly better performance for our WISP backbone links.
What You Need Before Starting
- PuTTY (free SSH client) β Download from putty.org
- Your UBNT device’s IP address (default:
192.168.1.20) - SSH credentials β default username:
ubnt/ password:ubnt - Your computer connected to the same network as the UBNT device
- SSH service enabled on the device (enabled by default in airOS)
192.168.1.20 for most airMAX devices.π Which Method Do You Need? Click Your Device
Different UBNT devices and firmware versions require different approaches. Click your situation:
Method
All Methods β Step by Step
Works on: Rocket M2, Rocket M5, NanoStation M series, most older airMAX M devices
Does NOT work on: PowerBeam 5AC, newer AC-series devices (use Method 2 instead)
Step 1 β Connect via PuTTY
- Open PuTTY
- Enter your device IP in Host Name (e.g.
192.168.1.20) - Port:
22| Connection type: SSH - Click Open
- Login:
ubnt| Password:ubnt(or your custom credentials)
Step 2 β Run These Commands
Enter the following commands one at a time, pressing Enter after each:
enable_ct touch /etc/persistent/ct save reboot
Works on: PowerBeam 5AC, PowerBeam M5, any device where enable_ct fails, firmware 5.6.x+
This method creates a persistent startup script that sets country code 511 every time the device boots.
Step 1 β Connect via PuTTY (same as Method 1)
Step 2 β Create the Script
Copy and paste this entire block into PuTTY (right-click to paste):
cat > /etc/persistent/rc.poststart << 'EOF' #!/bin/sh insmod /lib/modules/2.6.32.71/ubnt_spectral.ko iwpriv wifi0 setCountry Ub ifconfig ath0 down ifconfig wifi0 down sleep 5 rmmod /lib/modules/2.6.32.71/ubnt_spectral.ko ifconfig ath0 up ifconfig wifi0 up echo "countrycode=511" > /var/etc/atheros.conf sed -i 's/840/511/g' /tmp/system.cfg echo '<option value="511">Compliance Test</option>' >> /var/etc/ccodes.inc EOF
Step 3 β Make it Executable & Save
chmod +x /etc/persistent/rc.poststart save reboot
/lib/modules/2.6.32.71/). If you’re on a different firmware version, this path may differ. Verify with: ls /lib/modules/Works on: All airMAX devices | No SSH required β everything done through the web browser
This method edits the backup configuration file to change the country code to 511, then re-uploads it via the web interface.
- Log into your UBNT device web interface in your browser
- Go to System tab β Download the backup configuration file (
.cfg) - Open the downloaded
.cfgfile in Notepad (Windows) or any text editor - Press Ctrl+F and search for
countrycode - Find the lines:
radio.countrycode=XXXandradio.1.countrycode=XXX - Change both values to
511:radio.countrycode=511 radio.1.countrycode=511
- Save the file (Ctrl+S)
- Go back to the UBNT web interface β System tab β Upload Configuration
- Upload the edited
.cfgfile and wait for the device to apply it - Reboot the device
Device & Firmware Compatibility
| Device | Method 1 (enable_ct) | Method 2 (Script) | Method 3 (Web) |
|---|---|---|---|
| Rocket M2 / M5 | β Works | β Works | β Works |
| NanoStation M2 / M5 | β Works | β Works | β Works |
| NanoBeam M5 | β Works | β Works | β Works |
| PowerBeam M5 (XM board) | β Works | β Works | β Works |
| PowerBeam 5AC (XW board) | β Fails | β Works | β Works |
| AirGrid M5 HP | β Works | β Works | β Works |
| Rocket 5AC Lite/Prism | β Fails | β Works | β Works |
| LiteBeam 5AC | β Fails | β Works | β Works |
| Firmware below 5.5.6 | β Built-in option | Not needed | Not needed |
| Firmware 5.5.8 β 5.6.x | β Works (most) | β Works | β Works |
How to Verify Compliance Test Is Active
After rebooting, confirm Compliance Test mode is working using either of these methods:
Method A β Check via Web Interface:
- Log into airOS web interface
- Go to Wireless tab β Country
- Look for “Compliance Test” or “Licensed” in the dropdown
- If visible and selectable β it’s working β
Method B β Verify via SSH:
iwpriv wifi0 getCountry # Expected output: wifi0 getCountry:UB iwpriv wifi0 getCountryID # Expected output: wifi0 getCountryID:511
getCountryID returns 511 and getCountry returns UB (Ubiquiti), Compliance Test mode is active and working correctly.Firmware Issue? Device Above 5.5.6 That Won’t Downgrade
Some devices β particularly the AirMAX PowerBeam M5 shipped with firmware 5.6.2 β cannot be downgraded via the web interface. In these cases:
- Use TFTP firmware recovery to flash firmware version 5.6.3 (or the latest available for your board type)
- After TFTP flash completes and device reboots β do not touch the web interface yet
- Immediately connect via SSH and apply Method 2 (Script) above
- Run
saveandreboot
Related ISP Guides
Frequently Asked Questions
enable_ct command does not work on the PowerBeam 5AC and other AC-series devices (XW and TI board variants). These devices use a different hardware architecture. For the PowerBeam 5AC, you must use Method 2 (the persistent script method) or Method 3 (the web configuration file edit method).iwpriv wifi0 getCountryID via SSH β it should return 511./etc/persistent/rc.poststart) survives reboots because it’s stored in persistent storage. However, the script runs every time the device boots to re-apply the country code setting. The country code selection you make in the Wireless tab (after setting it to Compliance Test) also survives reboots β it’s saved in the system configuration. So once set up correctly, you won’t need to touch it again after reboots.192.168.1.20 for most airMAX devices). Set Port to 22 and Connection Type to SSH. Click Open. When prompted, enter username ubnt and password ubnt (these are the default credentials). If you changed the credentials, use your custom ones. If the connection is refused, make sure SSH is enabled in the airOS System tab./lib/modules/2.6.32.71/ which corresponds to firmware v6.3.0. If you’re on a different firmware version, check your exact path by running ls /lib/modules/ via SSH. Update the two insmod and rmmod lines in the script with the correct path for your firmware version. The rest of the script remains the same.