Commit Graph

1314 Commits

Author SHA1 Message Date
Kevin Hester
3c1c11e439 bug #376 wip - we now kill gps power when it is supposed to be asleep 2020-10-05 15:29:26 +08:00
Kevin Hester
b072eec4ac wip for #376 2020-10-05 14:43:44 +08:00
BeardyWalrus
4d7cd0a09d conditional on needing ESP32 bluetooth header loaded 2020-10-03 17:23:36 -04:00
BeardyWalrus
b38bcffafb Merge branch 'master' of https://github.com/BeardyWalrus/Meshtastic-device 2020-10-03 17:02:19 -04:00
BeardyWalrus
530432411e revised fix for #357
Now supports default password for devices with no display, and override with double press of user button
2020-10-03 17:02:17 -04:00
geeksville
bacc6caf04 wip gps power fixes #376 2020-10-01 09:17:43 -07:00
geeksville
d66cede7fc Merge branch 'eink' into power 2020-10-01 07:51:01 -07:00
geeksville
3a638090a2 update protos for #376 2020-09-30 07:47:16 -07:00
BeardyWalrus
5150d15997
Merge branch 'master' into master 2020-09-29 19:57:01 -04:00
BeardyWalrus
7d6dbcfa3f Update BluetoothUtil.cpp
fix for #357
use presence of ssd1306 display to set display functionality for bluetooth security.
2020-09-29 19:51:39 -04:00
Kevin Hester
cfb9a600e4
Merge branch 'master' into eink 2020-09-29 14:14:10 -07:00
Jm Casler
423cbc2c6d Added frequency information to debug output (#447) and cleanup of screen.cpp and meshwifi.cpp 2020-09-29 00:59:26 -07:00
geeksville
124a82888d add power testing notes for eink 2020-09-28 17:38:36 -07:00
geeksville
fec7a6bf17 add air530 gps sleep support 2020-09-28 17:04:19 -07:00
geeksville
bc50b39a3b put eink screen to sleep to save power 2020-09-28 16:08:52 -07:00
geeksville
a0fd83428f eink use RESET button as regular button instead 2020-09-28 13:10:27 -07:00
geeksville
e5d4fbb164 fix pins per email eink 2020-09-28 13:03:54 -07:00
Jm Casler
848760e5bf Set device hostname with hardwire ID #445 2020-09-27 00:55:41 -07:00
Jm Casler
5ebac0cd54 Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2020-09-26 23:38:22 -07:00
Jm Casler
9b4079317b Give more details of why wifi is disconnected 2020-09-26 23:37:58 -07:00
Jm Casler
fd62edbcab
Merge branch 'master' into master 2020-09-26 18:44:53 -07:00
Jm Casler
b5361ef89f Display gps altitude on display #443 2020-09-26 18:37:51 -07:00
geeksville
648589ed16 translate important parts of the Air530 datasheet to english 2020-09-26 18:16:32 -07:00
geeksville
28ec0e310d make bat voltage sensing work on eink 2020-09-26 18:13:16 -07:00
geeksville
956d9e96f2 Merge branch 'eink' of https://github.com/geeksville/Meshtastic-esp32 into eink 2020-09-26 13:49:54 -07:00
geeksville
266ba03bb7 route debug output back to the CDC-ACM device instead of JLINK 2020-09-26 13:49:22 -07:00
Kevin Hester
04c54840f4
Merge branch 'master' into eink 2020-09-26 12:58:13 -07:00
geeksville
d7fbcf89bf cleanup todo eink now ready to merge 2020-09-26 12:36:11 -07:00
geeksville
a8b1bc735a remove debugging code eink gps now works 2020-09-26 12:12:50 -07:00
geeksville
ba8c640d6e eink leds kinda work now 2020-09-26 10:53:02 -07:00
geeksville
d88d2780f4 eink display now kinda works 2020-09-26 09:40:48 -07:00
Jm Casler
6f444ed4b5 Accidently left #include "nimble/BluetoothUtil.h" in screen 2020-09-26 00:03:23 -07:00
Jm Casler
28119bf1bf Fix for #439 and some cleanup 2020-09-26 00:01:02 -07:00
geeksville
2996c7c8e2 Make tcp API now work. Sample usage and caveats below:
Sample usage:

First configure device to use @mc-hamster's new wifi stuff:
meshtastic --set wifi_ssid mylanname --set wifi_password mylanpassword

Then reboot the device (so wifi starts up).

(assuming device was assigned addr 192.168.81.45)
meshtastic --info --host 192.168.81.45
(See the usual device info you previously had to get over USB)

Caveats:

* Currently we are limiting to one active TCP connection open at once, if
you open a new session the old one is closed automatically
* There are no access controls/authentication needed to open a TCP
connection to the device
* Currently main.cpp is kinda dumb about how we should schedule work and
we rely on too many helper loop() functions.  Very soon in my queue
(related to all the other cleanup) is to add a basic notion of coroutines,
so that we can get away from freertos threads and this old school arduino
loop function.  Once that cleanup happens we can the a) have much lower
battery consumption (always) and b) super fast response for all operations.
2020-09-25 16:18:30 -07:00
geeksville
d1c3078698 shrink guard for channel settings lock 2020-09-25 12:52:26 -07:00
geeksville
3e5f81bf2a move region into userpreferences, to end region specific firmwares 2020-09-25 12:52:08 -07:00
geeksville
1a064a4666 Merge remote-tracking branch 'root/master' 2020-09-25 09:19:58 -07:00
geeksville
6f77244af3 eink wip notes 2020-09-25 09:14:00 -07:00
geeksville
a79aff4778 WIP - I think some pins are wrong, waiting for new schematic 2020-09-24 16:36:07 -07:00
Jm Casler
fed4dfd410
Merge pull request #435 from mc-hamster/master
Update dev-wifi from my fork
2020-09-24 11:15:47 -07:00
Jm Casler
0d3b8bdb22 Note not to file bugs 2020-09-24 11:07:30 -07:00
Jm Casler
ce7fa65595 David's latest changes to the HTML UI 2020-09-23 19:04:12 -07:00
geeksville
9c0a0ad220 Add stubs so that portduino can build with wifi. cc @mc-hamster 2020-09-23 17:22:17 -07:00
Jm Casler
b39f6c96bd Merge remote-tracking branch 'origin/dev-wifi' 2020-09-22 22:00:07 -07:00
Jm Casler
10b24c0269 Initial check-in of David's UI 2020-09-22 21:01:31 -07:00
geeksville
3352fae64c fix #371 allow button while using API. also don't let tbeams sleep if they have USB power 2020-09-21 12:41:39 -07:00
comgram
55cb0c52ee Add Korean Frequency 2020-09-21 16:10:20 +09:00
Jm Casler
d890068acb dev-wifi: Detailed error reporting of reason why WiFi didn't connect #424 2020-09-19 21:58:21 -07:00
Jm Casler
5cbe06c2b0
Merge pull request #419 from geeksville/dev-wifi
Add API server on port 4403 (kinda a WIP, seems to work but I haven't
2020-09-19 17:25:24 -07:00
Jm Casler
377f0bda5d Add more detail on the connection status on the screen #422 2020-09-19 17:15:03 -07:00
Jm Casler
464a42258f Fix for "Wifi in station mode sometimes enters loops of repeatedly joining... #420"
Fix for Wifi in station mode sometimes enters loops of repeatedly joining... #420
2020-09-19 16:38:59 -07:00
geeksville
9e9c50e6d8 Add API server on port 4403 (kinda a WIP, seems to work but I haven't
finished the python client code)
2020-09-19 12:54:49 -07:00
Jm Casler
945f726b65 Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2020-09-19 12:50:46 -07:00
Jm Casler
7c44daf8f4 pushing my chances to personal branch so i can get the changes from the laptop 2020-09-19 12:50:43 -07:00
Jm Casler
c57a9a8613 Update from my laptop 2020-09-19 11:24:55 -07:00
geeksville
3c0429deee Add new factory_reset preferences option clients can set 2020-09-19 11:19:42 -07:00
Jm Casler
6e3b22c624 Stub for a handler of the root (/) of the web server with a html table and form for chat 2020-09-18 20:42:35 -07:00
Jm Casler
82fbedbf41 Auto formatting of meshwifi.cpp 2020-09-18 18:51:42 -07:00
Jm Casler
65fc1cf4a6 Moved handleDNSResponse into handleWebResponse and used the autoformatter 2020-09-18 18:29:16 -07:00
Jm Casler
4d72afebe6 Soft AP and basic captive portal done. 2020-09-18 18:16:58 -07:00
Jm Casler
362d8cb831
Merge branch 'master' into dev-wifi 2020-09-18 18:02:56 -07:00
Jm Casler
b203c95dd1 changes for soft ap + captive portal 2020-09-18 15:33:03 -07:00
geeksville
6e5e5822aa Make wifi optional and exclude from nrf52 builds 2020-09-18 10:48:39 -07:00
Kevin Hester
5fb0bf2575
Merge branch 'master' into anz 2020-09-18 10:19:43 -07:00
geeksville
d3e28e3e2c Merge branch 'dev' 2020-09-17 11:20:41 -07:00
r51n
91305c2c84
add AU/NZ channel definitions 2020-09-17 12:02:38 +00:00
Jm Casler
48dd6d388d Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2020-09-16 23:16:19 -07:00
Jm Casler
64710a6a04 renamed reconnectWiFi to initWifi 2020-09-16 23:16:11 -07:00
Jm Casler
c83ff03d66
Merge pull request #4 from meshtastic/master
Updating form head
2020-09-16 22:51:19 -07:00
Jm Casler
73b47a78aa Clean up and added comments about the esp32 sdk bug 2020-09-16 22:31:07 -07:00
Jm Casler
493b25f23e Final checkin of WiFi and basic HTTP server 2020-09-16 20:15:00 -07:00
geeksville
fc20f658e6 Fix #362 by @a-f-G-U-C - I was mispelling NMEA ;-) 2020-09-16 09:22:03 -07:00
geeksville
8e988cc926 fix #397 from @a-f-G-U-C - bogus GPS positions during locking could be reported
btw - from my read of the NMEA, the lowest value that means 'has a valid
position' is 1 not 2.  But I only know this because you pointed me at
it ;-)

