HaLow WiFi Telemetry + Video

For some time I’ve wanted an affordable, easily scaled, relatively high-bandwidth telemetry system. I’ve tried several, the most performant of which was SIYI’s HM30, but it’s a little expensive and inflexible for my needs. I do recommend the HM30 if its feature set appeals to you.

Enter HaLow WiFi devices that plug into any existing LAN and act as transparent bridges. HaLow devices operate using IEEE 802.11ah on 915 MHz in the US and on 868 MHz in the EU. Fair warning - EU-compliant devices tend to be significantly less performant due to regulatory restrictions. I tested only the 915 MHz US version.

The sub-GHz frequency band and direct link between HaLow devices allow for long range (~500m over the ground), moderate bandwidth (up to ~20 Mbps) connections, tolerant of some obstruction. Max range can be increased significantly in ideal, direct LOS conditions (ground-to-air).

An Ethernet enabled autopilot is required to use HaLow bridges as described in this post. If you have a CAN port and free serial port on an H7 autopilot, the CubeNode ETH can be used in lieu of a native Ethernet port. HaLow bridges can also be easily configured to forward data between a companion computer and the GCS, but that is not covered here.

Hardware:

Power supply and wiring:

  • The onboard HaLow bridge and network switch run on 5V DC at around 100–200 mA total. I powered them using a 5V BEC onboard the Rover.
  • The IP camera uses 12V DC power and tolerates the dirty 13-14V from the onboard ICE charging system’s regulator just fine.
  • The autopilot, onboard HaLow bridge, and the IP camera all connect to the network switch via standard Ethernet cables.

Antenna mounting:

  • The multiband antennas showed about 1.5:1 VSWR on a low-cost spectrum analyzer. There are certainly higher-performance options available, but these worked well, and I have no plans to replace them.
  • On the Rover, the antenna was mounted on an aluminum sun shield, which conveniently doubled as a ground plane.
  • The GCS antenna was mounted on a fabricated ground plane near the ceiling on the first floor of a brick house. While this indoor placement was less than ideal, it provided easy access and served as a stress test. I plan to roof-mount it permanently in the future.

Range testing:

  • For nearly direct line-of-sight testing, I mounted the camera and fixed antenna on top of a ladder, then drove around a rural, flat neighborhood with a laptop-connected bridge and antenna fixed to the roof of a car. Unfortunately, I didn’t get pictures of that goofy rig!
    • Results showed usable video out to 200-300m, choppy video at 400-500m, and unreliable connection beyond that. Re-connection was seamless but usually required closing to within 250m to re-establish the HaLow link.
    • I expect that a high-mounted outdoor antenna or ground-to-air application could increase the max usable range easily beyond 1km.
  • In its current installed configuration, the video stream remains usable out to ~200 m, and I’ve never seen telemetry dropouts while operating within my typical 2-acre mowing area.
  • I did briefly test the included “rubber duck” antennas, and performance was surprisingly only marginally worse than the higher gain antennas. I think they’d be quite viable on an airborne platform.

Telemetry data rate:

  • The MAVLink 2 data rate is consistently ~2 kbps.
  • Packet loss occurs in bursts and can sometimes exceed the rate of received packets at longer ranges, likely due to retransmission over the high-bandwidth link. MAVLink 2, including NTRIP forwarding, proved highly reliable, even when the packet loss rate appeared high or the link quality dropped below 20%. See notes below regarding video stream impact.
  • Throughput was noticeably better than SiK radios and similar transport methods. Large flight plans or log files of a few MB transferred via MAVFTP within seconds. Very large log files were still somewhat problematic, and I recommend accessing those directly from the SD card.

Video stream:

  • The Amcrest camera provides two configurable streams. I left one at the default 1080p configuration and modified the substream to H.264-encoded 480p.
  • Amcrest’s own software appears to apply additional optimization, as video viewed through the camera’s web app looked sharper than the same stream played via VLC or GStreamer.
  • Video streaming did increase packet loss rates, though the GCS link remained usable throughout testing. I did encounter some NTRIP dropouts when using my NTRIP Lua script to access an NTRIP stream directly while streaming telemetry and video. Switching to Mission Planner’s built-in NTRIP forwarding feature seemed to reduce bandwidth demand and resolved the issue. The Lua script remains very useful when video streaming is disabled.

NET_ Parameters:

These parameters configure an Ethernet-enabled autopilot to forward MAVLink 2 over UDP broadcast with a DHCP-assigned IP:

NET_DHCP,1
NET_ENABLE,1

NET_GWADDR0,<your>
NET_GWADDR1,<router's>
NET_GWADDR2,<ip>
NET_GWADDR3,<address>

NET_IPADDR0,<your>
NET_IPADDR1,<autopilot's>
NET_IPADDR2,<assigned>
NET_IPADDR3,<DHCP address>

NET_NETMASK,24
NET_OPTIONS,0

NET_P1_IP0,255
NET_P1_IP1,255
NET_P1_IP2,255
NET_P1_IP3,255
NET_P1_PORT,14550
NET_P1_PROTOCOL,2
NET_P1_TYPE,1

Tip: Set a static DHCP lease in your router so the autopilot always receives the same IP.

Mission Planner Video Streaming:

This configures Mission Planner to view the 480p substream.

  • Right click on the HUD in Mission Planner
  • Select Video->Set GStreamer Source
  • Enter the following pipeline, substituting your camera’s username, password, and IP address as appropriate:
