A small Keepalive daemon for MainsailOS (or any other Raspberry Pi OS based Image).
git clone https://github.com/mainsail-crew/sonar.git
cd ~/sonar
make config
sudo make install
cd ~/sonar
make uninstall
Simply add
[update_manager sonar]
type: git_repo
path: ~/sonar
origin: https://github.com/mainsail-crew/sonar.git
primary_branch: main
managed_services: sonar
install_script: tools/install.sh
to your moonraker.conf
You can configure its behavior using a file in "~/printer_data/config/sonar.conf". But you don't have to. Defaults are hardcoded and Sonar will run without any configuration.
Hint: The Sonar's configuration file syntax is based on TOML other than in TOML colons are also valid (and prettier). Therefore, a leading section descriptor is crucial!
[sonar]
enable: true
If set to "false" service will exit on startup, use this option to disable Sonar service. It will restart on reboot but exiting as long you don't change it to "true".
debug_log: false
If set to "true" service will log every attempt to reach its target. NOTE: That will highly increase log size, this is intended for debugging purposes only.
persistent_log: false
This option allows you to store a persistent log file "/var/log/sonar.log".
Otherwise, it will be only readable by journalctl -u sonar
and it's not
persistent!
target: auto
Your target defines which of your network devices should be the target of used
ping
command. You can use either IP Address or a URL. auto
will ping your
default gateway (router).
INFO: Avoid using prefixes like https:// or http://
count: 3
Number of ping attempts.
interval: 60
Sets interval in seconds, how long it should wait for next connection check.
restart_threshold: 10
Delay in seconds before attempting to restart the WiFi connection after a connection loss.
That's it. It isn't the best method to keep your WiFi up and running, but it is the easiest solution without changing firmware files or similar.
I hope you will find sonar useful, and it blows away your connection lost :)