/LilyGo-LoRa-Series

LILYGO LoRa Series examples

Primary LanguageC

🌟LilyGo LoRa Series🌟

中文 | English

1️⃣Product

Product SOC Flash PSRAM
T-Beam Supreme L76K ESP32-S3FN8 8MB(Quad-SPI) 8MB(Quad-SPI)
T-Beam Supreme Ublox ESP32-S3FN8 8MB(Quad-SPI) 8MB(Quad-SPI)
T-Beam Meshtastic ESP32-D0WDQ6-V3 4MB(Quad-SPI) 8MB(Quad-SPI)
T-Beam SoftRF ESP32-D0WDQ6-V3 4MB(Quad-SPI) 8MB(Quad-SPI)
T3-S3 SX1280 2.4G With out PA ESP32-S3FH4R2 4MB(Quad-SPI)
T3-S3 SX1280 2.4G With PA ESP32-S3FH4R2 4MB(Quad-SPI)
T3-S3 SX1276 ESP32-S3FH4R2 4MB(Quad-SPI)
T3-S3 SX1262 ESP32-S3FH4R2 4MB(Quad-SPI)
LoRa32 ESP32-PICO-D4 4MB(Quad-SPI)
T-Motion STM32L073RZ 192 Kbyte (20-Kbyte RAM)

2️⃣Example description

├─ArduinoLoRa                 # Only support SX1276/SX1278 radio module
│ ├─LoRaReceiver
│ └─LoRaSender
├── Display                   # Only supports TBeam TFT Shield
│ ├── Free_Font_Demo
│ ├── GxEPD_U8G2_Fonts_Demo
│ ├── TBeam_TFT_Shield
│ ├── TFT_Char_times
│ └── UTFT_demo
├─GPS                         # T-Beam GPS demo examples
│ ├─TinyGPS_Example
│ ├─TinyGPS_FullExample
│ ├─TinyGPS_KitchenSink
│ ├─UBlox_BasicNMEARead       # Only support Ublox GNSS Module
│ ├─UBlox_Recovery            # Only support Ublox GNSS Module
│ ├─UBlox_OutputRate          # Only support Ublox GNSS Module
│ └─UBlox_NMEAParsing         # Only support Ublox GNSS Module
├─OLED                        #OLED demo examples
│ ├─SH1106FontUsage
│ ├─SH1106GraphicsTest
│ ├─SH1106IconMenu
│ ├─SH1106PrintUTF8
│ ├─SSD1306SimpleDemo
│ └─SSD1306UiDemo
├─RadioLibExamples            # RadioLib examples,Support SX1276/78/62/80
│ ├─SX1262
│ │ ├─SX1262_C6_Receive_interrupt
│ │ ├─SX1262_C6_Transmit_Interrupt
│ │ ├─SX1262_Receive_Interrupt
│ │ └─SX1262_Transmit_Interrupt
│ ├─SX1268
│ │ ├─SX1268_Receive_Interrupt
│ │ └─SX1268_Transmit_Interrupt
│ ├─SX1276
│ │ ├─SX1276_Receive_Interrupt
│ │ └─SX1276_Transmit_Interrupt
│ ├─SX1278
│ │ ├─SX1278_Receive
│ │ ├─SX1278_Receive_Interrupt
│ │ ├─SX1278_Transmit
│ │ └─SX1278_Transmit_Interrupt
│ ├─SX1280
│ │ ├─Ranging
│ │ │ ├─Ranging_Master
│ │ │ └─Ranging_Slave
│ │ ├─SX128x_Receive_Interrupt
│ │ └─SX128x_Transmit_Interrupt
│ └─TBeamAllFunction          # T-Beam all function example,Only tbeamv1.x is supported temporarily
├── Sensor                    # Sensor examples , just support t-beams3-supreme
│ ├── BME280_AdvancedsettingsExample
│ ├── BME280_TestExample
│ ├── BME280_UnifiedExample
│ ├── PCF8563_AlarmByUnits
│ ├── PCF8563_SimpleTime
│ ├── PCF8563_TimeLib
│ ├── PCF8563_TimeSynchronization
│ ├── QMC6310_CalibrateExample
│ ├── QMC6310_CompassExample
│ ├── QMC6310_GetDataExample
│ ├── QMC6310_GetPolarExample
│ ├── QMI8658_BlockExample
│ ├── QMI8658_GetDataExample
│ ├── QMI8658_InterruptBlockExample
│ ├── QMI8658_InterruptExample
│ ├── QMI8658_LockingMechanismExample
│ ├── QMI8658_MadgwickAHRS
│ ├── QMI8658_PedometerExample
│ ├── QMI8658_ReadFromFifoExample
│ └── QMI8658_WakeOnMotion
├─SleepTest
└─LoRaWAN                # OTAA method Join TTN example
     └─OTTA