rtspsrc location="rtsp://admin:password@xxx.xxx.xxx.xxx:554/cam/realmonitor?channel=1&subtype=1" latency=20 udp-reconnect=1 timeout=0 do-retransmission=false ! application/x-rtp ! decodebin3 ! queue max-size-buffers=1 leaky=2 ! videoconvert ! video/x-raw,format=BGRA ! appsink name=outsink sync=false

To achieve the results pictured below, right click the HUD again and select Swap with Map. I’m also using @Eosbandi’s NextGen Messages plugin.

Note: the screenshot shows 4.7-dev firmware, but all features described here are available in ArduPilot’s current 4.6.2 stable release.

Additional bench testing:

  • A CubeOrange+ with CubeNode ETH performed well and supports all features described here. Its throughput is somewhat limited compared to an autopilot with onboard Ethernet, but I don’t expect this to matter except for very large log downloads.
  • A CUAV 7 Nano proved equally capable as the v6X. Its only limitation is fewer available physical ports, which does not affect network performance.

Many thanks to:

  • ardupilot.org for sponsoring the HaLow hardware and camera
  • CUAV for sponsoring the v6X and Nano 7+
  • CubePilot for sponsoring the Cube Orange+ and CubeNode ETH and to @bugobliterator for direct configuration support
  • @Swebre for the antenna type and sun shield/groundplane idea
13 Likes

Thanks Yuri, - excellent.

Getting the telemetry comms reliable is a key challenge in keeping these bigger mowers safe.

1 Like

The addition of an IP camera that’s broadcast on your home LAN is clutch, I think! Other video solutions require bespoke transmitters and receivers, and they aren’t as easily accessed.

Latency with this system at close range is negligible enough to drive manually by video alone (20ms or so). At longer range, it increases somewhat, but I can still pretty confidently maneuver around with the RC transmitter or “fly to here” GUIDED commands anywhere on the property. Moreover, from a safety standpoint, I can see what’s happening!

And the link is FAST. I demo’d this at MowStock, and everyone was pretty surprised at how fast we were able to transfer max-sized missions or download a tuning log.

To be clear, though, this system isn’t specific to mowers/ground Rovers. For local flying within the range of the system, a mesh network, or a clever 4G modem configuration, it could be quite useful on airborne platforms, as well.

2 Likes

i have experiment with Halow using

Bandwidth 20MHz
RTSP H264 (1080p 25fps) 500meters
RTSP H264 (720p 25fps) 600meters

Bandwidth 10MHz
RTSP H264 (1080p 25fps) too much freeze even in short distance
RTSP H264 (720p 25fps) 1.5km

yuri you are not playing with bandwidth yet?

1 Like

I recently installed my halow wifi connection, but I added a small wifi router on my rover for everything on the vehicle to connect to.

My plan was to flash the tp link 703n router to openWRT, then use its USB port for a LTE modem and its VPN functionality for when it went out of range but due to an some late night shopping I ordered the 702n by mistake that looks almost identical but wasn’t compatible with openwrt and doesn’t have a usb port.

I have ordered a TP-Link TL-MR3020, it’s the replacement for the 703N that isn’t available any more.

I upgraded the antenna to a much bigger type N 868 antenna.

2 Likes

These devices came with no manual, and I’m assuming the settings are fixed and not configurable.

However, I did find that I can ping 192.168.100.1 on my network (which is not on the 192.168 subnet), suggesting that perhaps they can be configured like other inexpensive HaLow hardware manuals describe. I have not yet been able to actually connect to the web interface. I will update this blog if I succeed at altering the factory settings.

EDIT: I cannot configure these. Even a direct connection and static IP on a laptop does not succeed at any sort of communication with them.

Thank you for your detailed test, which is very valuable for aircraft equipped with image transmission.

You got a youtube video on this on your channel?

No. Was the writeup unclear?

try in this morning got video feed *2.2KM before went blank with stock antenna but RSSI never disconnected (-77 for the lowest) so basically still can go much further with just telemetry, so unfortunate the cable disconnect from the FC and no solder in the field, technically i want make the same like OpenIPC

*measurement from maps

4 Likes

For those interested in Halow I’ve been checking out some other options

  • Heltec have a Halow Router / Access Point HT-H7608. It runs Openwrt router software and is also a Wifi access point. US$79. I have one setup on isolated network (VLAN) for my RC stuff and I like it !

  • Heltec also have a dongle HT-HD01 US$69 that can either be an access point or a station. It also has both Wifi and Halow , USB and Ethernet ports. I’ve done some range testing using my phone connected to the Wifi and the Halow connected to the router. Seems pretty good. I waiting to upgrade my flight controller with Ethernet so I can deploy it.

These Heltec units are about double the price of the Anjielo units Yuri used . But they have a proper router that you can get into. Whereas the Anjielo you have to press a button to pair the units and its a black box.

Another promising option is a new Halow product coming from 3DR that has telemetry and Ethernet ports.

I had been looking at if I could deploy Dronebridge to an ESP32 based Halow board from Seeed or Heltec to get Halow telemetry for a flight controller without Ethernet. However the 3DR stuff looks like a smarter way to go.

1 Like

There are also those router boards from ALFA with 29dbm TX power and MicroMorse chipset (open source drivers!) just like the Heltec devices: