Frequently Asked Questions
Bootloader & Programming
Section titled “Bootloader & Programming”How do I enter boot mode manually?
Section titled “How do I enter boot mode manually?”The Wireless Tracker uses ESP32-S3’s internal USB, which may fail to enter bootloader mode in certain situations. To manually enter boot mode:
Device not connected:
- Press and hold the
USERbutton - Connect the USB cable
- Release
USERbutton
Device already connected:
- Hold
USERbutton - Press
RESETbutton - Release
RESETbutton - Release
USERbutton
Why can’t I upload code?
Section titled “Why can’t I upload code?”Common causes:
- Wrong board selected in IDE
- Device not in bootloader mode
- Serial port driver issues
- Another program has the port open
Solutions:
- Select “Heltec Wireless Tracker” in board manager
- Use manual boot mode entry (see above)
- Install CP210x or CH340 drivers if needed
- Close serial monitor before uploading
Hardware Versions
Section titled “Hardware Versions”What are the key differences between V1.0 and V1.1?
Section titled “What are the key differences between V1.0 and V1.1?”| Feature | V1.0 | V1.1 |
|---|---|---|
| GNSS Power | Shared rail | Dedicated LDO |
| GNSS Control | Always on | GPIO3 (HIGH = enabled) |
| Power Isolation | Limited | Improved |
| Sleep Current | ~25 µA | ~15 µA |
How do I identify my hardware version?
Section titled “How do I identify my hardware version?”- Physical marking: Look for version marking on PCB near USB connector
- Programmatic detection: V1.1 has GNSS tied to GPIO3 control
// Simple test - if GNSS works after this, it's V1.1pinMode(3, OUTPUT);digitalWrite(3, HIGH);Meshtastic
Section titled “Meshtastic”Why isn’t Meshtastic firmware working on V1.1?
Section titled “Why isn’t Meshtastic firmware working on V1.1?”The V1.1 hardware changed the GNSS power control pin to GPIO3. Older Meshtastic firmware didn’t know about this change.
Solution:
- Use Meshtastic 2.2.17 Beta or later (auto-detects version)
- Or use temporary Heltec firmware:
device-install.bat -f firmware.factory.bin
Device shows “No GPS” in Meshtastic
Section titled “Device shows “No GPS” in Meshtastic”- V1.1 hardware: Ensure you’re using compatible firmware
- Antenna: Check GNSS antenna is connected (IPEX connector)
- Location: Move outdoors with clear sky view
- Cold start: Allow 30-60 seconds for initial fix
Display Issues
Section titled “Display Issues”Why is my screen not displaying?
Section titled “Why is my screen not displaying?”When running LoRa/LoRaWAN code:
- Check serial output for errors
- Press RST button
- Verify device activation via licensing docs
When running Meshtastic:
- Confirm correct firmware version for your hardware
- Check display settings in Meshtastic app
- Verify backlight pin (GPIO21) is enabled
Screen shows garbage or artifacts
Section titled “Screen shows garbage or artifacts”- Check TFT library version compatibility
- Verify SPI pin configuration
- Try reducing SPI clock speed
- Check power supply stability
Power & Battery
Section titled “Power & Battery”How do I read battery voltage?
Section titled “How do I read battery voltage?”#define VBAT_ADC_PIN 1#define VBAT_CTRL_PIN 2
float readBattery() { pinMode(VBAT_CTRL_PIN, OUTPUT); digitalWrite(VBAT_CTRL_PIN, LOW); // Enable divider
int raw = analogRead(VBAT_ADC_PIN);
digitalWrite(VBAT_CTRL_PIN, HIGH); // Disable to save power
// VBAT = ADC * 4.9 return (raw / 4095.0) * 3.3 * 4.9;}Device won’t charge
Section titled “Device won’t charge”- Verify USB cable supports data+power (not charge-only)
- Check battery polarity (red=positive)
- Battery may be deeply discharged - leave connected for 30 min
- Check charging LED (orange when charging)
High sleep current consumption
Section titled “High sleep current consumption”- V1.1: Set GPIO3 LOW to disable GNSS in sleep
- Disable display backlight (GPIO21 LOW)
- Disable WiFi/BT before sleep
- Use
esp_deep_sleep_start()not light sleep
GPS/GNSS
Section titled “GPS/GNSS”GPS won’t get a fix
Section titled “GPS won’t get a fix”- Antenna: Ensure IPEX antenna is connected securely
- Power (V1.1): Set GPIO3 HIGH to enable GNSS
- Location: Clear sky view required, move away from buildings
- Time: Cold start takes up to 26 seconds
- Interference: Move away from other electronics
GPS accuracy is poor
Section titled “GPS accuracy is poor”- Allow time for multi-constellation acquisition
- Use external active antenna for better signal
- Check if all GNSS systems are enabled (
$CFGSYS,H11) - Verify antenna has clear sky view (not just outdoors)
No LoRa communication
Section titled “No LoRa communication”- Verify antenna is connected (IPEX connector on LoRa port)
- Check frequency matches between devices
- Verify regional settings are correct
- Increase spreading factor for longer range
LoRaWAN join fails
Section titled “LoRaWAN join fails”- Double-check DevEUI, AppEUI, AppKey
- Verify gateway is online and in range
- Check frequency plan matches network server
- Try increasing TX power or SF
Short range
Section titled “Short range”- Use higher spreading factor (SF10-SF12)
- Check antenna connection and orientation
- Verify TX power settings
- Consider terrain and obstacles
Software
Section titled “Software””Board not found” in Arduino IDE
Section titled “”Board not found” in Arduino IDE”- Add Heltec board URL to preferences:
https://resource.heltec.cn/download/package_heltec_esp32_index.json
- Install “Heltec ESP32 Series Dev-boards” from Boards Manager
- Select “Wireless Tracker” from board menu
Library conflicts
Section titled “Library conflicts”The Heltec library may conflict with generic ESP32 libraries. Solutions:
- Use Heltec-specific library versions
- Remove duplicate libraries from Arduino/libraries folder
- Use PlatformIO with explicit lib_deps
Memory issues (sketch too large)
Section titled “Memory issues (sketch too large)”- Use minimal partition scheme
- Enable PSRAM if available
- Reduce debug output
- Use release build (-O2 optimization)