Skip to content

Commit 87b9e4a

Browse files
committed
[nRF52] isolate Seeed L1 BSP [skip ci]
1 parent 7c0714b commit 87b9e4a

File tree

4 files changed

+95
-85
lines changed

4 files changed

+95
-85
lines changed

documents/images/Pocket-banner.jpg

41.3 KB
Loading
42.9 KB
Loading

software/firmware/source/SoftRF/src/platform/nRF52.cpp

Lines changed: 88 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -800,14 +800,14 @@ static void nRF52_setup()
800800
pinMode(PIN_LED3, INPUT);
801801
pinMode(PIN_LED4, INPUT);
802802

803-
#if 1
804803
nRF52_board = nRF52_bl_check("TECHOBOOT") ? NRF52_LILYGO_TECHO_REV_2 :
805804
nRF52_bl_check("T1000-E") ? NRF52_SEEED_T1000E :
806805
nRF52_bl_check("HT-n5262") ? NRF52_HELTEC_T114 :
807806
nRF52_bl_check("ELECROWBOOT") ? NRF52_ELECROW_TN_M1 :
807+
#if !defined(EXCLUDE_WIP)
808808
nRF52_bl_check("XIAO") ? NRF52_SEEED_WIO_L1 : /* TBD */
809+
#endif /* EXCLUDE_WIP */
809810
nRF52_board;
810-
#endif
811811

812812
for (int i=0; i < sizeof(techo_prototype_boards) / sizeof(prototype_entry_t); i++) {
813813
if (techo_prototype_boards[i].id == ((uint64_t) DEVICE_ID_HIGH << 32 | (uint64_t) DEVICE_ID_LOW)) {
@@ -934,7 +934,11 @@ static void nRF52_setup()
934934
#endif /* ARDUINO_ARCH_MBED */
935935
Wire.begin();
936936
Wire.beginTransmission(AHT20_ADDRESS);
937-
if (Wire.endTransmission() == 0) { nRF52_board = NRF52_ELECROW_TN_M3; }
937+
if (Wire.endTransmission() == 0) {
938+
nRF52_board = NRF52_ELECROW_TN_M3;
939+
hw_info.model = SOFTRF_MODEL_POCKET;
940+
nRF52_Device_Model = "Pocket Edition";
941+
}
938942
Wire.end();
939943
pinMode(SOC_GPIO_PIN_M3_TEMP_EN, INPUT);
940944
}
@@ -948,7 +952,14 @@ static void nRF52_setup()
948952
#endif /* ARDUINO_ARCH_MBED */
949953
Wire.begin();
950954
Wire.beginTransmission(PCF8563_SLAVE_ADDRESS);
951-
if (Wire.endTransmission() == 0) { nRF52_board = NRF52_ELECROW_TN_M6; }
955+
if (Wire.endTransmission() == 0) {
956+
nRF52_board = NRF52_ELECROW_TN_M6;
957+
hw_info.model = SOFTRF_MODEL_SOLARIS;
958+
nRF52_Device_Model = "Solaris Edition";
959+
960+
// digitalWrite(SOC_GPIO_PIN_SFL_M6_EN, HIGH);
961+
// pinMode(SOC_GPIO_PIN_SFL_M6_EN, OUTPUT);
962+
}
952963
Wire.end();
953964
pinMode(SOC_GPIO_PIN_IO_M6_PWR, INPUT);
954965
}
@@ -960,6 +971,9 @@ static void nRF52_setup()
960971
case NRF52_LILYGO_TULTIMA:
961972
Wire.setPins(SOC_GPIO_PIN_TULTIMA_SDA, SOC_GPIO_PIN_TULTIMA_SCL);
962973
break;
974+
case NRF52_SEEED_WIO_L1:
975+
Wire.setPins(SOC_GPIO_PIN_L1_OLED_SDA, SOC_GPIO_PIN_L1_OLED_SCL); /* TBD */
976+
break;
963977
#endif /* EXCLUDE_WIP */
964978
case NRF52_SEEED_T1000E:
965979
Wire.setPins(SOC_GPIO_PIN_T1000_SDA, SOC_GPIO_PIN_T1000_SCL);
@@ -968,9 +982,6 @@ static void nRF52_setup()
968982
delay(100);
969983
#endif /* EXCLUDE_IMU */
970984
break;
971-
case NRF52_SEEED_WIO_L1:
972-
Wire.setPins(SOC_GPIO_PIN_L1_OLED_SDA, SOC_GPIO_PIN_L1_OLED_SCL); /* TBD */
973-
break;
974985
case NRF52_ELECROW_TN_M3:
975986
Wire.setPins(SOC_GPIO_PIN_M3_SDA, SOC_GPIO_PIN_M3_SCL);
976987

