Syncthing for ESP32 / Arduino


I’ve been looking for Synthing running on ESP32 (Arduino) devices. For those not-familiar with the devices, they basically cost between 5 to 10 euros and come with WiFi, bluetooth and a USB port for power and uploading programs.

In addition, some boards come with storage card support up to a few gigabytes. So they’re fairly nice as file sharing/sync devices since they also permit usage as hotspot points.

Since the programming language is Go, can understand why it hasn’t been ported to Arduino so easily. But has someone here tried it before or would be interested in coding it? Thank you.

I doubt go (and syncthing) will ever run on bare metal. However, if u r able to lift up requirements and and run linux on it, I think you can run syncthing on it.

From my own experience: I bought a MIPS-based vo-code device and was able to cross-compile and run syncspirit on it.

1 Like

That’s a very exotic equipment whereas ESP32 are cheap and common. :neutral_face:

However, you did give a good idea. On recent project has linux running on ESP32: Running Linux on an ESP32-S3 -

So that might be one possibility to run syncthing there.

btw, did not notice that syncspirit was coded in C++, this is already most of the way needed to compile in ESP32 too.

I saw similar efforts for stm32, and, as I can remember, I booted more then half an hour… and it is terribly slow, I don’t think it will be usable.

It still requires some OS (win/lin/…), and won’t be able to run on bare-metal.

Interesting, but with just a 32-bit single or dual-core configuration and 520KB (a bit of an odd choice) of RAM, both the OS and Syncthing are going to require a lot of tuning to eek out mediocre performance.

Syncing a few hundred small files, perhaps a few thousand might be bearable, but hashing larger files or tens of thousands of small files is going to be a steep climb.

Search this forum for earlier threads regarding Raspberry Pi, Orange Pi and other similar SBCs that have significantly more horsepower than the ESP32 for some insight into whether or not it’ll be a viable solution.

1 Like

Thanks, but raspberry pi or similar are just expensive. Interesting enough an android phone in second hand running syncthing would be far cheaper and already come with peripherals such as Wi-Fi, bluetooth, battery and even a touch-screen display for 20 euros if needed.

Fully understand the limitation of larger files. In the end this might be the deal breaker that does not permit (yet) to use syncthing.

Thank you.

The newest Raspberry Pi and others like it can be expensive, but you don’t need the latest model. The older RPi 3 A+ is under $25.

The Raspberry Pi Zero 2 W at $15 is a much better fit for Syncthing than the ESP32.

With almost 1,000x more RAM (512MB) and a 64-bit ARM-based CPU, the official Syncthing binaries will work out-of-the-box. You just need to do some performance tuning for Syncthing and Linux.

As for used smartphones and tablets, it’s what I use. :smirk:

I’ve purchased brand new, older model, phones for less than $20. Most Android phones support USB OTG so not having a micro SD card slot isn’t necessarily an issue.

There is no way syncthing will run with 1mb of ram. Just the network buffers and goroutine stacks will take up more.

1 Like