Device code for the Meshtastic ski/hike/fly/customizable open GPS radio
This is the device side code for the meshtastic.org project.
Meshtastic® is a project that lets you use inexpensive GPS mesh radios as an extensible, super long battery life mesh GPS communicator. These radios are great for hiking, skiing, paragliding - essentially any hobby where you don't have reliable internet access. Each member of your private mesh can always see the location and distance of all other members and any text messages sent to your group chat.
The radios automatically create a mesh to forward packets as needed, so everyone in the group can receive messages from even the furthest member. The radios will optionally work with your phone, but no phone is required.
Typical time between recharging the radios should be about eight days.
This project is is currently in beta-testing - if you have questions please join our discussion forum.
This software is 100% open source and developed by a group of hobbyist experimenters. No warranty is provided, if you'd like to improve it - we'd love your help. Please post in the chat.
We currently support three models of radios.
TTGO T-Beam (usually the recommended choice)
TTGO LORA32 - No GPS
Heltec LoRa 32 - No GPS
Note: The GPS and LoRa stock antennas should be placed in a way, that the GPS antenna faces the sky and the LoRa antenna radiates 360 degrees horizontally. For better GPS reception you might want to upgrade the GPS antenna and to properly align the antennas you might want to upgrade to a LoRa antenna that can be adjusted to radiate into the right directions.
Make sure to get the frequency for your country
Getting a version that includes a screen is optional, but highly recommended.
Prebuilt binaries for the supported radios are available in our releases. Your initial installation has to happen over USB from your Mac, Windows or Linux PC. Once our software is installed, all future software updates happen over bluetooth from your phone.
Be very careful to install the correct load for your board. In particular the popular 'T-BEAM' radio from TTGO is not called 'TTGO-Lora' (that is a different board). So don't install the 'TTGO-Lora' build on a TBEAM, it won't work correctly.
Please post comments on our group chat if you have problems or successes.
These instructions currently require a few commmand lines, but it should be pretty straightforward.
mydir$ esptool.py chip_id esptool.py v2.6 Found 2 serial ports Serial port /dev/ttyUSB0 Connecting.... Detecting chip type... ESP32 Chip is ESP32D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None MAC: 24:6f:28:b5:36:71 Uploading stub... Running stub... Stub running... Warning: ESP32 has no Chip ID. Reading MAC instead. MAC: 24:6f:28:b5:36:71 Hard resetting via RTS pin...
device-install.sh -f firmware-_board_-_country_.bin.
./device-install.sh -f firmware-HELTEC-US-0.0.3.bin.
device-update.sh -f firmware-_board_-_country_.bin
./device-update.sh -f firmware-HELTEC-US-0.0.3.bin.
Note: If you have previously installed meshtastic, you don't need to run this full script instead just run
esptool.py --baud 921600 write_flash 0x10000 firmware-_board_-_country_-_version_.bin. This will be faster, also all of your current preferences will be preserved.
You should see something like this:
[email protected]:~/development/meshtastic/meshtastic-esp32/release/latest$ ./device-install.sh firmware-TBEAM-US-0.1.8.bin Trying to flash firmware-TBEAM-US-0.1.8.bin, but first erasing and writing system information esptool.py v2.6 Found 2 serial ports Serial port /dev/ttyUSB0 Connecting........____ Detecting chip type... ESP32 Chip is ESP32D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None MAC: 24:6f:28:b2:01:6c Uploading stub... Running stub... Stub running... Changing baud rate to 921600 Changed. Erasing flash (this may take a while)... Chip erase completed successfully in 6.1s Hard resetting via RTS pin... esptool.py v2.6 Found 2 serial ports Serial port /dev/ttyUSB0 Connecting....... Detecting chip type... ESP32 Chip is ESP32D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None MAC: 24:6f:28:b2:01:6c Uploading stub... Running stub... Stub running... Changing baud rate to 921600 Changed. Configuring flash size... Auto-detected Flash size: 4MB Flash params set to 0x0220 Compressed 61440 bytes to 11950... Wrote 61440 bytes (11950 compressed) at 0x00001000 in 0.2 seconds (effective 3092.4 kbit/s)... Hash of data verified.Leaving... Hard resetting via RTS pin... esptool.py v2.6 Found 2 serial ports Serial port /dev/ttyUSB0 Connecting..... Detecting chip type... ESP32 Chip is ESP32D0WDQ6 (revision 1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None MAC: 24:6f:28:b2:01:6c Uploading stub... Running stub... Stub running... Changing baud rate to 921600 Changed. Configuring flash size... Auto-detected Flash size: 4MB Compressed 1223568 bytes to 678412... Wrote 1223568 bytes (678412 compressed) at 0x00010000 in 10.7 seconds (effective 912.0 kbit/s)... Hash of data verified.
Leaving... Hard resetting via RTS pin...
The companion (optional) Meshtastic Android app is here. You can also download it on Google Play.
We offer a python API that makes it easy to use these devices to provide mesh networking for your custom projects.
We'd love to have you join us on this merry little project. Please see our development documents and join us in our discussion forum.
This project is run by volunteers. Past contributors include:
For a listing of currently missing features and a FAQ click here.
Copyright 2019 Geeksville Industries, LLC. GPL V3 Licensed.