@@ -985,6 +996,8 @@ static void nRF52_setup()
985996
break;
986997
case NRF52_ELECROW_TN_M6:
987998
Wire.setPins(SOC_GPIO_PIN_M6_SDA, SOC_GPIO_PIN_M6_SCL);
999+
// digitalWrite(SOC_GPIO_PIN_IO_M6_PWR, HIGH);
1000+
// pinMode(SOC_GPIO_PIN_IO_M6_PWR, OUTPUT);
9881001
break;
9891002
case NRF52_LILYGO_TECHO_REV_0:
9901003
case NRF52_LILYGO_TECHO_REV_1:
@@ -1071,14 +1084,6 @@ static void nRF52_setup()
10711084
SOC_GPIO_PIN_SFL_T1000_WP,
10721085
SOC_GPIO_PIN_SFL_T1000_HOLD);
10731086
break;
1074-
case NRF52_SEEED_WIO_L1:
1075-
FlashTrans = new Adafruit_FlashTransport_QSPI(SOC_GPIO_PIN_SFL_L1_SCK,
1076-
SOC_GPIO_PIN_SFL_L1_SS,
1077-
SOC_GPIO_PIN_SFL_L1_MOSI,
1078-
SOC_GPIO_PIN_SFL_L1_MISO,
1079-
SOC_GPIO_PIN_SFL_L1_WP,
1080-
SOC_GPIO_PIN_SFL_L1_HOLD);
1081-
break;
10821087
case NRF52_ELECROW_TN_M6:
10831088
FlashTrans = new Adafruit_FlashTransport_QSPI(SOC_GPIO_PIN_SFL_M6_SCK,
10841089
SOC_GPIO_PIN_SFL_M6_SS,
@@ -1096,6 +1101,14 @@ static void nRF52_setup()
10961101
SOC_GPIO_PIN_SFL_TULTIMA_WP,
10971102
SOC_GPIO_PIN_SFL_TULTIMA_HOLD);
10981103
break;
1104+
case NRF52_SEEED_WIO_L1:
1105+
FlashTrans = new Adafruit_FlashTransport_QSPI(SOC_GPIO_PIN_SFL_L1_SCK,
1106+
SOC_GPIO_PIN_SFL_L1_SS,
1107+
SOC_GPIO_PIN_SFL_L1_MOSI,
1108+
SOC_GPIO_PIN_SFL_L1_MISO,
1109+
SOC_GPIO_PIN_SFL_L1_WP,
1110+
SOC_GPIO_PIN_SFL_L1_HOLD);
1111+
break;
10991112
#endif /* EXCLUDE_WIP */
11001113
case NRF52_NORDIC_PCA10059:
11011114
case NRF52_ELECROW_TN_M3:
@@ -1187,15 +1200,6 @@ static void nRF52_setup()
11871200
}
11881201
#endif /* USE_OLED */
11891202

1190-
if (nRF52_board == NRF52_ELECROW_TN_M3) {
1191-
hw_info.model = SOFTRF_MODEL_POCKET;
1192-
nRF52_Device_Model = "Pocket Edition";
1193-
} else
1194-
if (nRF52_board == NRF52_ELECROW_TN_M6) {
1195-
hw_info.model = SOFTRF_MODEL_SOLARIS;
1196-
nRF52_Device_Model = "Solaris Edition";
1197-
}
1198-
11991203
#if !defined(ARDUINO_ARCH_MBED) && !defined(ARDUINO_ARCH_ZEPHYR)
12001204
USBDevice.setID(nRF52_USB_VID, nRF52_USB_PID);
12011205
USBDevice.setManufacturerDescriptor(nRF52_Device_Manufacturer);
@@ -1290,6 +1294,11 @@ static void nRF52_setup()
12901294
#endif /* ARDUINO_ARCH_MBED */
12911295
/* TBD */
12921296
break;
1297+
case NRF52_SEEED_WIO_L1:
1298+
digitalWrite(SOC_GPIO_PIN_L1_VBAT_EN, HIGH);
1299+
pinMode(SOC_GPIO_PIN_L1_VBAT_EN, OUTPUT);
1300+
/* TBD */
1301+
break;
12931302
#endif /* EXCLUDE_WIP */
12941303

