Porównaj commity

...

16 Commity

Autor SHA1 Wiadomość Data
Harry 5bf4a85472
Delete WSPR-TX1.12.ino 2022-07-14 13:58:52 +02:00
Harry c1acb19444
Delete WSPR-TX1.11.ino 2022-07-14 13:58:43 +02:00
Harry 147f97f8c1
Delete WSPR-TX1.10.ino 2022-07-14 13:58:35 +02:00
Harry 881a6a43e7
Delete WSPR-TX1.02.ino 2022-07-14 13:58:28 +02:00
Harry ed9dee90c4
Delete WSPR-TX1.01.ino 2022-07-14 13:58:20 +02:00
Harry de459fb869
Delete WSPR-TX1.00.ino 2022-07-14 13:58:12 +02:00
Harry ef767985ae
Delete test 2022-07-14 13:57:12 +02:00
Harry 989fabdae3
Add files via upload 2022-07-14 13:56:30 +02:00
Harry 96ffa1871c
Add files via upload 2022-07-14 13:55:14 +02:00
Harry 2b1ea779d7
Add files via upload 2022-07-14 13:53:52 +02:00
Harry 7fa798992b
Delete test 2022-07-14 13:52:46 +02:00
Harry 83ed4fead3
Add files via upload 2022-07-14 13:52:24 +02:00
Harry 9c22f6596d
Create test 2022-07-14 13:51:15 +02:00
Harry 20080f964e
Added blank start up values for prefix and suffix, don't echo back [OLP] when set 2022-07-14 13:50:32 +02:00
Harry a77e7e9e4b
Initial release for hardware version 2 2022-07-14 13:48:59 +02:00
Harry eb2233cf43
Create test 2022-07-14 13:48:16 +02:00
48 zmienionych plików z 98029 dodań i 3291 usunięć

Wyświetl plik

@ -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));

Wyświetl plik

@ -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)

Wyświetl plik

@ -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>

Wyświetl plik

@ -20,7 +20,7 @@
0.54 Added TX status updates when sending CCM status to improve the PC client display.
0.55 Added support for factory data in EEPROM, stores TCXO and hardware info.
0.56 Changed 80 TX freq to new standard of 3.570,100MHz
0.57 Split Firmware in to two separate version for the WSPR-TX_ LP1 and Desktop products and changed the "Product_Model" from Factory EEPROM data to constant
0.57 Split Firmware in t o two separate version for the WSPR-TX_ LP1 and Desktop products and changed the "Product_Model" from Factory EEPROM data to constant
0.58 Fixed Frequency information output calculation errors when Freq=<1MHz
0.59 Fixed dim Red TX LED, (Pin was not set to output by setup routine)
0.60 Fixed wrong TX Freq on 10,12 and 15 Band
@ -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,35 +354,34 @@ 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
//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.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 (+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
FactoryData.LP_B_BandNum = 1; //Low Pass filter B is 630m
FactoryData.LP_C_BandNum = 99; //Low Pass filter C is open circuit
FactoryData.LP_D_BandNum = 99; //Low Pass filter D is open circuit
//MidPlus
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
@ -411,7 +410,7 @@ void setup()
}
}
if (LoadFromEPROM(UserSpace)) //Read all UserSpace data from EEPROM at position 0
if (LoadFromEPROM(UserSpace)) //Read all UserSpace data from EEPROM at position 0
{
CurrentMode = GadgetData.StartMode;
GadgetData.WSPRData.CallSign[6] = 0;//make sure Call sign is null terminated in case of incomplete data saved
@ -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);