This tool is included in the CLIENT install.
BotWave Local Client is a standalone application designed to broadcast audio files over FM radio using a Raspberry Pi. It utilizes the PiWave module to handle the broadcasting functionality.
- Raspberry Pi (Officially working: RPI 0, 1, 2, 3, and 4)
- Root Access
- Python >= 3.9
- bw_custom installed
- PiWave Python module
Warning
Warning: Using BotWave involves broadcasting signals which may be subject to local regulations and laws. It is your responsibility to ensure that your use of BotWave complies with all applicable legal requirements and regulations in your area. Unauthorized use of broadcasting equipment may result in legal consequences, including fines or penalties.
Safety Note: To minimize interference and stay within your intended frequency range, it is strongly recommended to use a band-pass filter when operating BotWave.
Liability: The author of BotWave is not responsible for any damage, loss, or legal issues that may arise from the use of this software. By using BotWave, you agree to accept all risks and liabilities associated with its operation and broadcasting capabilities.
Please exercise caution and ensure you have the proper permissions, equipment, and knowledge of regulations before using BotWave for broadcasting purposes.
We highly recommend using the official installer (Check the main README). Note that if you aren't on a Raspberry Pi, the client is very unlikely to work.
To start the BotWave Local Client, use the following command:
sudo bw-local [-h] [--upload-dir UPLOAD_DIR] [--handlers-dir HANDLERS_DIR] [--skip-checks | --no-skip-checks] [--daemon | --no-daemon] [--rc RC] [--pk PK] [--talk | --no-talk] [--config CONFIG]--upload-dir: The directory to store uploaded files (default:/opt/BotWave/uploads/).--handlers-dir: The directory to retrievel_handlers from (default:/opt/BotWave/handlers/).--skip-checks: Skip system requirements checks.--daemon: Run in daemon mode (non-interactive).--rc: Port for the remote CLI. You can connect remotely to your websocket server via botwave.dpip.lol. For an API documentation, check misc_doc/websocket.md.--pk: Optional passkey for websocket authentication.--talk: Show the debug logs.--config: Path to a config file to load into environment.
sudo bw-local --upload-dir /tmp/my_uploads --skip-checks --rc 9939Once the client is running, you can use the following commands:
| Command | Usage | Description |
|---|---|---|
start |
botwave> start <file> [frequency] [loop] [ps] [rt] [pi] |
Start broadcasting a WAV file. |
stop |
botwave> stop |
Stop the current broadcast. |
live |
botwave> live [frequency] [ps] [rt] [pi] |
Start a live broadcast. |
queue |
botwave> queue ? |
Manages the queue. |
sstv |
botwave> sstv <image path> [mode] [output wav name] [freq] [loop] [ps] [rt] [pi] |
Start broadcasting an image converted to SSTV (requires pysstv, numpy, pillow). |
morse |
botwave> morse <text|file path> [wpm] [freq] [loop] [ps] [rt] [pi] |
Start broadcasting text converted to Morse code. |
lf |
botwave> lf |
List files in the upload directory. |
rm |
botwave> rm <filename|all> |
Remove a file from the upload directory. |
upload |
botwave> upload <file|folder> |
Upload a file to the upload directory. |
dl |
botwave> dl <url> [destination] |
Download a file from an external URL. |
handlers |
botwave> handlers [filename] |
List all handlers or commands in a specific handler file. |
< |
botwave> < <command> |
Run a shell command on the main OS. |
| |
botwave> | <command> |
Run a shell command and pipe each output line as a BotWave command. |
get |
botwave> get <keys|*> |
Get one or more environment variable(s). |
set |
botwave> set <key> <value> [immutable] |
Set an environment variable. |
status |
botwave> status |
Show current broadcast and remote status. |
help |
botwave> help |
Display the help message. |
exit |
botwave> exit |
Exit the application. |
Warning
sstv and morse command modules are not installed by default. Install them with [sudo /opt/BotWave/venv/bin/]pip install pysstv numpy pillow
l_onready: When the client is ready (on startup).l_onstart: When a broadcast has been started.l_onstop: When a broadcast has been stopped (manually).l_onwsjoin: When a remote CLI client connects.l_onwsleave: When a remote CLI client disconnects.l_onexit: When the client exits.
Check misc_doc/handlers.md for a better documentation.