Thanks!
2020-09-16 09:18:44 -07:00
geeksville
8c240b59f6 fix #393. immediately save node db to disk if user changes name 2020-09-16 09:08:35 -07:00
geeksville
3e64d8439d Merge branch 'master' into dev 2020-09-15 21:13:24 -07:00
geeksville
435c955acd make hash prototype a bit stricter 2020-09-15 21:05:57 -07:00
Jm Casler
c656a95a84
Merge pull request #3 from meshtastic/master
Update from meshtastic main
2020-09-15 20:34:30 -07:00
Jm Casler
27ad8472c1 remove ssid info from configuration.h 2020-09-15 20:24:58 -07:00
Jm Casler
3fcd4a61aa commenting out the strcpy to manually set the wifi info. 2020-09-15 20:24:03 -07:00
geeksville
c6d93d1a28 fix #346 limit tx power in japan 2020-09-15 18:54:50 -07:00
geeksville
7d4058f49d let users set 20 dBm if they wish 2020-09-15 18:00:21 -07:00
geeksville
31fc8fafec make default power level radio chipset specific 2020-09-15 17:55:33 -07:00
Jm Casler
066d9d48a4 New method to deinit the wifi stack. 2020-09-14 20:27:49 -07:00
Jm Casler
f5c939fb10 Fix to turn WiFi back on after the bluetooth radio is reenabled. 2020-09-13 22:22:49 -07:00
Jm Casler
e508306395 Refactoring to break out HTTP from WiFi 2020-09-13 16:58:36 -07:00
Jm Casler
f129b458ad Initial Checkin for WiFi and HTTP Server Framework 2020-09-12 21:43:41 -07:00
Jm Casler
b6f71ca1db Update screen.cpp for for crash when gps gets lock
Update screen.cpp for for crash when gps gets a lock
2020-09-11 22:17:45 -07:00
geeksville
92df77f228 Merge remote-tracking branch 'root/master' into dev 2020-09-11 18:15:13 -07:00
geeksville
1cd81208c0 Merge remote-tracking branch 'root/master' 2020-09-10 10:11:15 -07:00
geeksville
ee27c15c2c likely fix for bug #373. fix #339. great gps fixes from @a-f-G-U-C
fixes described in bug #376
2020-09-10 09:25:10 -07:00
Garret Kelly
48256d6e9e Fix compilation without a BUTTON_PIN definition 2020-09-08 15:22:49 -04:00
geeksville
c007302564 fix #363 gps altitude - based on tip by @a-f-G-U-C 2020-09-08 10:28:53 -07:00
geeksville
0a9f7147f3 probably fix #341 enable internal pullup on lora-v2 button 2020-09-08 10:25:37 -07:00
geeksville
46ba36511a Merge branch 'portduino' into dev
# Conflicts:
#	platformio.ini
2020-09-07 16:31:17 -07:00
geeksville
f3d38d84c9 fix nrf52 build 2020-09-07 13:03:37 -07:00
geeksville
f8bb6bbcb4 try to bang on SPI from simulator 2020-09-06 16:32:13 -07:00
geeksville
e0d5b9dce1 use simradio on portduino 2020-09-06 16:09:07 -07:00
geeksville
94e4b30125 add crude sim getmacaddr 2020-09-06 16:07:32 -07:00
geeksville
2a067e7f6b make gps optional. Portduino almost works in sim! 2020-09-06 14:45:43 -07:00
geeksville
b8d39845cf portduino now links! 2020-09-06 09:24:08 -07:00
Jm Casler
49dea6d6bd Update Screen.cpp
Added commnets for concepts for future TODO work.
2020-09-05 22:36:57 -07:00
Jm Casler
7d4c6c7086 Update Screen.cpp
- Changed "No Satellite Lock" to "No GPS Lock"
- Fixed bug when there's no battery. Now shows "USB"
- Tested on tlora-v1
2020-09-05 14:41:00 -07:00
geeksville
fefd3d78f3 Portduino WIP now compiles but does not link 2020-09-05 12:34:48 -07:00
Jm Casler
f41a77c46d Initial add of status screen
Initial add of the status screen.

