Travelmate support thread


in the OpenWrt stable & snapshot package repo you'll find the travelmate package, a wlan connection manager for travel router.

Main Features

  • STA interfaces operating in an "always off" mode, to make sure that the AP is always accessible
  • Easy setup within normal OpenWrt environment
  • Strong LuCI-Support with builtin interface wizard and wireless connection manager
  • Fast uplink connections
  • Support all kinds of uplinks, incl. hidden and enterprise uplinks
  • WPA3 support
  • continuously checks the existing uplink connection (quality), e.g. for conditional uplink (dis-) connections
  • captive portal detection with internet online check and a 'heartbeat' function to keep the uplink connection up & running
  • automatically add open uplinks to your wireless config, e.g. hotel captive portals (disabled by default)
  • captive portal auto-login hook (configured via uci/LuCI), you could reference an external script for captive portal auto-logins
  • treats a missing internet availability as an error (optional, disabled by default)
  • proactively scan and switch to a higher prioritized uplink, despite of an already existing connection
  • opt-out/temp. stores faulty uplinks in a 'Faulty Stations' list
  • automatically resets the 'Faulty Stations' list after n minutes, default is '0' which means no expiry (default behaviour)
  • support devices with multiple radios in any order
  • procd init and hotplug support
  • runtime information available via LuCI & via 'status' init command
  • status & debug logging to syslog
  • optional: the LuCI frontend shows the WiFi QR codes from all configured Access Points. It allows you to connect your Android or iOS devices to your router’s WiFi using the QR code
    For Luci screenshots see following post.

stable OpenWrt version 19.07: travelmate 1.5.3 plus luci companion package

latest snapshot version: travelmate 1.5.3 plus luci companion package

Link to the latest travelmate documentation

Feel free to test, ask questions or make suggestions.


