From 4006afff64db77781cd8a09bf4e15cb99db0113d Mon Sep 17 00:00:00 2001 From: Morgan Redfield Date: Thu, 18 Jul 2019 18:06:38 -0700 Subject: [PATCH] make speechTX more polite and more verbose --- examples/SpeechTX/SpeechTX.ino | 13 +++++++++---- src/HamShield.cpp | 2 +- src/HamShield.h | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/examples/SpeechTX/SpeechTX.ino b/examples/SpeechTX/SpeechTX.ino index ff1b040..7c49700 100644 --- a/examples/SpeechTX/SpeechTX.ino +++ b/examples/SpeechTX/SpeechTX.ino @@ -2,6 +2,10 @@ * Example: SpeechTX - This example used the basic JustTransmit example from the above site * This example uses the Talkie Arduino speech library. It transmits pre-encoded speech over the air. * More info at: https://github.com/going-digital/Talkie + * + * Make sure you're using an Arduino Uno or equivalent. The Talkie library doesn't work + * with hardware that doesn't use the ATMega328 or ATMega168. + * * Connect the HamShield to your Arduino. Screw the antenna * into the HamShield RF jack. Connect the Arduino to * wall power and then to your computer via USB. After @@ -251,7 +255,10 @@ void setup() { radio.setRfPower(0); radio.frequency(145010); + radio.waitForChannel(); // wait for the channel to be empty + radio.setModeTransmit(); + delay(100); // wait for PA to come up voice.say(spKILO); // to change these to the words you would like to say, or a ham radio call sign - uncomment above encoded words voice.say(spSIX); // more word choices can be found at the talkie github site voice.say(spALPHA); @@ -266,11 +273,9 @@ void setup() { voice.say(spIS); voice.say(spON); voice.say(spFIRE); - + + radio.setModeReceive(); } void loop() { - radio.frequency(144025); - radio.setModeTransmit(); - for(;;) { } } diff --git a/src/HamShield.cpp b/src/HamShield.cpp index fa98090..dabdb49 100644 --- a/src/HamShield.cpp +++ b/src/HamShield.cpp @@ -1682,7 +1682,7 @@ Does not take in account the millis() overflow */ -bool HamShield::waitForChannel(long timeout = 0, long breakwindow = 0, int setRSSI = HAMSHIELD_EMPTY_CHANNEL_RSSI) { +bool HamShield::waitForChannel(long timeout, long breakwindow, int setRSSI) { int16_t rssi = 0; // Set RSSI to max received signal for(int x = 0; x < 20; x++) { rssi = readRSSI(); } // "warm up" to get past RSSI hysteresis long timer = HSmillis() + timeout; // Setup the timeout value diff --git a/src/HamShield.h b/src/HamShield.h index 9d7900f..5314219 100644 --- a/src/HamShield.h +++ b/src/HamShield.h @@ -515,7 +515,7 @@ class HamShield { char parseMorse(uint8_t rx_morse_char, uint8_t rx_morse_bit); uint8_t morseLookup(char letter); uint8_t morseReverseLookup(uint8_t itu); - bool waitForChannel(long timeout, long breakwindow, int setRSSI); + bool waitForChannel(long timeout = 0, long breakwindow = 0, int setRSSI = HAMSHIELD_EMPTY_CHANNEL_RSSI); void SSTVVISCode(int code); void SSTVTestPattern(int code); void toneWait(uint16_t freq, long timer);