3️⃣Arduino IDE quick start:

  1. Install Arduino IDE

  2. Install Arduino ESP32

  3. Copy all folders in the lib directory to the Sketchbook location directory. How to find the location of your own libraries, please see here

    • Windows: C:\Users\{username}\Documents\Arduino
    • macOS: /Users/{username}/Documents/Arduino
    • Linux: /home/{username}/Arduino
  4. Open the corresponding example

    • Open the downloaded LilyGo-LoRa-Series
    • Open examples
    • Select the sample file and open the file ending with ino
  5. On Arduino ISelect the corresponding board in the DE tool project and click on the corresponding option in the list below to select

    Click to view T-Beam S3 Supreme Arduino IDE options
    T-Beam S3 Supreme Value
    Board ESP32S3 Dev Module
    Port Your port
    USB CDC On Boot Enable
    CPU Frequency 240MHZ(WiFi)
    Core Debug Level None
    USB DFU On Boot Disable
    Erase All Flash Before Sketch Upload Disable
    Events Run On Core1
    Flash Mode QIO 80MHZ
    Flash Size 8MB(64Mb)
    Arduino Runs On Core1
    USB Firmware MSC On Boot Disable
    Partition Scheme 8M Flash(3M APP/1.5MB SPIFFS)
    PSRAM QSPI PSRAM
    Upload Mode UART0/Hardware CDC
    Upload Speed 921600
    USB Mode CDC and JTAG
    Programmer Esptool
    Click to view T-Beam-V1.X Arduino IDE options
    T-Beam-V1.X Value
    Board ESP32 Dev Module
    Port Your port
    CPU Frequency 240MHZ(WiFi/BT)
    Core Debug Level None
    Erase All Flash Before Sketch Upload Disable
    Events Run On Core1
    Flash Frequency 80MHZ
    Flash Mode QIO
    Flash Size 4MB(32Mb)
    JTAG Adapter Disabled
    Arduino Runs On Core1
    Partition Scheme Default 4M Flash with spiffs(1.2M APP/1.5MB SPIFFS)
    PSRAM Enable
    Upload Speed 921600
    Programmer Esptool
    Click to view LoRa32 V1.x Arduino IDE options
    T-Beam-V1.X Value
    Board ESP32 Dev Module
    Port Your port
    CPU Frequency 240MHZ(WiFi/BT)
    Core Debug Level None
    Erase All Flash Before Sketch Upload Disable
    Events Run On Core1
    Flash Frequency 80MHZ
    Flash Mode QIO
    Flash Size 4MB(32Mb)
    JTAG Adapter Disabled
    Arduino Runs On Core1
    Partition Scheme Default 4M Flash with spiffs(1.2M APP/1.5MB SPIFFS)
    PSRAM Disable
    Upload Speed 921600
    Programmer Esptool
    Click to view T3-S3 Arduino IDE options
    T3-S3 Value
    Board ESP32S3 Dev Module
    Port Your port
    USB CDC On Boot Enable
    CPU Frequency 240MHZ(WiFi)
    Core Debug Level None
    USB DFU On Boot Disable
    Erase All Flash Before Sketch Upload Disable
    Events Run On Core1
    Flash Mode QIO 80MHZ
    Flash Size 4MB(32Mb)
    Arduino Runs On Core1
    USB Firmware MSC On Boot Disable
    Partition Scheme Default 4M Flash with spiffs(1.2M APP/1.5MB SPIFFS)
    PSRAM QSPI PSRAM
    Upload Mode UART0/Hardware CDC
    Upload Speed 921600
    USB Mode CDC and JTAG
    Programmer Esptool
    Click to view T-Motion Arduino IDE options
    T-Motion Value
    Board Nucleo-64
    Port Your port
    Debug symbols and core logs None
    Optimize Smallest (-Os default)
    Board part number Nucleo L073RZ
    C Runtime Library Newlib Nano (default)
    Upload method STM32CubeProgrammer (DFU)
    USB support (if available) CDC (generic 'Serial' supersede U(S)ART)
    U(S)ART support Enabled (generic 'Serial')
    USB speed (if available) Low/Full Speed
    • To upload a sketch, you need to hold down the BOOT button on the board and then plug in the USB. At this time, it will enter the DFU mode to allow program writing.
  6. Please uncomment the utilities.h file of each sketch according to your board model, otherwise the compilation will report an error.

  7. Upload sketch

