Skip to content

Commit 8c244b8

Browse files
committed
added airlifty support, needs new fw build
debug is on
1 parent 3b228dc commit 8c244b8

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

src/local/BLELocalDevice.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,13 @@ BLELocalDevice::~BLELocalDevice()
4141

4242
int BLELocalDevice::begin()
4343
{
44-
#if defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_SAMD_NANO_33_IOT)
44+
#if defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_SAMD_NANO_33_IOT) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
4545
// reset the NINA in BLE mode
4646
pinMode(SPIWIFI_SS, OUTPUT);
4747
pinMode(NINA_RESETN, OUTPUT);
48-
48+
pinMode(NINA_GPIO0, OUTPUT);
49+
digitalWrite(NINA_GPIO0, HIGH);
50+
4951
digitalWrite(SPIWIFI_SS, LOW);
5052
#endif
5153

@@ -54,7 +56,7 @@ int BLELocalDevice::begin()
5456
delay(100);
5557
digitalWrite(NINA_RESETN, LOW);
5658
delay(750);
57-
#elif defined(ARDUINO_SAMD_NANO_33_IOT)
59+
#elif defined(ARDUINO_SAMD_NANO_33_IOT) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
5860
// inverted reset
5961
digitalWrite(NINA_RESETN, LOW);
6062
delay(100);
@@ -67,7 +69,7 @@ int BLELocalDevice::begin()
6769
#endif
6870

6971

70-
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
72+
#if defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
7173
// set SS HIGH
7274
digitalWrite(SPIWIFI_SS, HIGH);
7375

@@ -84,6 +86,7 @@ int BLELocalDevice::begin()
8486
return 0;
8587
}
8688

89+
HCI.debug(Serial);
8790
delay(100);
8891

8992
if (HCI.reset() != 0) {
@@ -130,7 +133,7 @@ void BLELocalDevice::end()
130133
#if defined(ARDUINO_SAMD_MKRWIFI1010) || defined(ARDUINO_AVR_UNO_WIFI_REV2)
131134
// disable the NINA
132135
digitalWrite(NINA_RESETN, HIGH);
133-
#elif defined(ARDUINO_SAMD_NANO_33_IOT)
136+
#elif defined(ARDUINO_SAMD_NANO_33_IOT) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
134137
// disable the NINA
135138
digitalWrite(NINA_RESETN, LOW);
136139
#elif defined(ARDUINO_PORTENTA_H7_M4) || defined(ARDUINO_PORTENTA_H7_M7)

src/utility/HCI.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ void HCIClass::poll()
102102

103103
void HCIClass::poll(unsigned long timeout)
104104
{
105-
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
105+
#if defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
106106
digitalWrite(NINA_RTS, LOW);
107107
#endif
108108

@@ -120,15 +120,15 @@ void HCIClass::poll(unsigned long timeout)
120120
if (_debug) {
121121
dumpPkt("HCI ACLDATA RX <- ", _recvIndex, _recvBuffer);
122122
}
123-
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
123+
#if defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
124124
digitalWrite(NINA_RTS, HIGH);
125125
#endif
126126
int pktLen = _recvIndex - 1;
127127
_recvIndex = 0;
128128

129129
handleAclDataPkt(pktLen, &_recvBuffer[1]);
130130

131-
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
131+
#if defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
132132
digitalWrite(NINA_RTS, LOW);
133133
#endif
134134
}
@@ -137,7 +137,7 @@ void HCIClass::poll(unsigned long timeout)
137137
if (_debug) {
138138
dumpPkt("HCI EVENT RX <- ", _recvIndex, _recvBuffer);
139139
}
140-
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
140+
#if defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
141141
digitalWrite(NINA_RTS, HIGH);
142142
#endif
143143
// received full event
@@ -146,7 +146,7 @@ void HCIClass::poll(unsigned long timeout)
146146

147147
handleEventPkt(pktLen, &_recvBuffer[1]);
148148

149-
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
149+
#if defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
150150
digitalWrite(NINA_RTS, LOW);
151151
#endif
152152
}
@@ -159,7 +159,7 @@ void HCIClass::poll(unsigned long timeout)
159159
}
160160
}
161161

162-
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
162+
#if defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
163163
digitalWrite(NINA_RTS, HIGH);
164164
#endif
165165
}

src/utility/HCIUartTransport.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,11 @@
2929
// SerialHCI is already defined in the variant
3030
#elif defined(ARDUINO_PORTENTA_H7_M7)
3131
#define SerialHCI Serial2
32+
#elif defined(ADAFRUIT_METRO_M4_AIRLIFT_LITE)
33+
#define SerialHCI SerialESP32
3234
#else
33-
#error "Unsupported board selected!"
35+
#define SerialHCI Serial1
36+
#warning "Unsupported board selected! Using Serial1"
3437
#endif
3538

3639
HCIUartTransportClass::HCIUartTransportClass(HardwareSerial& uart, unsigned long baudrate) :
@@ -81,7 +84,7 @@ int HCIUartTransportClass::read()
8184

8285
size_t HCIUartTransportClass::write(const uint8_t* data, size_t length)
8386
{
84-
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
87+
#if defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
8588
// wait while the CTS pin is low
8689
while (digitalRead(NINA_CTS) == HIGH);
8790
#endif
@@ -95,6 +98,8 @@ size_t HCIUartTransportClass::write(const uint8_t* data, size_t length)
9598

9699
#ifdef ARDUINO_AVR_UNO_WIFI_REV2
97100
HCIUartTransportClass HCIUartTransport(SerialHCI, 119600);
101+
#elif defined(ADAFRUIT_ITSYBITSY_M4_EXPRESS) || defined(ARDUINO_METRO_M4_AIRLIFT_LITE)
102+
HCIUartTransportClass HCIUartTransport(SerialHCI, 115200);
98103
#else
99104
HCIUartTransportClass HCIUartTransport(SerialHCI, 912600);
100105
#endif

0 commit comments

Comments
 (0)