Wykres commitów

838 Commity (df2733a3b500a9d9f0de16b8b31bae2aebc19414)

Autor SHA1 Wiadomość Data
geeksville fd2f5a5ba4 Merge branch 'dev' into cubecell 2020-06-16 16:18:30 -07:00
geeksville f35b15b09c Shrink devicestate for small mcus 2020-06-16 15:26:30 -07:00
geeksville 99dac51b9d Don't use a (huge - 16KB) scratch buffer for device state loading 2020-06-16 15:02:11 -07:00
geeksville d9ab6986ad per @dafeman 1.8V works on E22 2020-06-16 12:02:13 -07:00
geeksville 514d45c219 oops supposed to be TXEN 2020-06-16 06:38:08 -07:00
geeksville e9923ac257 fix LCD build for devboard 2020-06-16 06:26:34 -07:00
geeksville 60ad1793e4 sx1262 improvements attn @dafeman 2020-06-16 06:26:21 -07:00
geeksville 9ad14ad98b Cleanup to merge NR52 support back into mainline 2020-06-15 14:47:14 -07:00
geeksville 477c62082d E22 SX1262 module now works!
Thanks mostly to an old github comment by @beegee-tokyo the fix was easy
(comment here https://github.com/jgromes/RadioLib/issues/12#issuecomment-520450429)

We now set DIO3 to 2.4 volts to power the oscillator inside the E22
module (undocumented in the E22 docs)
2020-06-15 14:38:09 -07:00
geeksville 82169d4115 make recent changes work on non ESP hardware 2020-06-15 13:32:06 -07:00
geeksville 92e5a15399 Merge branch 'master' into cubecell 2020-06-15 12:42:01 -07:00
geeksville 114e0c4ada Merge branch 'master' into bringup 2020-06-15 12:41:22 -07:00
Kevin Hester d65f2ede81
Merge branch 'master' into sh1106-support 2020-06-15 12:26:12 -07:00
Zombodotcom 1c6092c430 Fixed GPS pin Definitions 2020-06-15 11:38:15 -06:00
geeksville d8db4449be 0.7.6 2020-06-15 07:04:03 -07:00
geeksville fda98bbf58 oops BLE auth should not change 2020-06-14 15:52:06 -07:00
geeksville aadba1f694 add printPacket for debug printing packets 2020-06-14 15:30:42 -07:00
geeksville 2c8d152885 Use old style (pre BLE 4.2) pairing, it seems more reliable 2020-06-14 15:30:21 -07:00
Marcel van der Boom 37c598833c Add support for SH1106 controller
The SH1106 is almost indistinguisable from a SSD1306.

- the nr of columns in the sh1106 is 132 vs 128
- use the proper includes/library functions when in use
2020-06-14 10:28:23 +02:00
geeksville 13307c502f misc debug output 2020-06-13 16:29:53 -07:00
geeksville 8a1754efe8 leave the software update service off for now - no one is using ityet 2020-06-13 11:36:45 -07:00
geeksville 8caa075bc6 used fixed pool allocator for now - since that's how we've been testing 2020-06-13 11:05:36 -07:00
geeksville d5deb49d20 use executeDelete to prevent leaking BLE handles 2020-06-13 11:05:13 -07:00
geeksville 575a15e135 remove more dead rev1 protocol code 2020-06-13 08:29:41 -07:00
geeksville dc7469c64b useful bluetooth debugging output 2020-06-13 08:29:25 -07:00
geeksville f54b18f733 each tx packet might have a retransmission/ack copy, make pool bigger 2020-06-13 08:27:44 -07:00
geeksville db66e4dc00 ensure we never get null from malloc 2020-06-13 08:27:25 -07:00
geeksville 03cb3c2145 basic stack debugging - we are okay for now 2020-06-12 16:37:03 -07:00
geeksville a8d4b5479d don't start the BLE update service for now - the android side isn't ready 2020-06-12 15:48:24 -07:00
geeksville f0b8f10665 Fix #149: Use a simple heap allocator for now, after 1.0 we can go to
fixed sized pools to protect against fragmentation.
2020-06-12 12:11:18 -07:00
geeksville 88b91de197 Prepare to make MemoryDynamic 2020-06-12 11:56:13 -07:00
geeksville 1f668046a0 if we can't sleep, at least have the processor block for 100ms 2020-06-10 18:23:20 -07:00
geeksville 8ccd59a7d8 Fix #115: wake from light sleep if a character arrives on the serial port
Note - we do this not by using the uart wake feature, but by the lower
power GPIO edge feature.  Recommend sending "Z" 0x5A - because that has
many edges.  Send the character 4 times to make sure the device is awake
2020-06-10 15:36:38 -07:00
geeksville ddfdae64bf Fix #167 while in light sleep, allow loop() to still run occasionally 2020-06-10 14:11:56 -07:00
geeksville f02a2c0853 Merge branch 'usb' into bringup 2020-06-09 18:20:34 -07:00
geeksville 00d55c9daa require min app version 172 2020-06-09 18:20:06 -07:00
geeksville a05e45f84b make txQueue private 2020-06-09 15:47:05 -07:00
geeksville a8a5e036f5 turn off serial debug output once we are using the protocol on the stream 2020-06-09 10:35:06 -07:00
geeksville 009f05b61d temp workaround for sleep bug #167 2020-06-09 06:38:09 -07:00
geeksville ce9bac34d6 add a new SERIAL psm state, to ensure device doesn't sleep while
connected to the phone over USB.

In support of

https://github.com/meshtastic/Meshtastic-Android/issues/38
2020-06-08 16:37:49 -07:00
geeksville bdbaf9c655 remove old BLE api 2020-06-08 16:08:02 -07:00
geeksville 7473a6c27a unify activity detection in PhoneAPI, turn off BLE API while serial API in use 2020-06-08 16:06:59 -07:00
geeksville 739f497bbd Merge branch 'master' into longaddr 2020-06-07 22:16:43 -07:00
geeksville 2d2ed591e9 set num_bits for nodenum and packet id after loading save file 2020-06-07 22:12:06 -07:00
geeksville 871a85d688 force all devices to discard old settings 2020-06-07 17:22:07 -07:00
geeksville e124d2094f PROTOCOL CHANGE! activate 32 bit nodenums/packetids 2020-06-06 13:16:36 -07:00
geeksville 9ea65c6793 Fix #153 - details below
Somehow nodenum was getting reset to zero (and saved to flash - which is
bad because it makes the failure permanent).  So I've changed nodenum
selection to occur after we load the saved preferences (and we try to keep
nodenum stable in that case).

I'm puzzled as to how it ever got set to zero (unless there *shudder*
is some errant pointer that clobbered it).  But next week I'm turning
4 byte nodenums back on, which will make this moot - because they
will always be based on macaddr and the current process where nodes
haggle with the mesh to pick a unique one-byte nodenum will be gone.
2020-06-06 08:30:01 -07:00
geeksville 8d14e97dfa oops - we were not saving radio state 2020-06-06 08:07:21 -07:00
geeksville 1c63a70673 cubecell WIP 2020-06-05 17:30:09 -07:00
geeksville 4db176867b WIP - bringup on PPR 2020-06-05 11:00:58 -07:00
geeksville 4b5cfaf9ba changes from bringing up PPR 2020-06-05 11:00:18 -07:00
geeksville 99437d931e fix #153 2020-06-03 16:08:11 -07:00
geeksville 5166717298 confirm randomSeed is set correctly 2020-06-03 14:24:34 -07:00
geeksville 49b5738f4f add min_app_version so apps can warn if they are too old 2020-06-03 13:57:30 -07:00
geeksville c753ea7cd1 don't use a fixed randomSeed. 2020-06-03 13:51:53 -07:00
geeksville 5b1488ddf0 Allow packet and nodenums to be 32 bits long (but don't change yet) 2020-06-03 13:46:31 -07:00
geeksville a34cfb0ee0 Populate metainfo for apps to allow 32 bit node and packet ids 2020-06-03 13:15:45 -07:00
geeksville e522e47544 Full DSR WIP 2020-06-03 12:49:36 -07:00
geeksville ed0f79b683 Merge branch 'master' into nrf52 2020-05-27 15:54:44 -07:00
geeksville 1b34a0c6d8 Help make sx1262 go for @dafeman 's board. See below for details:
Hi, I think the problem you were having building for ESP32 was due to
a funny thing.  Notice the #define for INTERRUPT_ATTR.  That macro expands
to IRAM_ATTR - which is a special flag the ESP32 requires for _any_ code
that is going to be called from an ISR.  So that the code is guaranteed
to be in RAM (the ESP32 uses a clever scheme where the FLASH is actually
high speed serial flash and all reads/writes are actually only happening
to a small number of pages in RAM and they have a driver that is constantly
copying blocks they need into that ram.  This essentially how VM works
for desktop computers, but in their case they are paging to FLASH.

But for code that runs in an interrupt handler must _always_ be in RAM
because if you took a 'page fault' for that code being missing in RAM they
can't nicely do their clever VM scheme.

So that's all good.  The problem was - apparently GCC for the ESP32 has a
a bug when that attribute is applied in the class declaration.  So
I moved it out into the cpp file and all seems well now.
2020-05-27 15:47:59 -07:00
geeksville 313380381b no need for this old debug output 2020-05-27 15:40:47 -07:00
geeksville f56ff2ca20 DSR WIP 2020-05-27 15:31:32 -07:00
geeksville f3a1c5e679 Possible fix for https://meshtastic.discourse.group/t/a-note-about-limited-support-for-the-neo-8m-gps-boards/233/3?u=geeksville 2020-05-26 13:10:34 -07:00
geeksville a96c8fd4db nrf52 debugging is supported as long as BLE is not advertising 2020-05-25 17:16:09 -07:00
geeksville da3ed9926b add monitor mode debugging support 2020-05-25 15:56:06 -07:00
geeksville fd386d9d7f UC1701 WIP 2020-05-25 15:55:38 -07:00
geeksville 5d1614989e Only add interfaces to the router if they can be initied 2020-05-25 15:47:45 -07:00
geeksville f4b1678535 my DSR changes broke acks for flood routing also. Fix #146 2020-05-25 11:55:42 -07:00
geeksville 03999e9d56 fix build for esp32 2020-05-25 10:46:26 -07:00
geeksville d5f177b1ee begin UC1701 driver 2020-05-25 10:41:46 -07:00
geeksville fdaed7e323 Fix MIN_BAT_MILLIVOLTS per @spattinson 2020-05-25 10:41:19 -07:00
geeksville d39e775c95 make flash filesystem work on NRF52 2020-05-25 10:07:42 -07:00
geeksville 829e0b6e26 fix extra free 2020-05-25 08:19:14 -07:00
geeksville 1656c8d0cb use my Timer class on all platforms, it works better than the freertos version 2020-05-25 07:48:36 -07:00
geeksville 2770cc7de3 Use the SX1262 receive duty cycle mode to get radio current draw down to
about 2.5mA @ 3V while in receive mode.
2020-05-24 19:23:50 -07:00
geeksville 48de631e04 disable activelyReceiving for sx1262 for now - it doesn't yet work 2020-05-24 16:34:18 -07:00
geeksville 66b11bcbd7 print RF52 reset reason 2020-05-24 16:20:21 -07:00
geeksville cda7487cbe add a NRF52 hardfault handler 2020-05-24 16:08:58 -07:00
geeksville e8f6504ec4 Make an accelerated NRF52 implementation for AEX256-CTR crypto 2020-05-24 14:45:50 -07:00
geeksville 8f1b26bdda DSR wip still kinda busted (rx packets not working - even for regular router) 2020-05-24 12:59:10 -07:00
geeksville 5bd3e4bcd0 DSR WIP 2020-05-23 17:39:08 -07:00
geeksville fb3b62f8f0 CSR WIP 2020-05-23 15:48:23 -07:00
geeksville e89fe2f7d9 DSR WIP 2020-05-23 12:50:33 -07:00
geeksville 16812c3ee4 add ignore_incoming to user preferences, for automated testing of DSR topologies 2020-05-23 10:01:36 -07:00
geeksville c9cb293bf2 cleanup virtual inheritence for Router/Reliable/Flooding/DSR 2020-05-23 09:24:22 -07:00
geeksville 8e2e154cdd Merge remote-tracking branch 'root/master' into nrf52 2020-05-22 19:06:35 -07:00
geeksville dd0209b192 Merge remote-tracking branch 'root/master' into nrf52
# Conflicts:
#	docs/software/nrf52-TODO.md
#	src/mesh/RadioLibInterface.cpp
#	src/mesh/mesh.pb.h
2020-05-22 11:12:22 -07:00
geeksville 925e46da8c make serial console work on nrf52 2020-05-21 21:17:53 -07:00
geeksville 2dadb4d7a2 make nrf52dk build again 2020-05-21 20:31:22 -07:00
geeksville d2de04d5b2 Fix #59 no need for broadcasts when showing new node pane 2020-05-21 17:21:44 -07:00
geeksville 9dd88281af reliable broadcast now works 2020-05-21 16:34:16 -07:00
geeksville e75561016b retransmissions work again 2020-05-21 15:55:57 -07:00
geeksville e2cbccb133 add want_ack support for broadcast packets 2020-05-21 12:47:41 -07:00
geeksville 0271df0657 add beginnings of full DSR routing 2020-05-21 12:47:08 -07:00
geeksville 71041e8674 reliable unicast 1 hop works! 2020-05-19 15:51:07 -07:00
geeksville c65b518432 less logspam 2020-05-19 14:54:58 -07:00
geeksville 6ba960ce47 one hop reliable ready for testing 2020-05-19 14:54:47 -07:00
geeksville 8bf4919576 wip reliable unicast (1 hop) 2020-05-19 11:56:17 -07:00
geeksville cca4867987 want_ack flag added 2020-05-19 10:27:28 -07:00
geeksville 976bdad067 sniffReceived now allows router to inspect packets not destined for this node 2020-05-18 17:57:58 -07:00
geeksville 26d3ef529e Use the hop_limit field of MeshPacket to limit max delivery depth in
the mesh.
2020-05-18 17:35:23 -07:00
geeksville 19f5a5ef79 oops - use correct battery shutoff voltage 2020-05-17 05:12:16 -07:00
geeksville ef831a0b4d Fix leaving display on in deep sleep.
We shutoff screen immediately, rather than waiting for our loop call()
2020-05-17 05:11:32 -07:00
geeksville efc239533c Fix #133 - force deep sleep if battery reaches 10% 2020-05-17 05:10:51 -07:00
geeksville ef1463a6a9 have tbeam charge at max rate (450mA) 2020-05-17 04:44:48 -07:00
geeksville 6961853ed7 ble software update fixes 2020-05-15 10:16:10 -07:00
geeksville 5ec5248fe4 complete ble ota move 2020-05-14 14:22:11 -07:00
geeksville 14fdd33972 move bluetooth OTA back into main tree for now 2020-05-14 14:20:05 -07:00
geeksville 140e29840a fix rare gurumeditation if we are unlucky and some ISR code is in serial flash 2020-05-14 12:46:29 -07:00
geeksville a0b43b9a95 Send "unset" for hwver and swver if they were unset 2020-05-12 17:57:51 -07:00
geeksville b6a202d68e runs again with new protobufs 2020-05-12 13:35:22 -07:00
geeksville 9f05ad2927 remove random delay hack from broadcast, since we now do that for all transmits 2020-05-11 16:19:44 -07:00
geeksville 86ae69d360 refactor so I can track and ignore recent packets of any type 2020-05-11 16:14:53 -07:00
geeksville c12fb69ca2 update protos 2020-05-10 14:17:05 -07:00
geeksville 8b911aba7f Cleanup build for NRF52 targets 2020-05-10 12:33:17 -07:00
geeksville 2fa595523f minor fixups to get nrf52 building again 2020-05-09 21:02:56 -07:00
geeksville 3e356e5866 Crypto works! 2020-05-09 19:08:04 -07:00
geeksville 1cc24de787 stub encryptor seems nicely backwards compatible with old devices and apps 2020-05-09 17:51:20 -07:00
geeksville e6875d559c Remove MeshRadio wrapper class - we don't need it anymore. 2020-05-09 16:32:26 -07:00
geeksville 28d21ecdcc begin work on crypto 2020-05-09 16:15:01 -07:00
geeksville 8bfe9fa8fc 0.6.3 - fix the problem of BLE message receiption being busted in 0.6.2 2020-05-05 18:40:17 -07:00
geeksville dcd1f7478a fix 124 - we now fallback to nema if we can't talk ublox protocol to
the GPS.  Though we are super power inefficient about it so TODO/FIXME
someday to decrease our power draw.
2020-05-04 20:02:43 -07:00
geeksville c2be6c4068 WIP on #124 2020-05-04 17:39:57 -07:00
geeksville 101eef5495 oops lat/lon need to be signed ;-) 2020-05-04 11:21:24 -07:00
geeksville 933d5424da abstract out the UBlox GPS driver 2020-05-04 11:15:05 -07:00
geeksville ecf528f9b6 move gps before refactoring 2020-05-04 10:23:47 -07:00
geeksville 9b309fe0a0 Use int based lat/long from now on in the device code
for https://github.com/meshtastic/Meshtastic-device/issues/124
2020-05-04 08:09:08 -07:00
geeksville 624b95782d fix missing carriage returns. thanks to @gregwalters in #119 2020-05-02 20:21:42 -07:00
geeksville 1d9290afc0 now that the rfinterfaces are smarter, no need to do backoff in
the flood router.  the interfaces will handle it.
2020-05-02 19:53:58 -07:00
geeksville ad2f639195 don't leak messages if they are handled locally 2020-05-02 19:53:13 -07:00
geeksville 07b4eea037 fix log msg 2020-05-02 19:52:54 -07:00
geeksville 79c61cf0e0 limit max power on rf95 to 17 (rather than 20, because 20 can...
burn up parts if you exceed 1% duty cycle)
2020-05-02 19:52:37 -07:00
geeksville 80268ea56a send() is supposed to always free buffers, even if it returns an error 2020-05-02 19:51:55 -07:00
geeksville bb9f595b8b Fix #11 2020-05-02 19:51:25 -07:00
geeksville 2ad314f150 we now always listen before transmit - even if we have just completed a packet 2020-05-02 08:29:51 -07:00
geeksville 4f7a25f562 remove unneeded include 2020-05-01 16:33:40 -07:00
geeksville 4176d79ee9 fix warnings 2020-05-01 16:33:26 -07:00
geeksville e084699704 SNR is now a float, fix the screen display 2020-05-01 12:31:36 -07:00
geeksville 50213d8323 move packet handling into its own thread 2020-05-01 12:11:04 -07:00
geeksville 71fcdba017 cleanup directory structure 2020-05-01 09:04:00 -07:00
geeksville 5a4fab2506 start msg sequence numbers with a random number each boot 2020-05-01 08:51:53 -07:00
geeksville 31eb2f5337 very important: don't allow immediate sends if we have pending ISRs 2020-05-01 08:32:16 -07:00
geeksville 82c1752d85 less logspam 2020-05-01 08:31:52 -07:00
geeksville 49a13bbfd3 increase gps config timeout, could take up to 2.5 secs 2020-05-01 08:31:31 -07:00
geeksville 0096f54ae9 better debug output 2020-04-30 22:53:21 -07:00
geeksville 4e106f4098 remove radiohead 2020-04-30 21:42:11 -07:00
geeksville 1f1d683f4f add back the old code that checked if the radio was actvively receiving 2020-04-30 21:29:51 -07:00
geeksville a8f64c3cc8 make a custom version fo rf95 class, so we can can deal with
chips that have bad version codes.
2020-04-30 21:11:03 -07:00
geeksville 968a2d7fbc store SNR in received packets 2020-04-30 19:58:10 -07:00
geeksville 1fab9c5aac temp hack to get new rf95 driver working 2020-04-30 19:31:17 -07:00
geeksville 22bca31ce3 properly set the RF95 iface 2020-04-30 18:05:06 -07:00
geeksville 48c045a253 move SPI init into main 2020-04-30 17:56:30 -07:00
geeksville e9ca7792eb new RF95 driver is written 2020-04-30 17:43:29 -07:00
geeksville b1a55b4576 old RF95 API works again 2020-04-30 16:47:56 -07:00
geeksville dd7452ad96 old RF95 code builds again 2020-04-30 16:36:59 -07:00
geeksville d7d8188093 implement most of sleep handling for the new radio stack 2020-04-30 15:50:07 -07:00
geeksville 62a893c760 SX1262 approximately works top-to-bottom, but need to add sleep modes 2020-04-30 15:43:41 -07:00
geeksville a2ba9d3c44 new receive code works a little better 2020-04-30 13:50:40 -07:00
geeksville 22720e9f63 ex1262 receiving kinda works 2020-04-30 12:37:58 -07:00
geeksville 11b79a942d add todos 2020-04-30 10:54:53 -07:00
geeksville 3c3e722181 new sending kinda works 2020-04-30 10:00:40 -07:00
geeksville fce31560c6 the mountain of changes needed to kinda make tx work compiles. 2020-04-30 09:44:16 -07:00
geeksville 2982e197e0 radio settings now work on real sx1262 hw 2020-04-29 19:04:59 -07:00
geeksville f69ddf168b we now hopefully apply the same radio settings as we did for the RF95 2020-04-29 18:46:32 -07:00
geeksville 8d985cfd37 cleanup so eventually rf95 can share common msg code with sx1262 2020-04-29 16:28:11 -07:00
geeksville 4693302d82 crummy sx1262 fake init kinda works 2020-04-29 16:06:23 -07:00
geeksville 814c126e67 ugly WIP on switching to RadioLib, still need to set freq etc... 2020-04-29 14:54:03 -07:00
geeksville 2ab34357d5 emit FromRadio.rebooted to serial test harness can detect reboots 2020-04-28 17:43:16 -07:00
geeksville b704911603 minor protobuf update 2020-04-28 11:20:00 -07:00
geeksville 59086fd477 fixes after testing stream protocol with python client 2020-04-27 18:52:57 -07:00
geeksville 88a704c4d3 for now, allow debug out to be interleaved with protobufs 2020-04-27 09:46:06 -07:00
geeksville cceecf5f8e New serial protobuf transport approximately works and is backward
compatiable with the text debug output.
2020-04-27 09:36:39 -07:00
geeksville eb40013ddc Create RedirectablePrint and NoopPrint for serial debug redirection 2020-04-27 09:01:25 -07:00
geeksville dda946d933 Stream API coded but not tested 2020-04-27 08:45:39 -07:00
geeksville 178e800969 add beginnings of StreamAPI 2020-04-27 08:10:17 -07:00
geeksville dec4870649 begin cleaning up mesh library layer so that it could be split someday 2020-04-27 07:54:19 -07:00
geeksville 15cb599cd1 move nrf52 stuff to correct directory name 2020-04-27 07:39:50 -07:00
geeksville def86131f0 Merge branch 'master' into nrf52
# Conflicts:
#	src/main.cpp
2020-04-26 18:34:41 -07:00
geeksville 8f1c1a9049 move debug msg 2020-04-25 11:46:46 -07:00
geeksville 3f3a1a11df when flooding, randomly delay sent packets to decrease chances of...
stomping on other senders that we can't even hear.
2020-04-25 11:43:28 -07:00
geeksville 64f6c0f5c0 clean up PeriodicTask so I can eventually use it with a scheduler 2020-04-25 10:59:40 -07:00
geeksville db11d9280c add nrf52 DFU app helper 2020-04-24 21:08:16 -07:00
geeksville ca03110932 Update ESP32 build to work with latest NRF52 changes 2020-04-24 14:55:51 -07:00
geeksville bebaa838c4 no need for LightSleep state on NRF52 CPUs 2020-04-24 11:21:10 -07:00
geeksville 7fa9d09d9f placeholder guess at PMU code until I have HW 2020-04-24 09:33:45 -07:00
geeksville 7bc299573f move esp32 specific code into esp32 land 2020-04-24 08:52:49 -07:00
geeksville 5e75beff3f don't block but queue log messages for the ICE (and eventual crash reports) 2020-04-24 08:06:29 -07:00
geeksville 4f7e85c1a4 cleanup serial instanciation on boards where we might not use it 2020-04-24 08:05:56 -07:00
geeksville d445cbe083 fix device name 2020-04-23 21:22:58 -07:00
geeksville 3c9c01189d old RF95 driver probably works on NRF52 now 2020-04-23 18:47:27 -07:00
geeksville 4f3a9d8646 example BLE code approximately works 2020-04-23 18:11:32 -07:00
geeksville 0c7c3f17e5 fix nrf52 macaddr byte order 2020-04-23 18:06:46 -07:00
geeksville 5b0451f25c add NRF52 BLE example code 2020-04-23 18:02:28 -07:00
geeksville 8f3b33c84c use a real macaddr on the nrf52 2020-04-23 16:55:25 -07:00
geeksville 2fdb75efdf make GPS 'work' on nrf52 2020-04-23 16:20:07 -07:00
geeksville fbd12e1929 oled screen probably works now on nrf52 2020-04-23 13:56:15 -07:00
geeksville ffe95f62ab no need to pass in scl & sda into screen constructor 2020-04-23 13:53:51 -07:00
geeksville 3e4ccef992 fix warnings 2020-04-23 13:53:29 -07:00
geeksville f0f6c4950b on NRF52 use the Segger debug console for debug logging 2020-04-23 13:27:16 -07:00
geeksville 16998ebd8d fix compiler warnings 2020-04-23 13:26:53 -07:00
geeksville b77c068881 create MeshRadio even on NRF52 (though it is currently using a Sim interface) 2020-04-23 12:50:54 -07:00
geeksville e94227cddd cope with missing interfaces in send 2020-04-23 12:48:00 -07:00
geeksville fe3cbeed3a misc NRF52 fixes 2020-04-23 12:47:41 -07:00
geeksville a0b6d57591 Fix #69 - new BLE API is in and tested from android 2020-04-23 11:41:30 -07:00
geeksville 3673f95fe5 woot! using new BLE api approximately works for reading 2020-04-23 11:02:14 -07:00
geeksville c67b53b969 remove owner from ToRadio 2020-04-23 10:30:14 -07:00
geeksville 562b227c73 new API now seems fully implemented - now on to testing. #69 2020-04-22 16:11:54 -07:00
geeksville 169d85d0fa handle the new set_owner and set_radio messages 2020-04-22 15:13:05 -07:00
geeksville bd77d47215 change serial baud rate to 921600 2020-04-22 14:58:35 -07:00
geeksville e40524baf0 begin moving comms glue from the old crufty BLE code to the new cleaner PhoneAPI class 2020-04-22 14:55:36 -07:00
geeksville 9232dfcccf WIP - add new baseclass for all api endpoints (serial, bluetooth, udp)
https://github.com/meshtastic/Meshtastic-esp32/issues/69
2020-04-20 18:03:13 -07:00
geeksville 2419ebb04e 0.4.3 Fix #92: omg - for the last couple of weeks the official builds were
all using US frequencies.  This build fixes this (and makes the build
system cleaner in general).

If you are building your own builds in the IDE you'll need to start
setting an environment variable called COUNTRY to your two letter
country code (or leave unset to get US frequencies).  See new comment
in platformio.ini.
2020-04-19 08:33:59 -07:00
geeksville db766f18ed Fix #99: move spi ISR operations into helper thread. SPI from ISR is bad! 2020-04-18 14:56:09 -07:00
geeksville e5f9a752d8 fix comments and cleanup ISR code 2020-04-18 09:22:26 -07:00
geeksville 20b41836e2 clarify log msg 2020-04-18 09:22:08 -07:00
geeksville 78470ed3f5 fix #97, we need the RF95 IRQ to be level triggered, or we have slim chance of missing events 2020-04-18 08:48:03 -07:00
geeksville 4ce7df295e don't poll for completion so quickly - the log messages scare people 2020-04-18 08:39:05 -07:00
geeksville 176532f55f autoformat per formatting rules 2020-04-17 18:50:07 -07:00
geeksville 8eb3045451 Fix #85, we were stalling sometimes on send while in ISR which is NEVER legal 2020-04-17 18:49:54 -07:00
geeksville 2fe145aed9 debugging goo 2020-04-17 18:48:37 -07:00
geeksville 5b17417e0c debugging GPIO wake on heltec- seems fine. 2020-04-17 14:30:42 -07:00
geeksville 04a83fd6b7 properly detach observers at destruction 2020-04-17 13:24:38 -07:00
geeksville 7730bd762a be less chatty about sleep 2020-04-17 13:18:33 -07:00
geeksville 62286fff52 0.4.1 release 2020-04-17 13:05:16 -07:00
geeksville 25cca0628d more debug output 2020-04-17 12:46:57 -07:00
geeksville 65406eaa08 mesh flooding seems to work pretty well! 2020-04-17 12:41:01 -07:00
geeksville ea24394110 add first cut of mesh naive flooding 2020-04-17 11:52:20 -07:00
geeksville 6afeb3e456 ok - new router seems to approximately work 2020-04-17 10:38:44 -07:00
geeksville f108c576a7 massive WIP updates to create a clean Router abstraction for mesh 2020-04-17 09:48:54 -07:00
geeksville 6eb74415ab protobuf changes as part of getting ready for mesh again 2020-04-16 17:32:36 -07:00
geeksville 2464784f00 todo updates 2020-04-15 14:51:17 -07:00
geeksville 0a6af936ed Get build (kinda, not really) running on a NRF52
Lots of NO_ESP32 to remove later...
2020-04-14 20:22:27 -07:00
geeksville 0b62083e35 wip - plan 2020-04-14 16:45:26 -07:00
geeksville 5ca149fac9 move radiointerface into lib 2020-04-14 14:36:26 -07:00
geeksville 80c69c28cd move pool/queue management into the rf95 lib 2020-04-14 13:20:36 -07:00
geeksville 5904d66111 Move Custom95 in with the rest of the RH code, to be ready to refactor 2020-04-14 12:38:42 -07:00
geeksville fd17193d5e Strip out all the parts of Radiohead (most of it) that we don't need 2020-04-14 12:31:29 -07:00
geeksville 5c379c4a98 missing newline 2020-04-14 11:44:35 -07:00
geeksville 9c5d626e7d Merge remote-tracking branch 'mine/cleanupblue' into cleanupblue 2020-04-14 11:41:16 -07:00
geeksville 4757b6807e lots of changes:
* preflightSleep, notifySleep, notifyDeepSleep now allow arbitrary
drivers/devices/software to register for sleep notification.
* Use the proceeding to clean up MeshRadio - now the mesh radio is more
like an independent driver that doesn't care so much about other systems
* clean up MeshService so that it can work with zero MeshRadios added.
This is a prelude to supporting boards with multiple interfaces (wifi,
extra LORA radios etc) and allows development/testing in sim with a bare
ESP32 board
* Remove remaining ESP32 dependencies from the bare simulation target
this allows running on anything that implements the arduino API
2020-04-14 11:40:49 -07:00
Kevin Hester 04ad8bb533
Merge branch 'master' into cleanupblue 2020-04-10 21:11:46 -07:00
geeksville 640cb3bf7f allow observers to return an error code to abort further processing
Will allow me to use observers to generalize the various hooks
that need to run to preflight sleep entry.
2020-04-10 12:40:44 -07:00
geeksville 6ad451eb5f move bluetooth code into something that is architecture specific...
because the ESP32 implementation will be different from NRF52
to make this possible I needed to decouple knowlege about bluetooth from
our mesh service.  Instead mesh service now uses the Obserable pattern
to let any interested consumer get notified of important mesh changes
(currently that is only bluetooth, but really we should do the same
thing for decoupling the GUI 'app' from the mesh service)

@girtsf would you mind reviewing my Observer changes? I haven't written
C++ code in a long time ;-)
2020-04-10 12:18:48 -07:00
geeksville 93a06906cb begin splitting up source files, so we can have a tree of sources...
unique to each architecture.  For now, we have "esp32" and "bare"