release 1.5.3

  • some init tweaks
  • use the usual wifi wrapper for reloads
  • compatibility fix for latest wifi-related changes
    in master (dynamic wireless radio reconfiguration)
    release 1.5.2
  • print to stdout if 'logger' is not available
  • add support to set the service nice level (default is 0)
  • small fixes / polish up for forthcoming 19.07 release
    release 1.5.1
  • fix section naming in wireless & travelmate config
  • check/enable disabled 'wifi-device' sections
  • fix LuCI frontend issues (separate PR)
    release 1.5.0
  • add WPA3 support
  • fix service status message
  • refine trigger handling
    release 1.4.13
  • add support for optional args in auto-login script
    release 1.4.12
  • automatically add open uplinks to your wireless config, e.g. hotel captive portals (disabled by default)
  • shift net status check in a separate function
  • (s)hellcheck cosmetics
    release 1.4.11
  • fix logical glitch in last commit
    release 1.4.10
  • add a missing dnsmasq dependency
  • add a captive portal auto-login hook (configurable via uci/LuCI), you could reference an external auto-login script - see readme
  • provide an auto-login script for german ICE hotspots (/etc/travelmate/wifionice.login), requires 'curl'
  • small fixes
    release 1.4.9
  • fix a corner case issue with auto expiry of the 'Faulty Station' list (the last run information was not updated)
    release 1.4.8
  • optimize the main scan/iwinfo call (performance & system load):
    • remove a needless f_trim function call
    • remove a redundant awk call
    • reduce the scan buffer size and make it configurable (trm_scanbuffer, default 1024 bytes)
  • cosmetics
    release 1.4.7
  • tweak 'f_check' function
  • code cleanup
    release 1.4.6
  • fix connection to uplinks with special char '/' in essid
  • cosmetics
    release 1.4.5
  • add a 'Net Error Check' which treats a missing internet availability as an error (disabled by default)
  • add a 'List Auto Expiry' which automatically resets the 'Faulty Stations' list after n minutes, default is '0' which means no expiry (old behaviour)
  • rework major parts of the check subroutine
  • add both features to LuCI frontend (separate PR/commit)
    release 1.4.4
  • refine captive portal detection/rebind protection handling, heavily tested with Deutsche Bahn hotspots ... :wink:
  • add rebind whitelist logging
    release 1.4.3
  • remove leftover from last commit
  • enhance rebind protection whitelisting: support multiple, cascaded captive portal domains
    release 1.4.2
  • fix a json related ressource leak
  • add a reload trigger when the wireless config gets changed
  • set an interface default 'trm_wwan' (like the LuCI frontend)
  • reordered nested loops to optimize the connection handling
    bugfix 1.4.1
  • fix for openwrt#8357
  • fix unexpectedy calling option_cb() during wireless config_load
  • react immediately when the current active uplink connection/configuration gets deleted
    stable release 1.4.0
  • various small tweaks & fixes
  • widely tested, ready for forthcoming 19.x branching
    release 1.3.7
  • fix a possible 'reload' race condition
    release 1.3.6
  • add captive portal domains automatically to the related domain whitelist (dhcp option 'rebind_domain'), if rebind protection/RFC1918 is enabled
    release 1.3.5
  • rework procd trigger handling
  • react immediately on if down network events
  • remove needless apply hook in LuCI
    release 1.3.4
  • fix runtime behaviour with empty scan results on radioX

  • fix radiolist preparation (prevent dups)

  • further optimize 'ProActive' mode
    release 1.3.3

  • re-fine/optimize re-connection logic in 'ProActive' mode

  • prevent needless ubus network reload calls
    release 1.3.2

  • support named 'wifi-iface' sections correctly
    release 1.3.1

  • remove the "--spider" download option from captive portal detection to make the heartbeat function more robust. Keep the uplink connection 'alive' with all sorts of portals.
    release 1.3.0

  • proactively scan and switch to a higher prioritized uplink,
    despite of an already existing connection,
    this is configurable via 'trm_proactive' option
    (default '1', enabled)

  • fix some minor list trim issues

  • optimize wlan scanning behaviour

  • refine debug messages
    release 1.2.4

  • with the config option 'trm_radio' you can now restrict travelmate to a single radio (e.g. 'radio1') or change the overall scanning order (e.g. 'radio1 radio2 radio0')

  • LuCI: show QR codes now inline on the overview page (collapsed by default)
    release 1.2.3

  • remove needless third status "not connected", use only "running / not connected" and "connected"

  • change indentation from spaces to tabs (saves 4kb)

  • small fixes

  • update readme
    release 1.2.2

  • fix restart behaviour after successful connection

  • fix labeling of faulty stations

  • optimize re-connect behaviour at locations where multiple uplinks with the same SSID are in range

  • use procd pidfile handling

  • refine logging

  • small fixes
    release 1.2.1

  • Backend:

  • no longer rename faulty uplinks in /etc/config/wireless, but save uplink state in json runtime information. To reset the saved state simply restart travelmate processing.

  • Frontend:

  • Runtime Information, Logview and Station Overview are now dynamically updated via XHR poll

  • New runtime information for "Faulty Stations" (Travelmate backend will no longer rename faulty uplinks)

  • Add a new "Restart" button to reset "Faulty Stations" information and trigger a Travelmate restart

  • In Stations overview the currently used uplink is emphasized in blue, faulty uplinks in red

  • Numerous cleanups (e.g. space=>tab indentation) and other small fixes
    release 1.2.0

  • union 'automatic' and 'trigger' mode, now much more responsive if an uplink suddenly disappears

  • tidy up (disable) travelmate related uplink connections if you disable the service

  • change default config ('trm_automatic' removal)

  • documentation update

  • LuCI: remove needless 'automatic' and 'trigger' options plus small fixes
    release 1.1.3

  • fix remaining status oddities

  • LuCI: show WiFi QR codes from all configured Access Points
    release 1.1.2

  • validate input timings/ranges

  • fix an eap detection issue

  • refine re-connection handling in case of an error

  • refine debug logging
    release 1.1.1

  • various backend bugfixes

  • refine default connection threshold
    release 1.1.0

  • checks continuously the signal quality for conditional uplink (dis-) connections

  • captive portal detection with internet online check and a 'heartbeat' function to keep the uplink connection up & running
    release 1.0.2

  • rework debug & status output (incl. new running status)

  • LuCI: refine status view

  • LuCI: add two missing eap auth variants

  • LuCI: a few visual fixes
    release 1.0.1

  • corner case fix with multiple (partly disabled) radios

  • LuCI: BSSID will be ignored by default in 'wireless add' dialog

  • LuCI: Textarea 'autoscroll down' in logfile view

  • LuCI: refine logfile search term
    release 1.0.0 (first feature complete version, without any bugs! :wink: )

  • limit sta interface selection/handling to defined travelmate interface (trm_iface) only

  • check eap capabilities and ignore enterprise uplinks as long as eap support is not available

  • documentation update

  • cosmetics

  • LuCI: various cleanups
    release 0.9.6

  • fix incomplete bssid logic

  • add missing package dependencies

  • Turris omnia compability fixes

  • OpenWrt theme fixes
    release 0.9.5

  • change start priority to 25

  • add support for hidden uplinks

  • add support for wpa enterprise uplinks
    release 0.9.3

  • backend/frontend: supports a Connection Limit ('trm_maxretry') of '0', to disable this feature (unlimited retries)
    release 0.9.2

  • backend: fix typo in log message

  • frontend: add/modify input datatypes in 'extra' section

  • frontend: add support to edit/change wpa enterprise key phrases

  • frontend: various small fixes
    release 0.9.1

  • backend: load procd reload trigger only in 'manual' mode

  • backend: documentation update

  • frontend: further optimized Station Overview & Scan page, especially for mobile devices

  • frontend: add a "Rescan" button in manual mode on overview page

  • frontend: XHTML fixes
    release 0.9.0

  • backend: handle errors due to misconfigured uplinks

  • backend: various bugfixes

  • frontend: add a powerful wireless station manager to edit and delete existing interfaces or scan for new uplinks