4️⃣ TTN

To access TTN (The Things Network), please refer to LilyGo_LoRa_Series_Quick_Start

5️⃣ Application

6️⃣ Datasheet

T-Beam S3 Supreme datasheet
T-Beam ESP32 datasheet
T3-S3 (ESP32S3) datasheet
LoRa32(ESP32) datasheet

T3_V1.6.1 schematic

LoRa32(V1.0) datasheet

N.A.

T-Motion datasheet

T-Motion schematic

7️⃣ FAQ

  1. T-Beam Supreme GPS backup power comes from 18650 battery. If you remove the 18650 battery, you will not be able to get GPS hot start. If you need to use GPS hot start, please connect the 18650 battery.

  2. There is no data output from the GPS. Refer to GPS factory reset

  3. How to find the pin definition?

    Click to view detailed
    • Each sketch contains <utilities.h>, and all board pins are written in this file
  4. Can’t upload sketches?

    Click to view detailed
    1. Connect the board USB to the computer
    2. Press the BOOT button and hold (If there is no BOOT button, you need to keep GPIO0 connected to GND.)
    3. Press the RST button
    4. Release the RST button
    5. Finally release the BOOT button(If there is no BOOT button, you need to disconnect GPIO0 from GND.)
    6. Click to upload the program
  5. After setting the output power of LoRa, you need to set the minimum current. Set up sx1262 as follows:

    Click to view detailed
    // set output power to 10 dBm (accepted range is -17 - 22 dBm)
    if (radio.setOutputPower(22) == RADIOLIB_ERR_INVALID_OUTPUT_POWER) {
        Serial.println(F("Selected output power is invalid for this module!"));
        while (true);
    }
    // set over current protection limit to 80 mA (accepted range is 45 - 240 mA)
    // NOTE: set value to 0 to disable overcurrent protection
    if (radio.setCurrentLimit(80) == RADIOLIB_ERR_INVALID_CURRENT_LIMIT) {
        Serial.println(F("Selected current limit is invalid for this module!"));
        while (true);
    }
  6. Precautions for using SX1280 PA version

    Click to view detailed
    • When using the SX1280 PA module, it is recommended that the software controls the 1280 chip to output 2~5dbm, so that the entire module will output 20dbm power; When the output of the 1280 chip is higher than 2dbm, the output power of the entire module is only 20dbm; When the output of the 1280 chip is higher than 5dbm, the output power of the entire module is only 20dbm, but if 5dbm is given to the FEM, it will damage the FEM chip (the maximum input allowed by the FEM is 5dbm) If the output of the 1280 chip is lower than 2dbm, the output power of the entire module is within 20dbm.
    • T3-S3 PA version SX1280 output power setting cannot be greater than 2~5dbm, otherwise the FEM chip may be damaged. Setting 3dbm already has 20dmb output power
  7. How to identify the LoRa model?

    Click to view detailed
    • To identify the LoRa model, you only need to check the sticker on the board. 433MHz is SX1278, 868MHz is SX1276, and if the label says SX1262, it is SX1262.
  8. Why does Serial not have any output?

    • Arduino -> Tools -> USB CDC On Boot -> Enable
  9. T-Beam-s3-supreme antenna signal quality

    Click to view detailed

    t-beams3-supreme-ant-868M t-beams3-supreme-ant-915M