esp32 is the old esp stuff

bare is an target suitable for emulation that doesn't require any
particular hardware to run (no bluetooth, no i2c devices, no spi devices)
2020-04-10 12:15:35 -07:00
BeardyWalrus 3754950a0e
pinouts are swapped for TTGO-Lora32 V1 and V2 boards.
discovered by eriktheV-king in discourse
2020-04-09 20:44:15 -04:00
Andrew 753a57230d
Fix Meshtastic#80: Increase screen timeout to 5 minutes 2020-04-06 22:53:10 -07:00
geeksville c22df18e28 fix collision avoidance for transmit - substantially improves lora tx success 2020-04-06 09:39:44 -07:00
geeksville 13ac686c96 minor doc cleanups 2020-04-05 13:58:38 -07:00
geeksville 05a0266fc4 Fix #77: bluetooth is supposed to be on in DARK state 2020-04-05 13:09:46 -07:00
geeksville 63e1a3f47e always set time from GPS if we can 2020-04-04 19:16:30 -07:00
geeksville 07a8972aea NEO-6M gps with empty backup batteries give super invalid times 2020-04-04 18:47:41 -07:00
geeksville d1cb45aa5d string typo 2020-04-04 18:46:19 -07:00
geeksville da74803ffb begin cleanup on radio abstraction, details below:
* to allow changing to new mesh transport
* to allow a different chipset for the radio
* to allow testing on hardware with a SimRadio
* new "bare" build env for a devboard with virtually no hardware
* make buttons optional
2020-03-31 21:56:35 -07:00
geeksville 17de6f9532 fix #73: allow hw-model to be longer (16 bytes including terminator) 2020-03-30 19:58:06 -07:00
geeksville 1da62e5ba1 oops - we were previously not marking these protobuf structs as valid 2020-03-30 17:02:41 -07:00
geeksville feb6f2e59e extra debug output for radio config, and bump up bax handles for BLE 2020-03-30 17:02:09 -07:00
geeksville 7dabad1b70 don't let phones send down fatally invalid RadioConfig records
and if a phone did in the past, fixup the garbage we saved in flash
2020-03-30 16:10:11 -07:00
geeksville 81734f75c8 fix review comments (don't let commands queue up if we are missing a display) 2020-03-29 11:13:53 -07:00
geeksville 11d57e721a fix #68 (@girtsf, pls review - ps: no worries ;-) )
// We don't set useDisplay until setup() is called, because some boards have a declaration of this object but the device
// is never found when probing i2c and therefore we don't call setup and never want to do (invalid) accesses to this device.
2020-03-29 11:00:25 -07:00
geeksville ea250d9cd3 add initial guess at TBEAM 0.7 hardware support 2020-03-28 15:31:22 -07:00
geeksville be468a2183 add reasonable guesses for TTGO LORA V1 and V2 boards - thanks @sensorsiot
for the pinouts
2020-03-28 14:45:33 -07:00
geeksville cf2aa37635 clean up configuration.h and add support for ttgo-lora-v1 boards 2020-03-27 16:55:19 -07:00
geeksville d1387be015 Merge remote-tracking branch 'root/master'
# Conflicts:
#	src/main.cpp
#	src/screen.cpp
2020-03-27 14:18:07 -07:00
geeksville d831beab3d moving build selection into platformio.ini rather than nasty #defines. thanks to @sensorslot
for the pointer to https://github.com/arendst/Tasmota - where I just borrowed heavily ;-)
2020-03-27 14:03:58 -07:00
geeksville 5c4ae6c042 now that axp192 interrups work, no need to poll over i2c. #48 2020-03-27 14:03:58 -07:00
geeksville a0c97825e8 always use gps.isConnected to check for GPS, it is the only thing
guaranteed to be fresh and accurate
2020-03-27 12:32:18 -07:00
geeksville cc3bac7ea0 Fix AXP192 handling by @spattinson. yay! fix #48
Also - now that he fixed that, we can leave PMU interrupts on across sleep

Hopefully the following line will properly credit him in the magic github
universe...

Co-authored-by: spattinson <spattinson@users.noreply.github.com>
2020-03-27 12:29:51 -07:00
Girts Folkmanis 54cd082bfe fix #49: make debug screen show real data
* Break out debug screen to a separate class and make it thread-safe.
* Break out power state to a separate class.
* Show battery voltage, charging & USB status on debug screen.
* Show GPS lock / no lock
* Fix an off-by-one that I introduced earlier in `drawRows`.
2020-03-26 22:17:47 -07:00
geeksville a579bbcb50 heltec style devices were not automatically setting their time from the mesh
due to a bug in the init of has_gps.  Now that we probe for gps we should
default has_gps to false until we hear from it
2020-03-25 13:36:54 -07:00
geeksville 12e67d3b30 add some debug output 2020-03-25 13:35:49 -07:00
geeksville 50d724780a make user presses ask other nodes for their latest status
see related bug
https://github.com/meshtastic/Meshtastic-esp32/issues/59
2020-03-25 13:09:12 -07:00
geeksville 3443e60718 never loop waiting on hardware without some sort of timeout ;-)
related to https://github.com/meshtastic/Meshtastic-esp32/issues/53
2020-03-25 12:25:46 -07:00
geeksville 65128a04c9 my new watchdog related to the the send tx bug was not quite complete
https://github.com/meshtastic/Meshtastic-esp32/issues/53
2020-03-25 11:45:18 -07:00
geeksville b4b8abe6ec omg I was not setting the correct flag to tell phone we had gps 2020-03-24 15:20:24 -07:00
geeksville d647be73df oops nasty bug probably responsible for ble mutex seeming bugs #33
Was calling the wrong superclass method and therfore not properly
populating radio
2020-03-24 15:16:32 -07:00
geeksville 34ead2d68e add support for reporting device errors up through the phone to analytics
related to https://github.com/meshtastic/Meshtastic-esp32/issues/53
2020-03-24 13:33:24 -07:00
geeksville 3f1161b68b bug #53 - report the error on console and fixup (will add analytics in
a separate call)
2020-03-24 13:04:28 -07:00
Kevin Hester 1f83f7d9df
Merge branch 'master' into fix-upside-down-screen 2020-03-24 10:55:56 -07:00
Girts Folkmanis dee3e530de fix #52: bluetooth not pairing
Silly type error on my part - PIN was always truncated to lower 8 bits.
😬