12951304
case NRF52_SEEED_T1000E:
@@ -1340,12 +1349,6 @@ static void nRF52_setup()
13401349
/* TBD */
13411350
break;
13421351

1343-
case NRF52_SEEED_WIO_L1:
1344-
digitalWrite(SOC_GPIO_PIN_L1_VBAT_EN, HIGH);
1345-
pinMode(SOC_GPIO_PIN_L1_VBAT_EN, OUTPUT);
1346-
/* TBD */
1347-
break;
1348-
13491352
case NRF52_LILYGO_TECHO_REV_0:
13501353
case NRF52_LILYGO_TECHO_REV_1:
13511354
case NRF52_LILYGO_TECHO_REV_2:
@@ -1448,6 +1451,24 @@ static void nRF52_setup()
14481451
}
14491452
#endif /* ENABLE_RECORDER */
14501453

1454+
hw_info.revision = 3; /* Unknown */
1455+
break;
1456+
1457+
case NRF52_SEEED_WIO_L1:
1458+
/* Wake up Quectel L76K GNSS */
1459+
digitalWrite(SOC_GPIO_PIN_GNSS_L1_WKE, HIGH);
1460+
pinMode(SOC_GPIO_PIN_GNSS_L1_WKE, OUTPUT);
1461+
1462+
pinMode(SOC_GPIO_LED_L1_GREEN, OUTPUT);
1463+
// pinMode(SOC_GPIO_LED_L1_BLUE, OUTPUT);
1464+
1465+
digitalWrite(SOC_GPIO_LED_L1_GREEN, LED_STATE_ON);
1466+
// digitalWrite(SOC_GPIO_LED_L1_BLUE, LED_STATE_ON);
1467+
1468+
lmic_pins.nss = SOC_GPIO_PIN_L1_SS;
1469+
lmic_pins.rst = SOC_GPIO_PIN_L1_RST;
1470+
lmic_pins.busy = SOC_GPIO_PIN_L1_BUSY;
1471+
14511472
hw_info.revision = 3; /* Unknown */
14521473
break;
14531474
#endif /* EXCLUDE_WIP */
@@ -1552,6 +1573,9 @@ static void nRF52_setup()
15521573
break;
15531574

15541575
case NRF52_ELECROW_TN_M6:
1576+
// digitalWrite(SOC_GPIO_PIN_GNSS_M6_EN, HIGH);
1577+
// pinMode(SOC_GPIO_PIN_GNSS_M6_EN, OUTPUT);
1578+
15551579
/* Wake up Quectel L76K GNSS */
15561580
digitalWrite(SOC_GPIO_PIN_GNSS_M6_RST, HIGH);
15571581
pinMode(SOC_GPIO_PIN_GNSS_M6_RST, OUTPUT);
@@ -1571,24 +1595,6 @@ static void nRF52_setup()
15711595
hw_info.revision = 3; /* Unknown */
15721596
break;
15731597

1574-
case NRF52_SEEED_WIO_L1:
1575-
/* Wake up Quectel L76K GNSS */
1576-
digitalWrite(SOC_GPIO_PIN_GNSS_L1_WKE, HIGH);
1577-
pinMode(SOC_GPIO_PIN_GNSS_L1_WKE, OUTPUT);
1578-
1579-
pinMode(SOC_GPIO_LED_L1_GREEN, OUTPUT);
1580-
// pinMode(SOC_GPIO_LED_L1_BLUE, OUTPUT);
1581-
1582-
digitalWrite(SOC_GPIO_LED_L1_GREEN, LED_STATE_ON);
1583-
// digitalWrite(SOC_GPIO_LED_L1_BLUE, LED_STATE_ON);
1584-
1585-
lmic_pins.nss = SOC_GPIO_PIN_L1_SS;
1586-
lmic_pins.rst = SOC_GPIO_PIN_L1_RST;
1587-
lmic_pins.busy = SOC_GPIO_PIN_L1_BUSY;
1588-
1589-
hw_info.revision = 3; /* Unknown */
1590-
break;
1591-
15921598
case NRF52_NORDIC_PCA10059:
15931599
default:
15941600
pinMode(SOC_GPIO_LED_PCA10059_STATUS, OUTPUT);
@@ -2486,6 +2492,22 @@ static void nRF52_fini(int reason)
24862492
}
24872493
#endif /* ARDUINO_ARCH_MBED */
24882494
break;
2495+
2496+
case NRF52_SEEED_WIO_L1:
2497+
digitalWrite(SOC_GPIO_PIN_GNSS_L1_WKE, LOW);
2498+
2499+
digitalWrite(SOC_GPIO_LED_L1_GREEN, 1-LED_STATE_ON);
2500+
// digitalWrite(SOC_GPIO_LED_L1_BLUE, 1-LED_STATE_ON);
2501+
2502+
pinMode(SOC_GPIO_LED_L1_GREEN, INPUT);
2503+
// pinMode(SOC_GPIO_LED_L1_BLUE, INPUT);
2504+
2505+
pinMode(SOC_GPIO_PIN_SFL_L1_HOLD, INPUT);
2506+
pinMode(SOC_GPIO_PIN_SFL_L1_WP, INPUT);
2507+
pinMode(SOC_GPIO_PIN_SFL_L1_SS, INPUT);
2508+
2509+
pinMode(SOC_GPIO_PIN_L1_VBAT_EN, INPUT);
2510+
break;
24892511
#endif /* EXCLUDE_WIP */
24902512