Ancient Releases

OpenWrt version 18.06: travelmate 1.2.2 plus luci companion package
LEDE version 17.01: travelmate 1.0.2 plus luci companion package

Have fun!

Using WRT1900ACSv2 as both wireless client and wireless AP
Are concurrent Client Mode connections possible?
Interface troubles with multiple virtual wifi SSIDs on LEDE
Is it possible store a list of SSID for mode WIFI client wan on router?
Create a custom image with a specific package updated
Using device as "Hotspot-Router" (WISP-Mode)?
"Unsaved Changes" remain forever
OpenWrt Repeater Losses Connection Periodically
Android WiFi Hotspot as Failback to Cable WAN?
OpenWrt 18.06.1 Wifi client / Wifi Extender or Repeater or Bridge Configuration with splash screen login at (No WPA2 key)
RE450 as a repeater
Tl-mr3420 router using Android hotspot
Newbie question: how can I broadcast Master SSID if Client SSID not associated?
First time trying to connect to hotel captive portal
WiFi AP+STA on Mt7688 + MT76 driver
Use any of pre-selected number of WiFis, as a repeater/A
[Solved] No wireless with no WAN connection
Configure wifi station with 4G access SOLVED
[SOLVED] A second wifi to reach the web without captive portal requests
Linksys wrt320n as repeater of iPhone hotspot
Configure Wifi Bridge over Wifi
Missunderstanding configuration
RV-Link WF-CON WIFI Internet Extender for Recreational Vehicles
What type of WiFi scan does OpenWrt do, passive or active?
Is My Network Goal Possible?
Master network goes down if Wireless client can't connect
Amplify unsecured network
How to configure raspberry pi 3b+ as a repeater
Is OpenWrt forwarding SSDP or mDNS to WAN?
How do I set up a NAT/DHCP isolated private local network?
Client mode wireless connection Drops out

Screenshots from the new LuCI-GUI

At this stage travelmate has been tested successfully with the following devices:

  • GL-AR750
  • GL-MT300v2
  • HOOTOO TM-05
  • TL-RE450
  • TL-WR902AC
  • Xiaomi MiWiFi Mini
  • TP-Link 720nv3
  • NETGEAR R6100
  • GL-AR750S
  • GL-AR300M
  • [...]

Have fun!


Thanks! This looks great! I have a half dozen devices that this will make more useful and easier to maintain.

Thanks for your feedback! It would be nice to know, on which devices (model/chipset) you are using travelmate.

My plans are to use it on NEXX WT3020 (MT7620n), A5-V11 (RT5350F) and potentially, some RT5350F-based audio streaming endpoints. Oh, it will probably come in handy on my ZSun Card reader too (AR9331).

Not sure when I'll actually get around to trying it out. I have a bunch of other projects competing for my time.

I am using travelmate on a Xiaomi MiWiFi Mini.

