Skip to content

Commit

Permalink
Merge pull request #1 from oseiler2/sx126x-TBeamS3
Browse files Browse the repository at this point in the history
Busy pin initialisation and T-Beam S3 Core/Supreme pinmap
  • Loading branch information
TristanWebber authored Jun 26, 2024
2 parents 6862817 + 4800a68 commit fa08713
Show file tree
Hide file tree
Showing 5 changed files with 78 additions and 1 deletion.
1 change: 1 addition & 0 deletions src/arduino_lmic_hal_boards.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ const HalPinmap_t *GetPinmap_ttgo_lora32_v21();
const HalPinmap_t* GetPinmap_heltec_lora32();
const HalPinmap_t* GetPinmap_heltec_lora32_v3();
const HalPinmap_t* GetPinmap_Disco_L072cz_Lrwan1();
const HalPinmap_t* GetPinmap_ttgo_tbeam_s3();

const HalPinmap_t *GetPinmap_ThisBoard();

Expand Down
2 changes: 1 addition & 1 deletion src/arduino_lmic_hal_configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ class HalConfiguration_t

virtual void begin(void) {}
virtual void end(void) {}
virtual uint8_t queryBusyPin(void) { return 0; }
virtual uint8_t queryBusyPin(void) { return HalPinmap_t::LMIC_UNUSED_PIN; }
virtual bool queryUsingTcxo(void) { return false; }
virtual bool queryUsingDcdc(void) { return false; }
virtual bool queryUsingDIO2AsRfSwitch(void) { return false; }
Expand Down
2 changes: 2 additions & 0 deletions src/hal/getpinmap_thisboard.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ const HalPinmap_t *GetPinmap_ThisBoard(void)
return GetPinmap_heltec_lora32();
#elif defined(ARDUINO_heltec_wifi_lora_32_V3)
return GetPinmap_heltec_lora32_v3();
#elif defined(ARDUINO_TTGO_T_BEAM_S3)
return GetPinmap_ttgo_tbeam_s3();
#else
#pragma message("Board not supported -- use an explicit pinmap")
return nullptr;
Expand Down
70 changes: 70 additions & 0 deletions src/hal/getpinmap_ttgo_tbeam_s3.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
/*
Module: getpinmap_ttgo_tbeam_s3.cpp.cpp
Function:
Arduino-LMIC C++ HAL pinmap for T-Beam S3 Core and T-Beam Supreme
Copyright & License:
See accompanying LICENSE file.
*/

#if defined(ARDUINO_TTGO_T_BEAM_S3)

#include <arduino_lmic_hal_boards.h>
#include <Arduino.h>

#include "../lmic/oslmic.h"

namespace Arduino_LMIC {

class HalConfiguration_ttgo_tbeam_s3 : public HalConfiguration_t {
public:
enum DIGITAL_PINS : uint8_t {
PIN_SX1262_NSS = 10,
PIN_SX1262_NRESET = 5,
PIN_SX1262_BUSY = 4,
PIN_SX1262_DIO1 = 1,
PIN_SX1262_DIO2 = HalPinmap_t::UNUSED_PIN,
PIN_SX1262_DIO3 = HalPinmap_t::UNUSED_PIN,
PIN_SX1262_ANT_SWITCH_RX = HalPinmap_t::UNUSED_PIN,
PIN_SX1262_ANT_SWITCH_TX_BOOST = HalPinmap_t::UNUSED_PIN,
PIN_SX1262_ANT_SWITCH_TX_RFO = HalPinmap_t::UNUSED_PIN,
PIN_VDD_BOOST_ENABLE = HalPinmap_t::UNUSED_PIN,
};

virtual u1_t queryBusyPin(void) override { return HalConfiguration_ttgo_tbeam_s3::PIN_SX1262_BUSY; };

virtual bool queryUsingDcdc(void) override { return true; };

virtual bool queryUsingDIO2AsRfSwitch(void) override { return true; };

virtual bool queryUsingDIO3AsTCXOSwitch(void) override { return true; };
};

static HalConfiguration_ttgo_tbeam_s3 myConfig;

static const HalPinmap_t myPinmap =
{
.nss = HalConfiguration_ttgo_tbeam_s3::PIN_SX1262_NSS,
.rxtx = HalConfiguration_ttgo_tbeam_s3::PIN_SX1262_ANT_SWITCH_RX,
.rst = HalConfiguration_ttgo_tbeam_s3::PIN_SX1262_NRESET,
.dio = {
HalConfiguration_ttgo_tbeam_s3::PIN_SX1262_DIO1,
HalConfiguration_ttgo_tbeam_s3::PIN_SX1262_DIO2,
HalConfiguration_ttgo_tbeam_s3::PIN_SX1262_DIO3,
},
.rxtx_rx_active = 0,
.rssi_cal = 8,
.spi_freq = 8000000, /* 8MHz */
.pConfig = &myConfig
};

const HalPinmap_t* GetPinmap_ttgo_tbeam_s3(void) {
return &myPinmap;
}

}; // namespace Arduino_LMIC

#endif // defined(ARDUINO_TTGO_T_BEAM_S3)
4 changes: 4 additions & 0 deletions src/hal/hal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@ static void hal_io_init () {
pinMode(plmic_pins->rst, INPUT);
}

if (pHalConfig->queryBusyPin() != LMIC_UNUSED_PIN) {
pinMode(pHalConfig->queryBusyPin(), INPUT);
}

hal_interrupt_init();
}

Expand Down

0 comments on commit fa08713

Please sign in to comment.