24912513
case NRF52_SEEED_T1000E:
@@ -2547,22 +2569,6 @@ static void nRF52_fini(int reason)
25472569
pinMode(SOC_GPIO_PIN_M3_TEMP_EN, INPUT);
25482570
break;
25492571

2550-
case NRF52_SEEED_WIO_L1:
2551-
digitalWrite(SOC_GPIO_PIN_GNSS_L1_WKE, LOW);
2552-
2553-
digitalWrite(SOC_GPIO_LED_L1_GREEN, 1-LED_STATE_ON);
2554-
// digitalWrite(SOC_GPIO_LED_L1_BLUE, 1-LED_STATE_ON);
2555-
2556-
pinMode(SOC_GPIO_LED_L1_GREEN, INPUT);
2557-
// pinMode(SOC_GPIO_LED_L1_BLUE, INPUT);
2558-
2559-
pinMode(SOC_GPIO_PIN_SFL_L1_HOLD, INPUT);
2560-
pinMode(SOC_GPIO_PIN_SFL_L1_WP, INPUT);
2561-
pinMode(SOC_GPIO_PIN_SFL_L1_SS, INPUT);
2562-
2563-
pinMode(SOC_GPIO_PIN_L1_VBAT_EN, INPUT);
2564-
break;
2565-
25662572
case NRF52_NORDIC_PCA10059:
25672573
default:
25682574
// ledOff(SOC_GPIO_LED_PCA10059_GREEN);
@@ -2617,6 +2623,10 @@ static void nRF52_fini(int reason)
26172623
case NRF52_LILYGO_TULTIMA:
26182624
mode_button_pin = SOC_GPIO_PIN_TULTIMA_BUTTON1;
26192625
break;
2626+
2627+
case NRF52_SEEED_WIO_L1:
2628+
mode_button_pin = SOC_GPIO_PIN_L1_BUTTON;
2629+
break;
26202630
#endif /* EXCLUDE_WIP */
26212631

26222632
case NRF52_SEEED_T1000E:
@@ -2639,10 +2649,6 @@ static void nRF52_fini(int reason)
26392649
mode_button_pin = SOC_GPIO_PIN_M6_BUTTON;
26402650
break;
26412651

