Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ggerganov/ggwave-arduino
Mirror of ggwave used in the Arduino Library Manager
https://github.com/ggerganov/ggwave-arduino
arduino data-over-sound esp32 microcontroller
Last synced: 21 days ago
JSON representation
Mirror of ggwave used in the Arduino Library Manager
- Host: GitHub
- URL: https://github.com/ggerganov/ggwave-arduino
- Owner: ggerganov
- License: mit
- Created: 2022-07-06T18:56:32.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-09-03T12:43:26.000Z (over 2 years ago)
- Last Synced: 2024-10-03T13:52:07.112Z (3 months ago)
- Topics: arduino, data-over-sound, esp32, microcontroller
- Language: C++
- Homepage:
- Size: 2.86 MB
- Stars: 36
- Watchers: 5
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ggwave-arduino
Tiny data-over-sound library for microcontrollers
### [Main repo: ggwave](https://github.com/ggerganov/ggwave)
Tested microcontrollers:
- [Arduino Nano RP2040 Connect](https://docs.arduino.cc/hardware/nano-rp2040-connect)
- [NodeMCU-32S, ESP32](https://www.waveshare.com/nodemcu-32s.htm)
- [Teensy 4.0 board](https://www.pjrc.com/store/teensy40.html)
- [Arduino Uno Rev3](https://store-usa.arduino.cc/products/arduino-uno-rev3) (Tx only)The easiest way to send and receive audio data is via the [Waver](https://github.com/ggerganov/ggwave/tree/master/examples/waver) application. It is freely available for Android, iOS and can also run directly in the browser: https://waver.ggerganov.com
The following settings will allow you to test the provided examples without having to modify any of the parameters in the sketches:
Img. Using the Waver app. Left: settings for fixed-length transmission. Center: Enable DSS option. Right: Transmit messages### Short demonstration of ggwave
### Using with Arduino IDE
Install the `ggwave` library via `Tools` -> `Manage Libraries` and select one of the available examples from `File` -> `Examples` -> `ggwave`:
See the [examples](examples) folder for sample circuits. Feel free to report any problems or feedback by opening an issue in this repo.
### ggwave-cli
Another way to communicate with the microcontrollers is via the [ggwave-cli](https://github.com/ggerganov/ggwave/tree/master/examples/ggwave-cli) command line tool, available in the main [ggwave](https://github.com/ggerganov/ggwave) repository. For example, run the following command to transmit a 16-byte `fixed-length` message, using Direct Sequence Spread (DSS) with `[MT] Fastest` protocol:
```bash
$ ./bin/ggwave-cli -l16 -s -t11
```![image](https://user-images.githubusercontent.com/1991296/177856175-d43fc9aa-1a10-4270-80e4-765a361b30d7.png)
When sending and receiving messages, make sure that both the sender and the receiver have the `fixed-length` option enabled and that the number of bytes for `payloadLength` is the same. Also note that microcontrollers currently support only the mono-tone `[MT]` and dual-tone `[DT]` transmission protocols.