The Xiaomi MiWiFi Mini has some characteristics that make it very usable for my use case, and it is very cheap, only 22 Euro, including shipping from China. I use this router as a travelrouter on a small ship to connect to the WiFi in harbors I visit. It is standing behind the windscreen, mostly in direct sunlight, so the white color prevents it from overheating.
It is a dualband router with external antennas. The range is very good (on 2.4 GHz). The 5 GHz is used for the local network. I alse have a guest network, but that is mainly for showing off :smiley: .

My first experience with travelmate (version 0.4.x) was with a GL-inet GL-AR150-Ext. It worked like a charm and was much more stable than with the software from GL-inet. I then switched to the Xiaomi MiWiFi Mini, because I wanted a little bit more reach (the GL-inet GL-AR150 has only about 63 mW).

Travelmate didn't work the way I was expecting with 2 radio's. I contacted Dirk and 3 days (!) later Dirk send me a version that was able to have the AP en the station at different radio's.

After that there was only one thing missing in the LuCI-GUI of travelmate: an easy way of adding and editing stations. Before I could contact Dirk about this, version 0.9.0 was released.

I have no more wishes.
Travelmate is realy great.

Update: I have one more wish :blush:
Is it possible to make disabling of misconfigured uplinks optional?
Yesterday I left the harbor with my ship, that had an active link with the Wifi in the harbor. At some point the Wifi of the harbor is still visible, but it is no longer posible to maintain the connection. Travelmate renames the uplink to SSID_err. When I return to the harbor travelmate does not reconize the uplink anymore. After renaming the uplink to SSID everything is working again.

Hi Freek,
it's always a pleasure ... :wink: ... I think it should be sufficient to raise the Connection Limit (trm_maxretry to 10 or 20). Anyway, in travelmate 0.9.3 you could set the above parameter to '0' which means unlimited retries.

Best regards

Thank you very much.
Will report after the weekend.

Dirk, it works as expected.
What can I say more :smile:

thanks for your feedback! :sunglasses:


I failed to get my RE450 working as a repeater via the wiki (relayd), so I just tried this. I installed travelmate and luci-app-travelmate, but I cannot find the wizard and wireless station manager that is shown in the screenshots and mentioned in the recommended setup in the readme. All I have is:


Is the wizard I'm looking for hiding somewhere other than Services>Travelmate?

EDIT: The manual setup worked perfectly, and I'm very happy. I'm just curious about the wizard. Thank you for this simple to configure, functional tool!

Hi, you've installed the old/ancient "stable" release ... to get the wizard and all the advanced LuCI stuff use the download links referenced in the first post of this thread and install it manually via opkg package manager.

Anyway, nice to hear that the old version still works for you ...:smiley:

Oh, whoops. Thanks. Maybe I'll upgrade later then.

I compile travelmate in openwrt
Compile successful however travelmate is not working
Kindly anybody help me what's wrong?
attached screen short logfilelogfile

internal server error in wireless station section

/usr/lib/lua/luci/dispatcher.lua:433: Failed to execute template dispatcher target for entry '/admin/services/travelmate/stations'.
The called action terminated with an exception:
/usr/lib/lua/luci/template.lua:97: Failed to execute template 'travelmate/stations'.
A runtime error occured: [string "/usr/lib/lua/luci/view/travelmate/stations...."]:24: attempt to call global 'url' (a nil value)
stack traceback:
	[C]: in function 'assert'
	/usr/lib/lua/luci/dispatcher.lua:433: in function 'dispatch'
	/usr/lib/lua/luci/dispatcher.lua:168: in function

travelmate config screen short


wireless config screen short

When does this error comes up? If you click on the "Wireless Stations" tab?
In a first step you can try to reset your luci caches:

/etc/init.d/uhttpd stop
rm -f /tmp/luci-indexcache
rm -rf /tmp/luci-modulecache
/etc/init.d/uhttpd start

But I doubt that this will help.
In a second step edit /usr/lib/lua/luci/view/travelmate/stations.htm and replace all occurencies of ...


Please note: I never tested travelmate with an ancient Chaos Calmer release and I have no device (and no time) for testing.

I compile CHAOS CALMER (Chaos Calmer, r49389)
After I follow your changes, no error in "wireless station" tab

Thanks for testing. I've provided a CC-bugfix with this Pull Request.