Skip to content

Xinyuan-LilyGO/LilyGO-T-A76XX

Repository files navigation

LilyGo logo

🌟LilyGo-Modem-Series🌟

PlatformIO CI

News

  • The TinyGSM used in the example is a fork to support A7670,A7608,SIM7672G,SIM7670G, If you use the master branch, the compilation will not go smoothly
  • A7670G/A7670E/A7670SA/A7672G are collectively referred to as A7670X
  • A7608SA-H/A7608E-H,A7608E,A7608SA are collectively referred to as A7608X
  • SIM7670G uses the Qualcomm platform, A7670x uses the Asrmicro platform.
  • The usage methods of A7670/A7670 R2 are exactly the same, but the internal chip manufacturing process of the module is different.
  • A7670E-LNXY-UBL this version does not support voice and SMS functions.

1️⃣Product

Product(PinMap) SOC Flash PSRAM
T-A7670X ESP32-WROVER-E 4MB 8MB(QSPI)
T-Call-A7670X ESP32-WROVER-E 4MB 8MB(QSPI)
T-A7608 ESP32-WROVER-E 4MB 8MB(QSPI)
T-A7608-S3 ESP32-S3-WROOM-1 16MB 8MB(OPI)
T-SIM7670G-S3 ESP32-S3-WROOM-1 16MB 8MB(OPI)
T-PCIE-A7670 ESP32-WROVER-E 16MB/4MB 8MB(QSPI)
T-ETH-ELite ESP32-S3-WROOM-1 16MB 8MB(OPI)
  • For applications that do not require voice and SMS, it is recommended to use T-SIM7670G-S3

2️⃣Examples