TODO:
- Get status of the BT Radio
- Display something on line 3
2020-09-05 09:30:18 -07:00
geeksville
6a475d8288 WIP 2020-09-04 17:23:17 -07:00
geeksville
c629b94333 portduino WIP 2020-09-04 15:03:22 -07:00
geeksville
6cdaf8c600 fix #349 channel suffix letter didn't match between device and phone 2020-08-30 12:38:15 -07:00
geeksville
c370eb4a88 allow restarting failed upgrades (fixes an android autobug report) 2020-08-30 12:21:05 -07:00
geeksville
8dc4492ba3 add taiwan frequencies 2020-08-30 12:20:43 -07:00
geeksville
901cc536ef less logspam 2020-08-29 15:17:32 -07:00
geeksville
dffb6c2f06 If display is on on the @BigCorvus board and we xmit the board browns out? 2020-08-28 17:38:23 -07:00
geeksville
7f214ffbb0 TFT kinda correct now - but slow because of bit banging 2020-08-28 15:33:33 -07:00
geeksville
e049eac38a TFT display kinda draws stuff (badly) 2020-08-28 15:06:52 -07:00
geeksville
338445d175 basic init of the Corvus TFT display works 2020-08-28 14:24:22 -07:00
geeksville
79498580b1 If LORA32 battery voltage is super low, assume no battery installed 2020-08-27 14:46:59 -07:00
geeksville
af046e7dbd bug #322 - ttgo lora32 deep sleep
oh - I think I found the problem (probably)!  we were isolating gpio12 (which isn't used on other boards) to save power during sleep.  gpio12 is the button for this board. @thomslik would you mind pulling this commit and seeing if it works better?
2020-08-26 14:00:10 -07:00
geeksville
5c40378805 fix #336 don't send battery status on nodes without batteries 2020-08-25 13:00:55 -07:00
geeksville
780b7e3628 don't show battery status on boards that can't sense that #336 2020-08-25 12:48:47 -07:00
geeksville
f62e6793c5 Fix #333 screens were redrawing when they should not
thanks @drewsed for the clear report - made it easy to repro/fix
due to refactoring/cleanup a couple of weeks back
2020-08-25 12:08:18 -07:00
geeksville
de196810a2 add debugging for SNR values on SX1262 2020-08-25 12:06:36 -07:00
geeksville
7b09fbe049 fix #327 side effect noticed by @smarti2019 2020-08-22 09:06:54 -07:00
geeksville
a90bab5455 this seems bad - this value was not inited if it wasn't in bss 2020-08-21 10:56:54 -07:00
geeksville
ff885ef215 Merge remote-tracking branch 'root/post1' 2020-08-21 10:50:49 -07:00
geeksville
d7a1cef046 fix #327 always factory reset the GPS once 2020-08-21 10:14:03 -07:00
geeksville
ca75dcd64d Add support for SX1262 based TBEAMs, see below for more details.
We probe dynamically for the SX1262 or RF95 based radios on TBEAM1.0
boards now.  If either is present it will be used.
2020-08-20 15:42:36 -07:00
geeksville
9c9347df23 don't reference tft libs on devices that don't have it 2020-08-17 14:06:31 -07:00
geeksville
d91ab5480f begin support for TFT displays 2020-08-17 13:47:05 -07:00
geeksville
3c09c3e520 show NRF52840 debug output via the USB CDC-ACM device 2020-08-17 11:50:50 -07:00
geeksville
781077e799 Turn on buck converter for @BigCorvus board, now radio works 2020-08-17 11:42:19 -07:00
geeksville
1c3eff0ee5 turn on fix #279 for tbeam0.7 and ttgo lora32-1.6 battery levels 2020-08-13 19:55:57 -07:00
geeksville
3de1607cea bug #279 change battery voltage to millivolts 2020-08-13 11:23:27 -07:00
geeksville
6a402b13fa Add battery sensing (mostly) for TBEAM0.7
However, disabled until someone with suitable hardware can test and report
back.

@slavino and @tschundler would you be willing to try it with your boards?

You'll need to uncomment the following line in configuration.h

// #define BATTERY_PIN 35 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage
2020-08-12 17:03:36 -07:00
geeksville
9b25818a50 fix #249: report battery levels even if no GPS lock
@professr I noticed you added a "newStatus" observable to the GPS class.
Do you remember why you didn't remove the old GPS status (which seemed
to be dumber).  Is it just because you didn't want to risk breaking
MeshService?  (I assume) In this change I removed the old Observable
and all seems well (just using newStatus everywhere).
2020-08-12 15:51:57 -07:00
geeksville
55dafcbecb fix #269 see below
/**
 * Generate a short suffix used to disambiguate channels that might have the same "name" entered by the human but different PSKs.
 * The ideas is that the PSK changing should be visible to the user so that they see they probably messed up and that's why they
their nodes
 * aren't talking to each other.
 *
 * This string is of the form "#name-XY".
 *
 * Where X is a letter from A to Z (base26), and formed by xoring all the bytes of the PSK together.
 * Y is not yet used but should eventually indicate 'speed/range' of the link
 *
 * This function will also need to be implemented in GUI apps that talk to the radio.
 *
 * https://github.com/meshtastic/Meshtastic-device/issues/269
 */
