Skip to content

T3-TCXO Quick Start ​

Required Libraries ​

LibraryVersionSource
RadioLibLatestGitHub
U8g2LatestArduino Library Manager

Arduino ​

  1. Install VS Code with the PlatformIO IDE extension
  2. Clone the repository:
    bash
    git clone https://github.com/Xinyuan-LilyGO/LilyGo-LoRa-Series.git
  3. Open the project, select the T3_V3_0_SX1276_TCXO environment in platformio.ini
  4. Click ✓ to build, connect via USB-C, then click → to upload

Arduino IDE ​

Board Settings ​

SettingValue
BoardESP32 Dev Module
Upload Speed921600
Flash ModeQIO
Flash Size4MB (32Mb)
Partition SchemeDefault 4MB with spiffs
PSRAMEnabled

Steps ​

  1. Install Arduino IDE and add ESP32 board support: https://espressif.github.io/arduino-esp32/package_esp32_index.json
  2. Clone the LilyGo-LoRa-Series repo and open an example sketch
  3. In utilities.h, uncomment T3_V3_0_SX1276_TCXO
  4. Select the board settings above and click Upload

Peripheral Examples ​

LoRa (SX1276 + TCXO) ​

cpp
#include <RadioLib.h>

// T3-TCXO SX1276: CS=18, IRQ=26, RST=23, DIO1=33
// GPIO12 must be HIGH to enable the TCXO before radio init
SX1276 radio = new Module(18, 26, 23, 33);

void setup() {
  Serial.begin(115200);
  // Enable TCXO
  pinMode(12, OUTPUT);
  digitalWrite(12, HIGH);
  delay(10);

  int state = radio.begin(915.0);
  if (state != RADIOLIB_ERR_NONE) {
    Serial.print("Radio init failed: "); Serial.println(state);
    while (true);
  }
  Serial.println("SX1276 + TCXO ready");
}

void loop() {
  int state = radio.transmit("Hello T3-TCXO");
  if (state == RADIOLIB_ERR_NONE) Serial.println("Sent OK");
  delay(2000);
}

OLED Display (SSD1306) ​

cpp
#include <U8g2lib.h>
#include <Wire.h>

// SSD1306 128×64 I2C, SDA=21, SCL=22
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);

void setup() {
  u8g2.begin();
}

void loop() {
  u8g2.clearBuffer();
  u8g2.setFont(u8g2_font_ncenB08_tr);
  u8g2.drawStr(0, 20, "T3-TCXO Ready");
  u8g2.sendBuffer();
  delay(1000);
}

Notes ​

  • SoC: ESP32-Pico-D4 (not standard ESP32 module) — use ESP32 Dev Module board definition
  • TCXO: The onboard TCXO (±0.5 ppm) provides temperature-stable frequency; set TCXO enable pin (GPIO12) HIGH before LoRa initialization
  • PSRAM: 2 MB PSRAM is present — enable it in board settings
  • Power: Supports USB-C, 3.7 V Li-Po battery, and solar input

FAQ ​

Q: LoRa frequency drifts at temperature extremes? A: The TCXO is the fix for this — ensure GPIO12 is driven HIGH to enable it before calling radio.begin().

Q: Cannot find the board after connecting USB-C? A: The ESP32-Pico-D4 uses a standard USB-serial bridge — check Device Manager for the COM port and install CH34x or CP210x drivers if needed.