Example T-A7670X T-Call-A7670X T-SIM767XG-S3 T-A7608 T-PCIE-A767X T-A7608-S3
ATdebug
Blynk_Console
GPSShield ✅ (Only T-A7670G) ❌ (Can't run) ❌ (Can't run) ❌ (Can't run) ❌ (Can't run) ❌ (Can't run)
GPS_BuiltIn ✅ (Except A7670G) ✅(Except A7670G)
GPS_BuiltInEx ✅ (Except A7670G) ✅(Except A7670G)
GPS_NMEA_Parse ✅ (Except A7670G) ✅(Except A7670G)
GPS_NMEA_Output ✅ (Except A7670G) ✅(Except A7670G)
GPS_Acceleration ✅ (Except A7670G) ✅(Except A7670G)
HttpClient
TCPClientMultiple
HttpsClient
MqttClient
TextToSpeech ❌ (Can't run)
ModemPlayMusic ❌ (Can't run)
SecureClient
ReadBattery ❌ (Can't run) ❌ (Can't run)
DeepSleep
ModemSleep
ModemPowerOff
VoiceCalls 5
SDCard ❌ (Can't run)
SerialRS485
SendSMS 4
ReadSMS 4
SendLocationFromSMS 4
SendLocationFromSMS_Use_TinyGPS 4
LBSExample ❌ (No support)
Network
MqttsBuiltlnAuth
MqttsBuiltlnSSL
MqttsBuiltlnNoSSL
MqttsBuiltlnAWS
MqttsBuiltlnHivemq
MqttsBuiltlnEMQX
MqttsBuiltlnWill
HttpsBuiltlnGet
HttpsBuiltlnPost
HttpsOTAUpgrade
HP303BSensor*
SPIExample*
PowerMonitoring ❌(No support)2
SimHatAccelerometer3 ❌(No support)2 1
SimHatCurrentSensor3 ❌(No support)2
SimHatOneWireSensor3 ❌(No support)2
SimHatRelay3 ❌(No support)2
SimHatRS4853 ❌(No support)2
SimHatCanBusRecv3 ❌(No support)2
SimHatCanBusSend3 ❌(No support)2
ULP_Monitor
Traccar(Modern GPS Tracking)
  • HP303BSensor,SPIExample it only demonstrates how to define and use SPI and I2C. Please confirm the pin connection and IO definition before use.
  • 1 T-A7608-ESP32 Conflict with Solar ADC
  • 2 The relay driver conflicts with the board RST and cannot work
  • 3 Requires external expansion board support T-SimHat
  • 4 SIM7670G - SIM7670G-MNGV 2374B04 version supports SMS function, but it requires the operator base station to support SMS Over SGS service to send, otherwise it will be invalid
  • 5 All versions of SIM7670G do not support voice

Quick start ⚡

3️⃣ PlatformIO Quick Start (Recommended)

  1. For users using the ESP32 version (non ESP32S3 version), please install the CH9102 USB bridge driver for the first time.
  2. Install Visual Studio Code and Python
  3. Search for the PlatformIO plugin in the VisualStudioCode extension and install it.
  4. After the installation is complete, you need to restart VisualStudioCode
  5. After restarting VisualStudioCode, select File in the upper left corner of VisualStudioCode -> Open Folder -> select the LilyGO-T-A76XX directory
  6. Wait for the installation of third-party dependent libraries to complete
  7. Click on the platformio.ini file, and in the platformio column
  8. Select the board name you want to use in default_envs and uncomment it.
  9. Uncomment one of the lines src_dir = xxxx to make sure only one line works
  10. Click the (✔) symbol in the lower left corner to compile
  11. Connect the board to the computer USB-C , Micro-USB is used for module firmware upgrade
  12. Click (→) to upload firmware
  13. Click (plug symbol) to monitor serial output

4️⃣ Arduino IDE Quick Start

  • It is recommended to use platformio without cumbersome steps
  1. For users using the ESP32 version (non ESP32S3 version), please install the CH9102 USB bridge driver for the first time.

  2. Install Arduino IDE

  3. Install Arduino ESP32 2.0.5 or above

  4. Copy all folders in lib folder to Arduino library folder (e.g. C:\Users\YourName\Documents\Arduino\libraries)

  5. Open ArduinoIDE ,Tools , Look at the picture to choose , If you use the ESP32-S3 controller and need to use serial, then USB CDC ON Boot needs to be set to Enabled

    T-A7670X/T-Call-A7670X/T-A7608/T-PCIE-A7670 T-A7608-S3/T-SIM767XG-S3
    esp32dev esp32s3dev
  6. LilyGO-T-A76XX folder -> examples -> Choose the appropriate example from the list above

  7. Open the corresponding board macro definition above utilities.h , For example, if you use LILYGO-A7670X, you need to change // #define LILYGO_T_A7670 to #define LILYGO_T_A7670

    board_select

  8. Connect the board to the computer USB-C , Micro-USB is used for module firmware upgrade

  9. Select Port

  10. Click upload , Wait for compilation and writing to complete

Important

  1. Unable to upload any code? Please see the FAQ below
  2. When opening the Arduino IDE, you will be prompted that there are new libraries that can be updated. Please do not click update. There is no guarantee that it can be compiled, run, etc. after the update. Make sure that the board is running normally before deciding whether to update. You have to Know that problems may occur after updating due to library differences, or the default configuration (such as TinyGSM) will be overwritten.
  3. If it runs abnormally after the update, please follow Article 4 of the Arduino Quick Start to delete the directory in libraries, and drag the folder in lib into the libraries directory again.

5️⃣ FAQ

  • ESP32 (V1.x) version T-A7670X/T-A7608X known issue

    • When using battery power mode, BOARD_POWERON_PIN (IO12) must be set to a high level after ESP32 starts, otherwise a reset will occur.
    • Modem cannot be put into sleep mode when powered by USB-C. For a solution, see here
  • Can't turn on the phone after connecting the battery for the first time?

    • This is due to the characteristics of the onboard battery over-discharge and over-charge chip. It cannot be turned on when the battery is connected for the first time. This can be solved by inserting a USB charger or reconnecting the battery. For details, please see the remarks on page 4 of the datasheet.
  • GPS not working?

  • How to identify whether an external GPS module is installed

  • VOLTE FAQ

  • Network registration denied?

    • When the network registration is refused, please check whether the APN is set correctly. For details, please refer to issue/104
  • Can't use 2G(GSM)?

    • LilyGo has launched a separate 4G(LTE) version that can only use 4G(LTE) network. Please check whether it is a separate 4G(LTE) version during ordering.
  • How to use voice call example?

    • Voice calls require external welding of the condenser microphone and speaker. Generally, the board silk screen is marked SPK. The speaker needs to be welded, and the MIC silk screen position needs to weld the condenser microphone. , T-A7670 the microphone and speaker connections are located issue/130
  • Can't upload any sketch,Please enter the upload mode manually.

    1. Connect the board via the USB cable
    2. Press and hold the BOOT button , While still pressing the BOOT button (If there is no BOOT button, you need to use wires to connect GND and IO0 together.)
    3. Press RST button
    4. Release the RST button
    5. Release the BOOT button (If there is no BOOT button, disconnect IO0 from GND.)
    6. Upload sketch

Important

ESP32 version Since the SD card uses IO2 as CS, you cannot upload software in the Arduino IDE when you insert the SD card, so you must remove the SD card when uploading new code

  • If the above method still fails to upload the sketch, please follow the method below to test whether the USB2TTL communication is normal.

    1. Connect USB-C to PC
    2. Open the serial monitor and adjust the baud rate to 115200
    3. Press the RST button on the board to restart
    4. If you can see the startup information, it means that the USB2TTL communication is normal. If nothing is displayed in the serial monitor, it may be that the USB2TTL bridge is damaged.
  • Upgrade modem firmware

    1. T-A76XX Upgrade docs / Video
    2. SIM7670G Upgrade issue / Video
  • How do I connect the antenna correctly?

    1. Check the silk screen on the board. GPS stands for GPS antenna. Only active GPS antenna can be connected here.
    2. SIM or MAIN, this is the main antenna interface of LTE
    3. AUX This is the diversity antenna for LTE, used to enhance the signal
  • Solar input voltage range?

    1. 4.4 ~ 6V , As long as the voltage matches, the solar panel power is not limited
  • Where can I connect a solar panel to charge the battery?

    1. Some development boards (T-A7670, T-A7608, T-A7670-S3, T-A7608-S3) have a built-in solar cell input interface. Just connect the solar panel according to the correct polarity.
    2. If the board has a battery and charging management, you can also connect an external power supply to the VBUS pin, which is the input pin of the USB power supply. Connecting to VBUS will share the 5V voltage of USB-C. Please note that when connecting an external charger, please disconnect USB-C.
  • SIM767XG sendSMS and VoiceCall?

    1. Although the manual of SIM767XG states that it has the functions of making voice calls and sending text messages, the current firmware does not support it.
  • Unable to detect SIMCard?

    1. All SIM series need to insert the SIMCard into the board first and then power on to detect the SIM card. If the order is reversed, it will report that the SIMCard cannot be detected.
  • For ESP32S3 users, if you use external power instead of USB-C, please turn off the CDC option. This is because the board will wait for USB access when it boots up (early versions, Arduino esp-core < 3.0)

    1. For Arduino IDE users, it can be turned off in the options , Please note that turning off USB CDC will turn off Serial redirection to USBC. At this time, you will not see any Serial message output when opening the port from USBC, but output from GPIO43 and GPIO44.
    Tools -> USB CDC On Boot -> Disable
    1. For Platformio users, you can add the following compilation flags in the ini file
    build_flags =
        ; Enable UARDUINO_USB_CDC_ON_BOOT will start printing and wait for terminal access during startup
        ; -DARDUINO_USB_CDC_ON_BOOT=1
    
        ; Enable UARDUINO_USB_CDC_ON_BOOT will turn off printing and will not block when using the battery
        -UARDUINO_USB_CDC_ON_BOOT
  • How to release the limitations of ESP32-WROVER-E GPIO12?

    1. Since the ESP32-WROVER-E module is used, the internal flash voltage of the module is 3.3V by default. IO12 controls the startup flash startup voltage. If the external device connected to IO12 defaults to the HIGH level, then the startup will fall into an infinite restart. , Two solutions,
    2. Replace the IO port and connect the default low-level device to IO12
    3. Use espefuse to forcefully set the flash voltage to 3.3V. For details, please refer here, this can only be set once, and cannot be set incorrectly. If the setting is incorrect, the module will never start.
  • What the onboard switch does

    • When using the internal battery pack, the switch will work normally to power/power down the board. However, if an external battery pack is used and connected to the VBAT pin, the switch will be bypassed, meaning the only way to shut down is to disconnect the battery.
    • The switch is only for battery power and has no effect when plugged into USB
  • About VBUS Pin

    • VBUS Pin and USB-C are on the same line. Only when USB-C is connected, VBUS has voltage
    • When only the battery is connected, VBUS has no voltage output
    • If you want to connect an external power supply without connecting USB-C, VBUS Pin is the only voltage input pin. Please note that the maximum input of VBUS Pin is 5V, do not exceed 5V

7️⃣Resource

  1. SIMCOM official website document center

  2. A7670/A7608-Datasheet

  3. SIM7670G-Datasheet

  4. Schematic

  5. Dimensions

  6. Schematic