const char *getChannelName();
2020-08-12 11:04:03 -07:00
geeksville
178958c165 allow advanced users to specify channel numbers if they wish 2020-08-12 10:46:44 -07:00
geeksville
d7cf7e2eb4 Allow advanced users to set arbitrary spreadfactor/codingrate/bandwidth 2020-08-12 10:42:25 -07:00
Kevin Hester
a7da7cd32e
Merge branch 'post1' into post1 2020-08-10 09:15:49 -07:00
geeksville
047141eb34 make TXEN/RXEN immediately low once changed to be outputs 2020-08-03 11:29:26 -07:00
geeksville
12bf3795ea less logspam when debugging the serial API 2020-08-02 12:55:22 -07:00
Ellie Hussey
7f45184d90
Fixed message text wrapping, compass rose position, and added device ID on status page (#300) 2020-08-01 10:50:06 -07:00
geeksville
d5c46dc114 use max mtusize for speed 2020-07-24 12:39:48 -07:00
geeksville
204f2c1a68 software update service now registered with NimBLE 2020-07-24 11:39:48 -07:00
geeksville
a5b7501a4e nimble add debug output 2020-07-24 10:12:25 -07:00
geeksville
b0e2c81666 nimble software update WIP builds 2020-07-23 15:57:31 -07:00
geeksville
00ca351169 WIP begin changing software update service over to nimble 2020-07-23 13:01:31 -07:00
geeksville
0415a3c369 Clean up nimble files 2020-07-23 08:10:36 -07:00
geeksville
4eb27b637d Nimble sleep now works nicely 2020-07-22 22:18:47 -07:00
geeksville
107b56a346 move bluetooth enable 2020-07-22 21:41:56 -07:00
geeksville
abdc4dfae8 remove old mesh ble service 2020-07-22 21:29:32 -07:00
geeksville
014eea2f56 Nimble sleep almost works 2020-07-22 21:26:32 -07:00
geeksville
9b4ca95660 nimble basically works now. Started long bake for bug #266 2020-07-22 18:00:56 -07:00
geeksville
78ff9a8116 Nimble WIP - make notify work 2020-07-22 16:40:00 -07:00
geeksville
66b147fb31 Nimble WIP fix bluetooth pairing screen 2020-07-22 16:16:28 -07:00
geeksville
c5df1bc885 Nimble WIP - woot! basic device API works now 2020-07-22 15:44:45 -07:00
geeksville
00cf3a768e nimble WIP turn on bonding and security 2020-07-22 13:50:30 -07:00
geeksville
b6a3deb341 nimble WIP - writes kinda work now 2020-07-22 12:08:54 -07:00
geeksville
531f488fe8 WIP nimble ugly but advertise works 2020-07-22 10:46:01 -07:00
geeksville
d674aaaa29 sometimes save config fails on ublox, don't cause a reboot for that 2020-07-22 10:45:38 -07:00
geeksville
7f6dc104f0 nimble WIP - add advertising boilerplate 2020-07-22 09:51:57 -07:00
geeksville
102085808f WIP nimble now builds 2020-07-21 12:42:24 -07:00
geeksville
2645730329 Merge branch 'post1' into nimble
# Conflicts:
#	docs/software/TODO.md
#	docs/software/nrf52-TODO.md
#	platformio.ini
#	src/esp32/MeshBluetoothService.cpp
2020-07-21 11:20:09 -07:00
geeksville
6aa28f55dd WIP stubify to get app building without CONFIG_BLUEDROID (BLE disabled) 2020-07-21 11:16:14 -07:00
geeksville
1e86365167 MITM_BOND supposedly doesn't have the problem mentioned in #266
(and it is good / more secure anyways - the old code was just
based on the example docs)
2020-07-19 15:01:15 -07:00
geeksville
9e10ce487c Merge branch 'master' into post1 2020-07-18 13:32:30 -07:00
geeksville
d9f43d3e2f update protobufs related to https://github.com/meshtastic/Meshtastic-device/issues/269 2020-07-18 09:12:51 -07:00
geeksville
cfedc97cd0 Show NVS flash utilization at boot (for debugging ble things?) 2020-07-18 08:49:42 -07:00
geeksville
859642d2e4 Merge remote-tracking branch 'root/master' into post1
# Conflicts:
#	src/configuration.h
2020-07-17 12:06:57 -07:00
Kevin Hester
96f5069742
Merge branch 'post1' into post1 2020-07-17 11:17:12 -07:00
geeksville
2a6df797ca NRF52 BLE API now works! 2020-07-17 11:12:05 -07:00
geeksville
28aa48c8d2 NRF52 reads now work, but not long reads 2020-07-17 10:40:03 -07:00
geeksville
582f77e4ec NRF52 BLE now works, except for reads having the wrong payload 2020-07-17 10:02:07 -07:00
geeksville
5700cf96d5 redefine printf to use the segger output system (NRF52) 2020-07-17 09:14:23 -07:00
geeksville
769a98f1f4 nrf52 ble - move service in into the scan info 2020-07-17 09:13:47 -07:00
geeksville
3d0c611896 android app can now talk to NRF52, but writes are lost WIP 2020-07-15 17:09:09 -07:00
geeksville
6cb92143ec OOM allocing the BLE stack for adafruit 2020-07-15 13:45:57 -07:00
geeksville
f919eb6a64 Install a hardfault handler on NRF52 2020-07-15 13:29:09 -07:00
geeksville
4147786b12 WIP of adding NRF52 bluetooth API, we take a hardfault in Bluefruit init 2020-07-15 13:10:56 -07:00
Professr
e5fac4b78d UBlox GPS now detects loss of lock 2020-07-14 22:53:36 -07:00
Marlon Spangenberg
44749470a4 fix #272 add support for tlora-v2-1-1.6 2020-07-14 16:16:49 +02:00
geeksville
80e8b4adcc turn off gps debug output for now RAK815 2020-07-13 14:20:49 -07:00
geeksville
98dfecdb79 Add external RF switch management for RF95 (needed for RAK815) 2020-07-13 13:18:32 -07:00
geeksville
ed6b89b3b1 RAK-815 GPS now kinda works (must update associated libs). comms to it
still a bit yucky
2020-07-10 20:34:03 -07:00
geeksville
9d3ca0d0f9 fix esp32 build 2020-07-10 18:46:33 -07:00
geeksville
05a0405709 GPS not yet ready RAK815 WIP 2020-07-10 14:57:33 -07:00
geeksville
efd8b70089 RAK815 GPS WIP 2020-07-10 14:54:32 -07:00
geeksville
e12c057c31 RAK815 lora works 2020-07-10 14:37:01 -07:00
geeksville
0b5b18653a Panic if new ever returns NULL 2020-07-10 13:52:54 -07:00
geeksville
dc54e7331f memory is tight on the nrf52832 board (for now) - so don't allocate too much 2020-07-10 13:52:26 -07:00
geeksville
6fbf6b2986 RAK815 WIP - use 115200 for serial to USB on this board, best it can do 2020-07-10 13:24:00 -07:00
geeksville
feb9992d7d on rak815 use serial port for console 2020-07-10 13:11:29 -07:00
geeksville
fb4ac82d45 fix rf95 renaming 2020-07-10 12:47:10 -07:00
geeksville
63474dd952 Only try for NEMA if we have serial 2020-07-10 12:16:10 -07:00
geeksville
1415f2bed7 WIP add support for i2C GPS 2020-07-10 11:43:14 -07:00
geeksville
b00a936f41 WIP RAK815 support 2020-07-10 11:02:29 -07:00
geeksville
80b14c0a6f add support for adafruit feather nrf52832 - which is close to a RAK815 2020-07-09 21:27:34 -07:00
geeksville
c7290e6ccc don't turn wifi on yet, because my fixes for arduino-esp32 haven't been pushed 2020-07-09 20:11:33 -07:00
geeksville
311d1a56b4 make a bare nrf52840dk build which will work for everyone 2020-07-09 20:05:39 -07:00
geeksville
ed589727d6 Update NRF52 build to work again 2020-07-09 19:57:55 -07:00
geeksville
62c9bad183 WIP TCP API server over wifi 2020-07-07 18:37:42 -07:00
geeksville
616da8228e enable wifi for ESP32 2020-07-07 17:41:35 -07:00
grcasanova
37d9fb2dad just a cleanup of the graphics 2020-07-07 10:46:49 +02:00
grcasanova
9803141fe7 merged with master 2020-07-06 21:53:10 +02:00
grcasanova
92b30ebec6 fixes now compiles 2020-07-06 10:45:55 +02:00
Professr
ccadb6a43d Added sinceLastSeen check to pings generated by node UI 2020-07-05 19:56:57 -07:00
Ellie Hussey
6f7f540c79
Added the option for forced NodeStatus updates on user change or text message, tweaked compass (#256) 2020-07-05 17:03:12 -07:00
grcasanova
d5b8038457 fixes 2020-07-06 00:54:30 +02:00
grcasanova
0a6059ba13 refactored threading-related classes, code broken 2020-07-05 23:11:40 +02:00
Kevin Hester
d5116935b5
Merge branch 'master' into issue#199 2020-07-04 12:13:21 -07:00
Professr
4d04d10135 Merge screen.cpp 2020-07-03 02:58:55 -07:00
Professr
cda423acab Changed GPS DOP display to bars, added satellites display and compass rose 2020-07-03 02:53:56 -07:00
Marcel van der Boom
0b6486256d Merge remote-tracking branch 'upstream/master' into sh1106-support 2020-07-02 17:36:31 +02:00
Slavomir Hustaty
da12b93f82
Update configuration.h
https://user-images.githubusercontent.com/1584034/86362734-08525e00-bc76-11ea-8a34-8579d1fa2965.jpg

related to issue https://github.com/meshtastic/Meshtastic-device/issues/243
2020-07-02 16:54:24 +02:00
geeksville
26c43e7091 minor docs 2020-07-01 10:22:17 -07:00
geeksville
c327fee986 Fix formatting 2020-07-01 10:09:06 -07:00
geeksville
a4f53270e8 fix heltec build (and fix formatting) 2020-07-01 10:08:38 -07:00
Marcel van der Boom
57d968cdcd Merge remote-tracking branch 'upstream/master' into sh1106-support 2020-06-29 09:26:25 +02:00
Professr
f2e6c6de58 Fixed filename case sensitivity 2020-06-28 19:03:39 -07:00
Professr
8fa44c3590 Disabled the display heartbeat pixel for pull request 2020-06-28 18:55:51 -07:00
Professr
f5b7c33d4e Refactored status handlers and merged 2020-06-28 18:17:52 -07:00
geeksville
bd477f0fb2 turn on thread watchdog 2020-06-28 11:12:12 -07:00
Professr
5317895a5e Merged 2020-06-27 21:26:57 -07:00
Professr
542b8b26ce Abstracted statuses, made display event-driven 2020-06-27 21:19:49 -07:00
Marcel van der Boom
aaca854620 Merge remote-tracking branch 'upstream/master' into sh1106-support 2020-06-27 10:18:55 +02:00
geeksville
a595fc4642 Fix #233 - init distance string before drawing it
(and violating my own "no formatting checkins with other changes" rule
to restore proper indentation for this file)
2020-06-26 15:04:22 -07:00
Marcel van der Boom
ac2d3e2ae0 Correct type of setBrightness parameter 2020-06-25 21:16:35 +02:00
Marcel van der Boom
33946af39f SCREEN_WIDTH is visible area already, not addressable area
- sh1106 starts showing from column 2 (the library handles the offsets) so we don't actually need
the different screen width here.
2020-06-25 21:15:12 +02:00
Kevin Hester
8bafd87b76
Merge branch 'master' into pr/228 2020-06-25 11:26:37 -07:00
geeksville
9baaa13897 Add optional external GPS for TTGO Lora V2
per this request: https://meshtastic.discourse.group/t/gps-pin-assignments-for-custom-boards/501/9?u=geeksville
2020-06-25 09:45:21 -07:00
Marlon Spangenberg
ae4ab48ddc fixed int float casting & made fillRect 2px smaller 2020-06-25 18:26:32 +02:00
Marcel van der Boom
a6c6b45576 Take different screen widths into account for brightness bar
width of sh1106 display is 132 for example
2020-06-25 16:20:49 +02:00
geeksville
e7eee0995a fix line endings 2020-06-24 16:14:38 -07:00
geeksville
5687bd09c6 Merge remote-tracking branch 'root/master' into dev 2020-06-24 14:08:36 -07:00
Kevin Hester
dd2ffe5d14
Merge branch 'master' into master 2020-06-24 14:03:56 -07:00
Professr
ec10e784e1 Fix #207 adjust OLED Brightness by attachDuringLongPress
adjust the OLED Brightness by "attachDuringLongPress" from "OneButton". It will cycle trough 0 to 254 as long as the button is pressed
2020-06-24 22:58:20 +02:00
geeksville
649faa1d93 Merge remote-tracking branch 'root/master' into dev 2020-06-24 13:56:48 -07:00
geeksville
996821d18e Merge remote-tracking branch 'root/master' 2020-06-24 13:33:16 -07:00
Zach Whitehead
3df05cd5c1 break out compass display
Show question mark if unknown location
2020-06-24 13:27:02 -07:00
geeksville
9f6e23754c Add a no_save development flag to allow using settings that
we don't want to save to flash.  Use that flag to guard BLE
stress testing code that makes device repeatedly sleep wake
to force numerous BLE resets
2020-06-24 13:10:36 -07:00
Kevin Hester
ee0e31be97
Merge branch 'master' into issue#154 2020-06-24 08:19:03 -07:00
Marlon Spangenberg
68e57dd3a7
added ttgo-lora32-v1 gps pins again :D
Sry I messed up as I closed #213, so here are the pin definitions again.
2020-06-24 12:15:50 +02:00
Ellie Hussey
2504311671
Merge branch 'master' into issue#154 2020-06-23 18:30:09 -07:00
Professr
e3bcb87cf0 Removed prefix chars, fixed issues related to custom font mappings 2020-06-23 18:02:41 -07:00
Professr
2530dc44c7 Changed unconvertable-character symbol to ¿ and made it return only one per unconvertable sequence 2020-06-23 16:46:41 -07:00
Professr
70a8fe30b7 Merge https://github.com/meshtastic/Meshtastic-device into issue#154 2020-06-23 16:45:40 -07:00
Marlon Spangenberg
30e538e5ed
added Bluetooth Name to paring screen
& changed the order
2020-06-24 01:08:23 +02:00
Kevin Hester
210c904604
Merge branch 'master' into issue#162 2020-06-23 15:40:02 -07:00
Kevin Hester
ba3e1abb5e
Merge branch 'master' into dev 2020-06-23 15:37:07 -07:00
geeksville
4e958c9230 make software update keep device from sleeping 2020-06-22 17:10:41 -07:00
Professr
6a857b00db Add cpp clamp function to util.h, switched battery and signal strength percentage calcs to it #197 2020-06-22 14:06:02 -07:00
Professr
6d60a061bc Merge https://github.com/meshtastic/Meshtastic-device into issue#154 2020-06-22 12:27:44 -07:00
Professr
6a09ddef18 Resolved merge conflict 2020-06-22 12:25:59 -07:00
Professr
d48e803b7b Custom utf8 conversion replaces unconvertable chars with ? instead of blanks, #154 2020-06-22 12:03:26 -07:00
Professr
cfcaf28ace Switched user button to OneButton, added alt button GPIO for #162 2020-06-22 11:09:26 -07:00
geeksville
d9e93f3944 Try turning my software update service back on...
Now that I've fixed a couple of nasty esp32-arduino bugs
2020-06-22 10:06:35 -07:00
geeksville
60470211e5 expose battery level via the standard BLE battery service 2020-06-22 10:04:26 -07:00
geeksville
c5851a4a0c Report battery level to other nodes in mesh (and apps).
Also today I'll turn back on the the standard "has a battery" BLE
device profile, so the locally connected radio should show up in the
phone's bluetooth popup of battery levels (similar to how a BLE
headphone battery level appears)

cc @lgoix - using code from @professr

```
meshtastic --info
Connected to radio...
my_node_num: 2883444536
has_gps: true
num_channels: 13
region: "unset"
hw_model: "tbeam"
firmware_version: "unset"
packet_id_bits: 32
current_packet_id: 91018534
node_num_bits: 32
message_timeout_msec: 300000
min_app_version: 172

preferences {
  position_broadcast_secs: 900
  send_owner_interval: 4
  wait_bluetooth_secs: 120
  screen_on_secs: 300
  phone_timeout_secs: 900
  phone_sds_timeout_sec: 7200
  mesh_sds_timeout_secs: 7200
  sds_secs: 31536000
  ls_secs: 3600
}
channel_settings {
  tx_power: 23
  modem_config: Bw125Cr48Sf4096
  psk: "\324\361\273: )\007Y\360\274\377\253\317Ni\277"
  name: "Default"
}

Nodes in mesh:
{'num': 2883444536, 'user': {'id': '!2462abdddf38', 'longName': 'Unknown df38', 'shortName': '?38', 'macaddr': 'JGKr3d84'}, 'position': {'altitude': 96, 'batteryLevel': 100, 'latitudeI': 375210641, 'longitudeI': -1223090398, 'time': 1592843564, 'latitude': 37.5210641, 'longitude': -122.3090398}}
```
2020-06-22 09:36:19 -07:00
geeksville
0c0b2446b7 Merge remote-tracking branch 'root/master' into dev 2020-06-22 09:22:54 -07:00
geeksville
665d35196d never wait on GPS reads 2020-06-22 09:17:15 -07:00
Professr
e45d0c4dcf Offset battery bars by 1 to reflect room between BAT_MILLIVOLTS_EMPTY and MIN_BAT_MILLIVOLTS 2020-06-22 00:10:04 -07:00
Professr
5c9f22bc18 Moved node count graphic slightly to the left, to allow room for triple-digit node counts 2020-06-21 19:44:32 -07:00
Professr
d8287e9cdb Removed DOP to string utility function from GPS.cpp since it's now drawn directly in screen.cpp 2020-06-21 17:43:34 -07:00
Professr
c66e064f42 Replaced battery, node, and gps text with a graphical header. Added hash to the beginning of the channel name. 2020-06-21 17:28:37 -07:00
Professr
364fc84aaa Removed unnecessary include, ready for consideration for issue #196 2020-06-21 16:31:09 -07:00
Professr
fe4f86bc84 Added battery charge percent estimation 2020-06-21 16:21:34 -07:00
geeksville
982b2e33ff Merge remote-tracking branch 'root/master' into dev 2020-06-21 14:11:53 -07:00
geeksville
8190098bb8 experiment with wifi connections for nodes 2020-06-21 14:11:38 -07:00
Professr
da8a048dce Added GPS DOP support (#199) 2020-06-20 18:59:41 -07:00
geeksville
b4de495154 show app version on boot screen 2020-06-20 17:07:17 -07:00
geeksville
6566c4f15e don't send bogus latitudes 2020-06-18 14:09:13 -07:00
geeksville
c25d6e974f sometimes first read might return 0 for EITHER lat or lon 2020-06-18 11:22:38 -07:00
geeksville
cd903dceb9 Fix #187, Ublox GPS fixes, see below:
This was a good one. Two problems
1) We've apparently always been using hte sparkfun API the wrong way, but
but we mostly got lucky.
2) Changing to use the API correctly (asyncronously) exposed a bug in
the library - fixed in a seperate commit
2020-06-18 11:17:01 -07:00
geeksville
3005373760 fix wording of GPS screen messages to be less confusing. Now:
No GPS
No Sats
GPS OK
2020-06-17 17:26:37 -07:00
geeksville
7678540a93 For #187 was not reporting GPS status on new API 2020-06-17 17:25:55 -07:00
geeksville
463666aec5 oops - can't call DEBUG_MSG this early on ESP32 2020-06-17 16:04:37 -07:00
geeksville
03f019dea2 memory size debugging 2020-06-16 19:55:14 -07:00
geeksville
a47524b762 cubecell wip 2020-06-16 17:13:26 -07:00
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