From 0d5141ba597f3eaea944ef5fa9b3bb7857b140d5 Mon Sep 17 00:00:00 2001 From: SnkMtn000 Date: Thu, 1 Feb 2018 17:23:38 -0500 Subject: [PATCH] Delete promini33_rfm69_Morse_GPS_20180118.ino --- promini33_rfm69_Morse_GPS_20180118.ino | 261 ------------------------- 1 file changed, 261 deletions(-) delete mode 100644 promini33_rfm69_Morse_GPS_20180118.ino diff --git a/promini33_rfm69_Morse_GPS_20180118.ino b/promini33_rfm69_Morse_GPS_20180118.ino deleted file mode 100644 index 1a53dcb..0000000 --- a/promini33_rfm69_Morse_GPS_20180118.ino +++ /dev/null @@ -1,261 +0,0 @@ -/* - * A simple GPS Morse Telemetry Sender - * for the HopeRF rfm69hcw - * on a ProMini 3.3 - * Charles Webb - * KC1ENN@arrl.net - * - * With thanks to.... - * - * "This code is so trivial that I'm releasing it completely without restrictions." - * Simple Arduino Morse Beacon v0.0 - * Written by Mark VandeWettering - * Check out my blog @ http://brainwagon.org - */ - -#include -#include -#include - -#define ssPin 10 // SS Chip select pin for reading/writing to the rf69 registers with SPI -//#define ssPin 8 // adafruit feather M0 -#define rstPin 9 // reset pin -//#define rstPin 4 // adafruit feather M0 -#define MY_DELAY 3000 // 3 second delay between loops, sending the message -#define N_MORSE (sizeof(morsetab)/sizeof(morsetab[0])) -#define SPEED (15) // WORKS 5 - 50 wpm FL-DIGI -#define DOTLEN (1200/SPEED) -#define DASHLEN (3*(1200/SPEED)) -//#define MY_TX_POWER 0x50 // PA0 only range 0x50 -18dBm to 0x5F -3dBm -//#define MY_TX_POWER 0x58 // 6 dBm -//#define MY_TX_POWER 0x5B // 9 dBm -//#define MY_TX_POWER 0x5E // 12 dBm -//#define MY_TX_POWER 0x70 // 2 dbm -#define MY_TX_POWER 0x7F // 17 dBm - -char mytext[80]; -String inputString = ""; // a String to hold incoming data -String myCallSign = "CALLSIGN/B"; -long myFrequency = 433200000; -//long myFrequency = 915000000; -String myString = ""; -String myCall = ". CALLSIGN/B"; -int myStringLen = 0; -unsigned int count=0; -//char mycount = 0; -int myHour, myMinute, mySecond, myAlt, mySpd, mySat; -double myLat, myLng; - -TinyGPSPlus gps; -SoftwareSerial ss(6,7); // Tx Rx - -void setup() { - Serial.begin(9600); // baud speed for sending to the arduino serial monitor - Serial.println("Starting up"); // print to the serial monitor - pinMode(ssPin, OUTPUT); // define - pinMode(rstPin, OUTPUT); - setupSPI(); - delay(1000); - resetRFM69(); - delay(1000); - setupRFM69(); -} - -void loop() { - count++; - fetchGPS(); - buildString(); - //myString = myCall; - myString.toUpperCase(); - myStringLen = myString.length(); - myString.toCharArray(mytext,myString.length() + 1); - // Serial.print("I am sending: "); Serial.println(myString); - sendmsg(mytext); - inputString = ""; - myString = ""; -} - -void buildString() { - myString = myCallSign; - myString += " COUNT " + String(count); - myString += " TIME " + String(myHour) + "/" + String(myMinute) + "/" + String(mySecond); - myString += " LAT " + String(myLat) + " LNG " + String(myLng); - myString += " ALT " + String(myAlt) + " SPD " + String(mySpd) + " SAT " + String(mySat); - myString += "..."; - myString.toUpperCase(); - myStringLen = myString.length(); - Serial.print("I am sending: "); Serial.println(myString); -} - -void fetchGPS() { //Remeber to only enable and softwear serial as needed, to thre the GPS then disable as it messes with the timing/printing of FH - ss.begin(9600); - myHour = gps.time.hour(); smartDelay(0); - myMinute = gps.time.minute(); smartDelay(0); - mySecond = gps.time.second(); smartDelay(0); - myLat = gps.location.lat(); smartDelay(0); - myLng = gps.location.lng(); smartDelay(0); - myAlt = gps.altitude.feet(); smartDelay(0); - mySpd = gps.speed.mph(); smartDelay(0); - mySat = gps.satellites.value(); smartDelay(0); - ss.end(); - delay(100); -} - -void setupRFM69() { - writeReg(0x02,0x34); // Modulation for OOK, Continuous w.o bit synch, OOK, no shaping - setFrequency(myFrequency); - writeReg(0x01,0x0C); // Set mode to Transmitter TX mode - Serial.println("Transmitter is ready...."); -} - -struct t_mtab { char c, pat; } ; - -struct t_mtab morsetab[] = { - {'.', 106}, - {',', 115}, - {'?', 76}, - {'/', 41}, - {'A', 6}, - {'B', 17}, - {'C', 21}, - {'D', 9}, - {'E', 2}, - {'F', 20}, - {'G', 11}, - {'H', 16}, - {'I', 4}, - {'J', 30}, - {'K', 13}, - {'L', 18}, - {'M', 7}, - {'N', 5}, - {'O', 15}, - {'P', 22}, - {'Q', 27}, - {'R', 10}, - {'S', 8}, - {'T', 3}, - {'U', 12}, - {'V', 24}, - {'W', 14}, - {'X', 25}, - {'Y', 29}, - {'Z', 19}, - {'1', 62}, - {'2', 60}, - {'3', 56}, - {'4', 48}, - {'5', 32}, - {'6', 33}, - {'7', 35}, - {'8', 39}, - {'9', 47}, - {'0', 63} -} ; - -void resetRFM69() { - digitalWrite(rstPin, HIGH); - delay(100); - digitalWrite(rstPin, LOW); - delay(100); -} - -void printReg(byte data) { - Serial.print("Register "); - Serial.print(data); - Serial.print(" = "); - Serial.println(readReg(data), HEX); -} - -void writeReg(uint8_t addr, uint8_t value) { - digitalWrite(ssPin,LOW); - SPI.transfer(addr | 0x80); - SPI.transfer(value); - digitalWrite(ssPin, HIGH); -} - -uint8_t readReg(uint8_t addr) { - digitalWrite(ssPin, LOW); - SPI.transfer(addr & 0x7F); - uint8_t regval = SPI.transfer(0); - digitalWrite(ssPin, HIGH); - return regval; -} - -void setupSPI() { - SPI.begin(); - SPI.setBitOrder(MSBFIRST); - SPI.setClockDivider(SPI_CLOCK_DIV4); -} - -void setFrequency(uint32_t freqHz){ // Setup the frequency - freqHz /= 61; // resolution is 61 Hz so divide it it down and mask it out - writeReg(0x07, freqHz >> 16); // Frequency MSB - writeReg(0x08, freqHz >> 8); // Frequency Middle Byte - writeReg(0x09, freqHz); // Frequency LSB - Serial.print("Frequency set to "); Serial.println(myFrequency); -} - -void txOn(int txTime) { - writeReg(0x11,MY_TX_POWER); // PA On ******************************************* - delay(txTime); - writeReg(0x11,0x00); // PA off ************************************************* -} - -void dash() { - txOn(DASHLEN); - delay(DOTLEN); -} - -void dit() { - txOn(DOTLEN); - delay(DOTLEN); -} - -void send(char c) { - int i ; - if (c == ' ') { - //Serial.print(c) ; - delay(7*DOTLEN) ; - return ; - } - for (i=0; i