Successful bring up of HaLow on a Raspberry Pi Zero 2W with NAT forwarding!

Hi all,

I’ve been tinkering with the MM6108-based Heltec HT-HC01P SPI module, and I was able to successfully bring up HaLow on the Pi Zero 2W. I’ve set it up to enable NAT forwarding, and I’m using a Heltec dongle as a STA. Notably, on 915.5 with 1MHz bandwidth, I’ve been able to achieve 1-3mbps at some incredible range (ie. through several apartment walls over 300-500m) using just a UF.L patch antenna.

In an attempt to help make this wonderful technology by Morse Micro available to the world, I’ve created a repository with instructions and scripts to replicate my work. It’s based on the most recent driver release (1.16.x) for the Linux 6.12 kernel.

For those interested in replicating, the hardest part is honestly the wiring, upon a successful bring up you should be able to get to this point:

A quick speedtest at 923 MHz w/ 2MHz bandwidth - The device is capable of a faster link but I’m interested in optimizing for range so I haven’t tried pushing the limits with a wider bandwidth and higher SPI clock speed.

My next step is to develop a HAT to make it easier to interface with the Pi, and then to package all of this into a user-friendly interface (all of which of course would be open source) to help bring exposure to this fascinating new technology. As a hobbyist whose career is in healthcare, I see so much potential for this technology to improve communication and peoples’ lives, and I really want to help make this more accessible. Many thanks for reading, and for those of you who would like to replicate my setup, let me know if you have any questions!

7 Likes

The RPi Zero 2W has been a popular ask. Nice work!

1 Like

Thank you! I’m looking forward to updating everyone with progress on the HAT and publishing those files :slight_smile:

Nice! Are you able to use 50MHz for the SPI speed with no issue?

I’ve successfully integrate a Seeedstudio xiao module with RPi Zero 2W, but limited to 10MHz. I suspect my wiring is the cause of the issue.

In my testing I haven’t been able to do 50MHz but I have been stable at 24MHz. I also suspect my wiring as the issue as I’m currently using 20cm dupont cables for my connection. I have a prototype PCB on the way that will have much shorter traces for the data lines. If it works I will upload the KiCad files. Will update the post and share how well it works!

Yes, that sounds like my current setup. Interestingly enough if I enable debug message (debug_mask=1) I am able to do 50MHz, but probably the debug message causes slowdown somewhere.

Sounds good, you beat me to it! Looking forward to hear that update.

1 Like

This is absolutely awesome, will this setup support meshing do you think?

Thank you! Yes, at the driver level it definitely should, I just haven’t gotten a chance to spin up wpa_supplicant and give it a go yet. Putting the scripts in place to make it an easy toggle on/off is one of my next steps.