kopia lustrzana https://github.com/HarrydeBug/1011-WSPR-TX_LP1
Porównaj commity
16 Commity
3acf22d053
...
5bf4a85472
Autor | SHA1 | Data |
---|---|---|
Harry | 5bf4a85472 | |
Harry | c1acb19444 | |
Harry | 147f97f8c1 | |
Harry | 881a6a43e7 | |
Harry | ed9dee90c4 | |
Harry | de459fb869 | |
Harry | ef767985ae | |
Harry | 989fabdae3 | |
Harry | 96ffa1871c | |
Harry | 2b1ea779d7 | |
Harry | 7fa798992b | |
Harry | 83ed4fead3 | |
Harry | 9c22f6596d | |
Harry | 20080f964e | |
Harry | a77e7e9e4b | |
Harry | eb2233cf43 |
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik binarny nie jest wyświetlany.
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
|
@ -7,7 +7,7 @@
|
|||
--------------------------
|
||||
pin 2 and 3 is Sofware serial port to GPS module
|
||||
pin 4 is Status LED, except on Mini and Pico models- they use pin A2. This Led is Used as StatusIndicator to display what state the software is currently in, Yellow LED on all models except Pico that has a white LED
|
||||
pin 5,6 and 7 are Relay controll pins on the Desktop and LP1 products
|
||||
pin 5,6 and 7 are Relay control pins on the Desktop and LP1 products
|
||||
pin 8 is Red TX LED next to RF out SMA connector on the Desktop and LP1 products. Used as Indicator to display when there is RF out.
|
||||
pin A1 Hardware Sleep signal of the GPS on the WSPR-TX Pico, The Mini is using Serial command to put GPS to sleep.
|
||||
pin A3 Power-down the Si5351 from this pin on the WSPR-TX Mini
|
||||
|
@ -69,8 +69,8 @@
|
|||
0.95 WSPR Mini re-added after it had been removed by accident in an earlier version
|
||||
0.96 Added support for Type 3 messages for increased position precision, changed altitude calculation for the Pico, if Type 3 messsage is sent then its pwr field corresponds to 20m per dB
|
||||
Added autodetection of Si5351 I2C address, 96 or 98.
|
||||
0.97 Changed how the [OBD] was Set/Get to avoid feedback llop in the PC GUI that would Set and then Clear a value repeatedly
|
||||
1.00 Fixed a bug that cased Tpe 3 transmission even if was not configered to do that.
|
||||
0.97 Changed how the [OBD] was Set/Get to avoid feedback loop in the PC GUI that would Set and then Clear a value repeatedly
|
||||
1.00 Fixed a bug that cased Type 3 transmission even if was not configered.
|
||||
|
||||
To compile :
|
||||
1 set board to "Arduino Pro or Pro Mini", set processor to ATMega328P(3.3V, 8MHZ)
|
||||
|
@ -350,13 +350,14 @@ void setup()
|
|||
FactoryData.LP_B_BandNum = 3; //Low Pass filter B is 80m
|
||||
FactoryData.LP_C_BandNum = 4; //Low Pass filter C is 40m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m
|
||||
|
||||
/*
|
||||
//HighPlus
|
||||
FactoryData.LP_A_BandNum = 7; //Low Pass filter A is 17m
|
||||
FactoryData.LP_B_BandNum = 10; //Low Pass filter B is 10m (+ 15 and 12m)
|
||||
FactoryData.LP_C_BandNum = 11; //Low Pass filter C is 6m
|
||||
FactoryData.LP_D_BandNum = 99; //Low Pass filter D is open circuit
|
||||
|
||||
*/
|
||||
}
|
||||
if (Product_Model == 1029) //LP1 Model with Mezzanine BLP4 addon, set default LP as a MidPlus version
|
||||
{
|
||||
|
@ -1229,7 +1230,7 @@ void DoWSPR ()
|
|||
{
|
||||
AltitudeInMeter = fix.altitude ();
|
||||
pwr1 = ValiddBmValue(AltitudeInMeter / 300); //Max 18km altitude, every dBm count as 300m and max dBm that can be reported is 60
|
||||
pwr2 = ValiddBmValue((AltitudeInMeter - (pwr1 * 300)) / 20); //Finer calculations for the second power transmission (if any depends on user setting) every dBm in this report is 20m. The two reports will be added on the receive side
|
||||
pwr2 = ValiddBmValue((AltitudeInMeter - (pwr1 * 300)) / 20); //Finer calculations for the second power transmission (if any - depends on user setting) every dBm in this report is 20m. The two reports will be added on the receive side
|
||||
GadgetData.WSPRData.TXPowerdBm = pwr1;
|
||||
}
|
||||
|
||||
|
@ -1501,7 +1502,7 @@ boolean DetectSi5351I2CAddress()
|
|||
}
|
||||
else
|
||||
{
|
||||
Serial.println("Not Detected at adress 96");
|
||||
//Serial.println("Not Detected at adress 96");
|
||||
Si5351I2CAddress = 98; //Try the alternative address of 98
|
||||
i2cStart();
|
||||
I2CResult = i2cByteSend((Si5351I2CAddress << 1));
|
|
@ -71,7 +71,7 @@
|
|||
Added autodetection of Si5351 I2C address, 96 or 98.
|
||||
0.97 Changed how the [OBD] was Set/Get to avoid feedback loop in the PC GUI that would Set and then Clear a value repeatedly
|
||||
1.00 Fixed a bug that cased Type 3 transmission even if was not configered.
|
||||
1.1 Desktop model with 10m filter intalled now indicates it can do 17m aswell besides the 12m and 15m
|
||||
1.01 Desktop model with 10m filter intalled now indicates it can do 17m aswell besides the 12m and 15m
|
||||
|
||||
To compile :
|
||||
1 set board to "Arduino Pro or Pro Mini", set processor to ATMega328P(3.3V, 8MHZ)
|
||||
|
@ -86,7 +86,7 @@
|
|||
*/
|
||||
|
||||
const uint8_t SoftwareVersion = 1; //0 to 255. 0=Beta
|
||||
const uint8_t SoftwareRevision = 1; //0 to 255
|
||||
const uint8_t SoftwareRevision = 01; //0 to 255
|
||||
|
||||
// Product model. WSPR-TX_LP1 =1011
|
||||
// Product model. WSPR-TX Desktop =1012
|
||||
|
@ -338,14 +338,8 @@ void setup()
|
|||
//Low
|
||||
if (Product_Model == 1012) //Desktop Model, set default LP as a Low version
|
||||
{
|
||||
FactoryData.HW_Revision = 20; // Hardware revision
|
||||
FactoryData.HW_Revision = 19; // Hardware revision
|
||||
|
||||
//MidPlus
|
||||
FactoryData.LP_A_BandNum = 10;//Low Pass filter A is 10m (+ 15 and 12m)
|
||||
FactoryData.LP_B_BandNum = 3; //Low Pass filter B is 80m
|
||||
FactoryData.LP_C_BandNum = 4; //Low Pass filter C is 40m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m
|
||||
/*
|
||||
//Low Model
|
||||
FactoryData.LP_A_BandNum = 0; //Low Pass filter A is 2190m
|
||||
FactoryData.LP_B_BandNum = 1; //Low Pass filter B is 630m
|
||||
|
@ -357,7 +351,7 @@ void setup()
|
|||
FactoryData.LP_B_BandNum = 3; //Low Pass filter B is 80m
|
||||
FactoryData.LP_C_BandNum = 4; //Low Pass filter C is 40m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m
|
||||
|
||||
/*
|
||||
//HighPlus
|
||||
FactoryData.LP_A_BandNum = 7; //Low Pass filter A is 17m
|
||||
FactoryData.LP_B_BandNum = 10; //Low Pass filter B is 10m (+ 15 and 12m)
|
Plik diff jest za duży
Load Diff
|
@ -101,7 +101,7 @@ const uint8_t SoftwareRevision = 10; //0 to 255
|
|||
// Product model. WSPR-TX Pico =1028
|
||||
// Product model. WSPR-TX_LP1 with Mezzanine BLP4 card =1029
|
||||
|
||||
const uint16_t Product_Model = 1017;
|
||||
const uint16_t Product_Model = 1012;
|
||||
|
||||
|
||||
#include <EEPROM.h>
|
|
@ -102,7 +102,7 @@ const uint8_t SoftwareRevision = 11; //0 to 255
|
|||
// Product model. WSPR-TX Pico =1028
|
||||
// Product model. WSPR-TX_LP1 with Mezzanine BLP4 card =1029
|
||||
|
||||
const uint16_t Product_Model = 1012;
|
||||
const uint16_t Product_Model = 1011;
|
||||
|
||||
|
||||
#include <EEPROM.h>
|
||||
|
@ -354,23 +354,22 @@ void setup()
|
|||
FactoryData.LP_C_BandNum = 99; //Low Pass filter C is Nothing
|
||||
FactoryData.LP_D_BandNum = 99; //Low Pass filter D is Nothing
|
||||
}
|
||||
//Low
|
||||
|
||||
if (Product_Model == 1012) //Desktop Model, set default version
|
||||
{
|
||||
FactoryData.HW_Revision = 20; // Hardware revision
|
||||
FactoryData.HW_Revision = 21; // Hardware revision
|
||||
|
||||
//80To10
|
||||
FactoryData.LP_A_BandNum = 10;//Low Pass filter A is 10m (+17m + 15m and 12m)
|
||||
FactoryData.LP_B_BandNum = 3; //Low Pass filter B is 80m
|
||||
FactoryData.LP_C_BandNum = 4; //Low Pass filter C is 40m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m
|
||||
|
||||
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m (+30m)
|
||||
/*
|
||||
//80To10
|
||||
FactoryData.LP_A_BandNum = 10;//Low Pass filter A is 10m (+17m + 15m and 12m)
|
||||
FactoryData.LP_B_BandNum = 3; //Low Pass filter B is 80m
|
||||
FactoryData.LP_C_BandNum = 4; //Low Pass filter C is 40m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m (+30m)
|
||||
|
||||
//Low Model
|
||||
FactoryData.LP_A_BandNum = 0; //Low Pass filter A is 2190m
|
||||
|
@ -382,7 +381,7 @@ void setup()
|
|||
FactoryData.LP_A_BandNum = 2; //Low Pass filter A is 160m
|
||||
FactoryData.LP_B_BandNum = 3; //Low Pass filter B is 80m
|
||||
FactoryData.LP_C_BandNum = 4; //Low Pass filter C is 40m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m (+30m)
|
||||
|
||||
//HighPlus
|
||||
FactoryData.LP_A_BandNum = 7; //Low Pass filter A is 17m
|
||||
|
@ -1317,7 +1316,7 @@ void DoWSPR ()
|
|||
uint8_t pwr1, pwr2; //Used in Altitude to power reporting (balloon coding)
|
||||
uint32_t AltitudeInMeter;
|
||||
boolean ConfigError;
|
||||
int GPSNoReceiveCount; //If GPS stops working in WSPR Beacon mode this will increment
|
||||
// uint32_t GPSNoReceiveCount; //If GPS stops working in WSPR Beacon mode this will increment
|
||||
int WSPRMessageTypeToUse;
|
||||
|
||||
if (GadgetData.WSPRData.SuPreFixOption == None) //if standard Call Sign with no Sufix then send a Standards Type 1 message, else Send a Type 2 Message to include the Sufix
|
||||
|
@ -1359,15 +1358,15 @@ void DoWSPR ()
|
|||
else
|
||||
{
|
||||
CurrentBand = 0;
|
||||
NextFreq(); //Cycle to next enabled band to transmitt on
|
||||
NextFreq(); //Cycle to next enabled band to transmit on
|
||||
freq = freq + (100ULL * random (-100, 100)); //modify TX frequency with a random value beween -100 and +100 Hz
|
||||
si5351aOutputOff(SI_CLK0_CONTROL);
|
||||
SendAPIUpdate (UMesCurrentMode);
|
||||
|
||||
//LOOP HERE FOREVER OR UNTIL INTERRUPTED BY A SERIAL COMMAND
|
||||
while (!Serial.available()) { //Do until incoming serial command
|
||||
while (gps.available( GPSSerial )) { //If GPS data available - process it
|
||||
GPSNoReceiveCount = 0;
|
||||
while (gps.available( GPSSerial )) { //If GPS data is available - process it
|
||||
LoopGPSNoReceiveCount = 0;
|
||||
fix = gps.read();
|
||||
SendAPIUpdate(UMesTime);
|
||||
if (Serial.available()) {// If serialdata was received on control port then handle command
|
||||
|
@ -1456,10 +1455,10 @@ void DoWSPR ()
|
|||
smartdelay(400);
|
||||
}
|
||||
} //GPS serial data loop
|
||||
GPSNoReceiveCount++;
|
||||
if (GPSNoReceiveCount > 30000) //GPS have not sent anything for a long time, GPS is possible in sleep mode or has not started up correctly. This can happen if a brown-out/reboot happens while the GPS was sleeping
|
||||
LoopGPSNoReceiveCount++;
|
||||
if (LoopGPSNoReceiveCount > 60000) //GPS have not sent anything for a long time, GPS is possible in sleep mode or has not started up correctly. This can happen if a brown-out/reboot happens while the GPS was sleeping
|
||||
{
|
||||
GPSNoReceiveCount = 0;
|
||||
LoopGPSNoReceiveCount = 0;
|
||||
Serial.println(F("{MIN} Resetting GPS"));
|
||||
GPSReset ();//Try to get GPS going again
|
||||
smartdelay(2000);
|
|
@ -6,10 +6,10 @@
|
|||
Hardware connections:
|
||||
--------------------------
|
||||
pin 2 and 3 is Sofware serial port to GPS module
|
||||
pin 4 is Status LED, except on Mini and Pico models- they use pin A2. This Led is Used as StatusIndicator to display what state the software is currently in, Yellow LED on all models except Pico that has a white LED
|
||||
pin 4 is Status LED, except on Mini and Pico models- they use pin A2. This LED is Used as StatusIndicator to display what state the software is currently in, Yellow LED on all models except Pico that has a white LED
|
||||
pin 5,6 and 7 are Relay control pins on the Desktop and LP1 products
|
||||
pin 8 is Red TX LED next to RF out SMA connector on the Desktop and LP1 products. Used as Indicator to display when there is RF out.
|
||||
pin A1 Hardware Sleep signal of the GPS on the WSPR-TX Pico, The Mini is using Serial command to put GPS to sleep.
|
||||
pin A1 Hardware Sleep signal for the GPS on the WSPR-TX Pico, The Mini is using Serial command to put GPS to sleep.
|
||||
pin A3 Power-down the Si5351 from this pin on the WSPR-TX Mini
|
||||
|
||||
Version History:
|
||||
|
@ -76,8 +76,7 @@
|
|||
Also fixed a bug that cased Type 3 transmissions (six character Maidenhed positions) to only work with callsigns that were six character long
|
||||
1.10 Added transmit schedule. Added Prefix and Sufix support for Callsign.
|
||||
1.11 Fixed bug that cased incorrect results if the altitude is negative and the option "Encode Altitude as power" is used, thanks to John Maca - AB5SS for identifying the bug and a fix for it.
|
||||
1.12 Added tracking schedule were the TX will only transitt if it moves. If stationary it will TX once every hour. Enabled by setting the GadgetData.WSPRData.TimeSlotCode to 17
|
||||
|
||||
1.12 Added tracking schedule were the TX will only transmit if it moves. If stationary it will TX once every hour. Enabled by setting the GadgetData.WSPRData.TimeSlotCode to 17
|
||||
|
||||
|
||||
To compile :
|
||||
|
@ -349,7 +348,7 @@ void setup()
|
|||
Serial.println(F("{MIN} No factory data found !"));
|
||||
Serial.println(F("{MIN} You need to run factory setup to complete the configuration, guessing on calibration values for now"));
|
||||
FactoryData.HW_Version = 1; // Hardware version
|
||||
FactoryData.RefFreq = 24999980;//Reference Oscillator frequency
|
||||
FactoryData.RefFreq = 25999980;//Reference Oscillator frequency
|
||||
if (Product_Model == 1011) //LP1 Model, set some defaults
|
||||
{
|
||||
FactoryData.HW_Revision = 17; // Hardware revision
|
||||
|
@ -361,13 +360,16 @@ void setup()
|
|||
|
||||
if (Product_Model == 1012) //Desktop Model, set default version
|
||||
{
|
||||
FactoryData.HW_Revision = 21; // Hardware revision
|
||||
FactoryData.HW_Revision = 22; // Hardware revision
|
||||
|
||||
|
||||
//80To10
|
||||
FactoryData.LP_A_BandNum = 10;//Low Pass filter A is 10m (+17m + 15m and 12m)
|
||||
FactoryData.LP_B_BandNum = 3; //Low Pass filter B is 80m
|
||||
FactoryData.LP_C_BandNum = 4; //Low Pass filter C is 40m
|
||||
FactoryData.LP_D_BandNum = 6; //Low Pass filter D is 20m (+30m)
|
||||
|
||||
|
||||
/*
|
||||
//80To10
|
||||
FactoryData.LP_A_BandNum = 10;//Low Pass filter A is 10m (+17m + 15m and 12m)
|
||||
|
@ -1292,7 +1294,6 @@ void DoWSPR ()
|
|||
uint8_t pwr1, pwr2; //Used in Altitude to power reporting (balloon coding)
|
||||
uint32_t AltitudeInMeter;
|
||||
boolean ConfigError;
|
||||
// uint32_t GPSNoReceiveCount; //If GPS stops working in WSPR Beacon mode this will increment
|
||||
int WSPRMessageTypeToUse;
|
||||
|
||||
if (GadgetData.WSPRData.SuPreFixOption == None) //if standard Call Sign with no Sufix then send a Standards Type 1 message, else Send a Type 2 Message to include the Sufix
|
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
Ładowanie…
Reference in New Issue