6
6
// So I put + in the sense that it was improved one by one based on Original Firmware.
7
7
// This firmware has been gradually changed based on the original firmware created by Farhan, Jack, Jerry and others.
8
8
9
- #define FIRMWARE_VERSION_INFO F (" +v1.074 " )
10
- #define FIRMWARE_VERSION_NUM 0x02 // 1st Complete Project : 1 (Version 1.061), 2st Project : 2
9
+ #define FIRMWARE_VERSION_INFO F (" +v1.075 " )
10
+ #define FIRMWARE_VERSION_NUM 0x03 // 1st Complete Project : 1 (Version 1.061), 2st Project : 2
11
11
12
12
/* *
13
13
Cat Suppoort uBITX CEC Version
@@ -254,8 +254,8 @@ void setNextHamBandFreq(unsigned long f, char moveDirection)
254
254
if ((resultFreq / 1000 ) < hamBandRange[(unsigned char )findedIndex][0 ] || (resultFreq / 1000 ) > hamBandRange[(unsigned char )findedIndex][1 ])
255
255
resultFreq = (unsigned long )(hamBandRange[(unsigned char )findedIndex][0 ]) * 1000 ;
256
256
257
- setFrequency (resultFreq);
258
257
byteToMode (loadMode, 1 );
258
+ setFrequency (resultFreq);
259
259
}
260
260
261
261
void saveBandFreqByIndex (unsigned long f, unsigned long mode, char bandIndex) {
@@ -941,6 +941,15 @@ void initSettings(){
941
941
if (EEPROM.read (VERSION_ADDRESS) != FIRMWARE_VERSION_NUM)
942
942
EEPROM.write (VERSION_ADDRESS, FIRMWARE_VERSION_NUM);
943
943
944
+ // Backup Calibration Setting from Factory Setup
945
+ // Check Factory Setting Backup Y/N
946
+ if (EEPROM.read (FACTORY_BACKUP_YN) != 0x13 ) {
947
+ EEPROM.write (FACTORY_BACKUP_YN, 0x13 ); // Set Backup Y/N
948
+
949
+ for (unsigned int i = 0 ; i < 32 ; i++) // factory setting range
950
+ EEPROM.write (FACTORY_VALUES + i, EEPROM.read (i)); // 0~31 => 65~96
951
+ }
952
+
944
953
EEPROM.get (CW_CAL, cwmCarrier);
945
954
946
955
// for Save VFO_A_MODE to eeprom
@@ -1216,6 +1225,40 @@ void initPorts(){
1216
1225
digitalWrite (CW_KEY, 0 );
1217
1226
}
1218
1227
1228
+ // Recovery Factory Setting Values
1229
+ void factory_Recovery ()
1230
+ {
1231
+ if (EEPROM.read (FACTORY_BACKUP_YN) != 0x13 )
1232
+ return ;
1233
+
1234
+ if (digitalRead (PTT) == 0 ) // Do not proceed if PTT is pressed to prevent malfunction.
1235
+ return ;
1236
+
1237
+ printLineF2 (F (" Factory Recovery" ));
1238
+ delay (2000 );
1239
+ if (!btnDown ())
1240
+ return ;
1241
+
1242
+ printLineF2 (F (" IF you continue" ));
1243
+ printLineF1 (F (" release the key" ));
1244
+ delay (2000 );
1245
+ if (btnDown ())
1246
+ return ;
1247
+
1248
+ printLineF1 (F (" Press Key PTT" ));
1249
+ delay (2000 );
1250
+ if (digitalRead (PTT) == 0 )
1251
+ {
1252
+ for (unsigned int i = 0 ; i < 32 ; i++) // factory setting range
1253
+ EEPROM.write (i, EEPROM.read (FACTORY_VALUES + i)); // 65~96 => 0~31
1254
+
1255
+ // printLineF2(F("CompleteRecovery"));
1256
+ printLineF1 (F (" Power Reset!" ));
1257
+ while (1 ); // Hold
1258
+ }
1259
+ }
1260
+
1261
+
1219
1262
void setup ()
1220
1263
{
1221
1264
/*
@@ -1266,6 +1309,11 @@ void setup()
1266
1309
1267
1310
initPorts ();
1268
1311
1312
+ #ifdef FACTORY_RECOVERY_BOOTUP
1313
+ if (btnDown ())
1314
+ factory_Recovery ();
1315
+ #endif
1316
+
1269
1317
byteToMode (vfoA_mode, 0 );
1270
1318
initOscillators ();
1271
1319
@@ -1278,6 +1326,7 @@ void setup()
1278
1326
if (btnDown ())
1279
1327
factory_alignment ();
1280
1328
#endif
1329
+
1281
1330
}
1282
1331
1283
1332
// Auto save Frequency and Mode with Protected eeprom life by KD8CEC
0 commit comments