Tested: Pairing now works from both nRF Connect and phone.
2020-03-22 19:18:49 -07:00
Girts Folkmanis 3e44c2c3e1 screen.cpp: flip the display 180 2020-03-19 20:15:51 -07:00
geeksville 32ac5ac9ae reformat everything
using @girtsf clang-format prefs settings.  This should allow us to turn
on auto format in our editors without causing spurious file changes.
2020-03-18 19:15:51 -07:00
geeksville 534691f0c2 Merge remote-tracking branch 'root/master'
# Conflicts:
#	src/main.cpp
#	src/screen.cpp
#	src/screen.h
2020-03-18 18:44:12 -07:00
geeksville c8b95f7691 oops - I broke compass display with my gps changes and didn't notice till
testing with two gps equipped devices.  fixed.
2020-03-18 18:34:22 -07:00
Girts Folkmanis daf8594b99 Screen cleanups and refactoring
Work towards separating out how Screen interacts with other stuff.
* `Screen` should now be thread-safe. All commands to it are put in a
  queue and handled in `doTask` from the `loop()` task.
* Break dependency from `BluetoothUtil` to `Screen` by changing the
  pairing request into a callback.
* All accesses to screen now happen through the class.
* Fix `drawRows` so that the text scrolls along with frame animations.
* Remove example code that wasn't used.
2020-03-18 18:11:35 -07:00
Girts Folkmanis 5b54fd6359 screen.cpp: reformat with clang-format 2020-03-18 17:16:19 -07:00
geeksville 53765298e1 add a real BOOT state, to avoid glitch from redrawing bootscreen twice
also its the right thing to do ;-)
2020-03-18 15:00:17 -07:00
geeksville 0d94458c4e bump preferences # 2020-03-18 14:59:30 -07:00
geeksville 5e55695862 fix build warning 2020-03-18 14:51:54 -07:00
geeksville dbbb62f63e fix press to properly force any node we are watching to send us a new
position report
2020-03-18 13:51:32 -07:00
geeksville 79ce7d929c send dynamic probed GPS status to the phone 2020-03-18 13:29:22 -07:00
geeksville 33437b5246 oops - I accidentally shadowed a variable I didn't want to shadow ;-) 2020-03-18 09:37:38 -07:00
geeksville f4bacb9d87 some tbeams have occasional crap sitting in their gps rx buffer at boot? 2020-03-18 09:29:20 -07:00
geeksville 0ac218b06d allow gpses which only have the RX pin connected to also work.
(and because I'm lazy, let the autoreformat rule work on this file)
2020-03-18 09:21:28 -07:00
geeksville 2134b4db9b fix #40 force an extra redraw for the bootscreen,
some clones drop the first draw cmd
2020-03-17 16:36:48 -07:00
geeksville 36bee8fa53 Merge remote-tracking branch 'root/master' 2020-03-16 09:30:24 -07:00
Girts Folkmanis 41c95eaff7 fix build: add missing include to screen.cpp 2020-03-16 09:26:40 -07:00
geeksville ca8a25f585 Merge remote-tracking branch 'root/master' 2020-03-16 09:03:21 -07:00
Kevin Hester 51a8700391
Merge pull request #35 from girtsf/underp-lock-paths
underp include paths in lock.h
2020-03-16 09:02:54 -07:00
Girts Folkmanis 7a4a1af332 TypedQueue: make functions return bools instead of BaseType_t
Minor cleanup to hide away some FreeRTOS bits.

Note: I believe src/CustomRF95.cpp:62 had a bug where it had the
condition inverted.
2020-03-15 19:29:04 -07:00
Girts Folkmanis 90ecdf229e add locks to PeriodicTask 2020-03-15 19:29:00 -07:00
geeksville 24ac907780 auto generate channel numbers from name
NOTE: All radios on a channel will need to be updated to this release
before they can talk together again.
2020-03-15 17:51:57 -07:00
geeksville 5037fb830e fix build (and autoformat in visual studio code) 2020-03-15 17:50:48 -07:00
Girts Folkmanis 79f1346359 underp include paths in lock.h
Had the casing wrong, but could get away with it on a mac.
2020-03-15 17:43:42 -07:00
geeksville 30a431788d we now do bidirectional comms to GPS at startup, so we can always trust isConnected 2020-03-15 16:57:21 -07:00
geeksville d0b8adab75 In my work for #11 I accidentially created a serious bug on Heltec...
devices.  It caused bogus i2c transactions when device would go to sleep.
Fixed now, also, I now treat GPS usage uniformly between TBEAM and HELTEC
we always probe for and use the GPS if we find it.

Which means for the extra nerds
(someone requested this, I'm sorry - I don't remember who) you can now
optionally attach an external GPS to HELTECs if you want.  The pins are:

 #define GPS_RX_PIN 34
 #define GPS_TX_PIN 12

(@girtsf, sorry about including formatting changes in this PR, apparently
I had my IDE set to not autoreformat until just now
2020-03-15 16:57:21 -07:00
geeksville 74f7b7b622 print extra info the next time this error occurs 2020-03-15 16:57:21 -07:00
Girts Folkmanis 2874b22d6c add a Lock, LockGuard and printThreadInfo
* `Lock`: trivial wrapper for FreeRTOS binary semaphores
* `LockGuard`: RAII wrapper for using `Lock`
* `printThreadInfo`: helper for showing which core/FreeRTOS task we are
  running under
2020-03-15 16:52:19 -07:00
Girts Folkmanis b5201f928b fix the build: remove includes for TinyGPS that's not longer used or in deps 2020-03-15 13:27:00 -07:00
geeksville 0d62a2be85 release 0.1.6 2020-03-14 18:48:15 -07:00
geeksville 9c971d3686 Finally - new sexy ultra low power/low latency GPS code is in for TBEAM 2020-03-14 18:45:24 -07:00
geeksville 3c1357b732 ublox is better but still not perfect 2020-03-14 16:31:12 -07:00
geeksville acd5e5d29d use power save mode on gps 2020-03-14 13:33:53 -07:00
geeksville 64109b25f2 Switch to native ublox api for GPS position and time 2020-03-14 12:46:24 -07:00
geeksville e93bc76ac9 Merge branch 'master' into gps-sleep-mode 2020-03-13 22:45:40 -07:00
geeksville 1107c6d23d Fix serious bug: button presses were not waking from light-sleep on TBEAM
Root cause seems to be the axp192 interrupt, which on some boards fires
during sleep.  I'm not sure why, but we don't need this yet, so leaving
masked during sleep.
2020-03-13 22:42:43 -07:00
geeksville 35cf8a4859 power debugging 2020-03-13 22:38:58 -07:00
geeksville 76f21dfd6e wip 2020-03-13 22:34:44 -07:00
geeksville 9bbd658b9d begin testing native ublox api 2020-03-13 20:30:48 -07:00
geeksville 4999da0824 Merge branch 'dev' into gps-sleep-mode
# Conflicts:
#	docs/software/TODO.md
#	platformio.ini
2020-03-13 18:48:38 -07:00
geeksville a783341df1 begin adding temporary support for both NEMA and UBLOX gpses 2020-03-13 18:44:14 -07:00
astro-arphid 91227b25df #13 - add support for 433MHz Heltec boards 2020-03-12 06:05:11 +00:00
geeksville 9995d2a7ab oops copypasta error fix #19. Thanks @iveskins! 2020-03-10 19:33:16 -07:00
geeksville f87cb00940 show reason for last reset 2020-03-08 14:05:12 -07:00
geeksville 011864a2d3 Fix #15 Force all devices to update preferences 2020-03-08 11:02:58 -07:00
geeksville ffe8bf2be6 Refactor to make some real design docs 2020-03-05 18:39:24 -08:00
geeksville c66e24aa4d most users are not using the phone app now, don't enter SDS state because of no phone comms 2020-03-04 18:59:10 -08:00
geeksville 951f5d11d5 fix text message display when new text arrives
The problem was we were pulsing the display power briefly down while
reentering the ON state (because the ON states exit rule turned it off).
Instead we now just turn off the screen on entry to DARK or LS states
2020-03-04 16:46:57 -08:00
geeksville 2ce95ed2ce fix typo in SDS sleep time 2020-03-04 16:10:48 -08:00
geeksville d1b7b6c5c5 oops - I was previously stopping bluetooth before stopping the mesh bluetooth service
which was bad bad
2020-03-04 16:10:36 -08:00
geeksville 425c570757 don't show fake GPS level on devices without one #4 2020-03-04 10:51:29 -08:00
Kevin Hester 46dab2d496 Make devicestate.version something that only the device code cares about 2020-03-03 13:46:11 -08:00
Kevin Hester 375804c9e4 (needs testing) fixed the following during a plane flight
* Have state machine properly enter deep sleep based on loss of mesh and phone comms.
* Default to enter deep sleep if no LORA received for two hours (indicates user has probably left the mesh).

Signed-off-by: Kevin Hester <kevinh@geeksville.com>
2020-03-03 13:31:44 -08:00
Kevin Hester fe5703c684 fix the "blank screen when a text message arrives" bug 2020-03-03 10:15:23 -08:00
Kevin Hester 28588f6730 send hw version info via protobufs 2020-03-03 08:23:58 -08:00
Kevin Hester d074218049 no need to stop mesh service during sw update, bug was on the android side 2020-03-03 07:38:56 -08:00
Kevin Hester 1f07d6735b fix a nasty sleep bug: we weren't stopping our old mesh service
so it would kinda keep living (along with the recreated one) when we
come back from sleep.
2020-03-03 07:36:35 -08:00
Kevin Hester bb0b2e72c8 stop using ino files, visual studio doesn't like them 2020-03-03 07:34:05 -08:00
Kevin Hester 12a68026e7 clarify release of meshpacket back to pool 2020-03-02 09:02:21 -08:00
Girts Folkmanis 0b8d7768fd some minor cleanups
* Suppress warnings about conflicting library names in platformio.ini by
  explicitly picking the libraries by id that we want.
* fix unused static function warning by making it not static ;)
* declare arduino-fsm as dependency for BluetoothOTA. Hopefully this
  fixes the CI builds?

Tested: `pio run` builds.
2020-02-28 19:26:11 -08:00
geeksville 877e312833 allow TBEAMs to provide approx GPS time to Heltec devices 2020-02-26 09:00:53 -08:00
geeksville 7b348f30ac text messages screen not coming up if screen was already on 2020-02-25 10:29:37 -08:00
geeksville 8893be57df kinda ugly but BLE sw update seems reliable again 2020-02-24 18:09:58 -08:00
geeksville 6b696bfdc5 hw vendor strings must match file names for auto update 2020-02-24 11:21:34 -08:00
geeksville a3df099f60 until my TBEAM is fixed, leave GPS power on in sleep sometimes 2020-02-24 11:21:08 -08:00
geeksville bb808c6c52 fix bluetooth pairing UX. enter full ON state when requested 2020-02-24 10:23:07 -08:00
geeksville 51b53f406e include region code in the BLE HW version string. ie 1.0-US 2020-02-24 09:22:34 -08:00
geeksville bd0f35ad83 fix encoding of sw version numbers in the BLE device info 2020-02-24 09:12:13 -08:00
geeksville 0110e1d2e0 release 0.0.4 2020-02-23 20:08:20 -08:00
geeksville 82afd234a1 don't stomp on RX packets when we have something ready to send 2020-02-23 19:51:43 -08:00
geeksville 419dd44ff6 BT sleep leak now down to about 200 bytes 2020-02-23 18:09:40 -08:00
geeksville 621beadb5c btle leak per sleep now down to about 500 bytes. 2020-02-23 16:42:09 -08:00
geeksville 8dfd7a4a71 the ble goo is still leaking on destroy, but better 2020-02-23 14:09:52 -08:00
geeksville a45d7be922 still leaking in the BT stack but better 2020-02-23 13:54:40 -08:00
geeksville f9ce6a53e1 ble works again after sleep - but we are still leaking 2020-02-23 13:20:46 -08:00
geeksville 5f88174dbf wip - finally done switching to dynamic allocs 2020-02-23 12:25:59 -08:00
geeksville 76100e23eb WIP make swupdate keep power on 2020-02-23 11:37:38 -08:00
geeksville a678dd3ee8 WIP - all BT characteristics must be dynamically alloced 2020-02-23 11:05:55 -08:00
geeksville 356902d552 wip - make ble come back after sleep 2020-02-23 10:49:37 -08:00
geeksville 4906b12489 prevent ble powerdown while phone is connected 2020-02-23 08:53:52 -08:00
geeksville 635e189007 GPS sleep mode WIP - alas this thread will have to be back burner for a
while because my TX wire on my ONLY T-BEAM broke while I was soldering
a jtag connector - so I can only RX from the GPS.

My other 5 boards are still delayed due to corona virus.

So I'll work on other features for now
2020-02-22 20:05:38 -08:00
geeksville 6eba792537 WIP - changing to a ublox aware GPS lib so I can put it in sleep 2020-02-22 19:08:16 -08:00
geeksville 372a3e000e button presses are fixed 2020-02-22 18:02:44 -08:00
geeksville 5e2044dd63 blink the led very briefly every 5 secs while in light sleep 2020-02-22 17:40:31 -08:00
geeksville a1a1ceb94d while not perfect, good enough to move power statemachine to master 2020-02-22 14:56:19 -08:00
geeksville ca37e50362 WIP light sleep kinda works 2020-02-22 14:45:58 -08:00
geeksville fe2ca65a11 WIP kinda works but light sleep still busted 2020-02-22 13:50:08 -08:00
geeksville c7894f3bc5 fsm WIP might work 2020-02-22 13:14:10 -08:00
geeksville 509f9b6e2b WIP state machine builds 2020-02-22 12:01:59 -08:00
geeksville 045529d91f begin cleanup of sleep code for new state machine 2020-02-21 17:01:26 -08:00
geeksville aebcbf767f GPS works better now with light-sleep but not quite done. 2020-02-21 12:24:35 -08:00
geeksville 598023f5db PMU IRQ polarity was backwards 2020-02-21 11:39:10 -08:00
geeksville 3df81682b3 now that light-sleep kinda works, use deep-sleep far more rarely 2020-02-21 11:32:33 -08:00
geeksville 20461807f3 change screen into a periodictask, so it can be used with the scheduler 2020-02-21 10:51:36 -08:00
geeksville a6b98bec1f cleanup period stuff for new scheduler 2020-02-21 10:20:47 -08:00
geeksville d4efb2c44c burn _lots_ less cpu updating the display when idle 2020-02-21 10:13:51 -08:00
geeksville 5f3e8b5309 unify periodic timers 2020-02-21 08:41:36 -08:00
geeksville 132e54ecc5 don't turn bluetooth back on every time we exit light sleep 2020-02-21 08:09:07 -08:00
geeksville 7a745c9e65 light sleep seems to work well 2020-02-21 04:57:08 -08:00
geeksville beccc34ef1 lower cpu freq to 80MHz 2020-02-21 03:48:13 -08:00
geeksville 6ade723caa release 0.0.3 alpha posted 2020-02-20 13:23:42 -08:00
geeksville 4dc8af3a1b trust gps time across deep sleep 2020-02-19 20:02:57 -08:00
geeksville b9438357b6 add support for network ping testing 2020-02-19 18:51:17 -08:00
geeksville bf347aad91 show users walking heading on the screen 2020-02-19 15:29:18 -08:00
geeksville f5a2596acf fix time scaling 2020-02-19 11:35:34 -08:00
geeksville cd4cd6fe56 progress on keeping gps off more 2020-02-19 10:53:09 -08:00
geeksville d9a875082c set rtc from gps time 2020-02-19 08:17:28 -08:00
geeksville 67e0f5c184 use RTC time for my timestamp (works across deep sleep) 2020-02-19 07:58:51 -08:00
geeksville ae023a57e8 don't assert fail if the txfifo is full, just drop the packet 2020-02-18 20:17:11 -08:00
geeksville acce254685 Change RF95 to deliver packets straight from ISR and no polling for anything 2020-02-18 20:06:01 -08:00
geeksville bf491efddf begin support for countries besides the US 2020-02-18 16:18:01 -08:00
geeksville 9481d9e95b loopback test support 2020-02-17 17:47:01 -08:00
geeksville 47d278b3b9 only display messages destined to us 2020-02-17 16:32:51 -08:00
geeksville c0fdf227b7 properly show plaintext msgs on oled 2020-02-17 16:27:29 -08:00
geeksville 5c0b20e43c If the phone writes our user settings, only broadcast if actually changed 2020-02-16 18:14:04 -08:00
geeksville f34c29a323 experiment with axp192 power management 2020-02-16 16:03:16 -08:00
geeksville 0453ffbfd7 Make a Periodic class, use it to blink the LED less often 2020-02-15 11:15:43 -08:00
geeksville befb06bdd9 make readme a bit more real. 2020-02-15 08:38:07 -08:00
geeksville 978abc7f63 show a kinda correct heading on the compass graphic 2020-02-14 19:11:31 -08:00
geeksville 4adddf4fd0 show real distances between nodes 2020-02-14 16:25:11 -08:00
geeksville 52b398083a general both build types 2020-02-14 14:00:08 -08:00