2642-
case NRF52_SEEED_WIO_L1:
2643-
mode_button_pin = SOC_GPIO_PIN_L1_BUTTON;
2644-
break;
2645-
26462652
case NRF52_LILYGO_TECHO_REV_0:
26472653
case NRF52_LILYGO_TECHO_REV_1:
26482654
case NRF52_LILYGO_TECHO_REV_2:
@@ -3089,17 +3095,18 @@ static void nRF52_SPI_begin()
30893095
SOC_GPIO_PIN_TULTIMA_SCK,
30903096
SOC_GPIO_PIN_TULTIMA_MOSI);
30913097
break;
3098+
3099+
case NRF52_SEEED_WIO_L1:
3100+
SPI.setPins(SOC_GPIO_PIN_L1_MISO,
3101+
SOC_GPIO_PIN_L1_SCK,
3102+
SOC_GPIO_PIN_L1_MOSI);
3103+
break;
30923104
#endif /* EXCLUDE_WIP */
30933105
case NRF52_SEEED_T1000E:
30943106
SPI.setPins(SOC_GPIO_PIN_T1000_MISO,
30953107
SOC_GPIO_PIN_T1000_SCK,
30963108
SOC_GPIO_PIN_T1000_MOSI);
30973109
break;
3098-
case NRF52_SEEED_WIO_L1:
3099-
SPI.setPins(SOC_GPIO_PIN_L1_MISO,
3100-
SOC_GPIO_PIN_L1_SCK,
3101-
SOC_GPIO_PIN_L1_MOSI);
3102-
break;
31033110
case NRF52_ELECROW_TN_M3:
31043111
SPI.setPins(SOC_GPIO_PIN_M3_MISO,
31053112
SOC_GPIO_PIN_M3_SCK,
@@ -3142,6 +3149,10 @@ static void nRF52_swSer_begin(unsigned long baud)
31423149
Serial_GNSS_In.setPins(SOC_GPIO_PIN_GNSS_TULTIMA_RX,
31433150
SOC_GPIO_PIN_GNSS_TULTIMA_TX);
31443151
break;
3152+
case NRF52_SEEED_WIO_L1:
3153+
Serial_GNSS_In.setPins(SOC_GPIO_PIN_GNSS_L1_RX,
3154+
SOC_GPIO_PIN_GNSS_L1_TX);
3155+
break;
31453156
#endif /* EXCLUDE_WIP */
31463157
case NRF52_SEEED_T1000E:
31473158
Serial_GNSS_In.setPins(SOC_GPIO_PIN_GNSS_T1000_RX,
@@ -3152,10 +3163,6 @@ static void nRF52_swSer_begin(unsigned long baud)
31523163
Serial_GNSS_In.setPins(SOC_GPIO_PIN_GNSS_T114_RX,
31533164
SOC_GPIO_PIN_GNSS_T114_TX);
31543165
break;
3155-
case NRF52_SEEED_WIO_L1:
3156-
Serial_GNSS_In.setPins(SOC_GPIO_PIN_GNSS_L1_RX,
3157-
SOC_GPIO_PIN_GNSS_L1_TX);
3158-
break;
31593166
case NRF52_ELECROW_TN_M3:
31603167
Serial_GNSS_In.setPins(SOC_GPIO_PIN_GNSS_M3_RX,
31613168
SOC_GPIO_PIN_GNSS_M3_TX);
@@ -4065,6 +4072,10 @@ static void nRF52_Button_setup()
40654072
mode_button_pin = SOC_GPIO_PIN_TULTIMA_BUTTON1;
40664073
// up_button_pin = SOC_GPIO_PIN_TULTIMA_BUTTON2;
40674074
break;
4075+
4076+
case NRF52_SEEED_WIO_L1:
4077+
mode_button_pin = SOC_GPIO_PIN_L1_BUTTON;
4078+
break;
40684079
#endif /* EXCLUDE_WIP */
40694080

40704081
case NRF52_SEEED_T1000E:
@@ -4088,10 +4099,6 @@ static void nRF52_Button_setup()
40884099
mode_button_pin = SOC_GPIO_PIN_M6_BUTTON;
40894100
break;
40904101

4091-
case NRF52_SEEED_WIO_L1:
4092-
mode_button_pin = SOC_GPIO_PIN_L1_BUTTON;
4093-
break;
4094-
40954102
case NRF52_LILYGO_TECHO_REV_0:
40964103
case NRF52_LILYGO_TECHO_REV_1:
40974104
case NRF52_LILYGO_TECHO_REV_2:

software/firmware/source/SoftRF/src/platform/nRF52.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -293,10 +293,6 @@ struct rst_info {
293293
#define USE_BASICMAC
294294
//#define EXCLUDE_SX1276 // - 3 kb
295295

296-
//#define USE_OLED // + 6 kb
297-
//#define EXCLUDE_OLED_BARO_PAGE
298-
//#define EXCLUDE_OLED_049
299-
300296
#define USE_EPAPER // + kb
301297
#define EPD_ASPECT_RATIO_1C1
302298
#define USE_EPD_TASK
@@ -348,8 +344,15 @@ struct rst_info {
348344

349345
/* T-Ultima */
350346
#define EXCLUDE_PMU
347+
351348
#define EXCLUDE_WIP
352349

350+
#if !defined(EXCLUDE_WIP)
351+
#define USE_OLED // + 6 kb
352+
//#define EXCLUDE_OLED_BARO_PAGE
353+
#define EXCLUDE_OLED_049
354+
#endif /* EXCLUDE_WIP */
355+
353356
/* FTD-012 data port protocol version 8 and 9 */
354357
#define PFLAA_EXT1_FMT ",%d,%d,%d"
355358
#define PFLAA_EXT1_ARGS ,Container[i].no_track,data_source,Container[i].rssi

0 commit comments

Comments
 (0)