Merge pull request #786 from recrof/xiao-nrf52-cleanup
tidy up xiao nrf52 variant
This commit is contained in:
@@ -1,21 +1,19 @@
|
|||||||
#ifdef XIAO_NRF52
|
#ifdef XIAO_NRF52
|
||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include "XiaoNrf52Board.h"
|
|
||||||
|
|
||||||
#include <bluefruit.h>
|
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
|
#include <bluefruit.h>
|
||||||
|
|
||||||
|
#include "XiaoNrf52Board.h"
|
||||||
|
|
||||||
static BLEDfu bledfu;
|
static BLEDfu bledfu;
|
||||||
|
|
||||||
static void connect_callback(uint16_t conn_handle)
|
static void connect_callback(uint16_t conn_handle) {
|
||||||
{
|
|
||||||
(void)conn_handle;
|
(void)conn_handle;
|
||||||
MESH_DEBUG_PRINTLN("BLE client connected");
|
MESH_DEBUG_PRINTLN("BLE client connected");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void disconnect_callback(uint16_t conn_handle, uint8_t reason)
|
static void disconnect_callback(uint16_t conn_handle, uint8_t reason) {
|
||||||
{
|
|
||||||
(void)conn_handle;
|
(void)conn_handle;
|
||||||
(void)reason;
|
(void)reason;
|
||||||
|
|
||||||
@@ -41,12 +39,12 @@ void XiaoNrf52Board::begin() {
|
|||||||
digitalWrite(P_LORA_TX_LED, HIGH);
|
digitalWrite(P_LORA_TX_LED, HIGH);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// pinMode(SX126X_POWER_EN, OUTPUT);
|
// pinMode(SX126X_POWER_EN, OUTPUT);
|
||||||
// digitalWrite(SX126X_POWER_EN, HIGH);
|
// digitalWrite(SX126X_POWER_EN, HIGH);
|
||||||
delay(10); // give sx1262 some time to power up
|
delay(10); // give sx1262 some time to power up
|
||||||
}
|
}
|
||||||
|
|
||||||
bool XiaoNrf52Board::startOTAUpdate(const char* id, char reply[]) {
|
bool XiaoNrf52Board::startOTAUpdate(const char *id, char reply[]) {
|
||||||
// Config the peripheral connection with maximum bandwidth
|
// Config the peripheral connection with maximum bandwidth
|
||||||
// more SRAM required by SoftDevice
|
// more SRAM required by SoftDevice
|
||||||
// Note: All config***() function must be called before begin()
|
// Note: All config***() function must be called before begin()
|
||||||
@@ -86,10 +84,8 @@ bool XiaoNrf52Board::startOTAUpdate(const char* id, char reply[]) {
|
|||||||
Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds
|
Bluefruit.Advertising.start(0); // 0 = Don't stop advertising after n seconds
|
||||||
|
|
||||||
strcpy(reply, "OK - started");
|
strcpy(reply, "OK - started");
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -5,20 +5,6 @@
|
|||||||
|
|
||||||
#ifdef XIAO_NRF52
|
#ifdef XIAO_NRF52
|
||||||
|
|
||||||
// redefine lora pins if using the S3 variant of SX1262 board
|
|
||||||
#ifdef SX1262_XIAO_S3_VARIANT
|
|
||||||
#undef P_LORA_DIO_1
|
|
||||||
#undef P_LORA_BUSY
|
|
||||||
#undef P_LORA_RESET
|
|
||||||
#undef P_LORA_NSS
|
|
||||||
#undef SX126X_RXEN
|
|
||||||
#define P_LORA_DIO_1 D0
|
|
||||||
#define P_LORA_BUSY D1
|
|
||||||
#define P_LORA_RESET D2
|
|
||||||
#define P_LORA_NSS D3
|
|
||||||
#define SX126X_RXEN D4
|
|
||||||
#endif
|
|
||||||
|
|
||||||
class XiaoNrf52Board : public mesh::MainBoard {
|
class XiaoNrf52Board : public mesh::MainBoard {
|
||||||
protected:
|
protected:
|
||||||
uint8_t startup_reason;
|
uint8_t startup_reason;
|
||||||
|
|||||||
@@ -1,37 +1,19 @@
|
|||||||
[nrf52840_xiao]
|
[Xiao_nrf52]
|
||||||
extends = nrf52_base
|
extends = nrf52_base
|
||||||
platform_packages =
|
|
||||||
toolchain-gccarmnoneeabi@~1.100301.0
|
|
||||||
framework-arduinoadafruitnrf52
|
|
||||||
board = seeed-xiao-afruitnrf52-nrf52840
|
board = seeed-xiao-afruitnrf52-nrf52840
|
||||||
board_build.ldscript = boards/nrf52840_s140_v7.ld
|
board_build.ldscript = boards/nrf52840_s140_v7.ld
|
||||||
build_flags = ${nrf52_base.build_flags}
|
build_flags = ${nrf52_base.build_flags}
|
||||||
-D NRF52_PLATFORM -D XIAO_NRF52
|
${sensor_base.build_flags}
|
||||||
-I lib/nrf52/s140_nrf52_7.3.0_API/include
|
-I lib/nrf52/s140_nrf52_7.3.0_API/include
|
||||||
-I lib/nrf52/s140_nrf52_7.3.0_API/include/nrf52
|
-I lib/nrf52/s140_nrf52_7.3.0_API/include/nrf52
|
||||||
lib_ignore =
|
|
||||||
BluetoothOTA
|
|
||||||
lvgl
|
|
||||||
lib5b4
|
|
||||||
lib_deps =
|
|
||||||
${nrf52_base.lib_deps}
|
|
||||||
rweather/Crypto @ ^0.4.0
|
|
||||||
adafruit/Adafruit INA3221 Library @ ^1.0.1
|
|
||||||
adafruit/Adafruit INA219 @ ^1.2.3
|
|
||||||
adafruit/Adafruit AHTX0 @ ^2.0.5
|
|
||||||
adafruit/Adafruit BME280 Library @ ^2.3.0
|
|
||||||
|
|
||||||
|
|
||||||
[Xiao_nrf52]
|
|
||||||
extends = nrf52840_xiao
|
|
||||||
;board_build.ldscript = boards/nrf52840_s140_v7.ld
|
|
||||||
build_flags = ${nrf52840_xiao.build_flags}
|
|
||||||
-D P_LORA_TX_LED=11
|
|
||||||
-I variants/xiao_nrf52
|
-I variants/xiao_nrf52
|
||||||
-I src/helpers/nrf52
|
-UENV_INCLUDE_GPS
|
||||||
|
-D NRF52_PLATFORM
|
||||||
|
-D XIAO_NRF52
|
||||||
-D RADIO_CLASS=CustomSX1262
|
-D RADIO_CLASS=CustomSX1262
|
||||||
-D WRAPPER_CLASS=CustomSX1262Wrapper
|
-D WRAPPER_CLASS=CustomSX1262Wrapper
|
||||||
-D LORA_TX_POWER=22
|
-D LORA_TX_POWER=22
|
||||||
|
-D P_LORA_TX_LED=11
|
||||||
-D P_LORA_DIO_1=D1
|
-D P_LORA_DIO_1=D1
|
||||||
-D P_LORA_RESET=D2
|
-D P_LORA_RESET=D2
|
||||||
-D P_LORA_BUSY=D3
|
-D P_LORA_BUSY=D3
|
||||||
@@ -42,18 +24,16 @@ build_flags = ${nrf52840_xiao.build_flags}
|
|||||||
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
|
-D SX126X_DIO3_TCXO_VOLTAGE=1.8
|
||||||
-D SX126X_CURRENT_LIMIT=140
|
-D SX126X_CURRENT_LIMIT=140
|
||||||
-D SX126X_RX_BOOSTED_GAIN=1
|
-D SX126X_RX_BOOSTED_GAIN=1
|
||||||
-D PIN_WIRE_SCL=6
|
-D PIN_WIRE_SCL=D6
|
||||||
-D PIN_WIRE_SDA=7
|
-D PIN_WIRE_SDA=D7
|
||||||
-D ENV_INCLUDE_AHTX0=1
|
build_src_filter = ${nrf52_base.build_src_filter}
|
||||||
-D ENV_INCLUDE_BME280=1
|
|
||||||
-D ENV_INCLUDE_INA3221=1
|
|
||||||
-D ENV_INCLUDE_INA219=1
|
|
||||||
build_src_filter = ${nrf52840_xiao.build_src_filter}
|
|
||||||
+<helpers/*.cpp>
|
+<helpers/*.cpp>
|
||||||
+<helpers/sensors>
|
+<helpers/sensors>
|
||||||
+<../variants/xiao_nrf52>
|
+<../variants/xiao_nrf52>
|
||||||
debug_tool = jlink
|
debug_tool = jlink
|
||||||
upload_protocol = nrfutil
|
upload_protocol = nrfutil
|
||||||
|
lib_deps = ${nrf52_base.lib_deps}
|
||||||
|
${sensor_base.lib_deps}
|
||||||
|
|
||||||
[env:Xiao_nrf52_companion_radio_ble]
|
[env:Xiao_nrf52_companion_radio_ble]
|
||||||
extends = Xiao_nrf52
|
extends = Xiao_nrf52
|
||||||
@@ -94,12 +74,6 @@ lib_deps =
|
|||||||
${Xiao_nrf52.lib_deps}
|
${Xiao_nrf52.lib_deps}
|
||||||
densaugeo/base64 @ ~1.4.0
|
densaugeo/base64 @ ~1.4.0
|
||||||
|
|
||||||
[env:Xiao_nrf52_alt_pinout_companion_radio_ble]
|
|
||||||
extends = env:Xiao_nrf52_companion_radio_ble
|
|
||||||
build_flags =
|
|
||||||
${env:Xiao_nrf52_companion_radio_ble.build_flags}
|
|
||||||
-D SX1262_XIAO_S3_VARIANT
|
|
||||||
|
|
||||||
[env:Xiao_nrf52_repeater]
|
[env:Xiao_nrf52_repeater]
|
||||||
extends = Xiao_nrf52
|
extends = Xiao_nrf52
|
||||||
build_flags =
|
build_flags =
|
||||||
@@ -114,12 +88,6 @@ build_flags =
|
|||||||
build_src_filter = ${Xiao_nrf52.build_src_filter}
|
build_src_filter = ${Xiao_nrf52.build_src_filter}
|
||||||
+<../examples/simple_repeater/*.cpp>
|
+<../examples/simple_repeater/*.cpp>
|
||||||
|
|
||||||
[env:Xiao_nrf52_alt_pinout_repeater]
|
|
||||||
extends = env:Xiao_nrf52_repeater
|
|
||||||
build_flags =
|
|
||||||
${env:Xiao_nrf52_repeater.build_flags}
|
|
||||||
-D SX1262_XIAO_S3_VARIANT
|
|
||||||
|
|
||||||
[env:Xiao_nrf52_room_server]
|
[env:Xiao_nrf52_room_server]
|
||||||
extends = Xiao_nrf52
|
extends = Xiao_nrf52
|
||||||
build_flags =
|
build_flags =
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ WRAPPER_CLASS radio_driver(radio, board);
|
|||||||
|
|
||||||
VolatileRTCClock fallback_clock;
|
VolatileRTCClock fallback_clock;
|
||||||
AutoDiscoverRTCClock rtc_clock(fallback_clock);
|
AutoDiscoverRTCClock rtc_clock(fallback_clock);
|
||||||
|
|
||||||
EnvironmentSensorManager sensors;
|
EnvironmentSensorManager sensors;
|
||||||
|
|
||||||
bool radio_init() {
|
bool radio_init() {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
#include "variant.h"
|
#include "variant.h"
|
||||||
|
|
||||||
|
#include "nrf.h"
|
||||||
#include "wiring_constants.h"
|
#include "wiring_constants.h"
|
||||||
#include "wiring_digital.h"
|
#include "wiring_digital.h"
|
||||||
#include "nrf.h"
|
|
||||||
|
|
||||||
const uint32_t g_ADigitalPinMap[] =
|
const uint32_t g_ADigitalPinMap[] = {
|
||||||
{
|
|
||||||
// D0 .. D10
|
// D0 .. D10
|
||||||
2, // D0 is P0.02 (A0)
|
2, // D0 is P0.02 (A0)
|
||||||
3, // D1 is P0.03 (A1)
|
3, // D1 is P0.03 (A1)
|
||||||
@@ -55,12 +55,11 @@ const uint32_t g_ADigitalPinMap[] =
|
|||||||
31, // D32 is P0.31 (VBAT)
|
31, // D32 is P0.31 (VBAT)
|
||||||
};
|
};
|
||||||
|
|
||||||
void initVariant()
|
void initVariant() {
|
||||||
{
|
|
||||||
// Disable reading of the BAT voltage.
|
// Disable reading of the BAT voltage.
|
||||||
// https://wiki.seeedstudio.com/XIAO_BLE#q3-what-are-the-considerations-when-using-xiao-nrf52840-sense-for-battery-charging
|
// https://wiki.seeedstudio.com/XIAO_BLE#q3-what-are-the-considerations-when-using-xiao-nrf52840-sense-for-battery-charging
|
||||||
pinMode(VBAT_ENABLE, OUTPUT);
|
pinMode(VBAT_ENABLE, OUTPUT);
|
||||||
//digitalWrite(VBAT_ENABLE, HIGH);
|
// digitalWrite(VBAT_ENABLE, HIGH);
|
||||||
// This was taken from Seeed github butis not coherent with the doc,
|
// This was taken from Seeed github butis not coherent with the doc,
|
||||||
// VBAT_ENABLE should be kept to LOW to protect P0.14, (1500/500)*(4.2-3.3)+3.3 = 3.9V > 3.6V
|
// VBAT_ENABLE should be kept to LOW to protect P0.14, (1500/500)*(4.2-3.3)+3.3 = 3.9V > 3.6V
|
||||||
// This induces a 3mA current in the resistors :( but it's better than burning the nrf
|
// This induces a 3mA current in the resistors :( but it's better than burning the nrf
|
||||||
@@ -68,7 +67,7 @@ void initVariant()
|
|||||||
|
|
||||||
// Low charging current (50mA)
|
// Low charging current (50mA)
|
||||||
// https://wiki.seeedstudio.com/XIAO_BLE#battery-charging-current
|
// https://wiki.seeedstudio.com/XIAO_BLE#battery-charging-current
|
||||||
//pinMode(PIN_CHARGING_CURRENT, INPUT);
|
// pinMode(PIN_CHARGING_CURRENT, INPUT);
|
||||||
|
|
||||||
// High charging current (100mA)
|
// High charging current (100mA)
|
||||||
pinMode(PIN_CHARGING_CURRENT, OUTPUT);
|
pinMode(PIN_CHARGING_CURRENT, OUTPUT);
|
||||||
|
|||||||
@@ -113,8 +113,8 @@ static const uint8_t A5 = PIN_A5;
|
|||||||
// #define PIN_WIRE_SDA (17) // 4 and 5 are used for the sx1262 !
|
// #define PIN_WIRE_SDA (17) // 4 and 5 are used for the sx1262 !
|
||||||
// #define PIN_WIRE_SCL (16) // use WIRE1_SDA
|
// #define PIN_WIRE_SCL (16) // use WIRE1_SDA
|
||||||
|
|
||||||
static const uint8_t SDA = PIN_WIRE_SDA;
|
// static const uint8_t SDA = PIN_WIRE_SDA;
|
||||||
static const uint8_t SCL = PIN_WIRE_SCL;
|
// static const uint8_t SCL = PIN_WIRE_SCL;
|
||||||
|
|
||||||
//#define PIN_WIRE1_SDA (17)
|
//#define PIN_WIRE1_SDA (17)
|
||||||
//#define PIN_WIRE1_SCL (16)
|
//#define PIN_WIRE1_SCL (16)
|
||||||
|
|||||||
Reference in New Issue
Block a user