Skip to content

Commit 3054db9

Browse files
authored
[lightning-ln882h] Fix analog read, add Wi-Fi calibration, add generic board (#319)
* [ln882x] fix analog read * [ln882h] add wifi temp calibration task * [ln882h] add generic-ln882hki board * [ln882h] fix wifi null pointer crash
1 parent 69e7e2d commit 3054db9

File tree

7 files changed

+440
-5
lines changed

7 files changed

+440
-5
lines changed

boards/generic-ln882hki.json

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
{
2+
"_base": [
3+
"generic",
4+
"lightning-ln882x",
5+
"lightning-ln882hki",
6+
"ic/ln882hk"
7+
],
8+
"build": {
9+
"mcu": "ln882hk",
10+
"variant": "generic-ln882hki"
11+
},
12+
"name": "Generic - LN882HKI",
13+
"symbol": "LN882HKI",
14+
"url": "https://docs.libretiny.eu/boards/generic-ln882hki/",
15+
"vendor": "Generic",
16+
"pcb": {
17+
"pinout": {
18+
"1": {
19+
"IC": 8,
20+
"ARD": [
21+
"D0",
22+
"A2"
23+
]
24+
},
25+
"2": {
26+
"IC": 9,
27+
"ARD": [
28+
"D1",
29+
"A3"
30+
]
31+
},
32+
"3": {
33+
"IC": 10,
34+
"ARD": "D2"
35+
},
36+
"4": {
37+
"IC": 11,
38+
"ARD": "D3"
39+
},
40+
"5": {
41+
"IC": 12,
42+
"ARD": [
43+
"D4",
44+
"A4"
45+
]
46+
},
47+
"6": {
48+
"IC": 13,
49+
"ARD": "D5"
50+
},
51+
"7": {
52+
"IC": 14,
53+
"ARD": "D6"
54+
},
55+
"8": {
56+
"IC": 15,
57+
"ARD": "D7"
58+
},
59+
"9": {
60+
"IC": 16,
61+
"ARD": "D8"
62+
},
63+
"10": {
64+
"IC": 17,
65+
"ARD": "D9"
66+
},
67+
"11": {
68+
"IC": 21,
69+
"ARD": "D10"
70+
},
71+
"12": {
72+
"IC": 22,
73+
"ARD": "D11"
74+
},
75+
"13": {
76+
"IC": 23,
77+
"ARD": "D12"
78+
},
79+
"14": {
80+
"IC": 24,
81+
"ARD": [
82+
"D13",
83+
"A5"
84+
]
85+
},
86+
"15": {
87+
"IC": 25,
88+
"ARD": [
89+
"D14",
90+
"A6"
91+
]
92+
},
93+
"16": {
94+
"IC": 26,
95+
"ARD": [
96+
"D15",
97+
"A7"
98+
]
99+
},
100+
"17": {
101+
"IC": 27,
102+
"ARD": "D16"
103+
},
104+
"18": {
105+
"IC": 28,
106+
"ARD": "D17"
107+
},
108+
"19": {
109+
"IC": 29,
110+
"ARD": "D18"
111+
},
112+
"20": {
113+
"IC": 30,
114+
"ARD": "D19"
115+
}
116+
}
117+
}
118+
}

boards/variants/generic-ln882hki.c

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
/* This file was auto-generated from generic-ln882hki.json using boardgen */
2+
3+
#include <Arduino.h>
4+
5+
#ifdef LT_VARIANT_INCLUDE
6+
#include LT_VARIANT_INCLUDE
7+
#endif
8+
9+
// clang-format off
10+
PinInfo lt_arduino_pin_info_list[PINS_COUNT] = {
11+
// D0: PA00, ADC2, I2C0_SCL, I2C0_SDA
12+
{PA_0, PIN_I2C | PIN_ADC | PIN_IRQ | PIN_GPIO, PIN_NONE, 0},
13+
// D1: PA01, ADC3, SWDIO, I2C0_SCL, I2C0_SDA
14+
{PA_1, PIN_SWD | PIN_I2C | PIN_ADC | PIN_IRQ | PIN_GPIO, PIN_NONE, 0},
15+
// D2: PA02, UART0_TX, I2C0_SCL, I2C0_SDA
16+
{PA_2, PIN_UART | PIN_I2C | PIN_IRQ | PIN_GPIO, PIN_NONE, 0},
17+
// D3: PA03, UART0_RX, I2C0_SCL, I2C0_SDA
18+
{PA_3, PIN_UART | PIN_I2C | PIN_IRQ | PIN_GPIO, PIN_NONE, 0},
19+
// D4: PA04, ADC4, SWCLK, I2C0_SCL, I2C0_SDA
20+
{PA_4, PIN_SWD | PIN_I2C | PIN_ADC | PIN_GPIO, PIN_NONE, 0},
21+
// D5: PA05, I2C0_SCL, I2C0_SDA
22+
{PA_5, PIN_I2C | PIN_IRQ | PIN_GPIO, PIN_NONE, 0},
23+
// D6: PA06, SD_D2, I2C0_SCL, I2C0_SDA
24+
{PA_6, PIN_I2C | PIN_IRQ | PIN_GPIO, PIN_NONE, 0},
25+
// D7: PA07, SD_D3, I2S0_RX, I2C0_SCL, I2C0_SDA
26+
{PA_7, PIN_I2S | PIN_I2C | PIN_IRQ | PIN_GPIO, PIN_NONE, 0},
27+
// D8: PA08, BOOT0, SD_CMD, I2S0_WS, I2C0_SCL, I2C0_SDA
28+
{PA_8, PIN_I2S | PIN_I2C | PIN_GPIO, PIN_NONE, 0},
29+
// D9: PA09, BOOT1, SD_CLK, I2S0_SCLK, I2C0_SCL, I2C0_SDA
30+
{PA_9, PIN_I2S | PIN_I2C | PIN_GPIO, PIN_NONE, 0},
31+
// D10: PA10, SD_D0, I2S0_TX, I2C0_SCL, I2C0_SDA
32+
{PA_10, PIN_I2S | PIN_I2C | PIN_GPIO, PIN_NONE, 0},
33+
// D11: PA11, SD_D1, I2C0_SCL, I2C0_SDA
34+
{PA_11, PIN_I2C | PIN_GPIO, PIN_NONE, 0},
35+
// D12: PA12, I2C0_SCL, I2C0_SDA
36+
{PA_12, PIN_I2C | PIN_GPIO, PIN_NONE, 0},
37+
// D13: PB03, ADC5, I2C0_SCL, I2C0_SDA
38+
{PB_3, PIN_I2C | PIN_ADC | PIN_GPIO, PIN_NONE, 0},
39+
// D14: PB04, ADC6, I2C0_SCL, I2C0_SDA
40+
{PB_4, PIN_I2C | PIN_ADC | PIN_GPIO, PIN_NONE, 0},
41+
// D15: PB05, ADC7, I2C0_SCL, I2C0_SDA
42+
{PB_5, PIN_I2C | PIN_ADC | PIN_GPIO, PIN_NONE, 0},
43+
// D16: PB06, I2C0_SCL, I2C0_SDA
44+
{PB_6, PIN_I2C | PIN_GPIO, PIN_NONE, 0},
45+
// D17: PB07, I2C0_SCL, I2C0_SDA
46+
{PB_7, PIN_I2C | PIN_GPIO, PIN_NONE, 0},
47+
// D18: PB08, UART1_RX, I2C0_SCL, I2C0_SDA
48+
{PB_8, PIN_UART | PIN_I2C | PIN_GPIO, PIN_NONE, 0},
49+
// D19: PB09, UART1_TX, I2C0_SCL, I2C0_SDA
50+
{PB_9, PIN_UART | PIN_I2C | PIN_IRQ | PIN_GPIO, PIN_NONE, 0},
51+
};
52+
53+
PinInfo *lt_arduino_pin_gpio_map[] = {
54+
[0] = &(lt_arduino_pin_info_list[0]), // PA_0 (D0)
55+
[1] = &(lt_arduino_pin_info_list[1]), // PA_1 (D1)
56+
[2] = &(lt_arduino_pin_info_list[2]), // PA_2 (D2)
57+
[3] = &(lt_arduino_pin_info_list[3]), // PA_3 (D3)
58+
[4] = &(lt_arduino_pin_info_list[4]), // PA_4 (D4)
59+
[5] = &(lt_arduino_pin_info_list[5]), // PA_5 (D5)
60+
[6] = &(lt_arduino_pin_info_list[6]), // PA_6 (D6)
61+
[7] = &(lt_arduino_pin_info_list[7]), // PA_7 (D7)
62+
[8] = &(lt_arduino_pin_info_list[8]), // PA_8 (D8)
63+
[9] = &(lt_arduino_pin_info_list[9]), // PA_9 (D9)
64+
[10] = &(lt_arduino_pin_info_list[10]), // PA_10 (D10)
65+
[11] = &(lt_arduino_pin_info_list[11]), // PA_11 (D11)
66+
[12] = &(lt_arduino_pin_info_list[12]), // PA_12 (D12)
67+
[19] = &(lt_arduino_pin_info_list[13]), // PB_3 (D13)
68+
[20] = &(lt_arduino_pin_info_list[14]), // PB_4 (D14)
69+
[21] = &(lt_arduino_pin_info_list[15]), // PB_5 (D15)
70+
[22] = &(lt_arduino_pin_info_list[16]), // PB_6 (D16)
71+
[23] = &(lt_arduino_pin_info_list[17]), // PB_7 (D17)
72+
[24] = &(lt_arduino_pin_info_list[18]), // PB_8 (D18)
73+
[25] = &(lt_arduino_pin_info_list[19]), // PB_9 (D19)
74+
};
75+
// clang-format on

boards/variants/generic-ln882hki.h

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
/* This file was auto-generated from generic-ln882hki.json using boardgen */
2+
3+
#pragma once
4+
5+
// clang-format off
6+
7+
// Pins
8+
// ----
9+
#define PINS_COUNT 20 // Total GPIO count
10+
#define NUM_DIGITAL_PINS 20 // Digital inputs/outputs
11+
#define NUM_ANALOG_INPUTS 6 // ADC inputs
12+
#define NUM_ANALOG_OUTPUTS 0 // PWM & DAC outputs
13+
#define PINS_GPIO_MAX 25 // Last usable GPIO number
14+
15+
// Wire Interfaces
16+
// ---------------
17+
#define PIN_WIRE0_SCL_0 0u // PA_0
18+
#define PIN_WIRE0_SCL_1 1u // PA_1
19+
#define PIN_WIRE0_SCL_2 2u // PA_2
20+
#define PIN_WIRE0_SCL_3 3u // PA_3
21+
#define PIN_WIRE0_SCL_4 4u // PA_4
22+
#define PIN_WIRE0_SCL_5 5u // PA_5
23+
#define PIN_WIRE0_SCL_6 6u // PA_6
24+
#define PIN_WIRE0_SCL_7 7u // PA_7
25+
#define PIN_WIRE0_SCL_8 8u // PA_8
26+
#define PIN_WIRE0_SCL_9 9u // PA_9
27+
#define PIN_WIRE0_SCL_10 10u // PA_10
28+
#define PIN_WIRE0_SCL_11 11u // PA_11
29+
#define PIN_WIRE0_SCL_12 12u // PA_12
30+
#define PIN_WIRE0_SCL_13 19u // PB_3
31+
#define PIN_WIRE0_SCL_14 20u // PB_4
32+
#define PIN_WIRE0_SCL_15 21u // PB_5
33+
#define PIN_WIRE0_SCL_16 22u // PB_6
34+
#define PIN_WIRE0_SCL_17 23u // PB_7
35+
#define PIN_WIRE0_SCL_18 24u // PB_8
36+
#define PIN_WIRE0_SCL_19 25u // PB_9
37+
#define PIN_WIRE0_SDA_0 0u // PA_0
38+
#define PIN_WIRE0_SDA_1 1u // PA_1
39+
#define PIN_WIRE0_SDA_2 2u // PA_2
40+
#define PIN_WIRE0_SDA_3 3u // PA_3
41+
#define PIN_WIRE0_SDA_4 4u // PA_4
42+
#define PIN_WIRE0_SDA_5 5u // PA_5
43+
#define PIN_WIRE0_SDA_6 6u // PA_6
44+
#define PIN_WIRE0_SDA_7 7u // PA_7
45+
#define PIN_WIRE0_SDA_8 8u // PA_8
46+
#define PIN_WIRE0_SDA_9 9u // PA_9
47+
#define PIN_WIRE0_SDA_10 10u // PA_10
48+
#define PIN_WIRE0_SDA_11 11u // PA_11
49+
#define PIN_WIRE0_SDA_12 12u // PA_12
50+
#define PIN_WIRE0_SDA_13 19u // PB_3
51+
#define PIN_WIRE0_SDA_14 20u // PB_4
52+
#define PIN_WIRE0_SDA_15 21u // PB_5
53+
#define PIN_WIRE0_SDA_16 22u // PB_6
54+
#define PIN_WIRE0_SDA_17 23u // PB_7
55+
#define PIN_WIRE0_SDA_18 24u // PB_8
56+
#define PIN_WIRE0_SDA_19 25u // PB_9
57+
#define PINS_WIRE0_SCL (pin_size_t[]){0u, 1u, 2u, 3u, 4u, 5u, 6u, 7u, 8u, 9u, 10u, 11u, 12u, 19u, 20u, 21u, 22u, 23u, 24u, 25u}
58+
#define PINS_WIRE0_SDA (pin_size_t[]){0u, 1u, 2u, 3u, 4u, 5u, 6u, 7u, 8u, 9u, 10u, 11u, 12u, 19u, 20u, 21u, 22u, 23u, 24u, 25u}
59+
60+
// Serial ports
61+
// ------------
62+
#define PIN_SERIAL0_RX 3u // PA_3
63+
#define PIN_SERIAL0_TX 2u // PA_2
64+
#define PIN_SERIAL1_RX 24u // PB_8
65+
#define PIN_SERIAL1_TX 25u // PB_9
66+
#define PINS_SERIAL0_RX (pin_size_t[]){3u}
67+
#define PINS_SERIAL0_TX (pin_size_t[]){2u}
68+
#define PINS_SERIAL1_RX (pin_size_t[]){24u}
69+
#define PINS_SERIAL1_TX (pin_size_t[]){25u}
70+
71+
// Pin function macros
72+
// -------------------
73+
#define PIN_ADC2 0u // PA_0
74+
#define PIN_ADC3 1u // PA_1
75+
#define PIN_ADC4 4u // PA_4
76+
#define PIN_ADC5 19u // PB_3
77+
#define PIN_ADC6 20u // PB_4
78+
#define PIN_ADC7 21u // PB_5
79+
#define PIN_PA00 0u // PA_0
80+
#define PIN_PA01 1u // PA_1
81+
#define PIN_PA02 2u // PA_2
82+
#define PIN_PA03 3u // PA_3
83+
#define PIN_PA04 4u // PA_4
84+
#define PIN_PA05 5u // PA_5
85+
#define PIN_PA06 6u // PA_6
86+
#define PIN_PA07 7u // PA_7
87+
#define PIN_PA08 8u // PA_8
88+
#define PIN_PA09 9u // PA_9
89+
#define PIN_PA10 10u // PA_10
90+
#define PIN_PA11 11u // PA_11
91+
#define PIN_PA12 12u // PA_12
92+
#define PIN_PB03 19u // PB_3
93+
#define PIN_PB04 20u // PB_4
94+
#define PIN_PB05 21u // PB_5
95+
#define PIN_PB06 22u // PB_6
96+
#define PIN_PB07 23u // PB_7
97+
#define PIN_PB08 24u // PB_8
98+
#define PIN_PB09 25u // PB_9
99+
#define PIN_RX0 3u // PA_3
100+
#define PIN_RX1 24u // PB_8
101+
#define PIN_TX0 2u // PA_2
102+
#define PIN_TX1 25u // PB_9
103+
104+
// Port availability
105+
// -----------------
106+
#define HAS_SERIAL0 1
107+
#define HAS_SERIAL1 1
108+
#define HAS_WIRE0 1
109+
#define SERIAL_INTERFACES_COUNT 2
110+
#define WIRE_INTERFACES_COUNT 1
111+
112+
// Arduino pin names
113+
// -----------------
114+
#define PIN_D0 0u // PA_0
115+
#define PIN_D1 1u // PA_1
116+
#define PIN_D2 2u // PA_2
117+
#define PIN_D3 3u // PA_3
118+
#define PIN_D4 4u // PA_4
119+
#define PIN_D5 5u // PA_5
120+
#define PIN_D6 6u // PA_6
121+
#define PIN_D7 7u // PA_7
122+
#define PIN_D8 8u // PA_8
123+
#define PIN_D9 9u // PA_9
124+
#define PIN_D10 10u // PA_10
125+
#define PIN_D11 11u // PA_11
126+
#define PIN_D12 12u // PA_12
127+
#define PIN_D13 19u // PB_3
128+
#define PIN_D14 20u // PB_4
129+
#define PIN_D15 21u // PB_5
130+
#define PIN_D16 22u // PB_6
131+
#define PIN_D17 23u // PB_7
132+
#define PIN_D18 24u // PB_8
133+
#define PIN_D19 25u // PB_9
134+
#define PIN_A2 0u // PA_0
135+
#define PIN_A3 1u // PA_1
136+
#define PIN_A4 4u // PA_4
137+
#define PIN_A5 19u // PB_3
138+
#define PIN_A6 20u // PB_4
139+
#define PIN_A7 21u // PB_5
140+
141+
// Static pin names
142+
// ----------------
143+
static const unsigned char A2 = PIN_A2;
144+
static const unsigned char A3 = PIN_A3;
145+
static const unsigned char A4 = PIN_A4;
146+
static const unsigned char A5 = PIN_A5;
147+
static const unsigned char A6 = PIN_A6;
148+
static const unsigned char A7 = PIN_A7;
149+
static const unsigned char D0 = PIN_D0;
150+
static const unsigned char D1 = PIN_D1;
151+
static const unsigned char D2 = PIN_D2;
152+
static const unsigned char D3 = PIN_D3;
153+
static const unsigned char D4 = PIN_D4;
154+
static const unsigned char D5 = PIN_D5;
155+
static const unsigned char D6 = PIN_D6;
156+
static const unsigned char D7 = PIN_D7;
157+
static const unsigned char D8 = PIN_D8;
158+
static const unsigned char D9 = PIN_D9;
159+
static const unsigned char D10 = PIN_D10;
160+
static const unsigned char D11 = PIN_D11;
161+
static const unsigned char D12 = PIN_D12;
162+
static const unsigned char D13 = PIN_D13;
163+
static const unsigned char D14 = PIN_D14;
164+
static const unsigned char D15 = PIN_D15;
165+
static const unsigned char D16 = PIN_D16;
166+
static const unsigned char D17 = PIN_D17;
167+
static const unsigned char D18 = PIN_D18;
168+
static const unsigned char D19 = PIN_D19;

cores/lightning-ln882h/arduino/libraries/WiFi/WiFiSTA.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ bool WiFiClass::setMacAddress(const uint8_t *mac) {
175175
}
176176

177177
const String WiFiClass::SSID() {
178-
const char *ssid = NULL;
178+
const char *ssid = "";
179179
const uint8_t *bssid = NULL;
180180
wifi_get_sta_conn_info(&ssid, &bssid);
181181
return ssid;

0 commit comments

Comments
 (0)