ggerganov / ggwave

Tiny data-over-sound library
https://youtu.be/Zcgf77T71QM
MIT License
1.9k stars 141 forks source link

arduino-rx yields garbled data #86

Closed Flamabalistic closed 1 year ago

Flamabalistic commented 1 year ago

Hello Georgi! My name is Xavier from Melbourne, Australia, and I'm interested in the data-over-sound space.

I've just received my Arduino Nano RP2040 connect and loaded your arduino-rx example code.

Some environmental info:

Issue description

examples/arduino-rx shows garbled data when sent a message from waver.

This has been tested with both the waver website and android app. Both are setup to transmit [MT] Fastest. The Arduino is set to receive GGWAVE_PROTOCOL_MT_FASTEST.

Steps to reproduce the issue

  1. Open https://waver.ggerganov.com/ and change TX protocol to MT Fastest, and Fixed-length to true, and 16 bytes
  2. Upload https://github.com/ggerganov/ggwave/blob/master/examples/arduino-rx/arduino-rx.ino onto the RP2040
  3. Open serial monitor - set to 57600
  4. Send the message 'test' using waver

What's the expected result?

Output msg: test

What's the actual result?

Output: msg: ⸮⸮⸮⸮⸮⸮⸮Eu⸮.2J_ HEX: E2 FA C7 DB 1B 91 DE C5 45 75 E8 2E 0F 32 4A 5F

Additional details / screenshot

I've been looking through the source code for a day or so without any luck. Do you have any ideas of what might be wrong? Thanks, Xavier

Flamabalistic commented 1 year ago

Just figured it out! The Arduino example uses DSS by default, whereas the waver website doesn't. Enabling DSS on waver solved it. P.S. The software as a whole works great. Keep it up!