diff --git a/README.md b/README.md index a60c458d..25cfa388 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,35 @@ -# meshtastic-esp32 +# Meshtastic-esp32 -[![Join the chat at https://gitter.im/Meshtastic/community](https://badges.gitter.im/Meshtastic/community.svg)](https://gitter.im/Meshtastic/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +This is the device side code for the [meshtastic.org](https://www.meshtastic.org) project. -You probably don't want this yet. \ No newline at end of file +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 currently pre-alpha, but if you have questions please join our chat: [![Join the chat at https://gitter.im/Meshtastic/community](https://badges.gitter.im/Meshtastic/community.svg)](https://gitter.im/Meshtastic/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge). + +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. + +## Meshtastic Android app + +The source code for the Meshtastic Android app is [here](https://github.com/geeksville/Meshtastic-Android). +Soon our first alpha release of will be released here: + +[![Download at https://play.google.com/store/apps/details?id=com.geeksville.mesh](https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png)](https://play.google.com/store/apps/details?id=com.geeksville.mesh&referrer=utm_source%3Dgithub%26utm_medium%3Desp32-readme%26utm_campaign%3Dmeshtastic-esp32%2520readme%26anid%3Dadmob&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1) + +## Build instructions + +This project uses the simple PlatformIO build system. You can use the IDE, but for brevity +in these instructions I describe use of their command line tool. + +1. Purchase a suitable radio (about $30 from aliexpress) +2. Install [PlatformIO](https://platformio.org/). +3. Download this git repo and cd into it. +4. pio run -t upload (This command will fetch dependencies, build the project and install it on the board via USB). +5. Platform IO also installs a very nice VisualStudio Code based IDE, see their tutorial if you'd like to use it. diff --git a/TODO.md b/TODO.md index e5f7fd73..ccda621f 100644 --- a/TODO.md +++ b/TODO.md @@ -5,6 +5,7 @@ Items to complete before the first alpha release. * retest BLE software update for both board types * first alpha release, article writeup for hackaday * send note about Adafruit Clue +* send note to the guy who designed the cases * send pr https://github.com/ThingPulse/esp8266-oled-ssd1306 to tell them about this project # Medium priority @@ -26,10 +27,10 @@ Items to complete before the first beta release. * How do avalanche beacons work? Could this do that as well? possibly by using beacon mode feature of the RF95? * use std::map in node db - # Low power consumption tasks General ideas to hit the power draws our spreadsheet predicts. Do the easy ones before beta, the last 15% can be done after 1.0. +* we currently poll the lora radio from loop(), which is really bad because it means we run loop every 10ms. Instead have the rf95 driver enqueue received messages from the ISR. * platformio sdkconfig CONFIG_PM and turn on modem sleep mode * keep cpu 100% in deepsleep until irq from radio wakes it. Then stay awake for 30 secs to attempt delivery to phone. * have radiohead ISR send messages to RX queue directly, to allow that thread to block until we have something to send diff --git a/src/screen.cpp b/src/screen.cpp index d03d34c6..0a3f87fc 100644 --- a/src/screen.cpp +++ b/src/screen.cpp @@ -224,7 +224,7 @@ inline double toRadians(double deg) } /** - * Computes the bearing in degrees between two points on Earth. + * Computes the bearing in degrees between two points on Earth. Ported from my old Gaggle android app. * * @param lat1 * Latitude of the first point