Skip to main content

MikroTik Conversion Guide

Prerequisites​

  • RouterOS v7 device running CAPsMAN 2 (tested on 7.18.1)
  • RadSecProxy container running in your network.
  • For self-serve, a CLI wallet prepared for onboarding: https://docs.helium.com/mobile/wifi-conversion-onboarding/
  • For Helium Plus, certificates (ca.pem, cert.pem, key.pem) supplied by the Helium Plus team and copied into the RadSecProxy directory.
  • UDP ports 1812/1813 open between MikroTik and the RadSecProxy host.
  • Bridge interface already created and used as the datapath for Wi-Fi traffic.

High-Level Steps​

  1. Deploy the RadSecProxy container and note its IP.
  2. Create a RADIUS profile that points to the RadSecProxy.
  3. Build a Wi-Fi configuration profile for the Helium Passpoint SSID.
  4. Apply the profile to an interface (or create a virtual AP).
  5. Verify operation and troubleshoot, if necessary.

1. Deploy RadSecProxy​

At the time of writing, RouterOS does not support RadSec natively. Download the RadSecProxy container and run it in Docker.

  1. Unzip and untar the radsec-proxy-main.tar.gz file into the directory of your choice on the host machine. This will unpack the following items:
    1. Dockerfile - The Docker instructions on how to build the container
    2. radsecproxy.conf - The radsecproxy config file is pre-populated to connect to Helium Network AAA servers
    3. docker-compose.yml - File to start and stop the container as a daemon.
tar -xvzf radsec-proxy-main.tar.gz
  1. Into the same directory copy the 3 certificates obtained from the Helium Network
    1. ca.pem - the root CA certificate
    2. cert.pem - the user certificate
    3. key.pem - the key file matched to the certificate
  2. Start the container using:
sudo docker compose up -d
  1. If/when needed, stop the container using:
sudo docker compose down

Once the container is running, make sure you can ping it from the MikroTik router.

2. Add a RADIUS Profile​

In RADIUS add a new entry:

FieldValue
CommentHelium AAA
Servicewireless
AddressIP_of_RadSecProxy
Protocoludp
Secretmysecret
Authentication Port1812 (default)
Accounting Port1813 (default)
Timeout300 s
Enabled☑︎

3. Create a AP Configuration Profile​

Navigate to WiFi → Configuration and click Add (+).

Configuration Tab​

FieldValue
Namehelium-passpoint
Enabled☑︎
Modeap
SSIDHelium

Channel Tab​

Select the band and channel width appropriate for your deployment. Leave Frequency blank for automatic channel selection.

Security Tab​

Check WPA2 or WPA3 EAP under Authentication Types.

EAP Tab​

Check EAP Accounting to enable it.

AAA Tab​

Paste the MAC address of the WAN interface (usually ether1 by default) from the Interfaces menu, or enter the NAS-ID provided during Helium Plus onboarding.

Datapath Tab​

SettingValue
Bridgebridge1 (or the bridge used for LAN)

Interworking Tab​

The Interworking (Passpoint / Hotspot 2.0) profile is what advertises the Helium realms and carrier network identifiers over ANQP. If this profile is incomplete, handsets will see the SSID but silently fail to associate — so make sure the domain names, NAI realms, and 3GPP cellular network information are all present.

Fill in the profile as follows:

FieldValue
ANQP Domain ID0
Network Type2 (chargeable public network), access to internet
Operator NameHelium-Operator (language code eng)
IP Address TypeIPv4 available (ip-type ipv4 2), IPv6 not available
Domain Namesfreedomfi.com, hellohelium.com

NAI Realms — the Helium-issued credentials use EAP-TLS (13):

RealmEAP method
freedomfi.com13 EAP-TLS
hellohelium.com13 EAP-TLS

Add a further realm for each carrier your site is approved to offload. Those are SIM-based, so they use EAP-AKA (23) and take the form wlan.mnc<mnc>.mcc<mcc>.3gppnetwork.org. The realms and their MCC / MNC values are provided to you during Helium Plus onboarding.

3GPP Cellular Network Information (PLMN, MCC / MNC):

Add one PLMN entry per approved carrier, using the same MCC / MNC pairs as the realms above. Reach out to your Helium Plus contact if you do not have them.

Equivalent RouterOS CLI​

The same profile can be applied from the CLI. This is a known-good Helium Passpoint profile — substitute your onboarding NAS-Identifier on the aaa attribute line, and your onboarding carrier realms and MCC / MNC pairs on the nai-realm and 3gpp-plmn lines:

hotspot profile Helium-profile
hotspot profile Helium-profile anqp-domain-id 0
hotspot profile Helium-profile network-type 2 access-internet
hotspot profile Helium-profile operator-name Helium-Operator language-code eng
hotspot profile Helium-profile ip-type ipv4 2 ipv6 0
hotspot profile Helium-profile domain-name freedomfi.com
hotspot profile Helium-profile domain-name hellohelium.com
hotspot profile Helium-profile nai-realm freedomfi.com encoding-type 0
hotspot profile Helium-profile nai-realm freedomfi.com eap-method 13
hotspot profile Helium-profile nai-realm hellohelium.com encoding-type 0
hotspot profile Helium-profile nai-realm hellohelium.com eap-method 13
# Then, per approved carrier, using the realm and MCC / MNC from your onboarding:
hotspot profile Helium-profile nai-realm wlan.mnc<mnc>.mcc<mcc>.3gppnetwork.org encoding-type 0
hotspot profile Helium-profile nai-realm wlan.mnc<mnc>.mcc<mcc>.3gppnetwork.org eap-method 23
hotspot profile Helium-profile 3gpp-plmn mcc <mcc> mnc <mnc>
security-object Helium security protocol-suite wpa3-aes-8021x
aaa attribute NAS-Identifier <your-nas-id>
ssid Helium hotspot-profile Helium-profile
save configuration
Native RadSec + Orion Wi-Fi

Newer RouterOS releases support RadSec natively (removing the need for the RadSecProxy container in step 1) and document the matching Passpoint / Orion Wi-Fi setup. See MikroTik's Interworking Profiles — Configuration guide using native RadSec and Orion Wi-Fi.

4. Attach the Profile to an Interface​

Assign the configuration profile to the desired Wi-Fi interface. Either click New (this will create a virtual AP) or Edit an existing master interface.

Make sure to select the correct 5/2.4 interface according to the band defined in the configuration profile.

Enable it on the General tab.

5. Verification​

  • Confirm that the Helium SSID is visible.
  • In logs, watch for successful radius authentication messages.
  • On the RadSecProxy host use docker logs -f radsecproxy to ensure TCP/TLS sessions are established.
  • On a compatible handset, ensure automatic connection with the carrier profile.