Husarnet esp32-internet-ota example

I want to update my esp32 over the internet. The esp32 is located in the garden and is connected to a mobile hotspot via wifi.

I found Husarnet via google and have adopted the example ( in my project (Environment VS Code – PlatformIO).

The connection to the Husarnet network has been established. The esp32 is online and I can ping it.

A lot of debugging is generated? Is it normal and can I turn off the debugging outputs?

Unfortunately, I can’t get access to esp32 via Husarnet.

Not even when I try to use the IPv6 address.

Locally, everything works fine.

Instead of using the mobile hotspot, I connected the esp32 to my FritzBox. Does not work too.

Can someone help me?

Check HTTP_PORT defined in source code and the one used in your URL.
About verbosity. I asked Dominik one year ago and I’m still waiting a solution.You bad Dominik. :smile:

Hi Hannes,

Basically you can perform OTA updates for your ESP32 in two ways:

1. Using GitHub Actions

You need to define 4 GitHub secrets for that and just make a dummy commit to you copy of this repo. Basically before doing anything just click that button:


And make a copy of this repo on your own GitHub profile. Basically do every step shown in the README and you will be fine :slight_smile:

2. Using Web UI

At first you need to connect your laptop to the same Husarnet network as your ESP32. You will find available options here: .

After that, from a level of the laptop you have just connected, open the following link in the Firefox web browser: http://parzelle83:8080/update

If you use other browser than firefox, use IPv6 address instead of your ESP32 hostname:


(of course place the whole IPv6 address here)

Log verbosity

Please take a look at pins that I use in my board for a Serial Interface.

I do here a bit of hacking to remap default Serial (where verbose log from Husarnet goes) port to different pins (from P3 & P1 to P16 & P17), and I use Serial1 interface instead (that is now remapped on the standard P3 & P1 pins). You should not see any verbose log, but just this output on the Serial terminal:

GitHub Actions OTA example

📻 1. Connecting to: FreeWifi Wi-Fi network .. done

⌛ 2. Waiting for Husarnet to be ready ... done

🚀 HTTP server started


Known hosts:
my-laptop (fc94:a4c1:1f22:ab3b:b04a:1a3b:ba15:84bc)
my-esp32 (fc94:f632:c8d9:d2a6:ad18:ed16:ed7e:9f3f)

@jflopez, that’s also the answer to your previous question about workaround solution for log verbosity :smiley: . Sorry for delay!

Extra point: this project was made as an example for this article: .

If you don’t understand some concepts or have other questions, you should (I hope) find the answer in this article :slight_smile:

In history i solve very similiar problem with Husarnet. In mi case help using AsyncTCP library with ipv6 extensions from husarnet repository and clean dependencies in platformIO.

1 Like