Compare commits

...

1035 Commits

Author SHA1 Message Date
Jm Casler
2fe124eb17 Bump to 1.3.3 2022-03-02 20:50:09 -08:00
Jm Casler
a450aac3b5 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device 2022-03-02 20:42:06 -08:00
Jm Casler
958f20da1a Update to 1.3.2 2022-03-02 20:42:05 -08:00
Jm Casler
ef4c01f4ea Merge pull request #1271 from mc-hamster/router
Update PERIODS_TO_LOG
2022-03-02 20:39:10 -08:00
Jm Casler
97c76cde3c Merge branch 'master' into router 2022-03-02 20:39:01 -08:00
Jm Casler
2ab0548dda Merge branch 'router' of https://github.com/mc-hamster/Meshtastic-device into router 2022-03-02 20:38:15 -08:00
Jm Casler
75bf2cc9c6 Update PERIODS_TO_LOG 2022-03-02 20:38:14 -08:00
Jm Casler
ee533b2d5c Bumping to 1.3.1 2022-03-02 19:02:08 -08:00
Jm Casler
52960f5fa2 Merge pull request #1269 from mc-hamster/router
Fix tophone build error
2022-03-02 18:55:43 -08:00
Jm Casler
5c281154fd Merge branch 'meshtastic:master' into router 2022-03-02 18:55:26 -08:00
Jm Casler
2c7b3acbb9 Fix tophone build error 2022-03-02 18:55:11 -08:00
Jm Casler
cf928fca93 Merge pull request #1268 from mc-hamster/router
Added router to mynodeinfo
2022-03-02 18:52:52 -08:00
Jm Casler
8eaaf842ab Merge branch 'meshtastic:master' into router 2022-03-02 18:52:25 -08:00
Jm Casler
09edd7f89b updating proto submodule to latest 2022-03-02 18:49:46 -08:00
Ben Meadors
556fc6210d Moved power fsm thread out of main (#1265) 2022-03-01 12:40:21 -06:00
Jm Casler
4d8c0c11dc Added router to mynodeinfo 2022-02-28 22:44:51 -08:00
Jm Casler
950b54aaba Merge pull request #1263 from mc-hamster/router
Add rssi to printPacket
2022-02-28 22:06:01 -08:00
Jm Casler
4b87a82eb3 Merge branch 'meshtastic:master' into router 2022-02-28 22:05:20 -08:00
Jm Casler
2fa8f45d74 updating proto submodule to latest 2022-02-28 22:03:39 -08:00
Jm Casler
4209fc8b2c updating proto submodule to latest 2022-02-28 19:35:59 -08:00
Jm Casler
6d4d2bb6fa Merge branch 'router' of https://github.com/mc-hamster/Meshtastic-device into router 2022-02-28 17:47:11 -08:00
Jm Casler
32ef354c22 Add rssi to printPacket 2022-02-28 17:47:09 -08:00
Jm Casler
a0395c1027 Merge pull request #1261 from mc-hamster/router
Add rssi meta data to the rf95 interface
2022-02-28 17:09:00 -08:00
Jm Casler
1f43132b52 Merge branch 'master' into router 2022-02-28 17:08:43 -08:00
Jm Casler
ac8ba706f0 Add rssi meta data to the rf95 interface 2022-02-28 17:07:31 -08:00
Ben Meadors
ca4c1c9d7c Moved button thread to its own file (#1260)
* Moved button thread to its own file

* Move some debug code blocks into their own files

* Shutdown refactoring

* Removed GENIEBLOCKS
2022-02-28 15:19:38 -06:00
Jm Casler
7b8746d596 Merge pull request #1259 from puzzled-pancake/master
Added comments on ANZ added 1w limit
2022-02-27 14:48:12 -08:00
puzzled-pancake
91b0fcb257 Added comments on ANZ added 1w limit
Added comments 
https://iotalliance.org.nz/wp-content/uploads/sites/4/2019/05/IoT-Spectrum-in-NZ-Briefing-Paper.pdf
https://www.iot.org.au/wp/wp-content/uploads/2016/12/IoTSpectrumFactSheet.pdf

As noted 1w limit on both
2022-02-28 10:39:48 +13:00
Jm Casler
768c26bb1b Merge pull request #1258 from mc-hamster/router
Add role to generated proto
2022-02-27 12:56:49 -08:00
Jm Casler
e5e13d78c3 Add role to generated proto 2022-02-27 12:56:18 -08:00
Jm Casler
a2eb148c50 Revert "Merge pull request #1257 from mc-hamster/router"
This reverts commit 33ed9476f8, reversing
changes made to 10fefe7c7b.
2022-02-27 12:50:50 -08:00
Jm Casler
33ed9476f8 Merge pull request #1257 from mc-hamster/router
Remove incomplete ReliableRouter implementation
2022-02-27 12:46:59 -08:00
Jm Casler
92d5dedc63 Remove incomplete ReliableRouter implementation 2022-02-27 12:46:23 -08:00
Jm Casler
10fefe7c7b updating proto submodule to latest 2022-02-27 10:01:40 -08:00
Jm Casler
92ffbca339 updating proto submodule to latest 2022-02-27 09:57:09 -08:00
Jm Casler
7c868c78cc updating proto submodule to latest 2022-02-27 09:52:31 -08:00
Jm Casler
3f2baeb56e Merge pull request #1256 from mc-hamster/router
Rename Plugin to Module in ui related areas.
2022-02-27 02:26:41 -08:00
Jm Casler
ebba628736 Rename Plugin to Module in ui related areas. 2022-02-27 02:26:22 -08:00
Jm Casler
2a02b4594f Merge pull request #1255 from mc-hamster/router
more rename plugin to module
2022-02-27 02:21:51 -08:00
Jm Casler
1e689b86b5 Merge branch 'router' of https://github.com/mc-hamster/Meshtastic-device into router 2022-02-27 02:21:26 -08:00
Jm Casler
e53abbfb2b more rename plugin to module 2022-02-27 02:21:02 -08:00
Jm Casler
6f086bd3ba Merge pull request #1254 from mc-hamster/router
More renaming plugin to module
2022-02-27 01:49:57 -08:00
Jm Casler
3c5e49d8f4 More renaming plugin to module 2022-02-27 01:49:24 -08:00
Jm Casler
7a5ae40289 Merge pull request #1253 from mc-hamster/router
Rename plugins in /esp32
2022-02-27 01:27:39 -08:00
Jm Casler
a83cfffd3a Rename plugins in /esp32 2022-02-27 01:27:17 -08:00
Jm Casler
031b3665f8 Merge pull request #1252 from mc-hamster/router
CannedMessages from plugin to module
2022-02-27 01:21:17 -08:00
Jm Casler
206ae4e2b8 Merge branch 'router' of https://github.com/mc-hamster/Meshtastic-device into router 2022-02-27 01:20:54 -08:00
Jm Casler
24556f2803 CannedMessages from plugin to module 2022-02-27 01:20:23 -08:00
Jm Casler
ffa7a36a03 Merge pull request #1251 from mc-hamster/router
Update canned messages from plugin to module
2022-02-27 01:10:07 -08:00
Jm Casler
ba7644e376 Update canned messages from plugin to module 2022-02-27 01:09:36 -08:00
Jm Casler
ebc9fef222 updating proto submodule to latest 2022-02-27 01:00:35 -08:00
Jm Casler
dee577cb5c Merge pull request #1250 from mc-hamster/router
Update _plugin_ in radioconfig to _module_
2022-02-27 00:52:58 -08:00
Jm Casler
ed5dea9f85 Update _plugin_ in radioconfig to _module_ 2022-02-27 00:52:25 -08:00
Jm Casler
eeacb280d1 updating proto submodule to latest 2022-02-27 00:48:54 -08:00
Jm Casler
bc27dbde98 updating proto submodule to latest 2022-02-27 00:38:07 -08:00
Jm Casler
9b1bf7787c Merge pull request #1249 from mc-hamster/router
"plugin(s)" renamed to "module(s)" in comments and debug
2022-02-27 00:30:31 -08:00
Jm Casler
71bf9de638 Merge branch 'router' of https://github.com/mc-hamster/Meshtastic-device into router 2022-02-27 00:29:15 -08:00
Jm Casler
3a04a0ee7a "plugin(s)" renamed to "module(s)" in comments and debug 2022-02-27 00:29:05 -08:00
Jm Casler
e218740488 Merge pull request #1248 from mc-hamster/router
mv plugins/ to modules/
2022-02-27 00:18:53 -08:00
Jm Casler
86e767eec2 Update filenames from plugins to modules 2022-02-27 00:18:35 -08:00
Jm Casler
d57704b3bd Merge branch 'meshtastic:master' into router 2022-02-26 23:56:51 -08:00
Jm Casler
218a208ab7 mv plugins/ to modules/ 2022-02-26 23:56:26 -08:00
Jm Casler
c5c12bcc6b Merge pull request #1244 from puzzled-pancake/master
Added NZ865 Frequency
2022-02-26 21:36:58 -08:00
Jm Casler
0e686e4645 Merge pull request #1247 from mc-hamster/router
regen protos for NZ regioncode
2022-02-26 21:33:58 -08:00
Jm Casler
9050fe7f90 regen protos for NZ regioncode 2022-02-26 21:32:52 -08:00
Jm Casler
c511fa2fe6 updating proto submodule to latest 2022-02-26 21:28:05 -08:00
puzzled-pancake
9b44d2e999 Update RadioInterface.cpp 2022-02-27 18:12:27 +13:00
Jm Casler
01a86133ea Merge branch 'master' into master 2022-02-26 21:07:44 -08:00
Jm Casler
338c30fe9a Merge pull request #1245 from mc-hamster/router
Rename environmental_monitoring to telemetry
2022-02-26 21:07:28 -08:00
Jm Casler
ac43a1b182 Rename environmental measurement to telemetry 2022-02-26 20:52:22 -08:00
Jm Casler
5bff62e428 Delete environmental_measurement.pb.h 2022-02-26 20:31:16 -08:00
Jm Casler
a0f80c1a2a Delete environmental_measurement.pb.c 2022-02-26 20:31:05 -08:00
puzzled-pancake
f9bcddafef Update RadioInterface.cpp 2022-02-27 17:30:11 +13:00
puzzled-pancake
a25beff241 Update RadioInterface.cpp 2022-02-27 17:29:25 +13:00
Jm Casler
529707489a Rename EnvironmentalMeasurementPlugin.h to Telemetry.h 2022-02-26 20:19:14 -08:00
Jm Casler
ceccbd3ef2 Rename Telemetry to Telemetry.cpp 2022-02-26 20:18:50 -08:00
Jm Casler
59ce0c7d09 Rename EnvironmentalMeasurementPlugin.cpp to Telemetry 2022-02-26 20:18:32 -08:00
puzzled-pancake
f2a31cc678 Update RadioInterface.cpp
Add NZ 866
2022-02-27 17:01:25 +13:00
Ben Meadors
c97541d4fc Turns out this workflow is needed on the target branch 2022-02-25 17:25:43 -06:00
Ben Meadors
fc54f2f63d Temporary 1.2 legacy PR checks (#1243)
* Temporary 1.2 legacy PR checks
2022-02-25 16:13:28 -06:00
Andre Kirchhoff
c3cee236bd add m-flasher to README (#1241) 2022-02-25 08:22:59 -06:00
Mark Trevor Birss
c5a8cc6d3f Add 1.54, 2.9 and 4.2 inch e-Paper support for RAK4361 boards - with partial updates for faster screen transitions (#1240)
* Update platformio.ini
2022-02-25 07:03:52 -06:00
Jm Casler
2e402a726b Merge pull request #1238 from mc-hamster/group-chat
Remove chat groups
2022-02-24 20:08:51 -08:00
Jm Casler
ca8598f8b7 Merge branch 'meshtastic:master' into group-chat 2022-02-24 20:05:46 -08:00
Jm Casler
b6d7eadea3 Remove chat groups 2022-02-24 20:05:27 -08:00
Jm Casler
cd9def6850 Add my test ssid 2022-02-22 19:01:24 -08:00
Jm Casler
060eac7ab9 Merge pull request #1235 from mc-hamster/group-chat
remove test code
2022-02-22 17:18:19 -08:00
Jm Casler
d95d874258 Merge branch 'meshtastic:master' into group-chat 2022-02-22 17:17:56 -08:00
Jm Casler
e52f94820e remove test code 2022-02-22 17:16:45 -08:00
Jm Casler
31f4ec5d6c updating proto submodule to latest 2022-02-22 17:10:01 -08:00
Balázs Kelemen
bb15ed903d Cleanup docker readme. (#1233)
Cleanup docker readme.
2022-02-22 06:18:54 -06:00
Jm Casler
ef2bc2b9fc Merge pull request #1232 from prampec/extend_canned_message_length
Canned message - Extend messages length
2022-02-21 22:10:40 -08:00
Balazs Kelemen
972c2bb329 Revert "Canned message - Fixes"
This reverts commit 54ff8f2db3.
2022-02-22 07:08:44 +01:00
Balazs Kelemen
54ff8f2db3 Canned message - Fixes 2022-02-21 23:53:56 +01:00
Balazs Kelemen
a36889abba Canned message - Extend messages length 2022-02-21 22:04:58 +01:00
Jm Casler
eb66ba2510 Merge pull request #1230 from mc-hamster/group-chat
Add debug output of the group names.
2022-02-20 10:48:42 -08:00
Jm Casler
1e6e3805ad Add debug output of the group names. 2022-02-20 10:47:57 -08:00
Jm Casler
0133186f70 Merge pull request #1227 from mc-hamster/group-chat
Add STATE_SEND_GROUPS to PhoneAPI::available
2022-02-20 08:23:34 -08:00
Jm Casler
b15ef2749f Add STATE_SEND_GROUPS to PhoneAPI::available 2022-02-20 08:23:05 -08:00
Jm Casler
7b2042f391 Merge pull request #1226 from mc-hamster/group-chat
Fix webserver crash with new filesystem & Add groups to payloadVariant
2022-02-20 02:45:09 -08:00
Jm Casler
3d4fc63ecc Fix webserver crash with new filesystem 2022-02-20 02:44:13 -08:00
Jm Casler
3fdd425634 Add groups to payloadVariant 2022-02-20 01:33:49 -08:00
Jm Casler
d416f28341 updating proto submodule to latest 2022-02-20 01:32:50 -08:00
Jm Casler
06064d92cd Merge pull request #1225 from mc-hamster/group-chat
Add ourGroupInfo to NodeDB
2022-02-20 00:05:13 -08:00
Jm Casler
837c0e3717 Merge branch 'meshtastic:master' into group-chat 2022-02-20 00:04:46 -08:00
Jm Casler
389a8f1401 Add ourGroupInfo to NodeDB 2022-02-20 00:04:32 -08:00
Jm Casler
d32989cd7e Merge pull request #1224 from mc-hamster/group-chat
Plumbing for the GroupPlugin
2022-02-19 23:50:39 -08:00
Jm Casler
e969e83037 Merge branch 'meshtastic:master' into group-chat 2022-02-19 23:50:14 -08:00
Jm Casler
57d824cf5d updating proto submodule to latest 2022-02-19 23:48:21 -08:00
Jm Casler
e34190b497 Plumbing for the GroupPlugin 2022-02-19 23:43:32 -08:00
Jm Casler
701668804a updating proto submodule to latest 2022-02-19 23:17:48 -08:00
Jm Casler
a7aa82e732 updating proto submodule to latest 2022-02-19 23:10:51 -08:00
Jm Casler
1075b95f79 updating proto submodule to latest 2022-02-19 22:55:36 -08:00
Ben Meadors
29e70a80c6 Add rak eink variant (#1221) 2022-02-19 07:32:15 -06:00
Mark Trevor Birss
8303500b74 Add RAK4361_5005_RAK14000 board variant and enable e-Paper module (#1199)
* Create platformio.ini

* Create variant.cpp

* Create variant.h

* Update EInkDisplay2.cpp

* Update build-all.sh
2022-02-19 07:30:30 -06:00
Thomas Göttgens
e7e001c159 Install littlefs-python during pio run (#1220)
Install only if it is missing from the ENV. Caveat: this python module is essentially lib binding and needs Cython and a working compiler as well. this MAY or MAY NOT work.
2022-02-18 11:42:24 -06:00
Thomas Göttgens
54f062e94d Add littlefs dependancy to release flow as well (#1217) 2022-02-16 07:22:40 -06:00
Sacha Weatherstone
717491752b Merge branch 'master' of github.com:meshtastic/meshtastic-device 2022-02-16 17:52:37 +11:00
Sacha Weatherstone
9cdc6ae860 Add bug report issue template 2022-02-16 17:52:14 +11:00
Jm Casler
4941fd30f7 Merge pull request #1216 from mc-hamster/Radio&Band-Refactor
Fix bug in frequency formulas
2022-02-15 18:49:45 -08:00
Jm Casler
5ddd280f92 Merge branch 'master' into Radio&Band-Refactor 2022-02-15 18:49:38 -08:00
Jm Casler
3a621ef262 Fix bug in frequency formulas 2022-02-15 18:48:54 -08:00
Sacha Weatherstone
0c946609d5 Remove old CI script 2022-02-16 11:39:29 +11:00
Jm Casler
554729dab2 Merge pull request #1214 from mc-hamster/Radio&Band-Refactor
Fix typo in default channel (Thanks Andre!)
2022-02-15 07:37:21 -08:00
Jm Casler
ae6d0686bd Merge branch 'Radio&Band-Refactor' of https://github.com/mc-hamster/Meshtastic-device into Radio&Band-Refactor 2022-02-15 07:36:29 -08:00
Jm Casler
57bbd912b1 Fix typo in default channel (Thanks Andre!) 2022-02-15 07:36:28 -08:00
Jm Casler
6befed1176 Merge pull request #1213 from mc-hamster/Radio&Band-Refactor
Remove hw_model_deprecated
2022-02-14 20:38:20 -08:00
Jm Casler
1ba7f009dd Remove hw_model_deprecated 2022-02-14 20:37:44 -08:00
Jm Casler
eae8720068 updating proto submodule to latest 2022-02-14 20:35:44 -08:00
Jm Casler
18e95e6bb4 updating proto submodule to latest 2022-02-14 20:08:29 -08:00
Jm Casler
01e86512aa Merge pull request #1212 from mc-hamster/Radio&Band-Refactor
Remove old style of region code fix
2022-02-14 20:01:14 -08:00
Jm Casler
9fda734743 Merge branch 'Radio&Band-Refactor' of https://github.com/mc-hamster/Meshtastic-device into Radio&Band-Refactor 2022-02-14 20:00:52 -08:00
Jm Casler
04d16b82ba Remove old style of region code fix 2022-02-14 20:00:46 -08:00
Jm Casler
4206982572 Merge pull request #1211 from mc-hamster/Radio&Band-Refactor
Remove legacyRadio and Legacy Preferences
2022-02-14 19:59:39 -08:00
Jm Casler
b99d793e23 Remove legacyRadio and Legacy Preferences 2022-02-14 19:58:54 -08:00
Jm Casler
71d5e6c478 updating proto submodule to latest 2022-02-14 19:55:19 -08:00
Jm Casler
111d7ecd5e Merge pull request #1210 from mc-hamster/Radio&Band-Refactor
Remove myNodeInfo.num_bands. It's not used by android.
2022-02-14 19:45:53 -08:00
Jm Casler
1de086819c Remove myNodeInfo.num_bands. It's not used by android. 2022-02-14 19:45:26 -08:00
Jm Casler
af1804ea62 updating proto submodule to latest 2022-02-14 19:42:03 -08:00
Jm Casler
fe87682d69 Merge pull request #1209 from mc-hamster/Radio&Band-Refactor
New bands, new band plans and new channel configurations
2022-02-14 19:33:03 -08:00
Jm Casler
96b5537217 New bands, new band plans and new channel configurations 2022-02-14 19:32:31 -08:00
Jm Casler
449926cff9 Merge pull request #1208 from mc-hamster/Radio&Band-Refactor
Change the default pre shared key to break backward compatibility of default channel
2022-02-14 18:06:47 -08:00
Jm Casler
d4e5a3c67c Merge branch 'Radio&Band-Refactor' of https://github.com/mc-hamster/Meshtastic-device into Radio&Band-Refactor 2022-02-14 18:06:12 -08:00
Jm Casler
2428ca09fc Change the default pre shared key to break backward compatibility of default channel 2022-02-14 18:06:05 -08:00
Jm Casler
346712fbf3 Merge pull request #1207 from mc-hamster/Radio&Band-Refactor
Updated modem configuration
2022-02-14 18:01:58 -08:00
Jm Casler
a1ad1e7973 Updated modem configuration 2022-02-14 18:01:34 -08:00
Jm Casler
806a61251b updating proto submodule to latest 2022-02-14 17:59:43 -08:00
Jm Casler
34eee247e9 Merge pull request #1206 from mc-hamster/Radio&Band-Refactor
Rename EU865 to EU868 & Add TH and IN
2022-02-14 17:58:14 -08:00
Jm Casler
ee95594f74 Rename EU865 to EU868 & Add TH and IN 2022-02-14 17:01:13 -08:00
Jm Casler
7f3ad672b8 updating proto submodule to latest 2022-02-14 16:59:24 -08:00
Jm Casler
7cda49aba5 updating proto submodule to latest 2022-02-14 16:56:57 -08:00
Thomas Göttgens
8e9b852faa Littlefs rebased to Master (#1205)
* Littlefs
2022-02-14 11:45:29 -06:00
Ben Meadors
6b4907e841 Added after-checks 2022-02-14 11:27:33 -06:00
Ben Meadors
1808e9b3d8 Pick up littlefs instead of spiffs bin 2022-02-14 10:39:31 -06:00
Ben Meadors
1dd53eeaf5 Set max parallel workers on jobs to favor esp32 2022-02-14 10:36:16 -06:00
Ben Meadors
892d9a34c7 Add littlefs-python package for ESP32 target 2022-02-14 10:21:28 -06:00
Ben Meadors
ab96579904 Github action runs on job matrix now for parallel operation (both build and check) (#1202)
* Build matrix for parallel jobs
2022-02-13 14:10:59 -06:00
Ben Meadors
3f83acdbef Ignore version.properties on ci-build 2022-02-10 21:13:36 -06:00
Ben Meadors
9db7c62a49 1.2.55 release 2022-02-10 21:02:43 -06:00
Ben Meadors
d79dc631f1 Fixed RAK11200 configuration and added to build-all (#1192)
* Fixed RAK11200 configuration and added to build-all 

Co-authored-by: Mike Kinney <mike.kinney@gmail.com>
2022-02-10 20:21:36 -06:00
Ben Meadors
7ea6babb7f Add workflow_dispatch back 2022-02-10 16:23:34 -06:00
Garth Vander Houwen
0b4b901504 Merge pull request #1196 from meshtastic/mkinney-patch-1
Update main.yml
2022-02-10 14:09:49 -08:00
mkinney
cc7b5cf136 Update main.yml 2022-02-10 14:06:09 -08:00
Clemens H / OE1RFC / datacop
e3df4fe4b4 fix: log error if node_db is full instead of firmware crash (#1191) 2022-02-10 11:44:58 -06:00
Jm Casler
288f2be8ea bump to 1.2.54 2022-02-09 16:46:26 -08:00
Ben Meadors
c867af8522 Adjusted adc_multiplier for heltec2.1 and added adc_mulitplier_override (#1183) 2022-02-09 13:37:48 -06:00
Ric Letson
856f2f9589 MCP9808 sensor implementation (#1188)
* MCP9808 Sensor Implementation Initial Test
2022-02-08 11:03:34 -06:00
Ben Meadors
e649bc84e1 Fix PR artifact permissions (#1190) 2022-02-08 10:29:57 -06:00
Ben Meadors
bbcd59ec7b Specify branch for PR artifact storage (#1187) 2022-02-07 12:44:10 -06:00
Ben Meadors
e11fd593ae Update github action to flatten firmware zip and attach artifacts (#1186) 2022-02-07 11:15:03 -06:00
Thomas Göttgens
868af9dd6b Get rid of log clutter during oled screen animation (#1182) 2022-02-03 07:22:46 -06:00
Garth Vander Houwen
10800a6914 Merge pull request #1180 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-02-02 19:59:41 -08:00
thebentern
e567fe7322 [create-pull-request] automated change 2022-02-03 03:21:12 +00:00
Ben Meadors
365120e9c2 Added RAK11200 board variant support (#1177)
* Added RAK11200 board variant support
2022-02-02 12:41:07 -06:00
Ben Meadors
b21b7de04b Clear bluetooth bonds on multi-press and factory_reset (#1176)
* Clear bluetooth bonds on multi-press and factory_reset
2022-02-01 18:32:26 -06:00
github-actions[bot]
dd31a829fb Update and regen protobufs (#1175)
* Update and regen protobufs
2022-02-01 09:41:56 -06:00
Thomas Göttgens
9a505c27fa add missing Config definition for PRIVATE_HW (#1174) 2022-02-01 08:08:03 -06:00
Ben Meadors
ed9cd7b03d Update nimble (#1173) 2022-01-31 20:56:31 -06:00
Ben Meadors
66413d8b7f Refactored sensors (#1172)
* Refactored sensors
2022-01-31 20:24:32 -06:00
Jm Casler
e4fe2c159a Merge pull request #1165 from joshpirihi/master
Allow publishing of decrypted packets to MQTT
2022-01-28 21:10:00 -08:00
Jm Casler
f5e0718052 Merge branch 'master' into master 2022-01-28 20:13:46 -08:00
Jm Casler
64ff48c4a5 Merge pull request #1163 from caveman99/caveman99-patch-1
Fixed typo
2022-01-28 13:05:52 -08:00
Jm Casler
50969c4e42 Merge branch 'master' into caveman99-patch-1 2022-01-28 13:05:45 -08:00
Jm Casler
5288f1846a Merge pull request #1166 from rnauber/fix_nullptrderef
Prevent null pointer dereference in setup() if radio is not available.
2022-01-28 13:05:25 -08:00
Jm Casler
c545155b03 Merge branch 'master' into fix_nullptrderef 2022-01-28 13:05:11 -08:00
Vladislav Osmanov
a4e9fca80c DIY versions cleaning - moved to the one folder (#1167) 2022-01-28 14:58:27 -06:00
Richard Nauber
3611293a98 Prevent null pointer dereference in setup() if radio is not available. 2022-01-28 21:02:02 +01:00
joshpirihi
dc7f376778 Correct a comment 2022-01-29 06:40:17 +13:00
Joshua Pirihi
ff2cad9cac Allow publishing of decrypted mqtt packets 2022-01-29 06:06:49 +13:00
Joshua Pirihi
b781fb613c Allow publishing of decrypted mqtt packets 2022-01-29 06:03:48 +13:00
Thomas Göttgens
0a1125d7e4 Merge branch 'master' into caveman99-patch-1 2022-01-28 08:44:46 +01:00
Thomas Göttgens
ed2de3b885 Fixed typo 2022-01-28 08:43:48 +01:00
Jm Casler
19c1f9fa59 Bump to 1.2.53 2022-01-27 18:41:29 -08:00
Jm Casler
266d6ad205 Proto regen for .53 2022-01-27 17:52:03 -08:00
Jm Casler
66cd824437 Merge pull request #1162 from mkinney/remote_hw
gpio read and write work as expected
2022-01-27 17:49:23 -08:00
mkinney
e2db4f6927 Merge branch 'master' into remote_hw 2022-01-27 17:40:29 -08:00
Jm Casler
56fb141ed0 updating proto submodule to latest 2022-01-27 17:40:00 -08:00
Mike Kinney
e8e209be25 gpio read and write work as expected 2022-01-28 00:11:16 +00:00
mkinney
c278a0e299 Merge pull request #1149 from caveman99/caveman99-patch-1
accept one or more environment definitions
2022-01-27 11:39:43 -08:00
mkinney
fbc25c3a13 Merge branch 'master' into caveman99-patch-1 2022-01-27 11:09:57 -08:00
mkinney
b7f04f4c91 Merge pull request #1159 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-01-27 11:09:46 -08:00
mkinney
d5377a0f19 Merge branch 'master' into create-pull-request/patch 2022-01-27 10:40:01 -08:00
Jm Casler
dafc1092aa Merge pull request #1158 from meshtastic/thebentern-patch-2
Ignore markdown and yml for continuous integration
2022-01-27 10:37:09 -08:00
Jm Casler
477b666998 Merge branch 'master' into thebentern-patch-2 2022-01-27 10:37:04 -08:00
Jm Casler
dbcd720391 Merge pull request #1154 from osmanovv/patch-1
Fix MISO/MOSI pins for DIY v1.1
2022-01-27 10:36:38 -08:00
Ben Meadors
59c2bcd978 Merge branch 'master' into thebentern-patch-2 2022-01-27 12:33:55 -06:00
mkinney
aea6675e64 [create-pull-request] automated change 2022-01-27 18:32:55 +00:00
mkinney
8bff696bef Merge branch 'master' into patch-1 2022-01-27 10:28:21 -08:00
mkinney
da0ec09bf4 Merge pull request #1157 from meshtastic/thebentern-patch-1
Create pr instead of commit
2022-01-27 10:28:03 -08:00
Ben Meadors
2c99020037 Ignore markdown and yml for continuous integration 2022-01-27 11:59:08 -06:00
Ben Meadors
14419cbd02 Create pr instead of commit 2022-01-27 11:54:32 -06:00
Ben Meadors
1bfa6839e2 Use correct path to mesh (#1155) 2022-01-27 08:57:49 -06:00
Ben Meadors
a61676504f Attempt to only update proto (#1153) 2022-01-27 07:51:51 -06:00
Vladislav Osmanov
f4d3de086a Fix MISO/MOSI pins for DIY v1.1 2022-01-27 16:49:55 +03:00
Thomas Göttgens
af249da1a3 accept one or more environment definitions
This is a non breaking change. Up till now you could either specify ONE board to check or run with default settings hich would check a sensible set. With this change you can provide a space-separated list of boards to check, this facilitates parallel CI executions better.
2022-01-27 09:18:31 +01:00
Jm Casler
7613c7bf83 Merge pull request #1148 from mc-hamster/master
position plugin - only send if channel utilization is <50 percent
2022-01-26 22:40:52 -08:00
Jm Casler
e4608e0a10 position plugin - only send if channel utilization is <50 percent 2022-01-26 22:32:33 -08:00
Jm Casler
d26549c7c2 Merge pull request #1147 from mc-hamster/master
rangeTestPlugin - only send if channelUtilization is less than 25%
2022-01-26 22:20:35 -08:00
Jm Casler
697d52b9bd rangeTestPlugin - only send if channelUtilization is less than 25% 2022-01-26 22:20:13 -08:00
Ben Meadors
7a9450b250 Only update protos (#1145) 2022-01-26 16:17:30 -06:00
Jm Casler
6d372743f5 updating proto submodule to latest 2022-01-26 13:35:46 -08:00
mkinney
c2b309195d Merge pull request #1144 from meshtastic/update-protos-action
Update protobufs and regenerate classes action
2022-01-26 13:24:58 -08:00
Ben Meadors
3c7670186a Update protobufs and regenerate classes 2022-01-26 14:25:30 -06:00
Ben Meadors
b51be320dd BME680 support (#1142) 2022-01-25 14:22:48 -06:00
Thomas Göttgens
409ad9c2c3 Split platformio.ini into one file for each board, only leaving platform definitions and a handful of stale (?) boards around.. (#1141) 2022-01-25 08:56:16 -06:00
mkinney
eaa5252cdb Merge pull request #1138 from mkinney/fix_some_cpp_warnings
Fix some cpp warnings
2022-01-24 15:34:58 -08:00
Mike Kinney
3d718f45d5 fail the build if we have any cppcheck warnings 2022-01-24 21:35:24 +00:00
mkinney
a8dab94087 Merge branch 'master' into fix_some_cpp_warnings 2022-01-24 13:27:33 -08:00
mkinney
5a348da0e9 Merge pull request #1139 from caveman99/master
use the new version of Screen lib when building
2022-01-24 13:27:18 -08:00
Thomas Göttgens
115b835b83 Merge branch 'master' into master 2022-01-24 21:57:54 +01:00
Thomas Göttgens
9df42799ff Tryfix: Local replica for build problem (#1)
* Tryfix: Local replica for build problem

* Update platformio.ini

* use the real repo again
2022-01-24 21:56:31 +01:00
mkinney
e1d3c01199 Merge branch 'master' into fix_some_cpp_warnings 2022-01-24 12:52:21 -08:00
mkinney
bdcc0f252b Merge pull request #1140 from costonisp/master
added a new variant heltec_2.1
2022-01-24 12:44:49 -08:00
Mike Kinney
437aa1e9af make check a different job on ci 2022-01-24 20:04:31 +00:00
Mike Kinney
6883bc7afc fix more warnings; add to CI; suppress some warnings 2022-01-24 19:58:07 +00:00
co sto
a2eef895bd Create variant.h 2022-01-24 20:40:28 +01:00
co sto
64671c8ce7 Delete variants/heltev_v2.1 directory 2022-01-24 20:38:51 +01:00
Thomas Göttgens
252a27174e New checkout for library 2022-01-24 20:28:16 +01:00
Mike Kinney
7c362af3de more warning fixes 2022-01-24 18:39:17 +00:00
co sto
c6b851a2e6 Update variant.h 2022-01-24 19:01:23 +01:00
co sto
ec4346aba3 Update variant.h 2022-01-24 18:59:09 +01:00
co sto
791186a264 Create variant.h 2022-01-24 18:58:32 +01:00
co sto
ab947f06aa Delete .heltec_v2.1 2022-01-24 18:55:51 +01:00
co sto
cfa0ceb604 Create .heltec_v2.1 2022-01-24 18:55:26 +01:00
co sto
c7686ad57e Delete variant.h 2022-01-24 18:46:35 +01:00
co sto
8732b7cb4d Add files via upload 2022-01-24 18:45:51 +01:00
co sto
fe9dcbb316 Delete heltec_v2.1 2022-01-24 18:40:15 +01:00
co sto
38d1a381e6 Create heltec_v2.1 2022-01-24 18:35:25 +01:00
co sto
0b2f1d5675 Update platformio.ini 2022-01-24 18:33:31 +01:00
Mike Kinney
caaa235c5d more cppcheck warnings fixes 2022-01-24 17:24:40 +00:00
Thomas Göttgens
9a0126cde1 use the new version of Screen lib when building 2022-01-24 17:37:33 +01:00
co sto
39d0c0fd8f Merge branch 'meshtastic:master' into master 2022-01-24 14:00:33 +01:00
mkinney
be0b9979bc Merge pull request #3 from meshtastic/master
refresh branch from master
2022-01-23 23:02:02 -08:00
Mike Kinney
b3210f6c2c fix some cppcheck warnings 2022-01-24 07:00:14 +00:00
Jm Casler
2357240d84 Merge pull request #1136 from osmanovv/diy-v11
Meshtastic DIY v1.1 new schematic
2022-01-23 20:43:00 -08:00
co sto
c2f0048931 Merge branch 'meshtastic:master' into master 2022-01-24 00:14:42 +01:00
Vladislav Osmanov
d1ba314065 Meshtastic DIY v1.1 new schematic 2022-01-23 23:44:58 +03:00
Jm Casler
8a79ede285 Merge pull request #1135 from mc-hamster/master
Protos regened for reply and tapback
2022-01-23 09:31:26 -08:00
Jm Casler
c8ecd6ac8e Protos regened for reply and tapback 2022-01-23 09:30:44 -08:00
Jm Casler
13226adb2a updating proto submodule to latest 2022-01-23 09:10:33 -08:00
Ben Meadors
e706aae41d Added NRF/RAK support for env plugin (#1133)
* Added NRF/RAK support for env plugin

* Added Environmental mixin to platform io
2022-01-23 10:05:39 -06:00
co sto
91ad0df11c Update variant.h 2022-01-23 17:04:55 +01:00
co sto
976627d974 Merge branch 'meshtastic:master' into master 2022-01-23 14:20:29 +01:00
Jm Casler
6830f9861a Merge pull request #1132 from mc-hamster/master
set the routerMessage buffer to Constants_DATA_PAYLOAD_LEN
2022-01-23 02:14:55 -08:00
Jm Casler
2db307fc8d Merge branch 'meshtastic:master' into master 2022-01-23 01:05:36 -08:00
Jm Casler
7fae43e1a5 Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2022-01-23 01:05:09 -08:00
Jm Casler
8b60226497 set the routerMessage buffer to Constants_DATA_PAYLOAD_LEN 2022-01-23 01:05:07 -08:00
Jm Casler
ab8083dec4 Merge pull request #1131 from mc-hamster/master
Fixes PIO code inspector
2022-01-23 01:01:50 -08:00
Jm Casler
a561713a48 Merge branch 'meshtastic:master' into master 2022-01-23 00:29:54 -08:00
Jm Casler
00f3996cee Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2022-01-23 00:29:24 -08:00
Jm Casler
9e4e79c5d7 Fixes PIO code inspector 2022-01-23 00:29:16 -08:00
Ben Meadors
61e1b8d859 Set lastMeasurementPacket as one we're sending (#1130) 2022-01-22 19:24:47 -06:00
mkinney
165e8e8cba Merge pull request #1127 from mkinney/add_docker
initial dockerfile and notes
2022-01-22 14:02:19 -08:00
mkinney
635fbcf0d5 Merge branch 'master' into add_docker 2022-01-22 13:34:29 -08:00
mkinney
815222ad80 Merge pull request #1128 from osmanovv/diy-rfm95
RFM95/SX127x support in DIY
2022-01-22 13:34:17 -08:00
mkinney
64a9f15b1c Merge branch 'master' into add_docker 2022-01-22 13:16:20 -08:00
Ben Meadors
abcdf39b20 Merge branch 'master' into diy-rfm95 2022-01-22 15:09:57 -06:00
Ben Meadors
16ee75313a BME280 support for environment and screen re-org (#1129) 2022-01-22 15:09:17 -06:00
Vladislav Osmanov
bfd9938507 RFM95/SX127x support in DIY 2022-01-22 16:13:52 +03:00
Mike Kinney
01f5f1b5ba initial dockerfile and notes 2022-01-22 00:01:32 -08:00
Ben Meadors
b6706c7ac1 Admin message shutdown feature (#1124)
* Shutdown via proto admin message
2022-01-21 15:03:26 -06:00
Thomas Göttgens
7723b30951 Custom_ArialMT_Plain_10 not used anywhere (#1122) 2022-01-21 09:53:57 -06:00
Ben Meadors
6d34151590 Admin message shutdown protobufs (#1119)
* Updated protos for admin message shutdown protobufs
2022-01-20 21:43:15 -06:00
co sto
2230cbbe2a Correction for wrong battery display on tlora_v2_1_16 board (#1120)
* Update variant.h
2022-01-20 20:47:30 -06:00
co sto
b49ba55658 Merge branch 'master' into master 2022-01-21 02:37:39 +01:00
co sto
0864154157 Update platformio.ini 2022-01-21 02:26:59 +01:00
co sto
c4f64b1592 Update variant.h 2022-01-21 02:09:25 +01:00
co sto
001d054924 Update platformio.ini 2022-01-21 02:07:29 +01:00
mkinney
5e590a4a5e Merge pull request #1118 from meshtastic/mkinney-patch-1
Update README.md
2022-01-20 10:57:17 -08:00
mkinney
22a2fe2cb4 Update README.md
add github downloads badge
2022-01-20 10:16:18 -08:00
mkinney
f047ae6792 Update README.md
add ci badge
2022-01-20 10:04:43 -08:00
Ben Meadors
e1ef495071 Add tlora-v2-1-1.6 to default envs for consistency (#1117) 2022-01-20 08:34:03 -06:00
Jm Casler
209c6253a6 updating proto submodule to latest 2022-01-19 18:18:55 -08:00
mkinney
1acabb9d35 Merge pull request #1110 from prampec/master
Temporary fix on canned messages total length.
2022-01-19 16:14:56 -08:00
mkinney
420495cb2d Merge branch 'master' into master 2022-01-19 15:45:58 -08:00
Ben Meadors
9309824874 RAK / NRF shutdown functionality on user button long press (#1113) 2022-01-19 17:10:02 -06:00
Balázs Kelemen
4fc443e760 Merge branch 'meshtastic:master' into master 2022-01-19 17:22:34 +01:00
Balazs Kelemen
53399f06e5 Canned message plugin status fix. 2022-01-19 09:55:06 +01:00
Ben Meadors
4e3fda87a1 Initial configuration.h -> variants refactor (#1104)
* Initial configuration to variants refactor
2022-01-18 18:35:42 -06:00
Balazs Kelemen
1ff3b3326c Temporary fix on canned messages total length. 2022-01-18 23:15:54 +01:00
mkinney
9f0ddda6ca Merge pull request #1107 from mkinney/fix_warning
change name of define because MAX_BLOCKSIZE is already taken
2022-01-17 23:14:26 -08:00
mkinney
8e3d30bd7f Merge branch 'master' into fix_warning 2022-01-17 22:44:01 -08:00
mkinney
6ca3186bff Merge pull request #1106 from mkinney/add_more_env_sensors
add DHT22
2022-01-17 22:17:48 -08:00
Mike Kinney
68fadfe26c change name of define because MAX_BLOCKSIZE is already taken 2022-01-18 06:13:43 +00:00
Jm Casler
92bcdb5e53 updating proto submodule to latest 2022-01-17 09:23:29 -08:00
Jm Casler
04b1948ee9 Merge pull request #1105 from prampec/master
CannedMessagePlugin typo fix.
2022-01-16 22:46:57 -08:00
Mike Kinney
6fdc16017a revert the cheking for esptool 2022-01-17 02:31:25 +00:00
Mike Kinney
7f759d6bb5 Merge remote-tracking branch 'prampec/master' into add_more_env_sensors 2022-01-17 00:03:14 +00:00
Mike Kinney
1f227797c1 updated file after updating protobufs 2022-01-16 23:54:10 +00:00
Mike Kinney
ab87c0a9ee updating proto 2022-01-16 23:49:18 +00:00
Mike Kinney
6d960918e2 minor change to re-trigger ci 2022-01-16 15:22:17 -08:00
Mike Kinney
5797e32461 add support for other 2 sensors 2022-01-16 15:16:03 -08:00
Mike Kinney
41da6c3b99 add DHT22 2022-01-16 15:06:34 -08:00
Balazs Kelemen
fe3a352511 CannedMessagePlugin typo fix. 2022-01-16 23:18:40 +01:00
Jm Casler
b53f4214bc Merge pull request #1099 from mc-hamster/master
AirTime - fix bug in array shifter
2022-01-15 15:28:39 -08:00
Jm Casler
b6b1bcc5ad Merge branch 'meshtastic:master' into master 2022-01-15 15:27:45 -08:00
Jm Casler
91117ca7c6 AirTime - fix bug in array shifter 2022-01-15 15:27:25 -08:00
Jm Casler
2d8e55a34e Merge pull request #1098 from mc-hamster/master
Airtime - calculate ms in a hour in preprocessor
2022-01-15 12:24:50 -08:00
Jm Casler
3a7292d3d0 Merge branch 'meshtastic:master' into master 2022-01-15 12:24:31 -08:00
Jm Casler
3fea1c4e5f Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2022-01-15 12:24:17 -08:00
Jm Casler
c2435470c1 Airtime - calculate ms in a hour in preprocessor 2022-01-15 12:24:16 -08:00
Jm Casler
1c993c10a1 Merge pull request #1097 from mc-hamster/master
airtime - reuse some functions
2022-01-15 11:20:33 -08:00
Jm Casler
0a62ce23af Merge branch 'master' into master 2022-01-15 11:20:21 -08:00
Jm Casler
38efb8b3ad Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2022-01-15 11:19:52 -08:00
Jm Casler
9ee7f5e0bd airtime - reuse some functions 2022-01-15 11:19:50 -08:00
Jm Casler
c798e1a2da Merge pull request #1096 from mc-hamster/master
Airtime - removed debug message
2022-01-15 09:51:46 -08:00
Jm Casler
7eb4713422 Merge branch 'meshtastic:master' into master 2022-01-15 09:51:10 -08:00
Jm Casler
a9ed26fdbc Merge pull request #1090 from prampec/CannedMessagePlugin
Canned message plugin
2022-01-15 09:50:39 -08:00
Jm Casler
a7451b6abe Airtime - removed debug message 2022-01-15 09:50:10 -08:00
Jm Casler
e61db642bc Merge pull request #1095 from mc-hamster/master
Add airtime tx calculation as a 1hr rolling window
2022-01-15 09:45:12 -08:00
Jm Casler
25a540c28b Add airtime tx calculation as a 1hr rolling window 2022-01-15 09:44:29 -08:00
Jm Casler
1993b8f8a6 updating proto submodule to latest 2022-01-15 09:34:11 -08:00
Jm Casler
38dd5612fd Merge branch 'master' into CannedMessagePlugin 2022-01-15 09:20:10 -08:00
Jm Casler
8a63c6f3a3 Merge pull request #1094 from mc-hamster/master
Fix borked airtime report in /json/reports
2022-01-15 08:25:46 -08:00
Jm Casler
778d13dee7 Merge branch 'meshtastic:master' into master 2022-01-15 08:25:11 -08:00
Jm Casler
2fd0d2baff Fixed borked airtime report in /json/reports
For: https://github.com/meshtastic/Meshtastic-device/issues/1086
2022-01-15 08:24:39 -08:00
Jm Casler
399792803a Merge pull request #1092 from mkinney/add_quotes_in_device_install
add quotes around PYTHON; add check for esptool
2022-01-15 07:49:30 -08:00
Mike Kinney
8a6bbcb985 add quotes around PYTHON; add check for esptool 2022-01-14 10:40:18 -08:00
Jm Casler
419349e13e Merge branch 'master' into CannedMessagePlugin 2022-01-13 17:31:12 -08:00
Jm Casler
6b0770fdd5 Merge pull request #1088 from markbirss/master
Fix SSD1306 OLED pinout on TLORA_V1_3
2022-01-13 17:22:21 -08:00
Jm Casler
ee2b05da78 Merge branch 'master' into master 2022-01-13 16:56:06 -08:00
Jm Casler
d900847bab updating proto submodule to latest 2022-01-13 16:55:20 -08:00
Ben Meadors
8b56ebd566 Merge branch 'master' into CannedMessagePlugin 2022-01-13 13:20:02 -06:00
Jm Casler
b63802cef3 1.2.52 2022-01-13 06:49:55 -08:00
Balazs Kelemen
a1f80f024e CannedMessagePlugin merge fix 2022-01-13 14:19:55 +01:00
Balazs Kelemen
41de8a1309 Relocate 'input' folder. 2022-01-13 14:17:21 +01:00
Balazs Kelemen
33f08364e4 Reset plugin in case of inactivity. 2022-01-13 14:17:21 +01:00
Balazs Kelemen
c5b95ed3c0 Screen update event. 2022-01-13 14:17:21 +01:00
Balazs Kelemen
f7c8cabdfe Screen drawing routine goes to Plugin. 2022-01-13 14:17:20 +01:00
Balazs Kelemen
0f1c424731 Rotary get rid of duplicate methods. 2022-01-13 14:17:20 +01:00
Balazs Kelemen
3fa00f603b Make all variables configurable. 2022-01-13 14:17:16 +01:00
Balazs Kelemen
f5004a66a1 Introduce InputBroker 2022-01-13 14:15:53 +01:00
Balazs Kelemen
b832b82ec6 Use init() instead of constructor. 2022-01-13 14:15:53 +01:00
Balazs Kelemen
fbd5b8b721 Canned message bugfixes. 2022-01-13 14:15:53 +01:00
Balazs Kelemen
772dfe39dc Combine rotary with canned messages. 2022-01-13 14:15:53 +01:00
Balazs Kelemen
c7e62142e9 RotaryEncoderInterruptBase 2022-01-13 14:15:53 +01:00
Balazs Kelemen
6eb2b33124 Fix rotary glitch. 2022-01-13 14:15:53 +01:00
Balazs Kelemen
b3ddf16d64 Display sending state. 2022-01-13 14:15:53 +01:00
Balazs Kelemen
4a29aef19e Show previous and next message in list. 2022-01-13 14:15:53 +01:00
Balazs Kelemen
7b8849493f Adding screen frame 2022-01-13 14:15:53 +01:00
Balazs Kelemen
2b588f1567 CannedMessagePlugin initial commit 2022-01-13 14:15:53 +01:00
Mark Trevor Birss
975f7c0332 Fix SSD1306 OLED pinout on TLORA_V1_3
The V1.3 board OLED pinout changed from V1
Now on pin SDA(21) and SCL(22) not SDA(4) and SCL(15)

LILYGO Product Page
http://www.lilygo.cn/prod_view.aspx?TypeId=50060&Id=1253&FId=t3:50060:3

Product Pin
https://ae01.alicdn.com/kf/H098cb5d5159841b398fcfd4ebf705725W.jpg
2022-01-13 10:28:02 +02:00
Jm Casler
f9ff06b296 Bump to 1.2.51 2022-01-12 21:54:32 -08:00
Jm Casler
ad038b07b6 Merge pull request #1082 from mc-hamster/master
Fix typo
2022-01-11 15:57:50 -08:00
Jm Casler
2e4b777625 Merge branch 'meshtastic:master' into master 2022-01-11 15:57:15 -08:00
Jm Casler
a8f1115c05 Fix typo 2022-01-11 15:56:58 -08:00
Jm Casler
f26bb6467e Merge pull request #1078 from mc-hamster/TAP_DEBUG
Use nimble 1.3.4
2022-01-10 22:28:47 -08:00
Jm Casler
c1ee1265ab Use nimble 1.3.4 2022-01-10 21:49:41 -08:00
Jm Casler
ad31d558a1 Revert "Fix for battery level on tlora32 2.1"
This reverts commit 1b81b155d6.
2022-01-10 21:15:43 -08:00
Jm Casler
1b81b155d6 Fix for battery level on tlora32 2.1
https://github.com/meshtastic/Meshtastic-device/issues/1039
2022-01-10 18:23:39 -08:00
Jm Casler
4a036db612 Merge pull request #1077 from mc-hamster/master
Add isRouter to the power saving check.
2022-01-10 16:38:40 -08:00
Jm Casler
2e0cd7ce4a Merge branch 'master' into master 2022-01-10 16:38:29 -08:00
Jm Casler
4ddc113ed6 Add isRouter to the power saving check. 2022-01-10 16:37:35 -08:00
Jm Casler
47935aab98 Add Meshtastic to bootup (#1076) 2022-01-10 11:10:09 -06:00
Jm Casler
0a43be6f8c Add Meshtastic to bootup 2022-01-10 07:57:25 -08:00
Jm Casler
053a00ec6c Merge pull request #1075 from mc-hamster/master
Disable light-sleep (aka bluetooth sleep) as the default behavior
2022-01-10 07:55:10 -08:00
Jm Casler
5392a83e33 Disable light-sleep (aka bluetooth sleep) as the default behavior.
https://github.com/meshtastic/Meshtastic-device/issues/1071
2022-01-09 22:28:13 -08:00
Jm Casler
1adca4e992 Merge branch 'meshtastic:master' into master 2022-01-09 22:23:37 -08:00
Jm Casler
1e247f154e updating proto submodule to latest 2022-01-09 22:23:05 -08:00
Jm Casler
f302166832 Disable light sleep 2022-01-09 19:14:07 -08:00
Jm Casler
51743f751a Merge pull request #1074 from mc-hamster/BLE
Upgrade to NimBLE 1.3.3
2022-01-09 18:51:05 -08:00
Jm Casler
b22cc1a964 Upgrade to NimBLE 1.3.3 2022-01-09 17:39:03 -08:00
Jm Casler
bd3688d21d Merge pull request #1073 from mc-hamster/BLE
Erase NVS as part of factory reset & new triple click behavior
2022-01-08 13:45:51 -08:00
Jm Casler
465ff3dd25 Fix nvs erase for native build 2022-01-08 12:03:18 -08:00
Jm Casler
2ee1155c78 add namespace count to nvs stats 2022-01-08 11:54:30 -08:00
Jm Casler
6506d54859 Erase NVS as part of factory reset & new triple click behavior. 2022-01-08 11:54:02 -08:00
Jm Casler
6843ffe452 Merge pull request #1072 from mc-hamster/admin
Start of Web Admin
2022-01-07 22:51:07 -08:00
Jm Casler
1fe4b95fe5 Add placeholder settings 2022-01-07 22:20:02 -08:00
Jm Casler
398a5baa90 Admin page framework is done. 2022-01-07 22:04:08 -08:00
Jm Casler
fcd3170a0f Page for admin settings and a post to apply 2022-01-07 21:45:34 -08:00
Jm Casler
95f2d0c933 Fix build error. Forgot to save a file. 2022-01-07 21:02:31 -08:00
Jm Casler
e2d1cce1bb Start of web admin 2022-01-07 20:20:47 -08:00
Jm Casler
01f1b33eec Merge branch 'meshtastic:master' into master 2022-01-07 17:23:40 -08:00
Jm Casler
94246a1fbc Merge pull request #1070 from unjordy/portable-shebangs
Use portable shebangs in bash and python scripts
2022-01-07 11:46:03 -08:00
Jm Casler
abae99f577 Merge branch 'master' into portable-shebangs 2022-01-07 11:10:47 -08:00
Jm Casler
f221bc6275 Merge pull request #1069 from ernax78/touch_refresh
T-ECHO e-ink screen update with touch button
2022-01-07 10:52:22 -08:00
Jordan Mulcahey
706d6e2671 Use /usr/bin/env in bash and python script shebangs 2022-01-07 02:53:33 -08:00
ernax78
2857fafa81 Merge branch 'meshtastic:master' into touch_refresh 2022-01-07 10:02:08 +03:00
Erik R Norell
17dfb7d152 Touch on T-Echo to refresh e-ink screen 2022-01-07 09:57:29 +03:00
Jm Casler
dff219a037 updating proto submodule to latest 2022-01-06 10:46:13 -08:00
ernax78
1c63d2d334 Feature: add disable_tx setting #1065 (#1066)
* Feature: add disable_tx setting #1065
2022-01-06 12:01:45 -06:00
Erik R Norell
b6eb927ad2 Missed a spot to disable. 2022-01-06 20:00:53 +03:00
Erik R Norell
9d8a1b3522 Feature: add disable_tx setting #1065 2022-01-06 19:25:16 +03:00
Jm Casler
9bc9d37596 Merge pull request #1064 from mc-hamster/SPIFFS_UPDATE
Fixed TLS "memory allocation failure" & Don't delete contents of /static unless tar is downloaded
2022-01-05 23:27:21 -08:00
Jm Casler
76d0ad2907 Add page with links to end points on /spiffs 2022-01-05 22:27:49 -08:00
Jm Casler
3a17822893 Fixed TLS "memory allocation failure" 2022-01-05 22:12:32 -08:00
Jm Casler
da7ca98f44 Merge branch 'meshtastic:master' into SPIFFS_UPDATE 2022-01-05 20:52:39 -08:00
Jm Casler
841bc97a47 Revert "Merge pull request #94 from mc-hamster/BLE_NOPIN"
This reverts commit c366d81510, reversing
changes made to e9f01de051.
2022-01-05 19:44:44 -08:00
Jm Casler
dbdbe75e9f Rename httpClient 2022-01-05 19:44:21 -08:00
Jm Casler
d5fc905402 Don't delete contents of /static unless tar is downloaded 2022-01-05 19:29:45 -08:00
Jm Casler
c366d81510 Merge pull request #94 from mc-hamster/BLE_NOPIN
BLE MITM disabled
2022-01-04 20:55:53 -08:00
Jm Casler
e9f01de051 Merge pull request #1062 from linagee/master
NimBLE: less debugging data, no more constant stream of BLE hex logging
2022-01-04 20:01:44 -08:00
Jm Casler
f9905ea416 MITM disabled 2022-01-04 19:26:50 -08:00
linagee
a8d10329f8 Added some platformio.ini comments 2022-01-04 18:58:56 -07:00
linagee
1157419e05 Constants are better than magic numbers 2022-01-04 18:38:05 -07:00
linagee
12f1fda934 NimBLE: less debugging data, no more constant stream of hex
esp_nimble_cfg.h and syscfg/syscfg.h were providing the default
previously.
This should get rid of:
ble_sm_alg_s1() and messages like that proving low-level BLE data.
2022-01-04 18:32:58 -07:00
linagee
cb0073f6fa Merge pull request #3 from meshtastic/master
Merge master
2022-01-04 10:27:26 -07:00
Jm Casler
da5bc9d9d9 Merge pull request #1059 from mc-hamster/NTP
Add support for NTP if wifi is connected
2022-01-03 18:05:30 -08:00
Jm Casler
38baebe48f Use NTP time if connected to wifi 2022-01-03 17:35:20 -08:00
Jm Casler
97ad7a1825 Merge pull request #93 from meshtastic/master
Update from head
2022-01-03 16:18:20 -08:00
Jm Casler
1f9b1e2828 Merge branch 'NTP' into master 2022-01-03 16:18:01 -08:00
Jm Casler
796d05e89e Initial checkin of Online OTA SPIFFS update
Initial checkin of Online OTA SPIFFS update
2022-01-03 07:52:10 -08:00
Jm Casler
063d7a7d81 Cleanup API endpoint debug output 2022-01-02 22:17:26 -08:00
Jm Casler
6d0368b13d Update URL to proper meshtastic web download location & disable halting 2022-01-02 22:10:55 -08:00
Jm Casler
b2011a1889 Switching url to casler.org. github has too many redirections. 2022-01-02 20:37:52 -08:00
Jm Casler
893472e36a Update text and tar URL 2022-01-02 20:05:13 -08:00
Jm Casler
4d82a0146b Initial checkin of Online OTA SPIFFS update 2022-01-02 19:50:43 -08:00
Jm Casler
8569595249 Merge pull request #1046 from caveman99/Heltec-V1
Heltec v1
2022-01-02 11:09:57 -08:00
Jm Casler
88281dbbf1 Merge branch 'master' into Heltec-V1 2022-01-02 11:09:46 -08:00
Jm Casler
dd3e8af4c0 Merge pull request #1054 from mc-hamster/StoreAndForward
Count tx airtime only after it's sent by the radio
2022-01-02 11:06:06 -08:00
Jm Casler
a0d3d1dc89 Merge branch 'master' into StoreAndForward 2022-01-02 11:05:57 -08:00
Jm Casler
9a87ec7353 Count tx airtime only after it's sent by the radio 2022-01-02 11:05:32 -08:00
Thomas Göttgens
3857dd7e52 regen protobuf headers 2022-01-02 14:41:41 +01:00
Jm Casler
690cb0c77a Merge branch 'master' into Heltec-V1 2022-01-01 23:25:52 -08:00
Jm Casler
5d4f039b3e updating proto submodule to latest 2022-01-01 23:25:20 -08:00
Jm Casler
676e840b5b Merge pull request #1053 from mc-hamster/StoreAndForward
Return an informative message if web content files are unavailable.
2022-01-01 23:23:36 -08:00
Jm Casler
c00c2744bf Merge branch 'master' into StoreAndForward 2022-01-01 23:23:26 -08:00
Jm Casler
83293a5f4d Merge pull request #1048 from prampec/ExternalNotificationFix
Channel-binding filter accepts empty channel names.
2022-01-01 23:18:55 -08:00
Jm Casler
0812094f35 Merge branch 'master' into ExternalNotificationFix 2022-01-01 23:18:49 -08:00
Jm Casler
7dfe596bcb Merge branch 'master' into StoreAndForward 2022-01-01 23:11:03 -08:00
Jm Casler
749d127281 Return an informative message if web content files are unavailable. 2022-01-01 23:10:37 -08:00
Jm Casler
dd464896ae Merge pull request #1052 from mc-hamster/StoreAndForward
S&F - Only TX if utilization is below 25%
2022-01-01 19:55:45 -08:00
Jm Casler
00ff013799 Merge branch 'meshtastic:master' into StoreAndForward 2022-01-01 19:55:21 -08:00
Jm Casler
415ded1f4d Merge branch 'StoreAndForward' of https://github.com/mc-hamster/Meshtastic-device into StoreAndForward 2022-01-01 19:54:56 -08:00
Jm Casler
924069f9ad S&F - Only TX if utilization is below 25% 2022-01-01 19:54:49 -08:00
Jm Casler
ad784532b7 Merge pull request #1047 from mc-hamster/StoreAndForward
Don't let S&F send payloads if channel utilization is > 50%
2022-01-01 16:13:22 -08:00
Ben Meadors
de1d5d61ff Merge branch 'master' into Heltec-V1 2022-01-01 14:11:52 -06:00
Ben Meadors
af8f70e9ae Merge branch 'master' into StoreAndForward 2022-01-01 14:11:30 -06:00
Ben Meadors
c135a59787 Merge branch 'master' into ExternalNotificationFix 2022-01-01 14:00:50 -06:00
linagee
333b195804 Don't commit vim swap files to repo (#1051) 2022-01-01 14:00:32 -06:00
Ben Meadors
40f1a7bcaf Merge branch 'master' into ExternalNotificationFix 2022-01-01 13:13:15 -06:00
Ben Meadors
432854ce31 Merge branch 'master' into master 2022-01-01 13:12:59 -06:00
Sjoer van der Ploeg
6e706e0585 Update MQTT.cpp (#1050)
Was missing a colon in the logs!
2022-01-01 13:12:24 -06:00
linagee
4ca8846c2f Don't commit vim swap files to repo 2022-01-01 12:05:19 -07:00
linagee
69e1985eda Merge pull request #2 from meshtastic/master
Merge master
2022-01-01 11:48:30 -07:00
riddick
475348489e Add status LED for diy targets and the core-pcb (#1049)
* Update device-install.sh

fix for #911

* add status led for diy target

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-01-01 12:11:40 -06:00
Balazs Kelemen
c8aec324f5 Channel-binding filter accepts empty channel names. 2022-01-01 11:33:17 +01:00
Sacha Weatherstone
90f5fade84 Merge branch 'master' into Heltec-V1 2021-12-31 12:35:14 +10:30
Sacha Weatherstone
df75182bcf Fix protobuf submodule 2021-12-31 13:04:34 +11:00
Sacha Weatherstone
6cb4900e0c Create update_protobufs.yml 2021-12-31 13:00:32 +11:00
Jm Casler
8bbdfe4538 Fix typo 2021-12-30 15:01:19 -08:00
Jm Casler
f53fdf1628 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-30 14:27:00 -08:00
Jm Casler
a16dcbe9d0 Don't let S&F send payloads if channel utilization is > 50% 2021-12-30 14:24:44 -08:00
Thomas Göttgens
20497335c2 stop old chip from crashing 2021-12-30 22:20:15 +01:00
Thomas Göttgens
e24a2116d8 build the new board with build_all 2021-12-30 22:19:04 +01:00
Thomas Göttgens
9c7121df3e Update platformio.ini
add new board to platform.io definition
2021-12-30 22:18:08 +01:00
Thomas Göttgens
c531ea8601 new Configuration section 2021-12-30 22:16:46 +01:00
linagee
0a4659b605 Merge pull request #1 from meshtastic/master
Pull master
2021-12-29 19:57:29 -07:00
Jm Casler
41dcfdd7cb Bump to 1.2.50 2021-12-29 11:20:36 -08:00
Jm Casler
fbcbc791de Merge pull request #1041 from mc-hamster/ReplyTapback
Support for replies and tap backs
2021-12-29 09:53:03 -08:00
Jm Casler
7c6d53f297 Support for replies and tap backs
https://github.com/meshtastic/Meshtastic-device/issues/1035
2021-12-29 09:25:01 -08:00
Jm Casler
68c52a8d36 updating proto submodule to latest 2021-12-29 09:22:47 -08:00
Jm Casler
759bdfd6a4 Merge pull request #1038 from mc-hamster/master
Delete build-nightly.sh - nightly build server has been decommissioned
2021-12-29 01:32:31 -08:00
Jm Casler
94aff87706 Merge pull request #1037 from mc-hamster/ChannelUtilization
Report on channel utilization on the screen and myNodeInfo
2021-12-29 01:32:22 -08:00
Jm Casler
3fdb374dce Merge branch 'meshtastic:master' into master 2021-12-29 00:52:40 -08:00
Jm Casler
6f3ffc6ef0 Delete build-nightly.sh
Nightly build server has been decomissioned.
2021-12-29 00:52:21 -08:00
Jm Casler
07adfd7543 Merge branch 'master' into ChannelUtilization 2021-12-29 00:49:35 -08:00
Jm Casler
bdacd97fea Move airtimes struct into the class 2021-12-29 00:45:36 -08:00
Jm Casler
7eb00dd5f6 Remove unknown report type 2021-12-29 00:36:54 -08:00
Jm Casler
37dec91ed9 Rename periods to log 2021-12-29 00:36:15 -08:00
Jm Casler
80d872448d Merge pull request #1036 from mc-hamster/StoreAndForward
Removed radio config that shouldn't be there.
2021-12-29 00:12:59 -08:00
Jm Casler
cea35acfa0 Merge branch 'master' into StoreAndForward 2021-12-29 00:12:52 -08:00
Jm Casler
672ea5b494 Removed radio config that shouldn't be there. 2021-12-29 00:12:32 -08:00
Jm Casler
79e75a47f6 Add channel utilization to myNodeInfo 2021-12-28 23:37:23 -08:00
Jm Casler
10dc8233ea Initial checkin for Airtime Utilization
https://github.com/meshtastic/Meshtastic-device/issues/1034
2021-12-28 23:34:49 -08:00
Jm Casler
f1c029d6da updating proto submodule to latest 2021-12-28 23:33:12 -08:00
Jm Casler
a2883789d1 updating proto submodule to latest 2021-12-28 23:29:30 -08:00
Jm Casler
654558abcd Partial work for NTP client 2021-12-28 19:24:10 -08:00
Jm Casler
c1abe84abc Merge pull request #1024 from mc-hamster/master
Attempt to update esp8266-oled-ssd1306 (Attempt didn't work, this contains cleanup)
2021-12-28 17:25:37 -08:00
Jm Casler
f3427084c2 Merge branch 'meshtastic:master' into master 2021-12-28 16:41:09 -08:00
Jm Casler
638d43a341 Roll back oled update 2021-12-28 16:40:53 -08:00
Ben Meadors
1063415292 Remove networking operations from presentation layer (#1033)
* Remove networking operations from presentation layer
2021-12-28 14:17:56 -06:00
Ben Meadors
a70b849039 Changed getMacAddr behavior (#1017) 2021-12-28 11:20:45 -06:00
Jm Casler
33769b8657 Merge pull request #1031 from linagee/master
Ham, not HAM
2021-12-27 21:34:13 -08:00
linagee
a534eae43c Grammar. 2021-12-27 21:21:56 -07:00
linagee
5a22b49a24 Ham, not HAM
Originally discovered in 1ffa55d39a

https://www.kb6nu.com/ham-ham-radio-ham-radio-amateur-radio/#:~:text=Of%20course%20either%20term%20may,be%20avoided%20at%20all%20costs.
2021-12-27 21:18:10 -07:00
riddick
06a6f75f00 Update device-install.sh (#1029)
fix for #911

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2021-12-27 18:01:21 -06:00
Thomas Göttgens
bea9dfff38 CI/CD for building on GitLab instance (#1028)
This yml is basically a wrapper for build-all.sh that makes sure the submodules are checked out and pushes a release package to the gitlab registry. Not needed for building on github!

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2021-12-27 14:25:08 -06:00
Jm Casler
2818dfc948 Merge pull request #1030 from mc-hamster/StoreAndForward
Support for MeshPacket_Delayed_DELAYED_BROADCAST
2021-12-27 10:03:36 -08:00
Jm Casler
f521878308 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-27 10:03:09 -08:00
Jm Casler
648e8bb5e1 Support for MeshPacket_Delayed_DELAYED_BROADCAST 2021-12-27 10:02:43 -08:00
Jm Casler
6907cb192e Merge pull request #1027 from mc-hamster/StoreAndForward
S&F - Add support for secondary channels that don't have their own PSK & Update broadcast address to NODENUM_BROADCAST
2021-12-26 16:20:12 -08:00
Jm Casler
988f8c4d23 Merge branch 'master' into StoreAndForward 2021-12-26 15:53:54 -08:00
Jm Casler
4a3bdb284d Merge pull request #1026 from mc-hamster/wifi
Apply formatting to wifi related sections
2021-12-26 15:53:42 -08:00
Jm Casler
efdd2ad490 Apply formatting to S&F 2021-12-26 15:51:27 -08:00
Jm Casler
228be41ba6 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-26 15:49:52 -08:00
Jm Casler
5432d3d44b Merge branch 'meshtastic:master' into wifi 2021-12-26 15:48:18 -08:00
Jm Casler
e77cbd0588 Apply formatting to wifi related sections 2021-12-26 15:46:23 -08:00
Jm Casler
072707c77e Update esp8266-oled-ssd1306 2021-12-26 09:08:49 -08:00
Jm Casler
366a028502 Remove unused comments. 2021-12-26 09:05:35 -08:00
Jm Casler
ea7bceb85b Merge pull request #1018 from joshpirihi/master
Add mqtt_username and mqtt_password user preferences
2021-12-24 22:25:10 -08:00
Jm Casler
caa4f3cd71 Merge branch 'master' into master 2021-12-24 13:52:25 -08:00
Jm Casler
521c55595a Merge pull request #1022 from mc-hamster/wifi
Cleanup comments
2021-12-24 13:51:35 -08:00
Jm Casler
a0c9d18e0d Merge branch 'wifi' of https://github.com/mc-hamster/Meshtastic-device into wifi 2021-12-24 13:08:36 -08:00
Jm Casler
0938cded58 Cleanup comments 2021-12-24 13:08:30 -08:00
Jm Casler
0ea12436b6 Merge pull request #1020 from mc-hamster/wifi
Fix for SoftAP bugs
2021-12-23 20:34:29 -08:00
Jm Casler
8e50e25eec Cleanup content handler and remove request counter. 2021-12-23 19:56:37 -08:00
Jm Casler
2d8bf4d684 Fix for SoftAP bugs 2021-12-23 18:18:07 -08:00
Joshua Pirihi
0aa4ea86a0 Add mqtt_username and mqtt_password user preferences 2021-12-24 06:17:08 +13:00
Jm Casler
d09754fbcf Add support for secondary channels that don't have their own PSK. 2021-12-21 19:28:47 -05:00
Jm Casler
a192da5cd0 Merge pull request #1010 from andrekir/backlight
add T-Echo backlight trigger
2021-12-19 19:38:28 -05:00
Jm Casler
73985c47d6 Merge branch 'master' into backlight 2021-12-19 19:34:29 -05:00
Jm Casler
476c6f25ce Merge pull request #1012 from mc-hamster/master
Update to show fixed gps alternating with location info
2021-12-19 19:34:06 -05:00
Jm Casler
836113ef8b Merge pull request #92 from syund/Show-fixed-GPS-coordinates-on-screen
Fix coordinates not displaying when fixed
2021-12-19 15:16:33 -05:00
Jm Casler
3e31d561ea Merge branch 'StoreAndForward' of https://github.com/mc-hamster/Meshtastic-device into StoreAndForward 2021-12-19 15:11:38 -05:00
Jm Casler
192feeaf0e Update broadcast address to NODENUM_BROADCAST 2021-12-19 15:11:30 -05:00
Sam
9f63a8c330 Fix coordinates not displaying when fixed 2021-12-19 14:55:57 -05:00
Jm Casler
b6d72d3248 Merge branch 'meshtastic:master' into master 2021-12-19 14:28:08 -05:00
Jm Casler
756528180e Merge pull request #978 from mc-hamster/StoreAndForward
S&F - Describe if the message is real time or delayed in MeshPacket
2021-12-19 14:27:55 -05:00
Jm Casler
8d8fece89d Update to show fixed gps alternating with location info. 2021-12-19 14:27:49 -05:00
Jm Casler
7af4a31329 Adding MeshPacket_Delayed 2021-12-19 14:02:36 -05:00
Jm Casler
2ace1f48b8 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-19 13:58:22 -05:00
Jm Casler
d1d096d52a S&F - Describe if the message is real time or delayed in MeshPacket 2021-12-19 13:58:01 -05:00
Jm Casler
3adb79bd18 updating proto submodule to latest 2021-12-19 13:54:51 -05:00
Jm Casler
34908a8f79 Merge pull request #1009 from meshtastic/nimble-lib-swap
Nimble lib swap
2021-12-18 16:30:27 -05:00
Jm Casler
9b15bb51b3 Merge pull request #1008 from mc-hamster/master
Show fixed position indicator on screen & show fixed position indicator on screen
2021-12-18 16:24:33 -05:00
Jm Casler
d7a1b9fd62 Allow hop_limit to be configured
https://github.com/meshtastic/Meshtastic-device/issues/1007
2021-12-18 16:21:12 -05:00
Ben Meadors
727dcbc809 Merge branch 'master' into nimble-lib-swap 2021-12-18 15:16:39 -06:00
Jm Casler
94e9345354 Merge branch 'meshtastic:master' into master 2021-12-18 15:53:31 -05:00
Jm Casler
4fcd82d6f5 updating proto submodule to latest 2021-12-18 15:51:44 -05:00
Andre Kirchhoff
4cd25bc755 add eink userButtonDoublePressed backlight trigger 2021-12-18 17:47:54 -03:00
Jm Casler
252820c58c Merge branch 'meshtastic:master' into master 2021-12-18 15:20:58 -05:00
Jm Casler
0e5a783c5a Show fixed position indicator on screen #866
Show fixed position indicator on screen #866
2021-12-18 15:20:17 -05:00
Jm Casler
4a053801ce Merge pull request #1005 from mc-hamster/master
Fix for "Creating SSL certificate" screen when there's no display
2021-12-18 14:49:16 -05:00
Jm Casler
e68ca88c9c Merge branch 'master' into master 2021-12-18 13:58:57 -05:00
Jm Casler
40d61543e4 Merge pull request #999 from osmanovv/ext-notify-out
Overridden default pin to use for Ext Notify Plugin (#975)
2021-12-18 13:58:10 -05:00
Jm Casler
f3fc88ac5d Test if screen address was found 2021-12-18 11:02:54 -05:00
Jm Casler
d1370071da Test that the screen object has been created 2021-12-17 15:53:23 -05:00
Jm Casler
b71051a227 Attempt to address the ssl screen crashing on AndreK's device. 2021-12-17 14:02:29 -05:00
Vladislav Osmanov
a27260a605 Overridden default pin to use for Ext Notify Plugin (#975)
In Meshtastic DIY `GPIO13` is used for `SX126X_TXEN`,
so we choose `GPIO12` as default for Ext Notification Plugin.
2021-12-17 12:13:27 +03:00
Jm Casler
5354c49c50 Bump version to 1.2.49 2021-12-16 13:53:59 -05:00
Jm Casler
3dbc31e8f3 Merge pull request #995 from mc-hamster/master
Updated formula for position plugin & Improve time to generate the SSL certificate
2021-12-15 07:22:20 -08:00
Ben Meadors
5ff6b919c6 Remove BATTERY_PIN from tlora v1 target (#996) 2021-12-15 07:50:36 -06:00
Jm Casler
62602b54f4 Improve time to generate the SSL certificate 2021-12-14 23:50:49 -05:00
Jm Casler
ee70b5996f Updated formula for position plugin 2021-12-14 22:38:54 -05:00
Ben Meadors
1f4a3085ef Peg to specific version of NimBLE Arduino 2021-12-12 07:54:29 -06:00
Ben Meadors
f119555c12 Convert to NimBLE Arduino (#985) 2021-12-12 07:44:56 -06:00
Jm Casler
2f16b3f345 Merge pull request #989 from mc-hamster/display_speed
Bug in getNumOnlineNodes #988
2021-12-11 20:10:36 -08:00
Jm Casler
1d0221e02d Merge branch 'meshtastic:master' into display_speed 2021-12-11 19:50:51 -08:00
Jm Casler
446fb857cc Bug in getNumOnlineNodes #988 2021-12-11 19:50:20 -08:00
Jm Casler
c6292679f5 Merge pull request #987 from mc-hamster/display_speed
Identify the mode on the screen with the radio conf #986
2021-12-11 19:49:06 -08:00
Jm Casler
65cc938c72 Merge branch 'display_speed' of https://github.com/mc-hamster/Meshtastic-device into display_speed 2021-12-11 19:39:37 -08:00
Jm Casler
a1f97aea77 Update Screen.cpp 2021-12-11 19:39:31 -08:00
Jm Casler
ce42707fc7 Merge branch 'meshtastic:master' into display_speed 2021-12-11 19:37:39 -08:00
Jm Casler
1ed3195194 Identify the mode on the screen with the radio conf #986 2021-12-11 19:36:58 -08:00
Jm Casler
4de89fab0d Merge pull request #984 from mc-hamster/display_speed
Make screen animations smoother (aka Scale the CPU) #983
2021-12-11 18:56:41 -08:00
Jm Casler
4fb5107298 Make screen animations smoother (aka Scale the CPU) #983 2021-12-11 18:35:28 -08:00
Jm Casler
686057a0b1 Make screen animations smoother (aka Scale the CPU) #983 2021-12-11 18:33:52 -08:00
Sacha Weatherstone
04683580ff Merge pull request #973 from Hydra-Designs/master
Split RAK-4631 targets by base board
2021-12-10 13:27:20 +10:30
Ben Meadors
66085d7447 RAK-5005 button pin mapping tweak 2021-12-09 19:59:04 -06:00
Ben Meadors
033e0e99ec Merge branch 'meshtastic:master' into master 2021-12-09 19:58:00 -06:00
Jm Casler
98d2499074 Merge pull request #981 from mc-hamster/master
Update generated protos & has_wifi #979
2021-12-09 12:13:11 -08:00
Jm Casler
3d4e4bfa50 Update generated protos & has_wifi #979
https://github.com/meshtastic/Meshtastic-device/issues/979
2021-12-09 11:47:42 -08:00
Jm Casler
9e771f14d8 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-09 11:34:28 -08:00
Jm Casler
1156a3406e updating proto submodule to latest 2021-12-09 11:23:24 -08:00
Jm Casler
0475cc93ab Update storeforward.pb.h 2021-12-08 23:56:38 -08:00
Jm Casler
8b508576ea Merge branch 'meshtastic:master' into StoreAndForward 2021-12-08 23:48:39 -08:00
Jm Casler
a96dee5beb updating proto submodule to latest 2021-12-08 23:15:08 -08:00
Jm Casler
84332c60f0 Merge branch 'master' into StoreAndForward 2021-12-08 19:42:37 -08:00
Jm Casler
61bc0e09e7 updating proto submodule to latest 2021-12-08 18:39:12 -08:00
Jm Casler
55da39823b Update S&F protobuf 2021-12-08 17:22:02 -08:00
Jm Casler
fb15898ed6 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-08 17:17:54 -08:00
Jm Casler
9fd8df3872 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device 2021-12-08 17:13:52 -08:00
Jm Casler
2ad37e2126 updating proto submodule to latest 2021-12-08 17:13:34 -08:00
Ben Meadors
148b62c02f Merge branch 'master' into master 2021-12-08 18:11:38 -06:00
Jm Casler
098eee0062 Merge pull request #975 from Solarvortx/ExtNotify-Pin
Ext notify pin
2021-12-08 15:52:13 -08:00
Solanaceae
b6d63059bf Change EXT_NOTIFY_PIN to EXT_NOTIFY_OUT per req. 2021-12-07 21:34:10 -07:00
Solanaceae
6cfdd99fd1 Update and configure ExNotify platforms 2021-12-07 20:26:26 -07:00
Ben Meadors
c8bea4f091 Split RAK-4631 targets by base board 2021-12-07 20:42:06 -06:00
Jm Casler
084ef821b7 Merge pull request #972 from mc-hamster/master
Add calculated airtimes to myNodeInfo  … #970
2021-12-07 13:30:15 -08:00
Jm Casler
8785f2848f Merge branch 'meshtastic:master' into master 2021-12-07 13:05:26 -08:00
Jm Casler
f86e0d46b6 Add calculated airtimes to myNodeInfo
https://github.com/meshtastic/Meshtastic-device/issues/970
2021-12-07 13:04:50 -08:00
Jm Casler
41493c9e1f Merge pull request #971 from mc-hamster/master
Generated protos for Feature request: add airtime to NodeInfo #970
2021-12-07 12:11:34 -08:00
Jm Casler
67766b817c Reduce size of airtime structure for mynodeinfo 2021-12-07 11:44:48 -08:00
Jm Casler
feb1f4fb9f Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2021-12-07 11:31:53 -08:00
Jm Casler
d3dc51d102 Fix typo 2021-12-07 11:31:46 -08:00
Jm Casler
e53a6615ad Merge branch 'master' into master 2021-12-07 11:28:28 -08:00
Jm Casler
a904bb8cc5 Generated protos for Feature request: add airtime to NodeInfo #970 2021-12-07 11:26:06 -08:00
Jm Casler
d0715f85a0 Merge pull request #969 from mc-hamster/master
Feature request: add the hop limit info to range test plugin #967
2021-12-07 09:44:57 -08:00
Jm Casler
df88feba0f Feature request: add the hop limit info to range test plugin #967 2021-12-07 09:14:31 -08:00
Jm Casler
b0a6c8929c Save partial work for S&F 2021-12-06 21:01:18 -08:00
Jm Casler
9c8c419939 Merge pull request #966 from mc-hamster/StoreAndForward
Create new default channel configurations. #965
2021-12-06 15:46:12 -08:00
Jm Casler
c83ca7bfdd Merge branch 'meshtastic:master' into StoreAndForward 2021-12-06 15:04:23 -08:00
Jm Casler
f01952bd0d Create new default channel configurations. #965
Create new default channel configurations. #965
2021-12-06 15:03:35 -08:00
Jm Casler
7cb0821886 Merge pull request #964 from mc-hamster/StoreAndForward
Update Smart Position to scale based on data rate.
2021-12-06 14:54:07 -08:00
Jm Casler
bd11b7464e Merge branch 'meshtastic:master' into StoreAndForward 2021-12-06 14:46:24 -08:00
Jm Casler
f6c3ae132a Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device 2021-12-06 14:43:08 -08:00
Jm Casler
5fc9f3bfb1 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-06 14:38:18 -08:00
Jm Casler
3384c1ed1f updating proto submodule to latest 2021-12-06 14:37:47 -08:00
Jm Casler
b2e7507cd8 Merge pull request #963 from joshpirihi/master
When switching to battery, shutdown after on_battery_shutdown_after_secs
2021-12-05 22:31:58 -08:00
Jm Casler
1cb5ba38f6 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-05 22:24:59 -08:00
Jm Casler
e9653dae03 Update Smart Position to scale based on data rate. 2021-12-05 22:23:49 -08:00
Joshua Pirihi
5b34e3e1ab When switching to battery, shutdown after on_battery_shutdown_after_secs 2021-12-06 15:37:35 +13:00
Jm Casler
6b184ed448 Merge pull request #960 from mc-hamster/StoreAndForward
Add channel bitrate to myNodeInfo #959 and Update lastlat/lastlong int32 #956
2021-12-05 17:14:27 -08:00
Jm Casler
9ec3085cd5 Merge branch 'master' into StoreAndForward 2021-12-05 16:43:46 -08:00
Ben Meadors
02e3d06bcb Remove promote-release.sh from Release process (#958) 2021-12-05 18:31:36 -06:00
Jm Casler
eefef1dceb Add channel bitrate to myNodeInfo #959 2021-12-05 16:17:13 -08:00
Jm Casler
465f7a6935 Merge branch 'StoreAndForward' of https://github.com/mc-hamster/Meshtastic-device into StoreAndForward 2021-12-05 10:20:25 -08:00
Jm Casler
3da9c7b081 Update lastlat/lastlong int32 #956 2021-12-05 10:20:16 -08:00
Jm Casler
05835fd1bb Add channel bitrate to myNodeInfo #959
Add channel bitrate to myNodeInfo #959
2021-12-05 10:17:09 -08:00
Jm Casler
92ebf1bd69 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device 2021-12-05 10:16:12 -08:00
Jm Casler
86d712ff4d updating proto submodule to latest 2021-12-05 10:15:39 -08:00
Jm Casler
068a6c0309 Merge pull request #957 from mc-hamster/StoreAndForward
Smart position sends updates too frequently. #956
2021-12-04 19:54:25 -08:00
Jm Casler
e5ff49d5aa Merge branch 'meshtastic:master' into StoreAndForward 2021-12-04 19:52:23 -08:00
Jm Casler
aaefd2c2e7 Smart position sends updates too frequently. #956 2021-12-04 19:51:54 -08:00
Jm Casler
e73f79a344 Merge pull request #955 from mc-hamster/StoreAndForward
SoftAP doesn't always start #954
2021-12-04 19:42:55 -08:00
Jm Casler
53efb9c0f6 Update StoreForwardPlugin.cpp 2021-12-04 19:29:42 -08:00
Jm Casler
9f6522a756 SoftAP doesn't always start #954 2021-12-04 19:20:20 -08:00
Jm Casler
09b467ce7c WIP for S&F. Next is to validate the stub outs work as expected. 2021-12-03 22:20:15 -08:00
Jm Casler
105c026297 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-03 19:36:41 -08:00
Jm Casler
83c6d8b07e comment out AXP192_SLAVE_ADDRESS in configuration.h #952 2021-12-03 19:35:57 -08:00
Jm Casler
e19a7c73bc Merge pull request #951 from mc-hamster/StoreAndForward
Cleanup rangetestplugin #950
2021-12-03 19:27:34 -08:00
Jm Casler
23e16bfb1a Merge branch 'master' into StoreAndForward 2021-12-03 19:00:25 -08:00
Jm Casler
47e7b00000 Cleanup rangetestplugin #950 2021-12-03 18:59:10 -08:00
Jm Casler
9adbe28319 Merge pull request #949 from osmanovv/ci4diy
building `meshtastic-diy-v1` in `build-all.sh`
2021-12-03 07:48:05 -08:00
Vladislav Osmanov
d1eb314047 building meshtastic-diy-v1 in build-all.sh 2021-12-03 14:10:41 +03:00
Jm Casler
371335e6ab Update version to 1.2.48 2021-12-02 22:55:07 -08:00
Jm Casler
8bc4b581d1 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device 2021-12-02 22:54:22 -08:00
Jm Casler
2311653ca8 updating proto submodule to latest 2021-12-02 22:53:46 -08:00
Jm Casler
040e3234fc Merge pull request #948 from Solarvortx/SX1262-Power
Sx1262 power
2021-12-02 22:53:09 -08:00
Jm Casler
62cf2adaec Merge branch 'master' into SX1262-Power 2021-12-02 22:41:09 -08:00
Sacha Weatherstone
063499ef46 Cheanup old unused files. 2021-12-03 17:28:32 +11:00
Solanaceae
b7eaeb8c31 Merge branch 'master' into SX1262-Power 2021-12-02 21:50:37 -07:00
Solanaceae
6bd495a491 OCP limit into SX126x class where it belongs. 2021-12-02 20:46:36 -07:00
Jm Casler
f09aa9bec0 Fix promote-release #947
Fix promote-release #947
2021-12-02 19:40:40 -08:00
Jm Casler
a7b3b4386f Merge pull request #946 from mc-hamster/StoreAndForward
Store and forward generated protos & add Mac config in platform.ini
2021-12-02 19:15:23 -08:00
Jm Casler
6a426d5d71 Update S&F with new object name 2021-12-02 17:27:38 -08:00
Jm Casler
0ca061a457 uncomment meshtastic-diy-v1 2021-12-02 17:20:04 -08:00
Jm Casler
f1ef1eeaff Add monitor & upload for mac (commented out) 2021-12-02 17:19:21 -08:00
Jm Casler
1175c981c0 Update generated protos for S&F 2021-12-02 17:16:39 -08:00
Jm Casler
1d3387466f Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device 2021-12-02 16:44:14 -08:00
Jm Casler
fcccddc4ad updating proto submodule to latest 2021-12-02 16:44:00 -08:00
Jm Casler
be44fa11b1 Merge pull request #944 from mc-hamster/StoreAndForward
Store and forward
2021-12-02 11:50:57 -08:00
Jm Casler
de104a2707 Merge branch 'master' into StoreAndForward 2021-12-02 09:27:42 -08:00
Ben Meadors
9d019c1a99 Adding batch script for generating uf2 files for NRF boards (#945)
* Updated generated protos

* Added uf2-converter batch for windows machines
2021-12-02 10:19:25 -06:00
Jm Casler
11d954422b Merge branch 'meshtastic:master' into StoreAndForward 2021-12-01 17:58:51 -08:00
Jm Casler
f4d348173c Refresh node info to ensure our information is current for smart position. #934 2021-12-01 17:56:47 -08:00
Jm Casler
79eb5546a1 Merge pull request #943 from mc-hamster/StoreAndForward
Little update to #934
2021-12-01 17:24:37 -08:00
Jm Casler
4f10ab8d04 Little update to #934
updated lastGpsSend
2021-12-01 17:24:01 -08:00
Solanaceae
ab0a06e536 Raising currentLimit for SX1262 2021-11-30 17:56:19 -07:00
Jm Casler
59ef28dfa7 updating proto submodule to latest 2021-11-29 21:43:46 -08:00
Jm Casler
d87106900b Merge pull request #942 from mc-hamster/OneButton
Upgrade to OneButton 2.0.3 #941
2021-11-29 09:15:57 -08:00
Jm Casler
241325d245 Upgrade to OneButton 2.0.3 #941 2021-11-29 09:09:25 -08:00
Jm Casler
0118f3991a Merge pull request #937 from Hydra-Designs/master
Automatic screen carousel behavior implementation (auto_screen_carousel_secs user preference)
2021-11-29 08:56:53 -08:00
Ben Meadors
2a617ba7b2 Upstream proto addition 2021-11-29 10:05:32 -06:00
Ben Meadors
bbf3091889 Merge branch 'master' into master 2021-11-29 09:58:16 -06:00
Jm Casler
5199b4d3c7 Merge pull request #924 from rxt1077/issue-919
ACK retried want_ack packets #919
2021-11-29 07:06:11 -08:00
Ben Meadors
99d35b175c Merge remote-tracking branch 'upstream/master' 2021-11-29 07:02:56 -06:00
Jm Casler
98d0907f4d Merge branch 'master' into issue-919 2021-11-28 22:36:41 -08:00
Jm Casler
5f6d97151c Merge pull request #940 from mc-hamster/StoreAndForward
Fix for: Wifi admin mode no longer works #939
2021-11-28 22:16:13 -08:00
Jm Casler
8cefa82ff1 Merge branch 'meshtastic:master' into StoreAndForward 2021-11-28 21:57:02 -08:00
Jm Casler
623b846713 Fix for: Wifi admin mode no longer works #939
Fix for: Wifi admin mode no longer works #939
2021-11-28 21:56:34 -08:00
Jm Casler
e791a5aa2f Merge branch 'master' into issue-919 2021-11-28 20:13:56 -08:00
Jm Casler
82332c9cd0 Merge pull request #938 from mc-hamster/StoreAndForward
Changes for S&F and Smart Positioning #934
2021-11-28 20:13:18 -08:00
Jm Casler
d5506bb33c Cleanup (Comments & Formatting) of S&F and PrositionPlugin.cpp 2021-11-28 19:41:34 -08:00
Jm Casler
937f67c4ec Check in partial work on S&F 2021-11-28 19:34:35 -08:00
Jm Casler
3ed4a1e3e1 Merge branch 'master' into StoreAndForward 2021-11-28 19:31:49 -08:00
Jm Casler
757de54a4f Merge pull request #935 from rxt1077/issue-927
#927 add SSL notification at boot
2021-11-28 19:30:29 -08:00
Jm Casler
5cf0b6b3b1 Merge branch 'StoreAndForward' of https://github.com/mc-hamster/Meshtastic-device into StoreAndForward 2021-11-28 19:27:54 -08:00
Jm Casler
809179ce0e Merge branch 'meshtastic:master' into StoreAndForward 2021-11-28 19:26:48 -08:00
Jm Casler
d7315778d6 Generated protos for S&F 2021-11-28 19:25:50 -08:00
Ben Meadors
69a2029ade Removed unnecessary debug print 2021-11-27 09:29:39 -06:00
Ben Meadors
7a649e3fc3 Regen protobufs from upstream 2021-11-27 09:16:26 -06:00
Ben Meadors
f019151e3f auto_screen_carousel_secs behavior implementation 2021-11-27 09:11:58 -06:00
Jm Casler
88fd671880 Tweaking values of Smart Position #934
Tweaking values of Smart Position #934
2021-11-26 21:26:36 -08:00
Jm Casler
d72c091ead Merge branch 'master' into issue-927 2021-11-26 19:50:40 -08:00
Jm Casler
3ec508169a Implementation of smart positioning #934
Initial check in for https://github.com/meshtastic/Meshtastic-device/issues/934
2021-11-26 19:12:00 -08:00
Jm Casler
1775770e54 Merge pull request #936 from mc-hamster/StoreAndForward
Update protobufs with the latest from meshtastic-protobufs
2021-11-26 19:09:53 -08:00
Jm Casler
f6fde55363 Update protobufs with the latest from meshtastic-protobufs 2021-11-26 18:25:08 -08:00
Jm Casler
e548de3c88 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device 2021-11-26 18:14:45 -08:00
Jm Casler
f75aac8ebf updating submodule to latest 2021-11-26 18:13:21 -08:00
Sacha Weatherstone
bc311ac9f6 Merge branch 'master' into issue-927 2021-11-27 08:59:22 +11:00
Sacha Weatherstone
d4c6007047 Merge pull request #932 from joarSv/feature/define-battery-pin-tlorav1
Define battery pin
2021-11-27 08:58:33 +11:00
Ryan Tolboom
c5f210384f add SSL notification at boot 2021-11-26 15:09:16 -05:00
Joar Svensson
d685682dd9 Define battery pin 2021-11-26 13:28:20 +01:00
Ryan Tolboom
e31f9b6e5e Merge branch 'master' into issue-919 2021-11-24 17:06:34 -05:00
Jm Casler
a56851fefa Trying again with .47 2021-11-23 12:41:51 -08:00
Jm Casler
0fc88c542f Reverting version to 47
I can't get git push root to work. Don't know why.
2021-11-23 12:39:48 -08:00
Jm Casler
16307cb67d 47c 2021-11-23 12:17:26 -08:00
Jm Casler
9f05bd11cc Update to .47b 2021-11-23 12:14:28 -08:00
Jm Casler
4b6ee2dc88 Update version to 1.2.47 2021-11-23 11:48:53 -08:00
Ryan Tolboom
a0d829a91e Merge branch 'master' into issue-919 2021-11-23 13:36:09 -05:00
Jm Casler
dbabc24d7a Merge pull request #921 from thebentern/ignore-phone-messages-screen
Ignore messages originating from phone on screen
2021-11-23 09:52:11 -08:00
Ryan Tolboom
e3ee3c411c Merge branch 'master' into issue-919 2021-11-22 23:08:06 -05:00
Jm Casler
d3e1bbf355 Merge branch 'master' into ignore-phone-messages-screen 2021-11-22 19:46:55 -08:00
Jm Casler
2fa2497ed8 Merge pull request #918 from osmanovv/llcc68
[LLCC68] module support
2021-11-22 19:46:31 -08:00
Jm Casler
a5727052bc Merge branch 'master' into llcc68 2021-11-22 19:25:52 -08:00
Jm Casler
083518c127 Merge branch 'master' into ignore-phone-messages-screen 2021-11-22 19:23:42 -08:00
Ryan Tolboom
c36b233c49 ACK retried want_ack packets 2021-11-22 21:31:12 -05:00
Jm Casler
bc7fc1285d Merge pull request #923 from mc-hamster/StoreAndForward
Store and forward - First public release!!
2021-11-22 18:11:21 -08:00
Jm Casler
9ddcc5d2ed S&F Pre-Alpha. Functional. No crashes (I hope). 2021-11-22 17:47:42 -08:00
Jm Casler
a3ce728e26 Move SerialPlugin to plugins/esp32 2021-11-22 13:18:49 -08:00
Jm Casler
cf0d9a2c86 Merge pull request #91 from mc-hamster/master
Move Serial Plugin to new location
2021-11-22 13:17:01 -08:00
Jm Casler
ec7953ccf0 Rename src/plugins/SerialPlugin.h to src/plugins/esp32/SerialPlugin.h 2021-11-22 13:15:50 -08:00
Jm Casler
44a4bde626 Rename src/plugins/SerialPlugin.cpp to src/plugins/esp32/SerialPlugin.cpp 2021-11-22 13:15:36 -08:00
Ben Meadors
5db0a57599 Ignore messages originating from phone on screen 2021-11-21 18:44:08 -06:00
Jm Casler
834f2f4160 Updates to S&F (this one doesn't work) 2021-11-21 14:43:47 -08:00
Jm Casler
4367f05b24 Applied code formatters. 2021-11-20 21:57:21 -08:00
Jm Casler
97aec5f125 Remove comments from SF 2021-11-20 21:35:13 -08:00
Jm Casler
5191fd6475 Initial demonstrable build 2021-11-20 21:21:11 -08:00
Jm Casler
32017e53f5 Formatting applied 2021-11-18 09:36:39 -08:00
Jm Casler
37aab8a42b Able to store and forward, but packets are corrupt 2021-11-18 09:35:05 -08:00
Vladislav Osmanov
bfa0307231 LLCC68 doesn't support SF12 neither the "Long Slow" channel 2021-11-18 14:46:04 +03:00
Vladislav Osmanov
8eb0d685ac [LLCC68] module support 2021-11-17 13:28:08 +03:00
Jm Casler
43e543eabc Merge pull request #89 from meshtastic/master
Update meshtastic from head
2021-11-14 18:34:38 -08:00
Sacha Weatherstone
eee6ef018c Merge pull request #917 from thebentern/add-always-powered-preference
Added is_always_powered preference
2021-11-12 01:08:39 +11:00
Sacha Weatherstone
f7da9ac071 Merge branch 'master' into add-always-powered-preference 2021-11-11 13:50:13 +11:00
Sacha Weatherstone
928198ff03 Merge pull request #915 from jacky4566/master
Add firmware update links
2021-11-11 13:49:39 +11:00
Jm Casler
0cd82507d9 Merge pull request #88 from meshtastic/master
update from head
2021-11-10 16:47:42 -08:00
Ben Meadors
2d939d26ee Renamed to is_always_powered for convention 2021-11-06 12:11:22 -05:00
Ben Meadors
d6c7ea921a Added always_powered preference 2021-11-06 10:03:10 -05:00
Jackson Wiebe
19f43689ca Merge pull request #1 from jacky4566/patch-1
Patch 1
2021-11-05 20:50:22 -06:00
Jackson Wiebe
e78e82ef42 Update README.md 2021-11-05 20:49:40 -06:00
Jackson Wiebe
fdfc600b3d Add links for update procedure
Had to reach out to discord for update instructions when they are located on the website. Adding link here for clarity.
2021-11-05 20:47:33 -06:00
Sacha Weatherstone
334e14ea4d Merge pull request #914 from a-f-G-U-C/admin-set-team
set Team field via Admin plugin
2021-11-03 06:53:11 +11:00
a-f-G-U-C
8115ee0c97 set Team field via Admin plugin 2021-11-02 13:27:56 +00:00
Sacha Weatherstone
e21cc9d479 Merge pull request #913 from Solarvortx/master
Small fix for using 62.5Khz bandwidth setting.
2021-11-02 17:29:34 +11:00
Solanaceae
d5e4ceebcc Small fix for using 62.5Khz bandwidth setting. 2021-11-01 02:31:53 -07:00
Sacha Weatherstone
51646f28ec Merge pull request #908 from a-f-G-U-C/owner-update
fix owner name update issue (off #900)
2021-10-30 13:42:25 +11:00
Sacha Weatherstone
2c5ba29648 Merge branch 'master' into owner-update 2021-10-30 10:13:10 +11:00
Sacha Weatherstone
41bed5c14d Merge pull request #902 from a-f-G-U-C/ublox-filter-dop-fix
implement fix2D and max DOP user settings
2021-10-30 10:12:36 +11:00
a-f-G-U-C
5ef9414a25 fix owner name update issue (off #900) 2021-10-29 13:28:48 +00:00
a-f-G-U-C
2ebed9cb6c update protobufs to 61bc1d0 2021-10-29 13:13:26 +00:00
a-f-G-U-C
7a1409c42a Merge branch 'master' into ublox-filter-dop-fix 2021-10-28 13:03:01 +00:00
Sacha Weatherstone
093e3e55b9 Merge pull request #906 from a-f-G-U-C/fix900-part2
further fixes for issue 900
2021-10-28 23:34:18 +11:00
a-f-G-U-C
a911515dec clean up old data during fix transition 2021-10-28 11:58:08 +00:00
a-f-G-U-C
7ecb36dbe7 Merge branch 'meshtastic:master' into ublox-filter-dop-fix 2021-10-28 11:56:11 +00:00
a-f-G-U-C
d4ea18851d update for RX_SRC_USER 2021-10-28 11:33:32 +00:00
a-f-G-U-C
646d1caf66 updatePosition process time-only message 2021-10-28 11:31:19 +00:00
a-f-G-U-C
74c138620a revert sanity check from PR 898 2021-10-28 11:25:45 +00:00
Jm Casler
3981d2e1f6 Fix for #874 - RangeTest Plugin header fields swapped for elevation and SNR (#904)
Fix for #874 - RangeTest Plugin header fields swapped for elevation and SNR
2021-10-28 15:46:20 +11:00
Jm
6ccaa64ae8 Merge branch 'master' of https://github.com/mc-hamster/Meshtastic-device 2021-10-27 20:05:51 -07:00
Jm
5dd9610d36 Fix for #874 - RangeTest Plugin header fields swapped for elevation and SNR
Fix for #874 - RangeTest Plugin header fields swapped for elevation and SNR
2021-10-27 20:05:33 -07:00
Jm Casler
d4ed7b2f73 Merge pull request #87 from meshtastic/master
Update my fork from head
2021-10-27 19:59:30 -07:00
Jm
9702dffa12 Update proto 2021-10-27 19:57:37 -07:00
Kevin Hester
e2992cd3b9 Merge branch 'master' into ublox-filter-dop-fix 2021-10-28 10:41:03 +08:00
Kevin Hester
4e5ac1ac07 Merge pull request #901 from a-f-G-U-C/rx-src-user
add the user as distinct message source - fixing #900
2021-10-28 10:40:51 +08:00
a-f-G-U-C
e89b3bd1ec implement fix2d and max DOP user settings 2021-10-27 13:30:39 +00:00
a-f-G-U-C
da9dd62a33 add the user as distinct message source 2021-10-27 13:16:51 +00:00
Sacha Weatherstone
e6b4ee8084 Merge pull request #893 from joarSv/feature/environmental-ds18b20-sensor-support
Add support for DS18B20 temperature sensor
2021-10-27 13:54:57 +11:00
Sacha Weatherstone
0133a1b293 Merge branch 'master' into feature/environmental-ds18b20-sensor-support 2021-10-27 10:23:40 +11:00
Sacha Weatherstone
543283c0f6 Merge pull request #898 from a-f-G-U-C/inpos-selfrej-nicelog
better sanity check, logging of inbound positions
2021-10-27 10:21:20 +11:00
Sacha Weatherstone
6d778cdda4 Merge branch 'master' into inpos-selfrej-nicelog 2021-10-27 06:42:13 +11:00
Sacha Weatherstone
3ffcecee6c Merge pull request #897 from a-f-G-U-C/nodedb-updatepos-atomic
implement RX_SRC_LOCAL, Position in updatePosition
2021-10-27 06:38:33 +11:00
a-f-G-U-C
24b2fd2657 better sanity check, logging of inbound positions 2021-10-26 12:41:44 +00:00
a-f-G-U-C
b74c2da530 implement RX_SRC_LOCAL, Position in updatePosition 2021-10-26 12:22:34 +00:00
Kevin Hester
26415cf8e0 Merge branch 'master' into feature/environmental-ds18b20-sensor-support 2021-10-26 02:36:50 +08:00
Sacha Weatherstone
2f7b58abaf Merge pull request #896 from a-f-G-U-C/gps-use-pos-struct
use Position struct for GPS data
2021-10-25 07:41:09 +11:00
a-f-G-U-C
ef1d52ca04 update log message, sanity check 2021-10-24 13:02:31 +00:00
a-f-G-U-C
f69c8dddad update MeshService to use Position struct 2021-10-24 12:48:48 +00:00
a-f-G-U-C
70b80e600d use Position struct for GPS data 2021-10-24 12:38:35 +00:00
Joar Svensson
90d95d8e98 Merge branch 'master' into feature/environmental-ds18b20-sensor-support 2021-10-24 11:36:10 +02:00
a-f-G-U-C
7d267e8027 update GPSStatus to use Position struct atomically (#885) 2021-10-24 11:36:18 +11:00
a-f-G-U-C
0d884d159a implement position packet optional fields (#892) 2021-10-24 11:10:36 +11:00
a-f-G-U-C
3893810b76 fix a positional timestamp reading bug (#886)
* fix a positional timestamp reading bug

* lying about fixType is no longer required
2021-10-24 10:31:44 +11:00
Joar Svensson
fff4735a15 Add support for DS18B20 temperature sensor 2021-10-23 21:10:25 +02:00
a-f-G-U-C
a914ee133c fix a rare GPS data corruption condition (#890)
* fix a rare GPS data corruption condition

* don't use hasLock to determine validity
2021-10-23 14:21:59 +11:00
a-f-G-U-C
d0fb363422 discriminate local/remote node position updates (#889) 2021-10-23 12:58:56 +11:00
a-f-G-U-C
992bbe76d7 add backward compatible position flag defaults (#884) 2021-10-23 12:12:53 +11:00
syund
6fc3c9c868 Inline pow_neg - removes build warning (#891) 2021-10-23 11:40:43 +11:00
Kevin Hester
4fb844bddd Merge pull request #869 from geeksville/dev
new release
2021-10-16 01:45:51 +08:00
Kevin Hester
dce2fe43a5 1.2.46 2021-10-15 10:21:42 -07:00
Kevin Hester
d54dad4225 update protobufs 2021-10-15 10:21:42 -07:00
Kevin Hester
91f4e17037 fix build for my hacked up nrf52 devboard (must use SD140) 2021-10-15 10:21:42 -07:00
Kevin Hester
c597cd4a17 regen protos 2021-10-15 10:21:42 -07:00
Kevin Hester
08d8e764d7 bl602 notes 2021-10-15 10:21:42 -07:00
Kevin Hester
e626edeffa todo update 2021-10-15 10:21:42 -07:00
Kevin Hester
f9c3797397 Merge pull request #883 from osmanovv/fix-variants-radio-declaration
Fix radio module declaration for `NRF52_SERIES` in `variant.h`-files
2021-10-16 01:21:23 +08:00
Kevin Hester
8e45c5ecd7 Merge pull request #882 from ducky64/techofix
Fix for T-echo to not have Critical Error #3 on startup
2021-10-16 01:20:53 +08:00
Османов Владислав Юрьевич
76791220b9 Fix radio module declaration for NRF52_SERIES in variant.h-files 2021-10-14 16:16:20 +03:00
Richard Lin
a76e7c79e6 Fix for T-echo to not have Critical Error #3 on startup 2021-10-13 22:19:50 -07:00
Kevin Hester
83eb94126b Merge pull request #870 from osmanovv/meshtastic-diy
[Meshtastic DIY v1]
2021-10-12 23:41:29 +08:00
Kevin Hester
0a529dcaac Merge branch 'master' into meshtastic-diy 2021-10-12 23:18:17 +08:00
Kevin Hester
128a481259 Merge pull request #871 from claesg/master
Low battery level counter for NRF52
2021-10-12 23:12:36 +08:00
Vladislav Osmanov
87ef15d371 Merge branch 'master' into meshtastic-diy 2021-10-12 15:23:30 +03:00
Kevin Hester
9679861b56 Merge branch 'master' into master 2021-10-12 11:58:52 +08:00
Kevin Hester
3a2120391e Merge pull request #872 from osmanovv/fix-plugin-return-type
Plugins refactoring: `handleReceived` return enumeration `ProcessMessage`
2021-10-12 11:58:33 +08:00
Kevin Hester
3d197d732c Merge branch 'master' into fix-plugin-return-type 2021-10-12 09:15:34 +08:00
Kevin Hester
5d6fc6d63e Merge branch 'master' into master 2021-10-12 09:14:18 +08:00
Kevin Hester
40505a23dc Merge pull request #881 from sachaw/master
Web server changes to support frontend
2021-10-12 09:13:18 +08:00
Kevin Hester
31e833ec59 Merge branch 'master' into master 2021-10-12 08:53:14 +08:00
Kevin Hester
2e65f577d8 Merge pull request #876 from syund/875-Create-geo-coordinates-class
[875] create geo coordinates class
2021-10-12 08:52:44 +08:00
Kevin Hester
89cd3fd73a Merge branch 'master' into 875-Create-geo-coordinates-class 2021-10-12 08:34:03 +08:00
Kevin Hester
9ef55e03be Merge pull request #880 from a-f-G-U-C/issue-879
issue 879 - discriminate between mesh and local messages
2021-10-12 08:32:11 +08:00
Sacha Weatherstone
930de64bcd Merge branch 'master' of github.com:sachaw/meshtastic-device 2021-10-11 12:31:16 +11:00
Sacha Weatherstone
5c0a76ae46 Reverte seperate Generate204 function 2021-10-11 12:27:10 +11:00
Sacha Weatherstone
df26f9ac51 Merge branch 'meshtastic:master' into master 2021-10-11 00:11:25 +11:00
Sacha Weatherstone
14e36f0a2b Web server changes to support frontend 2021-10-11 00:11:04 +11:00
Sam
96f4998d11 Add functionality for converting lat lon to bearing range and back 2021-10-09 15:03:21 -04:00
Sam
4a98bdd9d6 Move bearing under GeoCoord 2021-10-09 13:31:27 -04:00
Sam
796e8c836a Move latLongtoMeter under GeoCoord 2021-10-09 13:28:51 -04:00
Sam
7081868143 Spelling fixes. Thanks a-f-G-U-C! 2021-10-09 13:17:23 -04:00
Sam
ce7aae9ca0 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device into 875-Create-geo-coordinates-class 2021-10-09 13:11:16 -04:00
a-f-G-U-C
1e455ac4c3 issue 879 - add opt-in flag for plugins 2021-10-09 14:02:21 +00:00
a-f-G-U-C
4669e4713c oops 2021-10-09 14:00:14 +00:00
a-f-G-U-C
26330120ce oops 2021-10-09 13:59:54 +00:00
a-f-G-U-C
c3ebe80f53 issue 879 - add opt-in flag for plugins 2021-10-09 13:57:56 +00:00
a-f-G-U-C
5eb2e6401f issue 879 - changes to Router.cpp 2021-10-09 13:54:42 +00:00
a-f-G-U-C
ee9c72b8c7 issue 879 - define source types 2021-10-09 13:48:30 +00:00
Sacha Weatherstone
dc436a3cc9 Bundle WebUI (#878)
* Bundle WebUI

* Include release workflow
2021-10-09 17:15:12 +11:00
Sacha Weatherstone
99357e427b Include release workflow 2021-10-09 16:44:00 +11:00
Sacha Weatherstone
8bbcdaa951 Bundle WebUI 2021-10-09 15:56:30 +11:00
Vladislav Osmanov
92edfd3217 fix: GPS RX/TX pins mismatch 2021-10-08 21:17:05 +03:00
Sam
aa936ade7e Use geoCoord object to draw altitude 2021-10-03 16:01:41 -04:00
Sam
bf695a5f36 Use GeoCoord class in Screen.cpp 2021-10-03 15:52:46 -04:00
Sam
91bc051e6d Create GeoCoord class 2021-10-03 15:52:09 -04:00
Vladislav Osmanov
bc7d1a4ef0 redefine GPS TX pin for DIY schematic 2021-09-25 00:28:01 +03:00
Vladislav Osmanov
debae67ae7 Plugins refactoring: handleReceived return enumeration ProcessMessage
Use `ProcessMessage::CONTINUE` to allows other modules to process a message.
Use `ProcessMessage::STOP` to stop further message processing.
2021-09-23 04:42:09 +03:00
claes
28e851c3fd Low battery level counter for NRF52
Added a counter that counts low battery level detections.
If there are 4 in a row we go to deep sleep.
The battery sense on the RAK4631 seems to be a bit unstable and may
generate  'false' low voltage readings.
My RAK4631 has been running for 7 days now with this fix.
It did 3 days without it.
I still do not have a T-Echo so on that board IT IS NOT TESTED.
(But I hope it will improve things there too)
2021-09-19 16:00:10 +02:00
Vladislav Osmanov
c61bfae785 update protos 2021-09-19 16:26:39 +03:00
Vladislav Osmanov
e3d9b94367 New device board - [Meshtastic DIY v1] by @NanoVHF Schematic based on ESP32-WROOM-32 (38 pins) devkit & EBYTE E22 SX1262/SX1268 module
Subproject reference: https://github.com/NanoVHF/Meshtastic-DIY
2021-09-19 16:05:21 +03:00
Kevin Hester
b182819aff Merge pull request #862 from a-f-G-U-C/HAE-MSL-banner
Indicate HAE/MSL mode on startup
2021-09-18 16:27:39 -07:00
Kevin Hester
a1b37d3407 Merge branch 'master' into HAE-MSL-banner 2021-09-18 15:59:54 -07:00
Kevin Hester
b3777ef6f0 Merge pull request #864 from a-f-G-U-C/sanitize-course-value
input sanitization - TinyGPS course
2021-09-18 15:59:43 -07:00
Kevin Hester
d54fecca4e Merge branch 'master' into sanitize-course-value 2021-09-18 15:38:00 -07:00
Kevin Hester
0f14ed0a6c Merge pull request #867 from syund/Show-fixed-GPS-coordinates-on-screen
[866] Show fixed coordinates on screen and indicate fixed GPS
2021-09-18 15:37:41 -07:00
Kevin Hester
b3012b7ee5 Merge branch 'master' into Show-fixed-GPS-coordinates-on-screen 2021-09-18 14:44:10 -07:00
Kevin Hester
2f7e200bef Merge pull request #865 from osmanovv/sx1268-support
SX1268 module support and base class for SX126x module family
2021-09-18 14:43:55 -07:00
Vladislav Osmanov
16d2c565e8 Use EU433 frequency value as default for SX1268 2021-09-18 21:39:29 +03:00
Sam
a74f038cba [866] Show fixed coordinates on screen and indicate when using fixed coordinates. 2021-09-15 18:58:09 -04:00
Vladislav Osmanov
bd9bf585d3 save channel & freq before outputting them for debugging
The frequency could be overridden in `RadioInterface::getFreq()` for some modules.
2021-09-15 12:09:11 +03:00
Vladislav Osmanov
56dd3eab23 use common param name SX126X_ANT_SW instead of the SX1262_ANT_SW 2021-09-14 12:25:25 +03:00
Vladislav Osmanov
cb42440963 fix module frequency overriding
The `RadioInterface::freq` member was encapsulated with the `RadioInterface::getFreq()` function,
which could be overridden in child classes for some LoRa-modules.
2021-09-13 22:13:51 +03:00
Vladislav Osmanov
da61090dc5 fix: need to check USE_SX1262 and USE_SX1268 as they are using the same pinouts 2021-09-12 13:58:56 +03:00
Vladislav Osmanov
098f38fb83 New base class for SX126x modules. Added new SX1268 module support. 2021-09-12 00:35:16 +03:00
a-f-G-U-C
c442fd3886 input sanitization - TinyGPS course()
Reduce the impact of issue #863 (and similar issues in the future) by filtering out obvious bogons
2021-09-10 15:12:12 +00:00
Vladislav Osmanov
00bf7879af SX1268 frequency initialization regardless of the region
Otherwise, we get critical error 3 with result code -12 (ERR_INVALID_FREQUENCY):
The supplied frequency value is invalid for this module.
2021-09-09 23:55:36 +03:00
Vladislav Osmanov
2ba68c9b6e added SX1268 module adapter 2021-09-09 23:55:36 +03:00
Vladislav Osmanov
2e48b88113 Merge branch 'meshtastic:master' into master 2021-09-09 23:33:16 +03:00
a-f-G-U-C
a2f06cb077 Display HAE/MSL mode on startup 2021-09-09 14:12:37 +00:00
Kevin Hester
b9443d87aa Merge pull request #850 from osmanovv/radiolib-sync-upstream
Radiolib sync upstream
2021-09-08 14:45:36 -07:00
Kevin Hester
e351f35cf2 Merge branch 'master' into radiolib-sync-upstream 2021-09-08 14:08:25 -07:00
Kevin Hester
be9d637c7c update platformio.ini to pull in latest RadioLib (with portduino fixes) 2021-09-08 14:08:02 -07:00
Kevin Hester
42986c852a Merge pull request #861 from a-f-G-U-C/NMEA-GPS-fixes
fixes from PR #851, #858 ported to NMEA GPS
2021-09-08 13:56:47 -07:00
a-f-G-U-C
de712ce41a disable debug code 2021-09-08 14:26:21 +00:00
a-f-G-U-C
f6f9b9cd03 fixes from PR #851, #858 ported to NMEA GPS
apply fixes and upgrades from PR #851, #858 to NMEA GPS code
2021-09-08 14:02:13 +00:00
Vladislav Osmanov
1a671f2877 override new RadioLib's default current limit value (60 mA) to the previous value of 100mA 2021-09-08 14:30:52 +03:00
Kevin Hester
6f763c6418 Merge pull request #858 from a-f-G-U-C/ublox-gps-fixes
UBlox GPS fixes
2021-09-06 17:47:11 -07:00
Vladislav Osmanov
3eb20d3bd1 Merge branch 'meshtastic:master' into master 2021-09-06 09:46:17 +03:00
a-f-G-U-C
1c06c2af9f read lat/lon/alt into temp vars instead of global
Instead of reading the GPS solution directly into global variables and risking a bad-over-good overwrite (issue #857), read it into temporary vars and only update global vars after validation.
Also updates positional timestamp variable and prepares (non-breaking) for HAE altitude support (issue #359)
2021-09-05 17:11:04 +00:00
a-f-G-U-C
eb27e744f7 add positional timestamp and geoidal separation
Relevant to issues #842 and #843 (timestamp) and historical issues #392 and #359 (timestamp, geoidal)
2021-09-05 15:10:06 +00:00
Kevin Hester
c8269d67c3 Merge branch 'master' into radiolib-sync-upstream 2021-09-04 18:07:55 -07:00
Kevin Hester
21f3cc6f7a Merge pull request #851 from a-f-G-U-C/virtual-haslock
allow GPS modules to redefine GPS::hasLock()
2021-09-04 18:07:28 -07:00
Kevin Hester
e3ed637942 reference the updated radilib sha256 2021-09-04 18:06:23 -07:00
Kevin Hester
ccb4596299 Merge branch 'master' into radiolib-sync-upstream 2021-09-04 17:35:34 -07:00
Kevin Hester
2741de90e5 Merge branch 'master' into virtual-haslock 2021-09-04 17:34:41 -07:00
Kevin Hester
adc51519fd Merge pull request #855 from srichs/gps-coordinate-formats
Added OLC and OS grid ref coordinates
2021-09-04 17:31:52 -07:00
srichs
72e22b6744 Added OLC and OS grid ref protobufs 2021-09-04 01:31:29 -06:00
srichs
030d09740c Merge branch 'gps-coordinate-formats' of https://github.com/srichs/Meshtastic-device into gps-coordinate-formats 2021-09-04 01:19:32 -06:00
srichs
d381f091e9 Added OLC and OS grid ref, adjusted DMS display 2021-09-03 23:19:47 -06:00
Vladislav Osmanov
e7fa0ae38b Merge pull request #1 from osmanovv/radiolib-sync-upstream
Radiolib sync upstream
2021-09-03 11:31:47 +03:00
a-f-G-U-C
5cf1a87657 redefine hasLock() for UBlox GPS 2021-09-02 13:21:48 +00:00
a-f-G-U-C
25841c072a allow GPS modules to redefine GPS::hasLock() 2021-09-02 13:11:11 +00:00
Vladislav Osmanov
f40bd0745c The argument currentLimit was removed from the begin method
More info: jgromes/RadioLib@e1141ca#diff-507c32190e4a29ffe411c8eab06c75b594c5d2a5fd92e5cb703b787e5f019589L568
2021-09-02 16:10:45 +03:00
Vladislav Osmanov
fe3afaab3d Reflecting changes from upstream RadioLib in https://github.com/osmanovv/RadioLib/tree/upstream-merge
(252fe74d53)

The argument `currentLimit` was removed from the `begin` method:
e1141ca64c (diff-507c32190e4a29ffe411c8eab06c75b594c5d2a5fd92e5cb703b787e5f019589L568)
2021-09-02 16:10:44 +03:00
Kevin Hester
8a7a3ec668 Merge pull request #847 from a-f-G-U-C/a-f-G-U-C-ublox-power
disable gps powercycle for small gps_update_interval
2021-09-01 10:46:39 -07:00
Kevin Hester
f96d8bf645 Merge branch 'master' into a-f-G-U-C-ublox-power 2021-09-01 10:21:50 -07:00
Kevin Hester
b1b3d9df6e Merge pull request #848 from srichs/gps-coordinate-formats
GPS Coordinate Formats
2021-09-01 10:21:27 -07:00
srichs
29124c3416 Adjusted formatting for DMS 2021-08-30 19:23:50 -06:00
a-f-G-U-C
71951a4e6a fix a typo 2021-08-30 13:55:50 +00:00
a-f-G-U-C
8dbfd0f19b disable gps powercycle for small gps_update_interval 2021-08-30 13:45:42 +00:00
srichs
5c6355489f Changed gps coordinate formats to use sprintf() 2021-08-30 04:42:14 -06:00
srichs
8edac1f86c Added different gps coordinate formats for OLED 2021-08-30 01:17:18 -06:00
Kevin Hester
5fe3ec09de Merge pull request #840 from geeksville/dev
bugs
2021-08-18 12:35:49 -07:00
Kevin Hester
079843d777 add native build to bin zip 2021-08-18 11:10:20 -07:00
Kevin Hester
bd7171a7a2 1.2.45 2021-08-18 10:57:26 -07:00
Kevin Hester
eaa15076cd WIP debug logging over TCP 2021-08-18 10:31:30 -07:00
Kevin Hester
2fd74d8f47 cleanup ssl cert generation 2021-08-17 20:40:46 -07:00
Kevin Hester
0e91d39b27 don't shutdown bluetooth if we didn't start it 2021-08-17 20:40:13 -07:00
Kevin Hester
52d7a6b8e4 immediately reconnect to mqtt server on wifi reconnect 2021-08-17 19:59:56 -07:00
Kevin Hester
472e880280 fix race condition when starting web service 2021-08-17 17:04:09 -07:00
Kevin Hester
189889489b disable bluetooth while using wifi (esp32 drops networks otherwise) 2021-08-17 16:58:21 -07:00
Kevin Hester
0d758347af Fix rare assertion failure which could occur due to pending interrupts
* fix assertion failure
```
22:57:36 64409 [PositionPlugin] FIXME-update-db Sniffing packet
22:57:36 64409 [PositionPlugin] Delivering rx packet (id=0x5851f437 Fr0xa1 To0xff, WantAck0, HopLim3 Ch0x0 Portnum=3 rxtime=1628895456 priority=10)
22:57:36 64409 [PositionPlugin] Forwarding to phone (id=0x5851f437 Fr0xa1 To0xff, WantAck0, HopLim3 Ch0x0 Portnum=3 rxtime=1628895456 priority=10)
22:57:36 64409 [PositionPlugin] Update DB node 0x85f4da1, rx_time=1628895456
22:57:36 64409 [PositionPlugin] Plugin routing considered
22:57:36 64409 [PositionPlugin] Add packet record (id=0x5851f437 Fr0xa1 To0xff, WantAck0, HopLim3 Ch0x0 Portnum=3 rxtime=1628895456 priority=10)
22:57:36 64409 [PositionPlugin] Expanding short PSK #1
22:57:36 64409 [PositionPlugin] Installing AES128 key!
22:57:36 64409 [PositionPlugin] enqueuing for send (id=0x5851f437 Fr0xa1 To0xff, WantAck0, HopLim3 Ch0xb1 encrypted rxtime=1628895456 priority=10)
22:57:36 64409 [PositionPlugin] (bw=125, sf=12, cr=4/8) packet symLen=32 ms, payloadSize=22, time 2596 ms
22:57:36 64409 [PositionPlugin] txGood=6,rxGood=10,rxBad=0
22:57:36 64409 [PositionPlugin] AirTime - Packet transmitted : 2596ms
22:57:36 64409 [RadioIf] assert failed src/mesh/RadioLibInterface.cpp: 240, void RadioLibInterface::handleReceiveInterrupt(), test=isReceiving
```
2021-08-17 16:31:01 -07:00
Kevin Hester
3266d57cfb todo updates 2021-08-17 16:14:08 -07:00
Kevin Hester
f2c9c5553c Merge pull request #839 from geeksville/dev
bugs
2021-08-15 10:52:51 -07:00
Kevin Hester
bcdc42816b 1.2.44 2021-08-15 10:35:07 -07:00
Kevin Hester
b04e313665 minor debug output 2021-08-15 10:34:57 -07:00
Kevin Hester
700e799125 check our host PC using the new nrf52 api 2021-08-12 22:07:30 -07:00
Kevin Hester
a9f8080ee7 cope with race on available() vs read() found while looking at #838 2021-08-12 22:06:51 -07:00
Kevin Hester
9f450cb1c5 Merge pull request #837 from claesg/master
No SuperDeepSleep for RAK4631 and T-Echo
2021-08-12 17:01:28 -07:00
Kevin Hester
388f19da79 Merge branch 'master' into master 2021-08-12 16:32:52 -07:00
Kevin Hester
4f11598112 Merge pull request #831 from geeksville/dev
bugs
2021-08-12 16:32:37 -07:00
Kevin Hester
bcb54b643f Merge branch 'master' into dev 2021-08-12 16:09:30 -07:00
Kevin Hester
04d3f44179 Updates to work with latest adafruit nrf52 arduino 2021-08-12 15:50:54 -07:00
claes
5110a6de82 Battery sense for T-Echo
Copied battery stuff from RAK4631 to T-Echo
I got the voltage divider figures for T_Echo from SoftRF at
https://github.com/lyusupov/SoftRF/blob/master/software/firmware/source/SoftRF/src/platform/nRF52.h

I dont have a T-Echo so this code
HAS NOT BEEN TESTED
2021-08-10 10:07:40 +02:00
claes
04c5ac0d7c Voltage and sleep fix for NRF52
Dont let the NRF52 go to SDS Super Deep Sleep
Show bat percentage on NRF52 when above 4210 mV
2021-08-10 09:23:26 +02:00
Kevin Hester
6d2cd73599 show a max of four node screens in the scrolling list 2021-08-04 09:10:34 -07:00
Kevin Hester
057b04a88a treat RECEIVED_PACKET like PACKET_FOR_PHONE 2021-08-02 22:07:39 -07:00
Kevin Hester
28af18389b If MQTT connected don't let the board enter LS state 2021-08-02 21:34:14 -07:00
Kevin Hester
2af4c619e1 fix #801 (I think) we were sometimes dropping packets in light sleep
Because of failure to enter the NB state packets were not getting queued
for sending.
2021-08-02 21:07:32 -07:00
Kevin Hester
99d529be51 While connected to MQTT server, veto light-sleep (to keep wifi working) 2021-08-02 17:42:44 -07:00
Kevin Hester
39df7108a8 fix wifi hang when bad password used, cleanup wifi in general 2021-08-02 11:28:57 -07:00
Kevin Hester
72807f0fa0 CSE to cleanup mqtt addr setting 2021-08-02 10:50:55 -07:00
Kevin Hester
2fe11d4fe8 don't break strict-aliasing rules 2021-08-02 10:50:28 -07:00
Kevin Hester
596befff74 Fix invalid heap reference fixed by @flux242 2021-08-02 10:41:31 -07:00
Kevin Hester
b2524ceaff Merge pull request #830 from dmitryelj/master
USE_SH1106 compilation error fix
2021-08-01 14:06:42 -07:00
Kevin Hester
5f323e8bd1 fix leakage of wifi password reported by @vodkin 2021-08-01 12:58:23 -07:00
Kevin Hester
d40b66beac Allow plugins to write to the parsed protobuf (minimizes copies in some cases) 2021-08-01 12:58:23 -07:00
Dmitrii Eliuseev
afa12d6e87 USE_SH1106 error fix
Fix for USE_SH1106 compilation error
2021-08-01 20:15:02 +02:00
Kevin Hester
676a6f3bea Merge pull request #829 from audunf/mesh-packet-queue-priority
Drop lower priority packets when tx queue is full.
2021-08-01 10:40:13 -07:00
Audun Foyen
bf0b598908 Include <algorithm> - required for 'lower_bound' 2021-07-31 21:56:31 +02:00
Audun Foyen
8a79663fa0 Drop lower priority packets when tx queue is full.
Track packet pointers in vector. Priority maintained using: push_heap, pop_heap, make_heap, and sort_heap.
2021-07-31 21:42:48 +02:00
Kevin Hester
564262e75b Merge pull request #824 from geeksville/dev
1.2.43
2021-07-27 03:05:28 +08:00
Kevin Hester
a405d81c46 1.2.43 2021-07-26 10:26:53 -07:00
Kevin Hester
aac3143745 Merge remote-tracking branch 'mine/dev' into dev
# Conflicts:
#	version.properties
2021-07-26 10:14:46 -07:00
Kevin Hester
bb396508a4 Merge pull request #822 from audunf/issue-108
Track recent packets in unordered_set
2021-07-26 04:53:13 +08:00
Kevin Hester
810740b156 Merge branch 'master' into issue-108 2021-07-26 04:31:05 +08:00
Kevin Hester
19ffddb02e Merge pull request #819 from thebentern/patch-1
Convert MQTT server user preference to hostname:port
2021-07-26 04:30:52 +08:00
Kevin Hester
5826c52242 Merge branch 'master' into issue-108 2021-07-26 04:23:33 +08:00
Kevin Hester
a6904105f7 Merge branch 'master' into patch-1 2021-07-26 04:08:08 +08:00
Kevin Hester
da8ab82126 Merge pull request #823 from claesg/master
Fix for reading battery level on RAK-4631
2021-07-26 04:07:00 +08:00
claes
978bb7aa8b Fix for build error on T-Echo 2021-07-25 19:37:00 +02:00
claes
32fea4cbd7 Fix for reading battery level on RAK-4631
Build tested on RAK4631 with battery and their solar panel box.
This is from the log:
17:40:30 102 [Power] Battery: usbPower=0, isCharging=0, batMv=4164, batPct=96
Note that mV reading and Pct is ok.
It does not detect being connected to USB and charging.

Also tested on TBEAM where it seems to be ok.

There still seems to be a problem with the FW for this board that it goes to
sleep for ever after running for a few hours.
2021-07-25 18:25:11 +02:00
claes
6e136b9796 Fix for reading battery level on RAK-4631
Build tested on RAK4631 with battery and their solar panel box.
This is from the log:
17:40:30 102 [Power] Battery: usbPower=0, isCharging=0, batMv=4164, batPct=96
Note that mV reading and Pct is ok.
It does not detect being connected to USB and charging.

Also tested on TBEAM where it seems to be ok.

There still seems to be a problem with the FW for this board that it goes to
sleep for ever after running for a few hours.
2021-07-24 19:47:57 +02:00
Audun Foyen
986d44873a Issue-108. Track recent packets in unordered_set
Check individual packets seen recently for expiry - and purge.
Otherwise - only scan all of recentPackets for expired once
fill > 75% (of MAX_NUM_NODES).
2021-07-20 21:19:35 +02:00
Sacha Weatherstone
2e1746ca0f Merge pull request #820 from meshtastic/sachaw-patch-1
Update README.md
2021-07-09 13:56:15 +10:00
Sacha Weatherstone
863b60277b Update README.md 2021-07-09 13:36:37 +10:00
Ben Meadors
035f25190b Handle MQTT host string with port omitted 2021-07-02 07:47:12 -05:00
Ben Meadors
3ea03dadb5 Convert MQTT server to hostname:port 2021-07-01 16:57:50 -05:00
Kevin Hester
753ae00ddb Merge pull request #818 from geeksville/master
Master
2021-07-01 23:50:57 +08:00
Kevin Hester
2759c8d037 1.2.42 2021-07-01 08:50:12 -07:00
Kevin Hester
301f196bca fix rotation for ttgo t-echo case 2021-07-01 08:49:49 -07:00
Kevin Hester
32f3682fae Merge pull request #816 from geeksville/eink
Eink
2021-06-28 03:52:04 +08:00
Kevin Hester
fc9fc1ee6f 1.2.41 t-echo final build 2021-06-27 12:29:48 -07:00
Kevin Hester
659286f738 WIP new adafruit eink display lib at least starts 2021-06-27 11:41:39 -07:00
Kevin Hester
17a1262382 pull in new epaper lib (which required importing configuration.h everywhere
for dumb reasons)
2021-06-27 10:56:28 -07:00
Kevin Hester
66b96d2052 Remove old epaper library 2021-06-27 09:58:36 -07:00
Kevin Hester
06892c412c 1.2.39 2021-05-29 13:19:27 +08:00
Kevin Hester
5c4d1a88a8 update protos 2021-05-29 13:19:27 +08:00
Kevin Hester
eb9e976fab 1.2.39 2021-05-29 13:19:05 +08:00
Kevin Hester
451b085c13 update protos 2021-05-28 11:01:01 +08:00
Kevin Hester
27dced6a35 Merge pull request #814 from geeksville/dev
remove google play link (for now)
2021-05-28 10:17:29 +08:00
Kevin Hester
3c4f3316c0 remove google play link (for now) 2021-05-28 10:11:58 +08:00
Kevin Hester
2f607d5a8c Merge pull request #812 from geeksville/dev
main Native build on OS-X (probably)
2021-05-26 10:42:31 +08:00
Kevin Hester
42f3154079 store elfs (for later debugging) in github artifacts 2021-05-26 10:21:26 +08:00
Kevin Hester
e7e09cb7ed fix wifistubs to not be on esp32 2021-05-26 10:20:44 +08:00
Kevin Hester
c6092ea520 Merge remote-tracking branch 'root/master' into dev
# Conflicts:
#	bin/build-all.sh
2021-05-26 10:10:57 +08:00
Kevin Hester
29ff778e22 fix #811 nodes rebooting due to invalid printf call, thanks @IZ1IVA
Ouch, this was nasty - printf format string wasn't matching the parameters
passed in causing a NPE due to a missing last param.

I'll investigate why printf format strings were
not being checked by the compiler (normally gcc offers that feature)
2021-05-26 10:00:23 +08:00
Sacha Weatherstone
d80814a12e Merge pull request #813 from michelepagot/master
Add device-install.bat and device-update.bat to the release package
2021-05-26 11:30:03 +10:00
Michele
cfeb0b47e9 Merge branch 'meshtastic:master' into master 2021-05-25 23:06:36 +02:00
michelepagot
6f14d017d8 add both device-install/update.bat to the release package 2021-05-25 22:54:04 +02:00
Kevin Hester
cf4e508fb3 1.2.38 2021-05-25 09:02:26 +08:00
Kevin Hester
96fc1f5272 use long versions for release names 2021-05-25 08:45:47 +08:00
Kevin Hester
5b65fd5754 force new revision names, incase we mess up builds 2021-05-25 08:33:14 +08:00
Kevin Hester
29587d4c4e 1.2.37 fix release script 2021-05-25 08:30:03 +08:00
Kevin Hester
a98bf80c24 fix release script 2021-05-25 08:30:03 +08:00
Kevin Hester
49869ca044 Merge pull request #810 from geeksville/dev
1.2.36
2021-05-25 08:05:11 +08:00
Kevin Hester
54d4fb7d46 1.2.36 2021-05-25 08:04:06 +08:00
Kevin Hester
5699abc8ad Merge remote-tracking branch 'mine/dev' into windev 2021-05-25 05:12:44 +08:00
Kevin Hester
6b56583023 copy windows install scripts into build dir 2021-05-25 11:18:36 +08:00
Kevin Hester
abe95ae1a4 most of the changes needed to build native on Windows 2021-05-25 05:08:57 +08:00
Kevin Hester
4e8e85c9f1 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device into windev
# Conflicts:
#	geeksville-private/windows-build-instructions.md
#	src/graphics/Screen.h
2021-05-25 03:43:47 +08:00
Kevin Hester
26bb4ffe79 windows build wip 2021-05-25 03:38:06 +08:00
Kevin Hester
c857e5707e Merge pull request #808 from geeksville/dev
fix wifi api bug
2021-05-24 10:01:11 +08:00
Kevin Hester
aaf1570938 Merge remote-tracking branch 'root/master' into dev 2021-05-24 09:43:45 +08:00
Kevin Hester
a8feb40ae9 cleanup 2021-05-24 09:42:25 +08:00
Kevin Hester
be410a3913 Fix #807 TCP API on ESP32. thanks @jfirwin your hint made the problem easy to find! 2021-05-24 09:42:21 +08:00
Kevin Hester
069b0d38be Fix wifi to allow usage with unsecured networks 2021-05-24 09:21:52 +08:00
Kevin Hester
7cae8dc50f Merge pull request #806 from geeksville/dev
back in the saddle
2021-05-23 18:22:30 +08:00
Kevin Hester
70b0a73572 Split native build into a cross-platform target vs a linux only target 2021-05-23 17:57:20 +08:00
Kevin Hester
72d7142751 also check in the gpiod .h file 2021-05-23 17:36:08 +08:00
Kevin Hester
8367b9b159 add gpiod lib prebuilt binaries for linux 2021-05-23 17:25:35 +08:00
Kevin Hester
ad1cbf60b4 Merge remote-tracking branch 'root/master' into dev 2021-05-23 17:05:47 +08:00
Kevin Hester
1c4bf8ac18 Merge pull request #805 from michelepagot/master
.bat porting of install and update scripts
2021-05-23 17:05:20 +08:00
Kevin Hester
13199f13c2 reeneable simulator in CI builds 2021-05-23 17:02:47 +08:00
Kevin Hester
7f2bbcd95e fix debug spam for api calls (possibly corrupting protocol) 2021-05-23 12:07:28 +08:00
Kevin Hester
68cb62ab23 auto probe for pinelora devices 2021-05-23 12:00:54 +08:00
Kevin Hester
5a3ff137f9 Cope with missing portuino hardware 2021-05-23 11:46:57 +08:00
michelepagot
0206e65152 fix device-install.bat about star usage 2021-05-23 02:33:15 +02:00
michelepagot
b16004dcdf .bat porting of install and update scripts 2021-05-23 01:46:31 +02:00
Kevin Hester
844189671f work queue TODO 2021-05-12 09:02:27 +08:00
Kevin Hester
e582615eda Merge pull request #800 from geeksville/pinelora
Pinelora
2021-05-11 10:59:04 +08:00
Kevin Hester
7f51517961 better support for heltec 2021-05-11 09:44:41 +08:00
Kevin Hester
2e832774a2 provide short versions to android 2021-05-09 10:57:12 +08:00
Kevin Hester
7475e3c105 give more margin for heltec no battery voltage 2021-05-09 10:31:42 +08:00
Kevin Hester
80e4bc6289 fix nrf52 build 2021-05-03 15:58:35 +08:00
Kevin Hester
19ee911022 turn off simulator build for now, because (ugh) it is accidentally looking for gpiod hardware 2021-05-03 15:54:26 +08:00
Kevin Hester
cb4d5d580a add gpiod libs 2021-05-03 15:51:33 +08:00
Kevin Hester
7b3d59569e Merge remote-tracking branch 'root/master' into pinelora 2021-05-03 15:46:26 +08:00
Kevin Hester
3bc0aaabe4 disable platformio caching for now 2021-05-03 15:46:13 +08:00
Kevin Hester
2418fee444 Merge pull request #799 from geeksville/pinelora
Pinelora
2021-05-03 15:42:21 +08:00
Kevin Hester
b56c5df6e1 1.2.30 2021-05-03 15:38:14 +08:00
Kevin Hester
bc76c79e1e oops my latest change busted android connection detection 2021-05-03 15:37:37 +08:00
Kevin Hester
d179bda728 serious bug: connection to phones not being properly tracked 2021-05-03 14:46:30 +08:00
Kevin Hester
e60ef655cb fix serious bug! plugin was incorrectly stopping packet processing 2021-05-03 10:53:24 +08:00
Kevin Hester
c15204fed1 better debug output 2021-05-03 10:53:06 +08:00
Kevin Hester
1f2dc82035 don't cache platformio for now 2021-05-03 10:36:44 +08:00
Kevin Hester
218d841511 use short version string on bootscreen 2021-05-03 09:50:06 +08:00
Kevin Hester
f40c6f21d4 fix portduino rtc 2021-05-03 09:30:03 +08:00
Kevin Hester
6dc4471bec fix serious bug! don't send NO-RESPONSE NAKs for messages sent by local node 2021-05-03 08:45:32 +08:00
Kevin Hester
4c1b7d4840 pinelora WIP 2021-05-01 11:27:37 +08:00
Kevin Hester
8ec73e653b apparently regen-docs is removed now ;-) 2021-05-01 11:26:36 +08:00
Kevin Hester
babc1b3613 include file/lineno in critical error logs 2021-04-29 09:52:15 +08:00
Kevin Hester
c27d479a9f t-echo: add hwmodel 2021-04-29 09:51:10 +08:00
Kevin Hester
14224088aa don't checkin workspace files 2021-04-28 15:33:08 +08:00
Kevin Hester
b95baadb9a fix USB power detection for analog battery sensors (t-echo and possibly heltec/t-lora32) 2021-04-28 15:30:02 +08:00
Kevin Hester
c940d22a98 t-echo: enable nrfupload 2021-04-28 15:25:54 +08:00
Kevin Hester
28b7bd347a Fix nrf52 USB (don't call delay() in loop() if connected via usb) 2021-04-28 15:11:55 +08:00
Kevin Hester
a42bb80cf4 pinelora wip 2021-04-28 14:47:29 +08:00
Kevin Hester
2a9b2d3b29 official name for t-echo board 2021-04-27 10:21:54 +08:00
Kevin Hester
9c94a324e5 use real gpios for pinelora 2021-04-27 10:04:02 +08:00
Sacha Weatherstone
f07f3ae94b Merge pull request #798 from kylegordon/patch-1
Fix Development Documents link
2021-04-26 23:22:12 +10:00
Kyle Gordon
b6c2cd6caa Fix Development Documents link 2021-04-26 13:47:21 +01:00
Kevin Hester
a66ad8a9d9 pinelora WIP 2021-04-22 17:48:20 +08:00
Kevin Hester
8e3281a658 pinelora WIP 2021-04-22 14:28:56 +08:00
Kevin Hester
6e27856daa pinelora WIP 2021-04-22 08:49:05 +08:00
Kevin Hester
ce2d603def Merge pull request #796 from geeksville/codespacedev
Codespacedev
2021-04-21 21:14:41 +08:00
Kevin Hester
fa00e21f49 make github codespaces work 2021-04-21 13:13:38 +00:00
Kevin Hester
c4878671e3 add codespace support 2021-04-21 18:00:34 +08:00
Jm
1a8b128640 small change, moving it to the laptop 2021-04-16 19:44:59 -07:00
Jm Casler
a83dcbadb9 Merge pull request #84 from meshtastic/master
update from head
2021-04-16 19:33:42 -07:00
Kevin Hester
57ef3b499f look for v1 versions only 2021-04-17 09:28:36 +08:00
Kevin Hester
6c956591f8 disambig github action names 2021-04-16 15:31:53 +08:00
Kevin Hester
640cc82103 1.2.29 get ready for automated releases 2021-04-16 15:29:33 +08:00
Jm Casler
a5e3f271ea Merge pull request #83 from meshtastic/master
update from head
2021-04-09 20:36:35 -07:00
358 changed files with 11015 additions and 6146 deletions

11
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,11 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.162.0/containers/ubuntu/.devcontainer/base.Dockerfile
# [Choice] Ubuntu version: bionic, focal
ARG VARIANT="focal"
FROM mcr.microsoft.com/vscode/devcontainers/base:0-${VARIANT}
# [Optional] Uncomment this section to install additional OS packages.
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install python3-distutils python3-pip
RUN pip3 install platformio meshtastic adafruit-nrfutil
RUN wget https://github.com/protocolbuffers/protobuf/releases/download/v3.15.8/protoc-3.15.8-linux-x86_64.zip -O /tmp/protoc.zip && cd /tmp && unzip protoc.zip && chmod a+x bin/protoc && cp bin/protoc /usr/local/bin

View File

@@ -0,0 +1,32 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.162.0/containers/ubuntu
{
"name": "Ubuntu",
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick an Ubuntu version: focal, bionic
"args": { "VARIANT": "focal" }
},
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"platformio.platformio-ide",
"xaver.clang-format"
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],
// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "uname -a",
// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
"postCreateCommand": "git submodule update --init"
}

76
.github/ISSUE_TEMPLATE/Bug Report.yml vendored Normal file
View File

@@ -0,0 +1,76 @@
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: dropdown
id: category
attributes:
label: Category
description: How would you catagorize this issue?
multiple: true
options:
- Hardware Compatibility
- BLE
- Serial
- WiFi
- Other
validations:
required: true
- type: dropdown
id: hardware
attributes:
label: Hardware
description: What hardware are you encountering this issue on?
multiple: true
options:
- Not Applicable
- T-Beam
- T-Beam 0.7
- T-Lora v1
- T-Lora v1.3
- T-Lora v2 1.6
- T-Echo
- Rak4631
- Rak11200
- Heltec v1
- Heltec v2
- Heltec v2.1
- Relay v1
- Relay v2
- DIY
- Other
validations:
required: true
- type: input
id: version
attributes:
label: Firmware Version
description: This can be found on the device's screen or via one of the apps.
placeholder: x.x.x.yyyyyyy
validations:
required: true
- type: textarea
id: body
attributes:
label: Description
description: Please provide details on what steps you performed for this to happen.
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: If you have any log output to help in diagnosing your bug, please provide it here.
render: Shell
validations:
required: false

View File

@@ -1,38 +0,0 @@
---
name: Bug report or feature proposal
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
Please - if you just have a question (i.e. not a bug report or a feature proposal), post in our [forum](https://meshtastic.discourse.group/) instead.
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Device info:**
- Device model: [e.g. TBEAM]
- Software Version [e.g. 0.7.8]
**Smartphone information (if relevant):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- App Version [e.g. 0.7.2]
**Additional context**
Add any other context about the problem here.

View File

@@ -1,38 +0,0 @@
name: 'Common init'
# WARNING due to https://github.com/actions/runner/issues/646
# this code can't work - must copy and paste into workflows for now because 'uses' is not supported
runs:
using: "composite"
steps:
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
- name: Upgrade python tools
# We actually want to run this every time
# if: steps.cache-pip.outputs.cache-hit != 'true'
run: |
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil
- name: Cache platformio
uses: actions/cache@v1
id: cache-platformio # needed in if test
with:
path: ~/.platformio
key: ${{ runner.os }}-platformio
- name: Upgrade platformio
run: |
pio upgrade

View File

@@ -1,21 +1,11 @@
name: Continuous Integration
name: Continuous Integration (Legacy serial build)
on:
# Triggers the workflow on push or pull request events but only for the master branch
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
# setup:
# runs-on: ubuntu-latest
# steps:
workflow_dispatch:
# - name: Startup
# run: echo "No action setup currently needed, skipping..."
jobs:
build:
# needs: setup
ci-check:
runs-on: ubuntu-latest
steps:
@@ -23,6 +13,49 @@ jobs:
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Install cppcheck
run: |
sudo apt-get install -y cppcheck
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
- name: Upgrade python tools and install platformio
run: |
python -m pip install --upgrade pip
pip install -U platformio
- name: Upgrade platformio
run: |
pio upgrade
- name: Check everything
run: bin/check-all.sh
ci-build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Setup Python
uses: actions/setup-python@v2
@@ -43,17 +76,30 @@ jobs:
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil
- name: Cache platformio
uses: actions/cache@v1
id: cache-platformio # needed in if test
with:
path: ~/.platformio
key: ${{ runner.os }}-platformio
# - name: Cache platformio
# uses: actions/cache@v1
# id: cache-platformio # needed in if test
# with:
# path: ~/.platformio
# key: ${{ runner.os }}-platformio
- name: Upgrade platformio
run: |
pio upgrade
- name: Pull web ui
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "meshtastic/meshtastic-web"
file: "build.tar"
target: "build.tar"
token: ${{ secrets.GITHUB_TOKEN }}
- name: Unpack web ui
run: |
tar -xf build.tar -C data/static
rm build.tar
# We now run integration test before other build steps (to quickly see runtime failures)
- name: Build for native
run: platformio run -e native
@@ -64,19 +110,42 @@ jobs:
echo "Simulator started, launching python test..."
python3 -c 'from meshtastic.test import testSimulator; testSimulator()'
# - name: Build for tbeam
# run: platformio run -e tbeam
# - name: Build for heltec
# run: platformio run -e heltec
# - name: Build for wisblock RAK4631
# run: platformio run -e rak4631
- name: Cat bin/build-all.sh
run: |
cat bin/build-all.sh
- name: Build everything
run: bin/build-all.sh
- name: Store release zip as an artifact
- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version
- name: Store binaries as an artifact
uses: actions/upload-artifact@v2
with:
name: built
path: release/archive/firmware-*.zip
retention-days: 30
name: firmware-${{ steps.version.outputs.version }}.zip
path: release/archive/firmware-${{ steps.version.outputs.version }}.zip
retention-days: 90
- name: Store debugging elf files as an artifact
uses: actions/upload-artifact@v2
with:
name: debug-elfs
path: release/archive/elfs-*.zip
retention-days: 7
- name: Download firmware.zip
uses: actions/download-artifact@master
with:
name: firmware-${{ steps.version.outputs.version }}.zip
path: ./
- name: Pull request artifacts
if: ${{ github.event_name == 'pull_request_target' || github.event_name == 'pull_request' }}
uses: gavv/pull-request-artifacts@v1.0.0
with:
commit: ${{ (github.event.pull_request_target || github.event.pull_request).head.sha }}
repo-token: ${{ secrets.GITHUB_TOKEN }}
artifacts-branch: artifacts
artifacts: ./firmware-${{ steps.version.outputs.version }}.zip

345
.github/workflows/main_matrix.yml vendored Normal file
View File

@@ -0,0 +1,345 @@
name: Continuous Integration
on:
# # Triggers the workflow on push but only for the master branch
push:
branches: [ master ]
paths-ignore:
- '**.md'
- '**.yml'
- 'version.properties'
# Note: This is different from "pull_request". Need to specify ref when doing checkouts.
pull_request_target:
branches: [ master ]
paths-ignore:
- '**.md'
- '**.yml'
workflow_dispatch:
jobs:
check:
strategy:
fail-fast: false
matrix:
include:
- board: rak11200
- board: tlora-v2
- board: tlora-v1
- board: tlora_v1_3
- board: tlora-v2-1-1.6
- board: tbeam
- board: heltec-v1
- board: heltec-v2.0
- board: heltec-v2.1
- board: tbeam0.7
- board: meshtastic-diy-v1
- board: rak4631_5005
- board: rak4631_19003
- board: rak4631_5005_eink
- board: t-echo
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Install cppcheck
run: |
sudo apt-get install -y cppcheck
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
- name: Upgrade python tools and install platformio
run: |
python -m pip install --upgrade pip
pip install -U platformio
- name: Upgrade platformio
run: |
pio upgrade
- name: Check ${{ matrix.board }}
run: bin/check-all.sh ${{ matrix.board }}
build-esp32:
strategy:
fail-fast: false
matrix:
include:
- board: rak11200
- board: tlora-v2
- board: tlora-v1
- board: tlora_v1_3
- board: tlora-v2-1-1.6
- board: tbeam
- board: heltec-v1
- board: heltec-v2.0
- board: heltec-v2.1
- board: tbeam0.7
- board: meshtastic-diy-v1
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
- name: Upgrade python tools
run: |
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil littlefs-python
- name: Upgrade platformio
run: |
pio upgrade
- name: Pull web ui
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "meshtastic/meshtastic-web"
file: "build.tar"
target: "build.tar"
token: ${{ secrets.GITHUB_TOKEN }}
- name: Unpack web ui
run: |
tar -xf build.tar -C data/static
rm build.tar
- name: Build ESP32
run: bin/build-esp32.sh ${{ matrix.board }}
- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version
- name: Store binaries as an artifact
uses: actions/upload-artifact@v2
with:
name: firmware-${{ matrix.board }}-${{ steps.version.outputs.version }}.zip
path: |
release/*.bin
release/*.elf
retention-days: 90
build-nrf52:
strategy:
fail-fast: false
max-parallel: 2
matrix:
include:
- board: rak4631_5005
- board: rak4631_19003
- board: rak4631_5005_eink
- board: t-echo
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
- name: Upgrade python tools
run: |
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil
- name: Upgrade platformio
run: |
pio upgrade
- name: Build NRF52
run: bin/build-nrf52.sh ${{ matrix.board }}
- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version
- name: Store binaries as an artifact
uses: actions/upload-artifact@v2
with:
name: firmware-${{ matrix.board }}-${{ steps.version.outputs.version }}.zip
path: |
release/*.uf2
release/*.elf
retention-days: 90
build-native:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- name: Cache python libs
uses: actions/cache@v1
id: cache-pip # needed in if test
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
- name: Upgrade python tools
run: |
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil
- name: Upgrade platformio
run: |
pio upgrade
# We now run integration test before other build steps (to quickly see runtime failures)
- name: Build for native
run: platformio run -e native
- name: Integration test
run: |
.pio/build/native/program &
sleep 20 # 5 seconds was not enough
echo "Simulator started, launching python test..."
python3 -c 'from meshtastic.test import testSimulator; testSimulator()'
- name: Build Native
run: bin/build-native.sh
- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version
- name: Store binaries as an artifact
uses: actions/upload-artifact@v2
with:
name: firmware-native-${{ steps.version.outputs.version }}.zip
path: |
release/meshtasticd_linux_amd64
release/device-*.sh
release/device-*.bat
retention-days: 90
after-checks:
runs-on: ubuntu-latest
needs: [check]
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
gather-artifacts:
runs-on: ubuntu-latest
needs: [build-esp32, build-nrf52, build-native]
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- uses: actions/download-artifact@v2
with:
path: ./
- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version
- name: Move files up
run: mv -b -t ./ ./*tbeam-*/littlefs*.bin ./*tbeam-*/system-info.bin ./**/firmware*.bin ./**/*.uf2 ./**/*.elf ./**/meshtasticd_linux_amd64 ./*native*/*device-*.sh ./*native*/*device-*.bat
- name: Repackage in single firmware zip
uses: actions/upload-artifact@v2
with:
name: firmware-${{ steps.version.outputs.version }}
path: |
./*.bin
./*.uf2
./meshtasticd_linux_amd64
./device-*.sh
./device-*.bat
retention-days: 90
- uses: actions/download-artifact@v2
with:
name: firmware-${{ steps.version.outputs.version }}
path: ./output
# For diagnostics
- name: Show artifacts
run: ls -lR
- name: Zip firmware
run: zip -j -r ./firmware-${{ steps.version.outputs.version }}.zip ./output
- name: Repackage in single elfs zip
uses: actions/upload-artifact@v2
with:
name: debug-elfs-${{ steps.version.outputs.version }}.zip
path: ./*.elf
retention-days: 90
- name: Create request artifacts
if: ${{ github.event_name == 'pull_request_target' || github.event_name == 'pull_request' }}
uses: gavv/pull-request-artifacts@v1.0.0
with:
commit: ${{ (github.event.pull_request_target || github.event.pull_request).head.sha }}
repo-token: ${{ secrets.GITHUB_TOKEN }}
artifacts-branch: artifacts
artifacts: ./firmware-${{ steps.version.outputs.version }}.zip

View File

@@ -1,18 +1,18 @@
name: Make Release
on:
# Can optionally take parameters from the github UI, more info here https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/#:~:text=You%20can%20now%20create%20workflows,the%20workflow%20is%20run%20on.
# workflow_dispatch:
workflow_dispatch:
# inputs:
# Only want to be run if a new tag starting with v is pushed.
# Only want to run if version.properties is bumped in master
push:
branches:
- "!*"
tags:
- "v*"
- master
paths:
- 'version.properties'
jobs:
build:
release-build:
runs-on: ubuntu-latest
steps:
@@ -21,19 +21,15 @@ jobs:
with:
submodules: 'recursive'
# get github branch and tag names as ${{ steps.branch_name.outputs.SOURCE_TAG }}
- name: Branch name
id: branch_name
run: |
echo ::set-output name=SOURCE_NAME::${GITHUB_REF#refs/*/}
echo ::set-output name=SOURCE_BRANCH::${GITHUB_REF#refs/heads/}
echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/}
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
# Will be available in steps.version.outputs.version
- name: Get release version string
run: echo "::set-output name=version::$(./bin/buildinfo.py long)"
id: version
# Note: we don't use caches on release builds because we don't want to accidentally not have a virgin build machine
- name: Upgrade python tools
@@ -41,16 +37,24 @@ jobs:
# if: steps.cache-pip.outputs.cache-hit != 'true'
run: |
python -m pip install --upgrade pip
pip install -U platformio meshtastic adafruit-nrfutil
pip install -U platformio meshtastic adafruit-nrfutil littlefs-python
- name: Upgrade platformio
run: |
pio upgrade
# Will be available in steps.version.outputs.version
- name: Get version string
run: echo "::set-output name=version::$(./bin/buildinfo.py)"
id: version
- name: Pull web ui
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "meshtastic/meshtastic-web"
file: "build.tar"
target: "build.tar"
token: ${{ secrets.GITHUB_TOKEN }}
- name: Unpack web ui
run: |
tar -xf build.tar -C data/static
rm build.tar
- name: Build everything
run: bin/build-all.sh
@@ -62,14 +66,13 @@ jobs:
draft: true
prerelease: true
release_name: ${{ steps.version.outputs.version }} alpha
tag_name: ${{ steps.branch_name.outputs.SOURCE_TAG }}
# was ${{ github.ref }}
tag_name: v${{ steps.version.outputs.version }}
body: |
Autogenerated by github action, developer should edit as required before publishing...
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Add artifact to release
- name: Add bins to release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
@@ -77,4 +80,14 @@ jobs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: release/archive/firmware-${{ steps.version.outputs.version }}.zip
asset_name: firmware-${{ steps.version.outputs.version }}.zip
asset_content_type: application/zip
asset_content_type: application/zip
- name: Add debug elfs to release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: release/archive/elfs-${{ steps.version.outputs.version }}.zip
asset_name: debug-elfs-${{ steps.version.outputs.version }}.zip
asset_content_type: application/zip

33
.github/workflows/update_protobufs.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: "Update protobufs and regenerate classes"
on: workflow_dispatch
jobs:
update-protobufs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: true
- name: Update submodule
run: |
git submodule update --remote proto
- name: Download nanopb
run: |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.4-linux-x86.tar.gz
tar xvzf nanopb-0.4.4-linux-x86.tar.gz
mv nanopb-0.4.4-linux-x86 nanopb-0.4.4
- name: Re-generate protocol buffers
run: |
./bin/regen-protos.sh
- name: Create pull request
uses: peter-evans/create-pull-request@v3
with:
add-paths: |
proto
src/mesh

11
.gitignore vendored
View File

@@ -9,6 +9,8 @@ main/credentials.h
!.vscode/extensions.json
*.code-workspace
.idea
.DS_Store
Thumbs.db
.autotools
@@ -19,4 +21,11 @@ Thumbs.db
nanopb*
flash.uf2
cmake-build*
__pycache__
__pycache__
*.swp
*.swo
*~
venv/
release/

50
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,50 @@
image: python:latest
variables:
# make sure GitLab check out submodules
GIT_SUBMODULE_STRATEGY: recursive
stages:
- buildall
- upload
build:
stage: buildall
before_script:
# we need zip later for packaging
- "apt update;apt -y install zip"
- "pip install -U platformio"
script:
# clean up residues from previous run
- rm -rf release
- bin/build-all.sh
# This is for my local environment, if your runners are tagged differently, modify or remove
tags:
- dockerized
# The files which are to be made available in GitLab
artifacts:
paths:
- release/archive/firmware*.zip
upload:
image: curlimages/curl:latest
stage: upload
script:
- |
PACKAGE_REGISTRY_URL="${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${CI_PROJECT_NAME}/master"
cd release/archive
for f in *.zip; do
curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file ${f} ${PACKAGE_REGISTRY_URL}/${f}
done
echo 'Package uploaded!'
# This is for my local environment, if your runners are tagged differently, modify or remove
tags:
- dockerized

View File

@@ -1,7 +0,0 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<clangFormatSettings>
<option name="ENABLED" value="true" />
</clangFormatSettings>
</code_scheme>
</component>

View File

@@ -1,5 +0,0 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CMake" type="CPP_MODULE" version="4" />

4
.idea/misc.xml generated
View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
</project>

8
.idea/modules.xml generated
View File

@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/meshtastic-esp32.iml" filepath="$PROJECT_DIR$/.idea/meshtastic-esp32.iml" />
</modules>
</component>
</project>

9
.idea/vcs.xml generated
View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/design" vcs="Git" />
<mapping directory="$PROJECT_DIR$/proto" vcs="Git" />
<mapping directory="$PROJECT_DIR$/sdk-nrfxlib" vcs="Git" />
</component>
</project>

162
.idea/workspace.xml generated
View File

@@ -1,162 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true">
<generated>
<config projectName="meshtastic-esp32" targetName="Debug" />
<config projectName="meshtastic-esp32" targetName="Production" />
<config projectName="meshtastic-esp32" targetName="Z_DUMMY_TARGET" />
</generated>
</component>
<component name="CMakeSettings">
<configurations>
<configuration PROFILE_NAME="native" CONFIG_NAME="native" ENABLED="true" />
</configurations>
</component>
<component name="ChangeListManager">
<list default="true" id="58922733-b05b-4b90-9655-b9b18914977a" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectId" id="1pmWHw2wau2TbdKvXvmQUB0EUE9" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
<property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="cf.advertisement.text.overridden" value="true" />
<property name="cf.first.check.clang-format" value="false" />
<property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.detected.package.tslint" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.path.for.package.tslint" value="project" />
<property name="node.js.selected.package.eslint" value="(autodetect)" />
<property name="node.js.selected.package.tslint" value="(autodetect)" />
<property name="settings.editor.selected.configurable" value="CMakeSettings" />
</component>
<component name="RunManager" selected="GDB Remote Debug.gdbremote-localhost-2345">
<configuration default="true" type="CLion_Remote" version="1" remoteCommand="tcp:localhost:2345" symbolFile="" sysroot="">
<debugger kind="GDB" isBundled="true" />
<method v="2" />
</configuration>
<configuration name="gdbremote-localhost-2345" type="CLion_Remote" version="1" remoteCommand="tcp:localhost:2345" symbolFile="" sysroot="">
<debugger kind="GDB" isBundled="true" />
<method v="2" />
</configuration>
<configuration name="Z_DUMMY_TARGET" type="CMakeRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="meshtastic-esp32" TARGET_NAME="Z_DUMMY_TARGET" CONFIG_NAME="native" RUN_TARGET_PROJECT_NAME="meshtastic-esp32" RUN_TARGET_NAME="Z_DUMMY_TARGET">
<method v="2">
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
</method>
</configuration>
<configuration default="true" type="GradleAppRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" PASS_PARENT_ENVS_2="true">
<method v="2">
<option name="com.jetbrains.cidr.cpp.gradle.execution.GradleNativeBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
</method>
</configuration>
<configuration name="PlatformIO Debug" type="platformio" factoryName="PlatformIO Debug" REDIRECT_INPUT="false" ELEVATE="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="meshtastic-esp32" TARGET_NAME="Debug" CONFIG_NAME="native" RUN_TARGET_PROJECT_NAME="meshtastic-esp32" RUN_TARGET_NAME="Debug">
<method v="2">
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
</method>
</configuration>
<configuration name="PlatformIO Upload" type="platformio" factoryName="PlatformIO Upload" REDIRECT_INPUT="false" ELEVATE="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="meshtastic-esp32" TARGET_NAME="Production" CONFIG_NAME="native" RUN_TARGET_PROJECT_NAME="meshtastic-esp32" RUN_TARGET_NAME="Production">
<method v="2">
<option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
</method>
</configuration>
<list>
<item itemvalue="CMake Application.Z_DUMMY_TARGET" />
<item itemvalue="GDB Remote Debug.gdbremote-localhost-2345" />
<item itemvalue="PlatformIO.PlatformIO Debug" />
<item itemvalue="PlatformIO.PlatformIO Upload" />
</list>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="58922733-b05b-4b90-9655-b9b18914977a" name="Default Changelist" comment="" />
<created>1615788661896</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1615788661896</updated>
<workItem from="1615788663210" duration="6661000" />
<workItem from="1615938346019" duration="1208000" />
<workItem from="1615971126983" duration="5945000" />
<workItem from="1617115374907" duration="357000" />
<workItem from="1617115747078" duration="1391000" />
<workItem from="1617117632667" duration="307000" />
<workItem from="1617160691713" duration="1016000" />
<workItem from="1617279002260" duration="1626000" />
<workItem from="1617425689081" duration="1896000" />
<workItem from="1617437366919" duration="1182000" />
<workItem from="1618544034975" duration="1185000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/src/mesh/wifi/WiFiServerAPI.cpp</url>
<line>53</line>
<option name="timeStamp" value="6" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/src/mesh/wifi/WiFiServerAPI.cpp</url>
<line>37</line>
<option name="timeStamp" value="7" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/src/mqtt/MQTT.cpp</url>
<line>166</line>
<option name="timeStamp" value="10" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/.pio/libdeps/native/PubSubClient/src/PubSubClient.cpp</url>
<line>468</line>
<option name="timeStamp" value="11" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/src/mesh/mesh-pb-constants.cpp</url>
<line>20</line>
<option name="timeStamp" value="12" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
<watches-manager>
<configuration name="CLion_Remote">
<watch expression="radioConfig" language="ObjectiveC" />
<watch expression="fromRadioScratch" language="ObjectiveC" />
</configuration>
</watches-manager>
</component>
<component name="XSLT-Support.FileAssociations.UIState">
<expand />
<select />
</component>
</project>

View File

@@ -1,8 +1,11 @@
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide",
"xaver.clang-format"
]
}
{
// See http://go.microsoft.com/fwlink/?LinkId=827846
// for the documentation about the extensions.json format
"recommendations": [
"platformio.platformio-ide",
"xaver.clang-format"
],
"unwantedRecommendations": [
"ms-vscode.cpptools-extension-pack"
]
}

View File

@@ -50,7 +50,8 @@
"cassert": "cpp",
"iterator": "cpp",
"shared_mutex": "cpp",
"iostream": "cpp"
"iostream": "cpp",
"esp_nimble_hci.h": "c"
},
"cSpell.words": [
"Blox",
@@ -77,6 +78,5 @@
"--java_out=/tmp",
"-I=/home/kevinh/development/meshtastic/meshtastic-esp32/proto"
]
},
"editor.formatOnSave": true
}
}

16
Dockerfile Normal file
View File

@@ -0,0 +1,16 @@
FROM ubuntu
MAINTAINER Kevin Hester <kevinh@geeksville.com>
RUN apt-get update
RUN DEBIAN_FRONTEND=noninteractive TZ=Etc/UTC apt-get -y install wget python3 g++ zip python3-venv git vim
RUN wget https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py -O get-platformio.py; chmod +x get-platformio.py
RUN python3 get-platformio.py
RUN git clone https://github.com/meshtastic/Meshtastic-device.git
RUN cd Meshtastic-device; git submodule update --init --recursive
# only build the simulator
RUN sed -i 's/^BOARDS_ESP32.*/BOARDS_ESP32=""/' Meshtastic-device/bin/build-all.sh
RUN sed -i 's/^BOARDS_NRF52.*/BOARDS_NRF52=""/' Meshtastic-device/bin/build-all.sh
RUN sed -i 's/echo "Building Filesystem.*/exit/' Meshtastic-device/bin/build-all.sh
RUN . ~/.platformio/penv/bin/activate; cd Meshtastic-device; ./bin/build-all.sh
CMD ["/Meshtastic-device/release/latest/bins/universal/meshtasticd_linux_amd64"]

72
README-docker.md Normal file
View File

@@ -0,0 +1,72 @@
## What is Docker used for
Developers can simulate Device hardware by compiling and running
a linux native binary application. If you do not own a Linux
machine, or you just want to separate things, you might want
to run simulator inside a docker container
## The Image
To build docker image, type
`docker build -t meshtastic/device .`
## Usage
To run a container, type
`docker run --rm -p 4403:4403 meshtastic/device`
or, to get an interactive shell on the docker created container:
`docker run -it -p 4403:4403 meshtastic/device bash`
You might want to mount your local development folder:
`docker run -it --mount type=bind,source=/PathToMyProjects/Meshtastic/Meshtastic-device-mybranch,target=/Meshtastic-device-mybranch -p 4403:4403 meshtastic/device bash`
## Build the native application
Linux native application should be built inside the container.
For this you must run container with interactive console
"-it", as seen above.
First, some environment variables need to be set up with command:
`. ~/.platformio/penv/bin/activate`
You also want to make some adjustments in the bin/build-all.sh to conform the amd64 build:
```
sed -i 's/^BOARDS_ESP32.*/BOARDS_ESP32=""/' bin/build-all.sh
sed -i 's/^BOARDS_NRF52.*/BOARDS_NRF52=""/' bin/build-all.sh
sed -i 's/echo "Building SPIFFS.*/exit/' bin/build-all.sh
```
You can build amd64 image with command
`bin/build-all.sh`
## Executing the application interactively
The built binary file should be found under name
`release/latest/bins/universal/meshtastic_linux_amd64`.
If this is not the case, you can also use direct program name:
`.pio/build/native/program`
To use python cli against exposed port 4403,
type this in the host machine:
`meshtastic --info --host localhost`
## Stop the container
Run this to get the ID:
`docker ps`
Stop the container with command:
`docker kill <id>`
> Tip: you can just use the first few characters of the ID in docker commands

215
README.md
View File

@@ -1,213 +1,18 @@
# Meshtastic-device
[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/meshtastic/Meshtastic-device)
[![Continuous Integration](https://github.com/meshtastic/Meshtastic-device/actions/workflows/main.yml/badge.svg)](https://github.com/meshtastic/Meshtastic-device/actions/workflows/main.yml)
![GitHub all releases](https://img.shields.io/github/downloads/meshtastic/meshtastic-device/total)
This is the device side code for the [meshtastic.org](https://www.meshtastic.org) project.
## This repository contains the device firmware used in the [Meshtastic](https://meshtastic.org) project.
![Continuous Integration](https://github.com/meshtastic/Meshtastic-esp32/workflows/Continuous%20Integration/badge.svg)
Update Instructions
Meshtastic® is a project that lets you use
inexpensive GPS mesh radios as an extensible, super long battery life mesh GPS communicator. These radios are great for hiking, skiing, paragliding -
essentially any hobby where you don't have reliable internet access. Each member of your private mesh can always see the location and distance of all other
members and any text messages sent to your group chat.
[Using Meshtastic Flasher](https://meshtastic.org/docs/getting-started/meshtastic-flasher)
The radios automatically create a mesh to forward packets as needed, so everyone in the group can receive messages from even the furthest member. The radios
will optionally work with your phone, but no phone is required.
Manual Method
Typical time between recharging the radios should be about eight days.
[For ESP32 devices click here](https://meshtastic.org/docs/getting-started/flashing-esp32)
This project is is currently in beta-testing - if you have questions please [join our discussion forum](https://meshtastic.discourse.group/).
[For nRF52 devices click here](https://meshtastic.org/docs/getting-started/flashing-nrf52)
This software is 100% open source and developed by a group of hobbyist experimenters. No warranty is provided, if you'd like to improve it - we'd love your help. Please post in the chat.
## Supported hardware
We currently support three models of radios.
- TTGO T-Beam (usually the recommended choice)
- [T-Beam V1.1 w/ NEO-6M - special Meshtastic version](https://www.aliexpress.com/item/4001178678568.html) (Includes built-in OLED display and they have **preinstalled** the meshtastic software)
- [T-Beam V1.1 w/ NEO-M8N](https://www.aliexpress.com/item/33047631119.html) (slightly better GPS)
- [T-Beam V1.1 w/ NEO-M8N /w SX1262](https://www.aliexpress.com/item/4001287221970.html) (slightly better GPS + LoRa)
- board labels "TTGO T22_V1.1 20191212"
- [T-Beam V0.7 w/ NEO-6M](https://www.aliexpress.com/item/4000574335430.html) (will work but **you must use the tbeam0.7 firmware ** - but the T-Beam V1.0 or later are better!)
- board labels "TTGO T22_V07 20180711"
- 3D printable cases
- [T-Beam V0](https://www.thingiverse.com/thing:3773717) (GPS and LoRa antenna misaligned if GPS placed as pictured)
- [T-Beam V1 (SMA-antenna)](https://www.thingiverse.com/thing:3830711)
- [T-Beam V1 (SMA-antenna)](https://www.thingiverse.com/thing:4677388) (Mounting option for larger GPS antenna but LoRa antenna enclosed)
- [T-Beam V1 (IPEX-antenna)](https://www.thingiverse.com/thing:4587297) (GPS and LoRa antenna misaligned if GPS placed as pictured)
- [T-Beam V1 (IPEX-antenna)](https://www.thingiverse.com/thing:4589651)
- [T-Beam V1 (IPEX-antenna)](https://www.thingiverse.com/thing:4619981) (GPS and LoRa antenna misaligned if GPS placed as pictured)
- Laser-cut cases
- [T-Beam V1 (SMA-antenna)](https://www.thingiverse.com/thing:4552771)
- [TTGO LORA32](https://www.aliexpress.com/item/4000211331316.html) - No GPS
- version 2.1
- board labels "TTGO T3_V1.6 20180606"
- 3D printable case
- [TTGO LORA32 v1](https://www.thingiverse.com/thing:3385109)
- [Heltec LoRa 32](https://heltec.org/project/wifi-lora-32/) - No GPS
- [Official Heltec case](https://www.aliexpress.com/item/4001050707951.html)
- [3D Printable case](https://www.thingiverse.com/thing:3125854)
Note: The GPS and LoRa stock antennas should be placed in a way, that the GPS antenna faces the sky and the LoRa antenna radiates 360 degrees horizontally. For better GPS reception you might want to [upgrade the GPS antenna](https://meshtastic.discourse.group/t/the-importance-of-gps-antennas-and-request-to-3d-case-documentation-people/1505) and to properly align the antennas you might want to upgrade to a LoRa antenna that can be adjusted to radiate into the right directions.
**Make sure to get the frequency for your country**
- US/JP/AU/NZ/CA - 915MHz
- CN - 470MHz
- EU - 868MHz, 433MHz
- full list of LoRa frequencies per region is available [here](https://www.thethingsnetwork.org/docs/lorawan/frequencies-by-country.html)
Getting a version that includes a screen is optional, but highly recommended.
## Firmware Installation
Prebuilt binaries for the supported radios are available in our [releases](https://github.com/meshtastic/Meshtastic-esp32/releases). Your initial installation has to happen over USB from your Mac, Windows or Linux PC. Once our software is installed, all future software updates happen over bluetooth from your phone.
Be **very careful** to install the correct load for your board. In particular the popular 'T-BEAM' radio from TTGO is not called 'TTGO-Lora' (that is a different board). So don't install the 'TTGO-Lora' build on a TBEAM, it won't work correctly.
Please post comments on our [group chat](https://meshtastic.discourse.group/) if you have problems or successes.
### Installing from a GUI - Windows and Mac
1. Download and unzip the latest Meshtastic firmware [release](https://github.com/meshtastic/Meshtastic-esp32/releases).
2. Download [ESPHome Flasher](https://github.com/esphome/esphome-flasher/releases) (either x86-32bit Windows or x64-64 bit Windows).
3. Connect your radio to your USB port and open ESPHome Flasher.
4. If your board is not showing under Serial Port then you likely need to install the drivers for the CP210X serial chip. In Windows you can check by searching “Device Manager” and ensuring the device is shown under “Ports”.
5. If there is an error, download the drivers [here](https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers), then unzip and run the Installer application.
6. In ESPHome Flasher, refresh the serial ports and select your board.
7. Browse to the previously downloaded firmware and select the correct firmware based on the board type, country and frequency.
8. Select Flash ESP.
9. Once complete, “Done! Flashing is complete!” will be shown.
10. Debug messages sent from the Meshtastic device can be viewed with a terminal program such as [PuTTY](https://www.putty.org/) (Windows only). Within PuTTY, click “Serial”, enter the “Serial line” com port (can be found at step 4), enter “Speed” as 921600, then click “Open”.
### Installing from a commandline
These instructions currently require a few commmand lines, but it should be pretty straightforward.
1. Install "pip". Pip is the python package manager we use to get the esptool installer app. Instructions [here](https://www.makeuseof.com/tag/install-pip-for-python/). If you are using OS-X, see these [special instructions](docs/software/install-OSX.md).
2. Run "pip install --upgrade esptool" to get esptool installed on your machine.
3. Connect your radio to your USB port.
4. Confirm that your device is talking to your PC by running "esptool.py chip_id". The Heltec build also works on the TTGO LORA32 radio. You should see something like:
```
mydir$ esptool.py chip_id
esptool.py v2.6
Found 2 serial ports
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:6f:28:b5:36:71
Uploading stub...
Running stub...
Stub running...
Warning: ESP32 has no Chip ID. Reading MAC instead.
MAC: 24:6f:28:b5:36:71
Hard resetting via RTS pin...
```
5. cd into the directory where the release zip file was expanded.
6. Install the correct firmware for your board with `device-install.sh -f firmware-_board_-_country_.bin`.
- Example: `./device-install.sh -f firmware-HELTEC-US-0.0.3.bin`.
7. To update run `device-update.sh -f firmware-_board_-_country_.bin`
- Example: `./device-update.sh -f firmware-HELTEC-US-0.0.3.bin`.
Note: If you have previously installed meshtastic, you don't need to run this full script instead just run `esptool.py --baud 921600 write_flash 0x10000 firmware-_board_-_country_-_version_.bin`. This will be faster, also all of your current preferences will be preserved.
You should see something like this:
```
kevinh@kevin-server:~/development/meshtastic/meshtastic-esp32/release/latest$ ./device-install.sh firmware-TBEAM-US-0.1.8.bin
Trying to flash firmware-TBEAM-US-0.1.8.bin, but first erasing and writing system information
esptool.py v2.6
Found 2 serial ports
Serial port /dev/ttyUSB0
Connecting........____
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:6f:28:b2:01:6c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Erasing flash (this may take a while)...
Chip erase completed successfully in 6.1s
Hard resetting via RTS pin...
esptool.py v2.6
Found 2 serial ports
Serial port /dev/ttyUSB0
Connecting.......
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:6f:28:b2:01:6c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0220
Compressed 61440 bytes to 11950...
Wrote 61440 bytes (11950 compressed) at 0x00001000 in 0.2 seconds (effective 3092.4 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
esptool.py v2.6
Found 2 serial ports
Serial port /dev/ttyUSB0
Connecting.....
Detecting chip type... ESP32
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 24:6f:28:b2:01:6c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 1223568 bytes to 678412...
Wrote 1223568 bytes (678412 compressed) at 0x00010000 in 10.7 seconds (effective 912.0 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...
```
7. The board will boot and show the Meshtastic logo.
8. Please post a comment on our chat so we know if these instructions worked for you ;-). If you find bugs/have-questions post there also - we will be rapidly iterating over the next few weeks.
# Meshtastic Android app
The companion (optional) Meshtastic Android app is [here](https://play.google.com/store/apps/details?id=com.geeksville.mesh&referrer=utm_source%3Dgithub-dev-readme). You can also download it on Google Play.
# Python API
We offer a [python API](https://github.com/meshtastic/Meshtastic-python) that makes it easy to use these devices to provide mesh networking for your custom projects.
# Development
We'd love to have you join us on this merry little project. Please see our [development documents](./docs/software/sw-design.md) and [join us in our discussion forum](https://meshtastic.discourse.group/).
# Credits
This project is run by volunteers. We are a friendly group and welcome any contribution (code fixes, documentation, features, bug reports etc...). We try to be good about listing contributor names in release notes, but it has become unwieldy for the main-devs to keep updating the list below and we've neglected it too long. If you'd like your name included in this list please send a pull request to edit this README and simply add your line yourself. Thank you very much for your help!
- @astro-arphid: Added support for 433MHz radios in europe.
- @claesg: Various documentation fixes and 3D print enclosures
- @girtsf: Lots of improvements
- @spattinson: Fixed interrupt handling for the AXP192 part
# IMPORTANT DISCLAIMERS AND FAQ
For a listing of currently missing features and a FAQ click [here](docs/faq.md).
Copyright 2019 Geeksville Industries, LLC. GPL V3 Licensed.
For developer information and specific building instructions, please see the [developer documentation](https://meshtastic.org/docs/developers)

View File

@@ -1,14 +1,16 @@
#!/bin/bash
#!/usr/bin/env bash
set -e
VERSION=`bin/buildinfo.py`
VERSION=`bin/buildinfo.py long`
SHORT_VERSION=`bin/buildinfo.py short`
BOARDS_ESP32="tlora-v2 tlora-v1 tlora_v1_3 tlora-v2-1-1.6 tbeam heltec tbeam0.7"
BOARDS_ESP32="rak11200 tlora-v2 tlora-v1 tlora_v1_3 tlora-v2-1-1.6 tbeam heltec-v1 heltec-v2.0 heltec-v2.1 tbeam0.7 meshtastic-diy-v1"
#BOARDS_ESP32=tbeam
# FIXME note nrf52840dk build is for some reason only generating a BIN file but not a HEX file nrf52840dk-geeksville is fine
BOARDS_NRF52="rak4631"
BOARDS_NRF52="rak4631_5005 rak4631_5005_eink rak4631_19003 t-echo"
#BOARDS_NRF52=""
OUTDIR=release/latest
@@ -26,7 +28,7 @@ function do_build() {
BOARD=$1
isNrf=$3
echo "Building for $BOARD with $PLATFORMIO_BUILD_FLAGS"
echo "Building for $BOARD ($isNrf) with $PLATFORMIO_BUILD_FLAGS"
rm -f .pio/build/$BOARD/firmware.*
# The shell vars the build tool expects to find
@@ -57,6 +59,7 @@ function do_boards() {
declare isNrf=$2
for board in $boards; do
# Build universal
echo "about to build $board $isNrf"
do_build $board "" "$isNrf"
done
}
@@ -70,12 +73,15 @@ platformio lib update
do_boards "$BOARDS_ESP32" "false"
do_boards "$BOARDS_NRF52" "true"
echo "Building SPIFFS for ESP32 targets"
pio run --environment native
cp .pio/build/native/program $OUTDIR/bins/universal/meshtasticd_linux_amd64
echo "Building Filesystem for ESP32 targets"
pio run --environment tbeam -t buildfs
cp .pio/build/tbeam/spiffs.bin $OUTDIR/bins/universal/spiffs-$VERSION.bin
cp .pio/build/tbeam/spiffs.bin $OUTDIR/bins/universal/littlefs-$VERSION.bin
# keep the bins in archive also
cp $OUTDIR/bins/universal/spiffs* $OUTDIR/bins/universal/firmware* $OUTDIR/elfs/universal/firmware* $ARCHIVEDIR
cp $OUTDIR/bins/universal/littlefs* $OUTDIR/bins/universal/firmware* $OUTDIR/elfs/universal/firmware* $ARCHIVEDIR
echo Updating android bins $OUTDIR/forandroid
rm -rf $OUTDIR/forandroid
@@ -91,11 +97,15 @@ Generated by bin/buildall.sh -->
<resources>
<string name="cur_firmware_version" translatable="false">$VERSION</string>
<string name="short_firmware_version" translatable="false">$SHORT_VERSION</string>
</resources>
XML
echo Generating $ARCHIVEDIR/firmware-$VERSION.zip
rm -f $ARCHIVEDIR/firmware-$VERSION.zip
zip --junk-paths $ARCHIVEDIR/firmware-$VERSION.zip $ARCHIVEDIR/spiffs-$VERSION.bin $OUTDIR/bins/universal/firmware-*-$VERSION.* images/system-info.bin bin/device-install.sh bin/device-update.sh
zip --junk-paths $ARCHIVEDIR/firmware-$VERSION.zip $ARCHIVEDIR/littlefs-$VERSION.bin $OUTDIR/bins/universal/firmware-*-$VERSION.* $OUTDIR/bins/universal/meshtasticd* images/system-info.bin bin/device-install.* bin/device-update.*
echo Generating $ARCHIVEDIR/elfs-$VERSION.zip
rm -f $ARCHIVEDIR/elfs-$VERSION.zip
zip --junk-paths $ARCHIVEDIR/elfs-$VERSION.zip $OUTDIR/elfs/universal/firmware-*-$VERSION.*
echo BUILT ALL

43
bin/build-esp32.sh Executable file
View File

@@ -0,0 +1,43 @@
#!/usr/bin/env bash
set -e
VERSION=`bin/buildinfo.py long`
SHORT_VERSION=`bin/buildinfo.py short`
OUTDIR=release/
rm -f $OUTDIR/firmware*
rm -r $OUTDIR/* || true
# Make sure our submodules are current
git submodule update
# Important to pull latest version of libs into all device flavors, otherwise some devices might be stale
platformio lib update
echo "Building for $1 with $PLATFORMIO_BUILD_FLAGS"
rm -f .pio/build/$1/firmware.*
# The shell vars the build tool expects to find
export APP_VERSION=$VERSION
# Are we building a universal/regionless rom?
export HW_VERSION="1.0"
basename=firmware-$1-$VERSION
pio run --environment $1 # -v
SRCELF=.pio/build/$1/firmware.elf
cp $SRCELF $OUTDIR/$basename.elf
echo "Copying ESP32 bin file"
SRCBIN=.pio/build/$1/firmware.bin
cp $SRCBIN $OUTDIR/$basename.bin
echo "Building Filesystem for ESP32 targets"
pio run --environment tbeam -t buildfs
cp .pio/build/tbeam/spiffs.bin $OUTDIR/littlefs-$VERSION.bin
cp images/system-info.bin $OUTDIR/system-info.bin
cp bin/device-install.* $OUTDIR
cp bin/device-update.* $OUTDIR

26
bin/build-native.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -e
VERSION=`bin/buildinfo.py long`
SHORT_VERSION=`bin/buildinfo.py short`
OUTDIR=release/
rm -f $OUTDIR/firmware*
mkdir -p $OUTDIR/
rm -r $OUTDIR/* || true
# Make sure our submodules are current
git submodule update
# Important to pull latest version of libs into all device flavors, otherwise some devices might be stale
platformio lib update
pio run --environment native
cp .pio/build/native/program $OUTDIR/meshtasticd_linux_amd64
cp bin/device-install.* $OUTDIR
cp bin/device-update.* $OUTDIR

View File

@@ -1,38 +0,0 @@
#!/bin/bash
source ~/.bashrc
# Meshtastic Nightly Build Script.
# McHamster (jm@casler.org)
#
# This is the script that is used for the nightly build server.
#
# It's probably not useful for most people, but you may want to run your own
# nightly builds.
#
# The last line of ~/.bashrc contains an inclusion of platformio in the path.
# Without this, the build script won't run from the crontab:
#
# export PATH="$HOME/.platformio/penv/bin:$PATH"
#
# The crontab contains:
# 0 2 * * * cd ~/meshtastic/github/meshtastic && source "~/.bashrc"; ./build-nightly.sh > ~/cronout.txt 2> ~/cronout.txt
cd Meshtastic-device
git pull
bin/build-all.sh
date_stamp=$(date +'%Y-%m-%d')
cd ..
# TODO: Archive the same binaries used by the build-all script.
#zip -r meshtastic_device_nightly_${date_stamp} Meshtastic-device/release/latest/bins
cp Meshtastic-device/release/archive/`ls -t ./Meshtastic-device/release/archive/| head -1` meshtastic_device_nightly_${date_stamp}.zip
# Copy the file to the webserver
scp meshtastic_device_nightly_${date_stamp}.zip jm@10.11.12.20:/volume1/web/meshtastic/nightly_builds/
# Delete the local copy
rm meshtastic_device_nightly_${date_stamp}.zip

37
bin/build-nrf52.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -e
VERSION=`bin/buildinfo.py long`
SHORT_VERSION=`bin/buildinfo.py short`
OUTDIR=release/
rm -f $OUTDIR/firmware*
rm -r $OUTDIR/* || true
# Make sure our submodules are current
git submodule update
# Important to pull latest version of libs into all device flavors, otherwise some devices might be stale
platformio lib update
echo "Building for $1 with $PLATFORMIO_BUILD_FLAGS"
rm -f .pio/build/$1/firmware.*
# The shell vars the build tool expects to find
export APP_VERSION=$VERSION
export HW_VERSION="1.0"
basename=firmware-$1-$VERSION
pio run --environment $1 # -v
SRCELF=.pio/build/$1/firmware.elf
cp $SRCELF $OUTDIR/$basename.elf
echo "Generating NRF52 uf2 file"
SRCHEX=.pio/build/$1/firmware.hex
bin/uf2conv.py $SRCHEX -c -o $OUTDIR/$basename.uf2 -f 0xADA52840
cp bin/device-install.* $OUTDIR
cp bin/device-update.* $OUTDIR

View File

@@ -1,7 +1,9 @@
#!/usr/bin/env python3
import configparser
import sys
from readprops import readProps
verStr = readProps('version.properties')
print(f"{verStr}")
verObj = readProps('version.properties')
propName = sys.argv[1]
print(f"{verObj[propName]}")

26
bin/check-all.sh Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Note: This is a prototype for how we could add static code analysis to the CI.
set -e
VERSION=`bin/buildinfo.py long`
# The shell vars the build tool expects to find
export APP_VERSION=$VERSION
if [[ $# -gt 0 ]]; then
# can override which environment by passing arg
BOARDS="$@"
else
BOARDS="tlora-v2 tlora-v1 tlora_v1_3 tlora-v2-1-1.6 tbeam heltec-v1 heltec-v2.0 heltec-v2.1 tbeam0.7 meshtastic-diy-v1 rak4631_5005 rak4631_19003 rak11200 t-echo"
fi
echo "BOARDS:${BOARDS}"
CHECK=""
for BOARD in $BOARDS; do
CHECK="${CHECK} -e ${BOARD}"
done
pio check --flags "-DAPP_VERSION=${APP_VERSION} --suppressions-list=suppressions.txt" $CHECK --skip-packages --pattern="src/" --fail-on-defect=low --fail-on-defect=medium --fail-on-defect=high

42
bin/device-install.bat Normal file
View File

@@ -0,0 +1,42 @@
@ECHO OFF
set PYTHON=python
goto GETOPTS
:HELP
echo Usage: %~nx0 [-h] [-p ESPTOOL_PORT] [-P PYTHON] [-f FILENAME^|FILENAME]
echo Flash image file to device, but first erasing and writing system information
echo.
echo -h Display this help and exit
echo -p ESPTOOL_PORT Set the environment variable for ESPTOOL_PORT. If not set, ESPTOOL iterates all ports (Dangerrous).
echo -P PYTHON Specify alternate python interpreter to use to invoke esptool. (Default: %PYTHON%)
echo -f FILENAME The .bin file to flash. Custom to your device type and region.
goto EOF
:GETOPTS
if /I "%1"=="-h" goto HELP
if /I "%1"=="--help" goto HELP
if /I "%1"=="-F" set "FILENAME=%2" & SHIFT
if /I "%1"=="-p" set ESPTOOL_PORT=%2 & SHIFT
if /I "%1"=="-P" set PYTHON=%2 & SHIFT
SHIFT
IF NOT "__%1__"=="____" goto GETOPTS
IF "__%FILENAME%__" == "____" (
echo "Missing FILENAME"
goto HELP
)
IF EXIST %FILENAME% (
echo Trying to flash update %FILENAME%, but first erasing and writing system information"
%PYTHON% -m esptool --baud 921600 erase_flash
%PYTHON% -m esptool --baud 921600 write_flash 0x1000 system-info.bin
for %%f in (littlefs-*.bin) do (
%PYTHON% -m esptool --baud 921600 write_flash 0x00390000 %%f
)
%PYTHON% -m esptool --baud 921600 write_flash 0x10000 %FILENAME%
) else (
echo "Invalid file: %FILENAME%"
goto HELP
)
:EOF

View File

@@ -11,7 +11,7 @@ Usage: $(basename $0) [-h] [-p ESPTOOL_PORT] [-P PYTHON] [-f FILENAME|FILENAME]
Flash image file to device, but first erasing and writing system information"
-h Display this help and exit
-p ESPTOOL_PORT Set the environment variable for ESPTOOL_PORT. If not set, ESPTOOL iterates all ports (Dangerrous).
-p ESPTOOL_PORT Set the environment variable for ESPTOOL_PORT. If not set, ESPTOOL iterates all ports (Dangerous).
-P PYTHON Specify alternate python interpreter to use to invoke esptool. (Default: "$PYTHON")
-f FILENAME The .bin file to flash. Custom to your device type and region.
EOF
@@ -46,10 +46,10 @@ shift "$((OPTIND-1))"
if [ -f "${FILENAME}" ]; then
echo "Trying to flash ${FILENAME}, but first erasing and writing system information"
$PYTHON -m esptool --baud 921600 erase_flash
$PYTHON -m esptool --baud 921600 write_flash 0x1000 system-info.bin
$PYTHON -m esptool --baud 921600 write_flash 0x00390000 spiffs-*.bin
$PYTHON -m esptool --baud 921600 write_flash 0x10000 ${FILENAME}
"$PYTHON" -m esptool erase_flash
"$PYTHON" -m esptool write_flash 0x1000 system-info.bin
"$PYTHON" -m esptool write_flash 0x00390000 littlefs-*.bin
"$PYTHON" -m esptool write_flash 0x10000 ${FILENAME}
else
echo "Invalid file: ${FILENAME}"
show_help

39
bin/device-update.bat Normal file
View File

@@ -0,0 +1,39 @@
@ECHO OFF
set PYTHON=python
goto GETOPTS
:HELP
echo Usage: %~nx0 [-h] [-p ESPTOOL_PORT] [-P PYTHON] [-f FILENAME^|FILENAME]
echo Flash image file to device, leave existing system intact.
echo.
echo -h Display this help and exit
echo -p ESPTOOL_PORT Set the environment variable for ESPTOOL_PORT. If not set, ESPTOOL iterates all ports (Dangerrous).
echo -P PYTHON Specify alternate python interpreter to use to invoke esptool. (Default: %PYTHON%)
echo -f FILENAME The .bin file to flash. Custom to your device type and region.
goto EOF
:GETOPTS
if /I "%1"=="-h" goto HELP
if /I "%1"=="--help" goto HELP
if /I "%1"=="-F" set "FILENAME=%2" & SHIFT
if /I "%1"=="-p" set ESPTOOL_PORT=%2 & SHIFT
if /I "%1"=="-P" set PYTHON=%2 & SHIFT
SHIFT
IF NOT "__%1__"=="____" goto GETOPTS
IF "__%FILENAME%__" == "____" (
echo "Missing FILENAME"
goto HELP
)
IF EXIST %FILENAME% (
echo Trying to flash update %FILENAME%
%PYTHON% -m esptool --baud 921600 write_flash 0x10000 %FILENAME%
echo Erasing the otadata partition, which will turn off flash flippy-flop and force the first image to be used
%PYTHON% -m esptool --baud 921600 erase_region 0xe000 0x2000
) else (
echo "Invalid file: %FILENAME%"
goto HELP
)
:EOF

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
arm-none-eabi-readelf -s -e .pio/build/nrf52dk/firmware.elf | head -80
nm -CSr --size-sort .pio/build/nrf52dk/firmware.elf | grep '^200'

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env bash
set -e

View File

@@ -1,4 +1,4 @@
#!/usr/bin/python2
#!/usr/bin/env python2
# This is a layout for 4MB of flash
# Name, Type, SubType, Offset, Size, Flags
@@ -38,4 +38,4 @@ app0, app, ota_0, , 0x{app:x},
app1, app, ota_1, , 0x{app:x},
spiffs, data, spiffs, , 0x{spi:x} """.format(**locals())
print(table)
print(table)

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
# You probably don't want to use this script, it programs a custom bootloader build onto a nrf52 board
set -e

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
# You probably don't want to use this script, it programs a custom bootloader build onto a nrf52 board
set -e

51
bin/mklittlefs.py Executable file
View File

@@ -0,0 +1,51 @@
#!/usr/bin/env python3
import getopt
import sys
import os
from littlefs import LittleFS
from pathlib import Path
print( "Building LittleFS image..." )
argList = sys.argv[1:]
arxx = { argList[i]: argList[i+1] for i in range(0, len(argList)-1, 2) }
dataPath = arxx["-c"]
blockSize = int(arxx["-b"])
blockCount = int(arxx["-s"]) / blockSize
cwd = os.getcwd()
os.chdir(dataPath)
fileList = []
dirList = []
for (dirpath, dirnames, filenames) in os.walk('.'):
for f in filenames:
if (f[:1] != '.'):
fileList.append( os.path.join(dirpath, f) )
for d in dirnames:
if (d[:1] != '.'):
dirList.append( os.path.join(dirpath, d) )
fs = LittleFS(block_size=blockSize, block_count=blockCount) # create a 448kB partition
for curDir in dirList:
print( "Creating dir " + curDir )
fs.mkdir( curDir )
for curFile in fileList:
print( "Adding file " + curFile )
with open( curFile, 'rb' ) as f:
data = f.read()
with fs.open( curFile, 'wb') as fh:
fh.write( data )
outName = argList[-1]
os.chdir(cwd)
with open(outName, 'wb') as fh:
fh.write(fs.context.buffer)

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env bash
mosquitto_sub -h mqtt.meshtastic.org -v -t \$SYS/\# -t msh/+/stat/\# -t msh/+/json/\#
# mosquitto_sub -h test.mosquitto.org -v -t mesh/\# -F "%j"

View File

@@ -1 +1,3 @@
#!/usr/bin/env bash
mosquitto_pub -h mqtt.meshtastic.org -u meshdev -P large4cats -t msh/1/stat/FakeNode -m online -d

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
set -e
pio run --environment native
gdbserver --once localhost:2345 .pio/build/native/program "$@"

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
set -e
pio run --environment native
.pio/build/native/program "$@"

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env bash
# JLinkRTTViewer
JLinkRTTClient
JLinkRTTClient

View File

@@ -1,3 +1,3 @@
#!/usr/bin/env bash
JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52832_XXAA

View File

@@ -1,3 +1,3 @@
#!/usr/bin/env bash
JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52833_XXAA

View File

@@ -1,3 +1,3 @@
#!/usr/bin/env bash
JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52840_XXAA -SuppressInfoUpdateFW -DisableAutoUpdateFW -rtos GDBServer/RTOSPlugin_FreeRTOS

View File

@@ -6,14 +6,22 @@ import traceback
import sys
from readprops import readProps
Import("env")
env.Replace( MKSPIFFSTOOL=env.get("PROJECT_DIR") + '/bin/mklittlefs.py' )
try:
import littlefs
except ImportError:
env.Execute("$PYTHONEXE -m pip install --user littlefs-python")
Import("projenv")
prefsLoc = projenv["PROJECT_DIR"] + "/version.properties"
verStr = readProps(prefsLoc)
print("Using meshtastic platform-custom.py, firmare version " + verStr)
verObj = readProps(prefsLoc)
print("Using meshtastic platform-custom.py, firmare version " + verObj['long'])
# print("path is" + ','.join(sys.path))
# General options that are passed to the C and C++ compilers
projenv.Append(CCFLAGS=[
"-DAPP_VERSION=" + verStr
"-DAPP_VERSION=" + verObj['long'],
"-DAPP_VERSION_SHORT=" + verObj['short']
])

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
esptool.py --baud 921600 write_flash 0x10000 release/archive/old/firmware-tbeam-EU865-1.0.0.bin
echo "Erasing the otadata partition, which will turn off flash flippy-flop and force the first image to be used"
esptool.py --baud 921600 erase_region 0xe000 0x2000

View File

@@ -1 +1,3 @@
#!/usr/bin/env bash
esptool.py --baud 921600 write_flash 0x10000 release/archive/old/firmware-tbeam-1.1.50.bin

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env bash
set -e

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env bash
set -e

View File

@@ -1,3 +1,4 @@
#!/usr/bin/env bash
set -e

17
bin/promote-release.sh Executable file
View File

@@ -0,0 +1,17 @@
#!/usr/bin/env bash
set -e
echo "This script is only for developers who are publishing new builds on github. Most users don't need it"
VERSION=`bin/buildinfo.py long`
# Must have a V prefix to trigger github
git tag "v${VERSION}"
# Commented out per https://github.com/meshtastic/Meshtastic-device/issues/947
#git push root "v${VERSION}" # push the tag
git push origin "v${VERSION}" # push the tag
echo "Tag ${VERSION} pushed to github, github actions should now be building the draft release. If it seems good, click to publish it"

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
# You probably don't need this - it is a basic test of the serial flash on the TTGO eink board
nrfjprog --qspiini nrf52/ttgo_eink_qpsi.ini --qspieraseall

View File

@@ -1 +1,3 @@
#!/usr/bin/env bash
esptool.py --baud 921600 read_flash 0x1000 0xf000 system-info.img

View File

@@ -12,6 +12,8 @@ def readProps(prefsLoc):
config = configparser.RawConfigParser()
config.read(prefsLoc)
version = dict(config.items('VERSION'))
verObj = dict(short = "{}.{}.{}".format(version["major"], version["minor"], version["build"]),
long = "unset")
# Try to find current build SHA if if the workspace is clean. This could fail if git is not installed
try:
@@ -23,14 +25,13 @@ def readProps(prefsLoc):
if isDirty:
# short for 'dirty', we want to keep our verstrings source for protobuf reasons
suffix = sha + "-d"
verStr = "{}.{}.{}.{}".format(
verObj['long'] = "{}.{}.{}.{}".format(
version["major"], version["minor"], version["build"], suffix)
except:
# print("Unexpected error:", sys.exc_info()[0])
# traceback.print_exc()
verStr = "{}.{}.{}".format(
version["major"], version["minor"], version["build"])
verObj['long'] = verObj['short']
# print("firmare version " + verStr)
return verStr
return verObj
# print("path is" + ','.join(sys.path))

1
bin/regen-protos.bat Normal file
View File

@@ -0,0 +1 @@
cd proto && ..\nanopb-0.4.4\generator-bin\protoc.exe --nanopb_out=-v:..\src\mesh\generated -I=..\proto *.proto

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -e
@@ -10,6 +10,6 @@ echo "prebuilt binaries for your computer into nanopb-0.4.4"
cd proto
../nanopb-0.4.4/generator-bin/protoc --nanopb_out=-v:../src/mesh/generated -I=../proto *.proto
echo "Regenerating protobuf documentation - if you see an error message"
echo "you can ignore it unless doing a new protobuf release to github."
bin/regen-docs.sh
#echo "Regenerating protobuf documentation - if you see an error message"
#echo "you can ignore it unless doing a new protobuf release to github."
#bin/regen-docs.sh

View File

@@ -1 +1,3 @@
#!/usr/bin/env bash
pio run --upload-port /dev/ttyUSB0 -t upload -t monitor

View File

@@ -1 +1,3 @@
#!/usr/bin/env bash
pio run --upload-port /dev/ttyUSB1 -t upload -t monitor

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
set -e
echo uploading to usb1

View File

@@ -1,3 +1,5 @@
#!/usr/bin/env bash
set -e
TARG=tbeam

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env bash
# /home/kevinh/.platformio/packages/tool-openocd-esp32/bin/openocd -s /home/kevinh/.platformio/packages/tool-openocd-esp32 -c gdb_port pipe; tcl_port disabled; telnet_port disabled -s /home/kevinh/.platformio/packages/tool-openocd-esp32/share/openocd/scripts -f interface/jlink.cfg -f board/esp-wroom-32.cfg
/home/kevinh/.platformio/packages/tool-openocd-esp32/bin/openocd -s /home/kevinh/.platformio/packages/tool-openocd-esp32 -s /home/kevinh/.platformio/packages/tool-openocd-esp32/share/openocd/scripts -f interface/jlink.cfg -f ./lora32-openocd.cfg

View File

@@ -1 +1,3 @@
#!/usr/bin/env bash
pio device monitor -b 921600

View File

@@ -1 +1,3 @@
#!/usr/bin/env bash
pio device monitor -p /dev/ttyUSB1 -b 921600

11
bin/test-simulator.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
set -e
echo "Starting simulator"
.pio/build/native/program &
sleep 20 # 5 seconds was not enough
echo "Simulator started, launching python test..."
python3 -c 'from meshtastic.test import testSimulator; testSimulator()'

2
bin/uf2-convert.bat Normal file
View File

@@ -0,0 +1,2 @@
@echo off
if [%1]==[] (echo "Please specify a platformio NRF target (i.e. rak4631) as the first argument.") else (python3 .\bin\uf2conv.py .\.pio\build\%1\firmware.hex -c -o .\.pio\build\%1\firmware.uf2 -f 0xADA52840)

View File

@@ -1,5 +1,10 @@
#!/usr/bin/env bash
set -e
echo "Converting to uf2 for NRF52 Adafruit bootloader"
bin/uf2conv.py .pio/build/rak4631/firmware.hex -f 0xADA52840
echo "building for t-echo"
pio run --environment t-echo
echo "Converting to uf2 for NRF52 Adafruit bootloader - double tap on the reset button to force bootloader entry"
bin/uf2conv.py .pio/build/t-echo/firmware.hex -f 0xADA52840
cp flash.uf2 /media/kevinh/FTH*BOOT/

7
bin/upload-to-rak4631.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/usr/bin/env bash
set -e
echo "Converting to uf2 for NRF52 Adafruit bootloader"
bin/uf2conv.py .pio/build/rak4631/firmware.hex -f 0xADA52840
cp flash.uf2 /media/kevinh/FTH*BOOT/

View File

@@ -1 +1,3 @@
#!/usr/bin/env bash
pio run --upload-port /dev/ttyUSB1 -t upload

View File

@@ -1,2 +1,4 @@
#!/usr/bin/env bash
echo using amap tool to display memory map
amap .pio/build/output.map

View File

@@ -16,9 +16,9 @@
"name": "adafruit"
},
"softdevice": {
"sd_flags": "-DS113",
"sd_name": "s113",
"sd_version": "7.2.0",
"sd_flags": "-DS140",
"sd_name": "s140",
"sd_version": "6.1.1",
"sd_fwid": "0x00B6"
},
"bootloader": {

View File

@@ -15,7 +15,7 @@
],
"usb_product": "TTGO_eink",
"mcu": "nrf52840",
"variant": "eink",
"variant": "t-echo",
"variants_dir": "variants",
"bsp": {
"name": "adafruit"
@@ -44,17 +44,20 @@
"arduino"
],
"name": "TTGO eink (Adafruit BSP)",
"upload": {
"maximum_ram_size": 248832,
"maximum_size": 815104,
"require_upload_port": true,
"speed": 115200,
"protocol": "jlink",
"protocols": [
"jlink",
"nrfjprog",
"stlink"
]
"upload": {
"maximum_ram_size": 248832,
"maximum_size": 815104,
"speed": 115200,
"protocol": "nrfutil",
"protocols": [
"jlink",
"nrfjprog",
"nrfutil",
"stlink"
],
"use_1200bps_touch": true,
"require_upload_port": true,
"wait_for_upload_port": true
},
"url": "FIXME",
"vendor": "TTGO"

View File

@@ -0,0 +1,39 @@
{
"build": {
"arduino":{
"ldscript": "esp32_out.ld"
},
"core": "esp32",
"extra_flags": "-DARDUINO_ESP32_DEV",
"f_cpu": "240000000L",
"f_flash": "40000000L",
"flash_mode": "dio",
"mcu": "esp32",
"variant": "WisCore_RAK11200_Board"
},
"connectivity": [
"wifi",
"bluetooth",
"ethernet",
"can"
],
"frameworks": [
"arduino",
"espidf"
],
"name": "WisCore RAK11200 Board",
"upload": {
"flash_size": "4MB",
"maximum_ram_size": 327680,
"maximum_size": 4194304,
"protocols": [
"esptool",
"espota",
"ftdi"
],
"require_upload_port": true,
"speed": 460800
},
"url": "https://www.rakwireless.com",
"vendor": "RAKwireless"
}

0
data/static/.gitkeep Normal file
View File

View File

@@ -1 +0,0 @@
not yet supported - soon will be included in build

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29 0-1.38-1.12-2.5-2.5-2.5S9.5 10.62 9.5 12c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2c0-4.97 4.03-9 9-9s9 4.03 9 9h2c0-6.07-4.93-11-11-11z"/></svg>

Before

Width:  |  Height:  |  Size: 442 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -2,22 +2,21 @@
You probably don't care about this section - skip to the next one.
## before next release
* @havealoha fixedposition not working
* pine64 lora module
* merge https://meshtastic.discourse.group/t/spanish-translation-update/2986/5
* nrf52 USB is unreliable while sleeping?
* @luxonn reports that after a while the android app stops showing new messages
* nrf52 shows as "sleeping" in android app? (but led is blinking)
* usb lora dongle from pine64, add end user instructions
* measure rak4630 power draw and turn off power for GPS most of the time. We should be able to run on the small solar panel.
* turn on watchdog reset if app hangs on nrf52 or esp32
* pine64 solar boards
* for the matrix gateway? recommended by @sam-uk https://github.com/matrix-org/coap-proxy
* figure our wss for mqtt.meshtastic - use cloudflare? 2052 ws, 2053 crypt
* ask for vercel access
* fix heltec battery scaling
* check android 1.2.20 usage, possibly release to general
* release android APK
* add rak4600 support (with rf95 radio and limited ram)
* Switch to use https://github.com/adafruit/Adafruit_nRF52_Arduino.git when available (see arduino code for examples)
* finish plan for riot.im
* turn on setTx(timeout) and state = setDioIrqParams(SX126X_IRQ_TX_DONE | SX126X_IRQ_TIMEOUT, SX126X_IRQ_TX_DONE | SX126X_IRQ_TIMEOUT); in sx1262 code
* NO add rak4600 support (with rf95 radio and limited ram)
* store esp32 crashes to flash (and 64KB coredump partition) - https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/core_dump.html
* If more nodes appear than the nodedb can hold, delete oldest entries from DB
* send debug info 'in-band'
* DONE @luxonn reports that after a while the android app stops showing new messages
* DONE release android APK - fix recent 1.2.28 crash report
* DONE remote admin busted?
* DONE check android code - @havealoha comments about odd sleep behavior
* ABANDONED test github actions locally on linux
@@ -28,7 +27,6 @@ You probably don't care about this section - skip to the next one.
* DONE tcp stream problem in python+pordtuino, server thinks client dropped when client DID NOT DROP
* DONE TCP mode for android, localhost is at 10.0.2.2
* DONE make sure USB still works in android
* add portduino builds to zip
* add license to portduino and make announcement
* DONE naks are being dropped (though enqueuedLocal) sometimes before phone/PC gets them
* DONE have android fill in if local GPS has poor signal
@@ -65,7 +63,7 @@ You probably don't care about this section - skip to the next one.
## Multichannel support
* DONE cleanup the external notification and serial plugins
* DONE cleanup the external notification and serial modules
* non ack version of stress test fails sometimes!
* tx fault test has a bug #734 - * turn off fault 8: https://github.com/meshtastic/Meshtastic-device/issues/734
* DONE move device types into an enum in nodeinfo
@@ -73,7 +71,7 @@ You probably don't care about this section - skip to the next one.
* nrf52 should preserve local time across reset
* cdcacm bug on nrf52: emittx thinks it emitted but client sees nothing. works again later
* nrf52: segger logs have errors in formatting that should be impossible (because not going through serial, try stalling on segger)
* DONE call RouterPlugin for *all* packets - not just Router packets
* DONE call RouterModule for *all* packets - not just Router packets
* DONE generate channel hash from the name of the channel+the psk (not just one or the other)
* DONE send a hint that can be used to select which channel to try and hash against with each message
* DONE remove deprecated
@@ -81,13 +79,13 @@ You probably don't care about this section - skip to the next one.
* DONE set mynodeinfo.max_channels
* DONE set mynodeinfo.num_bands (formerly num_channels)
* DONE fix sniffing of non Routing packets
* DONE enable remote setttings access by moving settings operations into a regular plugin (move settings ops out of PhoneAPI)
* DONE enable remote setttings access by moving settings operations into a regular module (move settings ops out of PhoneAPI)
* DONE move portnum up?
* DONE remove region specific builds from the firmware
* DONE test single channel without python
* DONE Use "default" for name if name is empty
* DONE fix python data packet receiving (nothing showing in log?)
* DONE implement 'get channels' Admin plugin operation
* DONE implement 'get channels' Admin module operation
* DONE use get-channels from python
* DONE use get channels & get settings from android
* DONE use set-channel from python
@@ -100,7 +98,7 @@ You probably don't care about this section - skip to the next one.
* DONE fix setch-fast in python tool
* age out pendingrequests in the python API
* DONE stress test channel download from python, sometimes it seems like we don't get all replies, bug was due to simultaneous android connection
* DONE combine acks and responses in a single message if possible (do routing plugin LAST and drop ACK if someone else has already replied)
* DONE combine acks and responses in a single message if possible (do routing module LAST and drop ACK if someone else has already replied)
* DONE don't send packets we received from the phone BACK TOWARDS THE PHONE (possibly use fromnode 0 for packets the phone sends?)
* DONE fix 1.1.50 android debug panel display
* DONE test android channel setting
@@ -120,7 +118,7 @@ You probably don't care about this section - skip to the next one.
* use single byte 'well known' channel names for admin, gpio, etc...
* use presence of gpio channel to enable gpio ops, same for serial etc...
* DONE restrict gpio & serial & settings operations to the admin channel (unless local to the current node)
* DONE add channel restrictions for plugins (and restrict routing plugin to the "control" channel)
* DONE add channel restrictions for modules (and restrict routing module to the "control" channel)
* stress test multi channel
* DONE investigate @mc-hamster report of heap corruption
* DONE use set-user from android
@@ -136,7 +134,7 @@ You probably don't care about this section - skip to the next one.
* allow chaning packets in single transmission - to increase airtime efficiency and amortize packet overhead
* DONE move most parts of meshpacket into the Data packet, so that we can chain multiple Data for sending when they all have a common destination and key.
* when selecting a MeshPacket for transmit, scan the TX queue for any Data packets we can merge together as a WirePayload. In the low level send/rx code expand that into multiple MeshPackets as needed (thus 'hiding' from MeshPacket that over the wire we send multiple datapackets
* DONE confirm we are still calling the plugins for messages inbound from the phone (or generated locally)
* DONE confirm we are still calling the modules for messages inbound from the phone (or generated locally)
* DONE confirm we are still multi hop routing flood broadcasts
* DONE confirm we are still doing resends on unicast reliable packets
* add history to routed packets: https://meshtastic.discourse.group/t/packet-source-tracking/2764/2
@@ -144,7 +142,7 @@ You probably don't care about this section - skip to the next one.
* DONE move acks into routing
* DONE make all subpackets different versions of data
* DONE move routing control into a data packet
* have phoneapi done via plugin (will allow multiple simultaneous API clients - stop disabling BLE while using phone API)
* have phoneapi done via module (will allow multiple simultaneous API clients - stop disabling BLE while using phone API)
* use reference counting and dynamic sizing for meshpackets. - use https://docs.microsoft.com/en-us/cpp/cpp/how-to-create-and-use-shared-ptr-instances?view=msvc-160 (already used in arduino)
* let multiple PhoneAPI endpoints work at once
* allow multiple simultaneous bluetooth connections (create the bluetooth phoneapi instance dynamically based on client id)
@@ -184,13 +182,13 @@ For app cleanup:
* DONE require a recent python api to talk to these new device loads
* DONE require a recent android app to talk to these new device loads
* DONE fix handleIncomingPosition
* DONE move want_replies handling into plugins
* DONE move want_replies handling into modules
* DONE on android for received positions handle either old or new positions / user messages
* DONE on android side send old or new positions as needed / user messages
* DONE test python side handle new position/user messages
* DONE make a gpio example. --gpiowrb 4 1, --gpiord 0x444, --gpiowatch 0x3ff
* DONE fix position sending to use new plugin
* DONE Add SinglePortNumPlugin - as the new most useful baseclass
* DONE fix position sending to use new module
* DONE Add SinglePortNumModule - as the new most useful baseclass
* DONE move positions into regular data packets (use new app framework)
* DONE move user info into regular data packets (use new app framework)
* DONE test that positions, text messages and user info still work
@@ -327,7 +325,7 @@ Items after the first final candidate release.
- add "store and forward" support for messages, or move to the DB sync model. This would allow messages to be eventually delivered even if nodes are out of contact at the moment.
- use variable length Strings in protobufs (instead of current fixed buffers). This would save lots of RAM
- use BLEDevice::setPower to lower our BLE transmit power - extra range doesn't help us, it costs amps and it increases snoopability
- make a HAM build: just a new frequency list, a bool to say 'never do encryption' and use hte callsign as that node's unique id. -from Girts
- make a Ham build: just a new frequency list, a bool to say 'never do encryption' and use the callsign as that node's unique id. -from Girts
- don't forward redundant pings or ping responses to the phone, it just wastes phone battery
- don't send location packets if we haven't moved significantly
- scrub default radio config settings for bandwidth/range/speed

View File

@@ -0,0 +1,25 @@
* nutcracker https://www.pine64.org/2020/10/28/nutcracker-challenge-blob-free-wifi-ble/
* https://github.com/pine64/bl_iot_sdk
* https://github.com/pine64/bl602-docs / https://pine64.github.io/bl602-docs/
* https://github.com/pine64/ArduinoCore-bouffalo
cd ~/packages
git clone --recursive https://github.com/pine64/bl_iot_sdk
https://github.com/spacemeowx2/blflash/releases
# FIXME or BL604
cd bl_iot_sdk
export BL60X_SDK_PATH=/home/kevinh/packages/bl_iot_sdk
export CONFIG_CHIP_NAME=BL602
cd customer_app/bl602_boot2
make
* todo run hello world on hardware (check for bl604 vs bl602 first)
* build/run in the crummy arduino environment
* build in platformio
https://lupyuen.github.io/articles/lorawan2

View File

@@ -0,0 +1,51 @@
# Notes on the pine64 lora board
like before but sx1262 based?
Since both DIO3 and DIO2 not apply to PINE64 LoRa situation, I will wire SX1262 INT [DIO1] pin, contact to CS341F pin 7 INT# and pin 5.
FIX ch341 GPIO access from linux
RF95 packet RX seems busted FIX FIRST
USE ch341 devboard if needed
SX1262 BUSY seems to come out on pin 15 of the RFM90 HOPE module. The 'footprint' seems rotated on the pine64 board schematic and that becomes pin 7 on U4 which is "DIO5" on that schematic. Which goes to pin 8 on the CH341F, which that datasheet calls "IN3"
FIXME - see if possible to read BUSY from "IN3"?
on a ch341a
* - Pin 15 (D0/CS0 ) as input/output/CS (CH341_PIN_MODE_IN/CH341_PIN_MODE_OUT/CH341_PIN_MODE_CS) (confirm hooked to CS)
* - Pin 16 (D1/CS1 ) as input/output/CS (CH341_PIN_MODE_IN/CH341_PIN_MODE_OUT/CH341_PIN_MODE_CS)
* - Pin 17 (D2/CS2 ) as input/output/CS (CH341_PIN_MODE_IN/CH341_PIN_MODE_OUT/CH341_PIN_MODE_CS)
* - Pin 19 (D4/DOUT2) as input/output (CH341_PIN_MODE_IN/CH341_PIN_MODE_OUT) / gpio4 in linux driver / (FIXME: confirm hooked to IRQ also?)
* - Pin 21 (D6/DIN2 ) as input (CH341_PIN_MODE_IN) / called RTS when in UART mode
## ch341-driver
driver busted in 5.11 kernels (rf95 init fails). 5.8.0 is okay, 5.8.18 is okay. fails on 5.10.31, 5.9.16 is okay. Therefore breakage happened in 5.10 kernels! Possibly not really breakage, possibly just sloppy caching or something that is more easily caught with modern threading.
cs_change is not being set on the way into the driver!
## gpio
the new GPIO interface https://embeddedbits.org/new-linux-kernel-gpio-user-space-interface/
~/development/meshtastic/meshtastic-esp32$ gpiodetect
gpiochip0 [INT34BB:00] (312 lines)
gpiochip1 [ch341] (2 lines)
~/development/meshtastic/meshtastic-esp32$ gpioinfo 1
gpiochip1 - 2 lines:
line 0: "gpio4" unused input active-high
line 1: "gpio5" unused input active-high
gpiofind gpio4
gpiochip1 0
DO NOT "apt install libgpiod-dev" It doesn't work with kernels newer than about 5.8. Instead build and install from source: https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/
## Send in patch
Fix drivers/spi/spi.c transfer_once
read about spi: https://elinux.org/images/2/20/Whats_going_on_with_SPI--mark_brown.pdf
https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git

View File

@@ -11,16 +11,27 @@
[platformio]
default_envs = tbeam
;default_envs = tbeam0.7
;default_envs = heltec
;default_envs = heltec-v1
;default_envs = heltec-v2.0
;default_envs = heltec-v2.1
;default_envs = tlora-v1
;default_envs = tlora-v1
;default_envs = tlora_v1_3
;default_envs = tlora-v2
;default_envs = tlora-v2-1-1.6
;default_envs = lora-relay-v1 # nrf board
;default_envs = eink
;default_envs = t-echo
;default_envs = nrf52840dk-geeksville
;default_envs = native # lora-relay-v1 # nrf52840dk-geeksville # linux # or if you'd like to change the default to something like lora-relay-v1 put that here
;default_envs = rak4631
;default_envs = rak4630
;default_envs = rak4631_5005
;default_envs = rak4631_5005_eink
;default_envs = rak4631_19003
;default_envs = meshtastic-diy-v1
;default_envs = meshtastic-diy-v1.1
; board specific config can be moved to the respective 'variants' file.
; See https://docs.platformio.org/en/latest/projectconf/section_platformio.html#extra-configs
extra_configs = variants/*/platformio.ini
[common]
; common is not currently used
@@ -67,20 +78,24 @@ debug_tool = jlink
; monitor adapter_khz 10000
lib_deps =
https://github.com/meshtastic/esp8266-oled-ssd1306.git#35d796226b853b0c0ff818b2f1aa3d35e7296a96 ; ESP8266_SSD1306
https://github.com/geeksville/OneButton.git ; OneButton library for non-blocking button debounce
https://github.com/meshtastic/esp8266-oled-ssd1306.git#d90231dedbb2f52bd7a32fb8ed8edec52cf4a8cb ; ESP8266_SSD1306
https://github.com/meshtastic/OneButton.git#3bcba9492d01e2a8a86f46700ab16f96dd2cf1f5 ; OneButton library for non-blocking button debounce
1202 ; CRC32, explicitly needed because dependency is missing in the ble ota update lib
https://github.com/meshtastic/arduino-fsm.git#829e967b8a95c094f73c60ef8dacfe66eae38940
https://github.com/meshtastic/arduino-fsm.git
https://github.com/meshtastic/SparkFun_Ublox_Arduino_Library.git#31015a55e630a2df77d9d714669c621a5bf355ad
https://github.com/meshtastic/RadioLib.git#07de964e929238949035fb0d5887026a3058df1a
https://github.com/meshtastic/RadioLib.git#5582ac30578ff3f53f20630a00b2a8a4b8f92c74
https://github.com/meshtastic/TinyGPSPlus.git#f0f47067ef2f67c856475933188251c1ef615e79
https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460
Wire ; explicitly needed here because the AXP202 library forgets to add it
SPI
https://github.com/geeksville/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3
PubSubClient
; Common settings for conventional (non Portduino) Ardino targets
; Used for the code analysis in PIO Home / Inspect
check_tool = cppcheck
check_skip_packages = yes
; Common settings for conventional (non Portduino) Arduino targets
[arduino_base]
framework = arduino
@@ -88,10 +103,22 @@ framework = arduino
lib_deps =
${env.lib_deps}
build_flags = ${env.build_flags} -Os
build_flags = ${env.build_flags} -Os
# -DRADIOLIB_GODMODE
src_filter = ${env.src_filter} -<portduino/>
; Common libs for environmental measurements (not included in native / portduino)
[environmental]
lib_deps =
adafruit/DHT sensor library@^1.4.1
adafruit/Adafruit Unified Sensor@^1.1.4
paulstoffregen/OneWire@^2.3.5
robtillaart/DS18B20@^0.1.11
adafruit/Adafruit BME280 Library@^2.2.2
adafruit/Adafruit BME680 Library@^2.0.1
adafruit/Adafruit MCP9808 Library@^2.0.0
; Common settings for ESP targes, mixin with extends = esp32_base
[esp32_base]
extends = arduino_base
@@ -100,23 +127,34 @@ src_filter =
${arduino_base.src_filter} -<nrf52/>
upload_speed = 921600
debug_init_break = tbreak setup
# Remove -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL for low level BLE logging.
# See library directory for BLE logging possible values: .pio/libdeps/tbeam/NimBLE-Arduino/src/log_common/log_common.h
# This overrides the BLE logging default of LOG_LEVEL_INFO (1) from: .pio/libdeps/tbeam/NimBLE-Arduino/src/esp_nimble_cfg.h
build_flags =
${arduino_base.build_flags} -Wall -Wextra -Isrc/esp32 -Isrc/esp32-mfix-esp32-psram-cache-issue -lnimble -std=c++11
-DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
-DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG -DMYNEWT_VAL_BLE_HS_LOG_LVL=LOG_LEVEL_CRITICAL
-DAXP_DEBUG_PORT=Serial
lib_deps =
${arduino_base.lib_deps}
${environmental.lib_deps}
https://github.com/meshtastic/esp32_https_server.git
adafruit/DHT sensor library@^1.4.1
adafruit/Adafruit Unified Sensor@^1.1.4
h2zero/NimBLE-Arduino@1.3.6
tobozo/ESP32-targz@^1.1.4
arduino-libraries/NTPClient#531eff39d9fbc831f3d03f706a161739203fbe2a
lorol/LittleFS_esp32@^1.0.6
# Hmm - this doesn't work yet
# board_build.ldscript = linker/esp32.extram.bss.ld
lib_ignore = segger_rtt
lib_ignore =
segger_rtt
ESP32 BLE Arduino
platform_packages =
framework-arduinoespressif32@https://github.com/meshtastic/arduino-esp32.git#4cde0f5d412d2695184f32e8a47e9bea57b45276
; leave this commented out to avoid breaking Windows
upload_port = /dev/ttyUSB0
;upload_port = /dev/ttyUSB0
;monitor_port = /dev/ttyUSB0
;upload_port = /dev/cu.SLAB_USBtoUART
@@ -133,63 +171,16 @@ board_build.partitions = partition-table.csv
; -DLOG_LOCAL_LEVEL=ESP_LOG_DEBUG -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG
; The 1.0 release of the TBEAM board
[env:tbeam]
extends = esp32_base
board = ttgo-t-beam
lib_deps =
${esp32_base.lib_deps}
build_flags =
${esp32_base.build_flags} -D TBEAM_V10
; The original TBEAM board without the AXP power chip and a few other changes
; Note: I've heard reports this didn't work. Disabled until someone with a 0.7 can test and debug.
[env:tbeam0.7]
extends = esp32_base
board = ttgo-t-beam
build_flags =
${esp32_base.build_flags} -D TBEAM_V07
[env:heltec]
;build_type = debug ; to make it possible to step through our jtag debugger
extends = esp32_base
board = heltec_wifi_lora_32_V2
[env:tlora-v1]
extends = esp32_base
board = ttgo-lora32-v1
build_flags =
${esp32_base.build_flags} -D TLORA_V1
; note: the platformio definition for lora32-v2 seems stale, it is missing a pins_arduino.h file, therefore I don't think it works
[env:tlora_v1_3]
extends = esp32_base
board = ttgo-lora32-v1
build_flags =
${esp32_base.build_flags} -D TLORA_V1_3
[env:tlora-v2]
extends = esp32_base
board = ttgo-lora32-v1
build_flags =
${esp32_base.build_flags} -D TLORA_V2
[env:tlora-v2-1-1.6]
extends = esp32_base
board = ttgo-lora32-v1
build_flags =
${esp32_base.build_flags} -D TLORA_V2_1_16
; The Heltec Cubecell plus
; IMPORTANT NOTE: This target doesn't yet work and probably won't ever work. I'm keeping it around for now.
; For more details see my post in the forum.
[env:cubecellplus]
platform = https://github.com/HelTecAutomation/platform-asrmicro650x.git ; we use top-of-tree because stable version has too many bugs - asrmicro650x
board = cubecell_board_plus
;[env:cubecellplus]
;platform = https://github.com/HelTecAutomation/platform-asrmicro650x.git ; we use top-of-tree because stable version has too many bugs - asrmicro650x
;board = cubecell_board_plus
; FIXME, bug in cubecell arduino - they are supposed to set ARDUINO
build_flags = ${arduino_base.build_flags} -DARDUINO=100 -Isrc/cubecell
src_filter =
${arduino_base.src_filter} -<esp32/> -<nrf52/>
;build_flags = ${arduino_base.build_flags} -DARDUINO=100 -Isrc/cubecell
;src_filter =
; ${arduino_base.src_filter} -<esp32/> -<nrf52/>
; Common settings for NRF52 based targets
[nrf52_base]
@@ -205,13 +196,13 @@ build_flags =
-Isdk-nrfxlib/crypto/nrf_oberon/include -Lsdk-nrfxlib/crypto/nrf_oberon/lib/cortex-m4/hard-float/ -lliboberon_3.0.7
;-DCFG_DEBUG=3
src_filter =
${arduino_base.src_filter} -<esp32/> -<nimble/> -<mesh/wifi/> -<mesh/http/> -<plugins/esp32> -<mqtt/>
${arduino_base.src_filter} -<esp32/> -<nimble/> -<mesh/wifi/> -<mesh/http/> -<modules/esp32> -<mqtt/>
lib_ignore =
BluetoothOTA
monitor_port = /dev/ttyACM1
; monitor_port = /dev/ttyACM1
# we pass in options to jlink so it can understand freertos (note: we don't use "jlink" as the tool)
debug_tool = jlink
;debug_tool = jlink
debug_port = :2331
# Note: the ARGUMENTS MUST BE on multiple lines. Otherwise platformio/commands/debug/helpers.py misparses everything into the "executable"
# attribute and leaves "arguments" empty
@@ -245,43 +236,21 @@ debug_init_break =
[nrf52840_base]
; Common base class for all nrf52840 based targets
extends = nrf52_base
; was -DTINY_USB
build_flags = ${nrf52_base.build_flags}
lib_deps =
${arduino_base.lib_deps}
${environmental.lib_deps}
Adafruit nRFCrypto
# Adafruit TinyUSB Arduino
# add Adafruit nRFCrypto platform IO automated scan is broken
[env:lora_isp4520]
extends = nrf52_base
board = lora_isp4520
# add our variants files to the include and src paths
build_flags = ${nrf52_base.build_flags} -Ivariants/lora_isp4520
# No screen and GPS on the board. We still need RTC.cpp for the RTC clock.
src_filter = ${nrf52_base.src_filter} +<../variants/lora_isp4520> -<graphics> -<gps> +<gps/GPS.cpp> +<gps/RTC.cpp>
lib_ignore = ${nrf52_base.lib_ignore}
ESP8266_SSD1306
SparkFun Ublox Arduino Library
AXP202X_Library
TinyGPSPlus
upload_protocol = jlink
monitor_port = /dev/ttyUSB0
; The NRF52840-dk development board
; Note: By default no lora device is created for this build - it uses a simulated interface
[env:nrf52840dk]
extends = nrf52840_base
board = nrf52840_dk
; The NRF52840-dk development board, but @geeksville's board - which has a busted oscilliator
[env:nrf52840dk-geeksville]
extends = nrf52840_base
board = nrf52840_dk_modified
# add our variants files to the include and src paths
build_flags = ${nrf52_base.build_flags} -Ivariants/pca10056-rc-clock
src_filter = ${nrf52_base.src_filter} +<../variants/pca10056-rc-clock>
; Note: By default no lora device is created for this build - it uses a simulated interface
[env:feather_nrf52832]
extends = nrf52_base
@@ -298,136 +267,3 @@ monitor_speed = 115200
# For experimenting with RAM sizes
# board_build.ldscript = linker/nrf52840_s140_sim832.ld
; The very slick RAK wireless RAK 4631 / 4630 board
[env:rak4631]
extends = nrf52840_base
board = wiscore_rak4631
# add our variants files to the include and src paths
# define build flags for the TFT_eSPI library
build_flags = ${nrf52_base.build_flags} -Ivariants/WisCore_RAK4631_Board
src_filter = ${nrf52_base.src_filter} +<../variants/WisCore_RAK4631_Board>
debug_tool = jlink
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
;upload_protocol = jlink
; THIS IS UNTESTED (I don't have this board), but other developers can use it as a starting point
[env:rak4600]
extends = nrf52_base
board = wiscore_rak4600
# add our variants files to the include and src paths
# define build flags for the TFT_eSPI library
build_flags = ${nrf52_base.build_flags} -Ivariants/WisCore_RAK4600_Board
src_filter = ${nrf52_base.src_filter} +<../variants/WisCore_RAK4600_Board>
lib_deps =
${arduino_base.lib_deps}
; The PPR board
[env:ppr]
extends = nrf52_base
board = ppr
lib_deps =
${arduino_base.lib_deps}
UC1701
; The PPR board
[env:ppr1]
extends = nrf52_base
board = ppr1
build_flags = ${nrf52_base.build_flags} -Ivariants/ppr1
src_filter = ${nrf52_base.src_filter} +<../variants/ppr1>
lib_deps =
${arduino_base.lib_deps}
; First prototype eink/nrf52840/sx1262 device
[env:eink]
extends = nrf52840_base
board = eink
# add our variants files to the include and src paths
# define build flags for the TFT_eSPI library
build_flags = ${nrf52_base.build_flags} -Ivariants/eink
-DBUSY_PIN=3 -DRST_PIN=2 -DDC_PIN=28 -DCS_PIN=30
src_filter = ${nrf52_base.src_filter} +<../variants/eink>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/geeksville/EPD_Libraries.git
TFT_eSPI
; First prototype eink/nrf52840/sx1262 device
[env:eink0.1]
extends = nrf52840_base
board = eink0.1
# add our variants files to the include and src paths
# define build flags for the TFT_eSPI library
build_flags = ${nrf52_base.build_flags} -Ivariants/eink0.1
-DBUSY_PIN=3 -DRST_PIN=2 -DDC_PIN=28 -DCS_PIN=30
src_filter = ${nrf52_base.src_filter} +<../variants/eink0.1>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/geeksville/EPD_Libraries.git
TFT_eSPI
; The https://github.com/BigCorvus/SX1262-LoRa-BLE-Relay board by @BigCorvus
[env:lora-relay-v1]
extends = nrf52840_base
board = lora-relay-v1
# add our variants files to the include and src paths
# define build flags for the TFT_eSPI library
build_flags = ${nrf52_base.build_flags} -Ivariants/lora_relay_v1
-DUSER_SETUP_LOADED
-DTFT_WIDTH=80
-DTFT_HEIGHT=160
-DST7735_GREENTAB160x80
-DST7735_DRIVER
-DTFT_CS=ST7735_CS
-DTFT_DC=ST7735_RS
-DTFT_RST=ST7735_RESET
-DSPI_FREQUENCY=27000000
src_filter = ${nrf52_base.src_filter} +<../variants/lora_relay_v1>
lib_deps =
${nrf52840_base.lib_deps}
SparkFun BQ27441 LiPo Fuel Gauge Arduino Library
TFT_eSPI
; The https://github.com/BigCorvus/LoRa-BLE-Relay-v2 board by @BigCorvus
[env:lora-relay-v2]
extends = nrf52840_base
board = lora-relay-v2
# add our variants files to the include and src paths
# define build flags for the TFT_eSPI library
build_flags = ${nrf52_base.build_flags} -Ivariants/lora_relay_v2
-DUSER_SETUP_LOADED
-DTFT_WIDTH=80
-DTFT_HEIGHT=160
-DST7735_GREENTAB160x80
-DST7735_DRIVER
-DTFT_CS=ST7735_CS
-DTFT_DC=ST7735_RS
-DTFT_RST=ST7735_RESET
-DSPI_FREQUENCY=27000000
-DTFT_WR=ST7735_SDA
-DTFT_SCLK=ST7735_SCK
src_filter = ${nrf52_base.src_filter} +<../variants/lora_relay_v2>
lib_deps =
${nrf52840_base.lib_deps}
SparkFun BQ27441 LiPo Fuel Gauge Arduino Library
TFT_eSPI
; The Portduino based sim environment on top of linux
[env:native]
platform = https://github.com/geeksville/platform-native.git
src_filter = ${env.src_filter} -<esp32/> -<nimble/> -<nrf52/> -<mesh/http/> -<plugins/esp32>
build_flags = ${arduino_base.build_flags} -O0
framework = arduino
board = native
lib_deps =
${arduino_base.lib_deps}
rweather/Crypto
; The GenieBlocks LORA prototype board
; note: @geeksville disabled because genieblocks_lora is not checked into the boards directory, please send in a PR to add it ;-)
;[env:genieblocks_lora]
;extends = esp32_base
;board = genieblocks_lora
;build_flags =
; ${esp32_base.build_flags} -D GENIEBLOCKS

2
proto

Submodule proto updated: 157f9891dd...f6ba3722be

1
src/.gitignore vendored
View File

@@ -1 +0,0 @@
main.ino.cpp

View File

@@ -1,3 +1,4 @@
#include "configuration.h"
#include "BluetoothCommon.h"
// NRF52 wants these constants as byte arrays

220
src/ButtonThread.h Normal file
View File

@@ -0,0 +1,220 @@
#include "configuration.h"
#include "concurrency/OSThread.h"
#include "PowerFSM.h"
#include "RadioLibInterface.h"
#include "graphics/Screen.h"
#include "power.h"
#include "buzz.h"
#include <OneButton.h>
#ifndef NO_ESP32
#include "nimble/BluetoothUtil.h"
#endif
namespace concurrency
{
/**
* Watch a GPIO and if we get an IRQ, wake the main thread.
* Use to add wake on button press
*/
void wakeOnIrq(int irq, int mode)
{
attachInterrupt(
irq,
[] {
BaseType_t higherWake = 0;
mainDelay.interruptFromISR(&higherWake);
},
FALLING);
}
class ButtonThread : public concurrency::OSThread
{
// Prepare for button presses
#ifdef BUTTON_PIN
OneButton userButton;
#endif
#ifdef BUTTON_PIN_ALT
OneButton userButtonAlt;
#endif
#ifdef BUTTON_PIN_TOUCH
OneButton userButtonTouch;
#endif
static bool shutdown_on_long_stop;
public:
static uint32_t longPressTime;
// callback returns the period for the next callback invocation (or 0 if we should no longer be called)
ButtonThread() : OSThread("Button")
{
#ifdef BUTTON_PIN
userButton = OneButton(BUTTON_PIN, true, true);
#ifdef INPUT_PULLUP_SENSE
// Some platforms (nrf52) have a SENSE variant which allows wake from sleep - override what OneButton did
pinMode(BUTTON_PIN, INPUT_PULLUP_SENSE);
#endif
userButton.attachClick(userButtonPressed);
userButton.attachDuringLongPress(userButtonPressedLong);
userButton.attachDoubleClick(userButtonDoublePressed);
userButton.attachMultiClick(userButtonMultiPressed);
userButton.attachLongPressStart(userButtonPressedLongStart);
userButton.attachLongPressStop(userButtonPressedLongStop);
wakeOnIrq(BUTTON_PIN, FALLING);
#endif
#ifdef BUTTON_PIN_ALT
userButtonAlt = OneButton(BUTTON_PIN_ALT, true, true);
#ifdef INPUT_PULLUP_SENSE
// Some platforms (nrf52) have a SENSE variant which allows wake from sleep - override what OneButton did
pinMode(BUTTON_PIN_ALT, INPUT_PULLUP_SENSE);
#endif
userButtonAlt.attachClick(userButtonPressed);
userButtonAlt.attachDuringLongPress(userButtonPressedLong);
userButtonAlt.attachDoubleClick(userButtonDoublePressed);
userButtonAlt.attachLongPressStart(userButtonPressedLongStart);
userButtonAlt.attachLongPressStop(userButtonPressedLongStop);
wakeOnIrq(BUTTON_PIN_ALT, FALLING);
#endif
#ifdef BUTTON_PIN_TOUCH
userButtonTouch = OneButton(BUTTON_PIN_TOUCH, true, true);
#ifdef INPUT_PULLUP_SENSE
// Some platforms (nrf52) have a SENSE variant which allows wake from sleep - override what OneButton did
pinMode(BUTTON_PIN_TOUCH, INPUT_PULLUP_SENSE);
#endif
userButtonTouch.attachClick(touchPressed);
userButtonTouch.attachDuringLongPress(touchPressedLong);
userButtonTouch.attachDoubleClick(touchDoublePressed);
userButtonTouch.attachLongPressStart(touchPressedLongStart);
userButtonTouch.attachLongPressStop(touchPressedLongStop);
wakeOnIrq(BUTTON_PIN_TOUCH, FALLING);
#endif
}
protected:
/// If the button is pressed we suppress CPU sleep until release
int32_t runOnce() override
{
canSleep = true; // Assume we should not keep the board awake
#ifdef BUTTON_PIN
userButton.tick();
canSleep &= userButton.isIdle();
#endif
#ifdef BUTTON_PIN_ALT
userButtonAlt.tick();
canSleep &= userButtonAlt.isIdle();
#endif
#ifdef BUTTON_PIN_TOUCH
userButtonTouch.tick();
canSleep &= userButtonTouch.isIdle();
#endif
// if (!canSleep) DEBUG_MSG("Supressing sleep!\n");
// else DEBUG_MSG("sleep ok\n");
return 5;
}
private:
static void touchPressed()
{
screen->forceDisplay();
DEBUG_MSG("touch press!\n");
}
static void touchDoublePressed()
{
DEBUG_MSG("touch double press!\n");
}
static void touchPressedLong()
{
DEBUG_MSG("touch press long!\n");
}
static void touchDoublePressedLong()
{
DEBUG_MSG("touch double pressed!\n");
}
static void touchPressedLongStart()
{
DEBUG_MSG("touch long press start!\n");
}
static void touchPressedLongStop()
{
DEBUG_MSG("touch long press stop!\n");
}
static void userButtonPressed()
{
// DEBUG_MSG("press!\n");
powerFSM.trigger(EVENT_PRESS);
}
static void userButtonPressedLong()
{
// DEBUG_MSG("Long press!\n");
#ifndef NRF52_SERIES
screen->adjustBrightness();
#endif
// If user button is held down for 5 seconds, shutdown the device.
if (millis() - longPressTime > 5 * 1000) {
#ifdef TBEAM_V10
if (axp192_found == true) {
setLed(false);
power->shutdown();
}
#elif NRF52_SERIES
// Do actual shutdown when button released, otherwise the button release
// may wake the board immediatedly.
if (!shutdown_on_long_stop) {
screen->startShutdownScreen();
DEBUG_MSG("Shutdown from long press");
playBeep();
ledOff(PIN_LED1);
ledOff(PIN_LED2);
shutdown_on_long_stop = true;
}
#endif
} else {
// DEBUG_MSG("Long press %u\n", (millis() - longPressTime));
}
}
static void userButtonDoublePressed()
{
#ifndef NO_ESP32
disablePin();
#elif defined(HAS_EINK)
digitalWrite(PIN_EINK_EN,digitalRead(PIN_EINK_EN) == LOW);
#endif
}
static void userButtonMultiPressed()
{
#ifndef NO_ESP32
clearNVS();
#endif
#ifdef NRF52_SERIES
clearBonds();
#endif
}
static void userButtonPressedLongStart()
{
DEBUG_MSG("Long press start!\n");
longPressTime = millis();
}
static void userButtonPressedLongStop()
{
DEBUG_MSG("Long press stop!\n");
longPressTime = 0;
if (shutdown_on_long_stop) {
playShutdownMelody();
delay(3000);
power->shutdown();
}
}
};
}

61
src/DebugConfiguration.h Normal file
View File

@@ -0,0 +1,61 @@
// DEBUG LED
#ifndef LED_INVERTED
#define LED_INVERTED 0 // define as 1 if LED is active low (on)
#endif
// -----------------------------------------------------------------------------
// DEBUG
// -----------------------------------------------------------------------------
#ifdef CONSOLE_MAX_BAUD
#define SERIAL_BAUD CONSOLE_MAX_BAUD
#else
#define SERIAL_BAUD 921600 // Serial debug baud rate
#endif
#include "SerialConsole.h"
#define DEBUG_PORT (*console) // Serial debug port
// What platforms should use SEGGER?
#ifdef NRF52_SERIES
// Always include the SEGGER code on NRF52 - because useful for debugging
#include "SEGGER_RTT.h"
// The channel we send stdout data to
#define SEGGER_STDOUT_CH 0
// Debug printing to segger console
#define SEGGER_MSG(...) SEGGER_RTT_printf(SEGGER_STDOUT_CH, __VA_ARGS__)
// If we are not on a NRF52840 (which has built in USB-ACM serial support) and we don't have serial pins hooked up, then we MUST
// use SEGGER for debug output
#if !defined(PIN_SERIAL_RX) && !defined(NRF52840_XXAA)
// No serial ports on this board - ONLY use segger in memory console
#define USE_SEGGER
#endif
#else
#define SERIAL0_RX_GPIO 3 // Always GPIO3 on ESP32
#endif
#ifdef USE_SEGGER
#define DEBUG_MSG(...) SEGGER_RTT_printf(0, __VA_ARGS__)
#else
#ifdef DEBUG_PORT
#define DEBUG_MSG(...) DEBUG_PORT.logDebug(__VA_ARGS__)
#else
#define DEBUG_MSG(...)
#endif
#endif
// -----------------------------------------------------------------------------
// AXP192 (Rev1-specific options)
// -----------------------------------------------------------------------------
#define GPS_POWER_CTRL_CH 3
#define LORA_POWER_CTRL_CH 2
// Default Bluetooth PIN
#define defaultBLEPin 123456

View File

@@ -1,21 +1,22 @@
#include "configuration.h"
#include "FSCommon.h"
void fsInit()
{
#ifdef FS
if (!FSBegin())
#ifdef FSCom
if (!FSBegin())
{
DEBUG_MSG("ERROR filesystem mount Failed\n");
assert(0); // FIXME - report failure to phone
}
DEBUG_MSG("Filesystem files:\n");
File dir = FS.open("/");
File dir = FSCom.open("/");
File f = dir.openNextFile();
while (f) {
DEBUG_MSG(" %s\n", f.name());
f.close();
f = dir.openNextFile();
f = dir.openNextFile();
}
#endif
}

View File

@@ -7,22 +7,22 @@
#ifdef PORTDUINO
// Portduino version
#include "PortduinoFS.h"
#define FS PortduinoFS
#define FSCom PortduinoFS
#define FSBegin() true
#define FILE_O_WRITE "w"
#define FILE_O_READ "r"
#elif !defined(NO_ESP32)
// ESP32 version
#include "SPIFFS.h"
#define FS SPIFFS
#define FSBegin() FS.begin(true)
#include "LITTLEFS.h"
#define FSCom LITTLEFS
#define FSBegin() FSCom.begin(true)
#define FILE_O_WRITE "w"
#define FILE_O_READ "r"
#else
// NRF52 version
#include "InternalFileSystem.h"
#define FS InternalFS
#define FSBegin() FS.begin()
#define FSCom InternalFS
#define FSBegin() FSCom.begin()
using namespace Adafruit_LittleFS_Namespace;
#endif

View File

@@ -1,8 +1,11 @@
#pragma once
#include "Status.h"
#include "configuration.h"
#include "NodeDB.h"
#include <Arduino.h>
extern NodeDB nodeDB;
namespace meshtastic
{
@@ -16,28 +19,39 @@ class GPSStatus : public Status
bool hasLock = false; // default to false, until we complete our first read
bool isConnected = false; // Do we have a GPS we are talking to
int32_t latitude = 0, longitude = 0; // as an int mult by 1e-7 to get value as double
int32_t altitude = 0;
uint32_t dop = 0; // Diminution of position; PDOP where possible (UBlox), HDOP otherwise (TinyGPS) in 10^2 units (needs
// scaling before use)
uint32_t heading = 0;
uint32_t numSatellites = 0;
Position p = Position_init_default;
public:
GPSStatus() { statusType = STATUS_TYPE_GPS; }
// proposed for deprecation
GPSStatus(bool hasLock, bool isConnected, int32_t latitude, int32_t longitude, int32_t altitude, uint32_t dop,
uint32_t heading, uint32_t numSatellites)
: Status()
{
this->hasLock = hasLock;
this->isConnected = isConnected;
this->latitude = latitude;
this->longitude = longitude;
this->altitude = altitude;
this->dop = dop;
this->heading = heading;
this->numSatellites = numSatellites;
this->p.latitude_i = latitude;
this->p.longitude_i = longitude;
this->p.altitude = altitude;
this->p.PDOP = dop;
this->p.ground_track = heading;
this->p.sats_in_view = numSatellites;
}
// preferred method
GPSStatus(bool hasLock, bool isConnected, const Position& pos)
: Status()
{
this->hasLock = hasLock;
this->isConnected = isConnected;
// all-in-one struct copy
this->p = pos;
}
GPSStatus(const GPSStatus &);
GPSStatus &operator=(const GPSStatus &);
@@ -47,45 +61,91 @@ class GPSStatus : public Status
bool getIsConnected() const { return isConnected; }
int32_t getLatitude() const { return latitude; }
int32_t getLatitude() const {
if (radioConfig.preferences.fixed_position){
#if GPS_EXTRAVERBOSE
DEBUG_MSG("WARNING: Using fixed latitude\n");
#endif
NodeInfo *node = nodeDB.getNode(nodeDB.getNodeNum());
return node->position.latitude_i;
} else {
return p.latitude_i;
}
}
int32_t getLongitude() const { return longitude; }
int32_t getLongitude() const {
if (radioConfig.preferences.fixed_position){
#if GPS_EXTRAVERBOSE
DEBUG_MSG("WARNING: Using fixed longitude\n");
#endif
NodeInfo *node = nodeDB.getNode(nodeDB.getNodeNum());
return node->position.longitude_i;
} else {
return p.longitude_i;
}
}
int32_t getAltitude() const { return altitude; }
int32_t getAltitude() const {
if (radioConfig.preferences.fixed_position){
#if GPS_EXTRAVERBOSE
DEBUG_MSG("WARNING: Using fixed altitude\n");
#endif
NodeInfo *node = nodeDB.getNode(nodeDB.getNodeNum());
return node->position.altitude;
} else {
return p.altitude;
}
}
uint32_t getDOP() const { return dop; }
uint32_t getDOP() const { return p.PDOP; }
uint32_t getHeading() const { return heading; }
uint32_t getHeading() const { return p.ground_track; }
uint32_t getNumSatellites() const { return numSatellites; }
uint32_t getNumSatellites() const { return p.sats_in_view; }
bool matches(const GPSStatus *newStatus) const
{
return (newStatus->hasLock != hasLock || newStatus->isConnected != isConnected || newStatus->latitude != latitude ||
newStatus->longitude != longitude || newStatus->altitude != altitude || newStatus->dop != dop ||
newStatus->heading != heading || newStatus->numSatellites != numSatellites);
#if GPS_EXTRAVERBOSE
DEBUG_MSG("GPSStatus.match() new pos@%x to old pos@%x\n",
newStatus->p.pos_timestamp, p.pos_timestamp);
#endif
return (newStatus->hasLock != hasLock ||
newStatus->isConnected != isConnected ||
newStatus->p.latitude_i != p.latitude_i ||
newStatus->p.longitude_i != p.longitude_i ||
newStatus->p.altitude != p.altitude ||
newStatus->p.altitude_hae != p.altitude_hae ||
newStatus->p.PDOP != p.PDOP ||
newStatus->p.ground_track != p.ground_track ||
newStatus->p.sats_in_view != p.sats_in_view);
}
int updateStatus(const GPSStatus *newStatus)
{
// Only update the status if values have actually changed
bool isDirty;
{
isDirty = matches(newStatus);
initialized = true;
hasLock = newStatus->hasLock;
isConnected = newStatus->isConnected;
latitude = newStatus->latitude;
longitude = newStatus->longitude;
altitude = newStatus->altitude;
dop = newStatus->dop;
heading = newStatus->heading;
numSatellites = newStatus->numSatellites;
bool isDirty = matches(newStatus);
if (isDirty && p.pos_timestamp &&
(newStatus->p.pos_timestamp == p.pos_timestamp)) {
// We can NEVER be in two locations at the same time! (also PR #886)
DEBUG_MSG("BUG!! positional timestamp unchanged from prev solution\n");
}
initialized = true;
hasLock = newStatus->hasLock;
isConnected = newStatus->isConnected;
p = newStatus->p;
if (isDirty) {
if (hasLock)
DEBUG_MSG("New GPS pos lat=%f, lon=%f, alt=%d, pdop=%f, heading=%f, sats=%d\n", latitude * 1e-7, longitude * 1e-7,
altitude, dop * 1e-2, heading * 1e-5, numSatellites);
else
if (hasLock) {
// In debug logs, identify position by @timestamp:stage (stage 3 = notify)
DEBUG_MSG("New GPS pos@%x:3 lat=%f, lon=%f, alt=%d, pdop=%.2f, track=%.2f, sats=%d\n",
p.pos_timestamp,
p.latitude_i * 1e-7, p.longitude_i * 1e-7,
p.altitude, p.PDOP * 1e-2, p.ground_track * 1e-5,
p.sats_in_view);
} else
DEBUG_MSG("No GPS lock\n");
onNewStatus.notifyObservers(this);
}
@@ -95,4 +155,4 @@ class GPSStatus : public Status
} // namespace meshtastic
extern meshtastic::GPSStatus *gpsStatus;
extern meshtastic::GPSStatus *gpsStatus;

View File

@@ -1,5 +1,5 @@
#include "OSTimer.h"
#include "configuration.h"
#include "OSTimer.h"
/**
* Schedule a callback to run. The callback must _not_ block, though it is called from regular thread level (not ISR)

View File

@@ -1,2 +1,3 @@
#include "configuration.h"
#include "Observer.h"

View File

@@ -47,7 +47,7 @@ template <class Callback, class T> class CallbackObserver : public Observer<T>
CallbackObserver(Callback *_objPtr, ObserverCallback _method) : objPtr(_objPtr), method(_method) {}
protected:
virtual int onNotify(T arg) { return (objPtr->*method)(arg); }
virtual int onNotify(T arg) override { return (objPtr->*method)(arg); }
};
/**
@@ -104,4 +104,4 @@ template <class T> void Observer<T>::observe(Observable<T> *o)
observed = o;
o->addObserver(this);
}
}

View File

@@ -1,3 +1,4 @@
#include "configuration.h"
#include "power.h"
#include "NodeDB.h"
#include "PowerFSM.h"
@@ -42,6 +43,7 @@ Power *power;
using namespace meshtastic;
#ifndef AREF_VOLTAGE
#if defined(NRF52_SERIES)
/*
* Internal Reference is +/-0.6V, with an adjustable gain of 1/6, 1/5, 1/4,
@@ -56,6 +58,7 @@ using namespace meshtastic;
#else
#define AREF_VOLTAGE 3.3
#endif
#endif
/**
* If this board has a battery level sensor, set this to a valid implementation
@@ -72,28 +75,35 @@ class AnalogBatteryLevel : public HasBatteryLevel
*
* FIXME - use a lipo lookup table, the current % full is super wrong
*/
virtual int getBattPercentage()
virtual int getBattPercentage() override
{
float v = getBattVoltage();
if (v < noBatVolt)
return -1; // If voltage is super low assume no battery installed
#ifndef NRF52_SERIES
// This does not work on a RAK4631 with battery connected
if (v > chargingVolt)
return 0; // While charging we can't report % full on the battery
#endif
return 100 * (v - emptyVolt) / (fullVolt - emptyVolt);
return clamp((int)(100 * (v - emptyVolt) / (fullVolt - emptyVolt)), 0, 100);
}
/**
* The raw voltage of the batteryin millivolts or NAN if unknown
*/
virtual float getBattVoltage()
virtual float getBattVoltage() override
{
#ifndef ADC_MULTIPLIER
#define ADC_MULTIPLIER 2.0
#endif
// Override variant or default ADC_MULTIPLIER if we have the override pref
float operativeAdcMultiplier = radioConfig.preferences.adc_multiplier_override > 0 ?
radioConfig.preferences.adc_multiplier_override :
ADC_MULTIPLIER;
#ifdef BATTERY_PIN
// Do not call analogRead() often.
@@ -101,8 +111,13 @@ class AnalogBatteryLevel : public HasBatteryLevel
if (millis() - last_read_time_ms > min_read_interval) {
last_read_time_ms = millis();
uint32_t raw = analogRead(BATTERY_PIN);
float scaled = 1000.0 * ADC_MULTIPLIER * (AREF_VOLTAGE / 1024.0) * raw;
// DEBUG_MSG("raw val=%u scaled=%u\n", raw, (uint32_t)(scaled));
float scaled;
#ifndef VBAT_RAW_TO_SCALED
scaled = 1000.0 * operativeAdcMultiplier * (AREF_VOLTAGE / 1024.0) * raw;
#else
scaled = VBAT_RAW_TO_SCALED(raw); //defined in variant.h
#endif
// DEBUG_MSG("battery gpio %d raw val=%u scaled=%u\n", BATTERY_PIN, raw, (uint32_t)(scaled));
last_read_value = scaled;
return scaled;
} else {
@@ -116,30 +131,37 @@ class AnalogBatteryLevel : public HasBatteryLevel
/**
* return true if there is a battery installed in this unit
*/
virtual bool isBatteryConnect() { return getBattPercentage() != -1; }
virtual bool isBatteryConnect() override { return getBattPercentage() != -1; }
/// If we see a battery voltage higher than physics allows - assume charger is pumping
/// in power
virtual bool isVBUSPlug() { return getBattVoltage() > 1000 * chargingVolt; }
virtual bool isVBUSPlug() override { return getBattVoltage() > chargingVolt; }
/// Assume charging if we have a battery and external power is connected.
/// we can't be smart enough to say 'full'?
virtual bool isChargeing() { return isBatteryConnect() && isVBUSPlug(); }
virtual bool isChargeing() override { return isBatteryConnect() && isVBUSPlug(); }
private:
/// If we see a battery voltage higher than physics allows - assume charger is pumping
/// in power
const float fullVolt = 4200, emptyVolt = 3270, chargingVolt = 4210, noBatVolt = 2100;
/// For heltecs with no battery connected, the measured voltage is 2204, so raising to 2230 from 2100
const float fullVolt = 4200, emptyVolt = 3270, chargingVolt = 4210, noBatVolt = 2230;
float last_read_value = 0.0;
uint32_t last_read_time_ms = 0;
} analogLevel;
};
Power::Power() : OSThread("Power") {}
AnalogBatteryLevel analogLevel;
Power::Power() : OSThread("Power") {
statusHandler = {};
low_voltage_counter = 0;
}
bool Power::analogInit()
{
#ifdef BATTERY_PIN
DEBUG_MSG("Using analog input for battery level\n");
DEBUG_MSG("Using analog input %d for battery level\n", BATTERY_PIN);
// disable any internal pullups
pinMode(BATTERY_PIN, INPUT);
@@ -149,11 +171,19 @@ bool Power::analogInit()
adcAttachPin(BATTERY_PIN);
#endif
#ifdef NRF52_SERIES
#ifdef VBAT_AR_INTERNAL
analogReference(VBAT_AR_INTERNAL);
#else
analogReference(AR_INTERNAL); // 3.6V
#endif
#endif
#ifndef BATTERY_SENSE_RESOLUTION_BITS
#define BATTERY_SENSE_RESOLUTION_BITS 10
#endif
// adcStart(BATTERY_PIN);
analogReadResolution(10); // Default of 12 is not very linear. Recommended to use 10 or 11 depending on needed resolution.
analogReadResolution(BATTERY_SENSE_RESOLUTION_BITS); // Default of 12 is not very linear. Recommended to use 10 or 11 depending on needed resolution.
batteryLevel = &analogLevel;
return true;
#else
@@ -169,6 +199,7 @@ bool Power::setup()
found = analogInit();
}
enabled = found;
low_voltage_counter = 0;
return found;
}
@@ -208,20 +239,35 @@ void Power::readPowerStatus()
}
// Notify any status instances that are observing us
const PowerStatus powerStatus =
const PowerStatus powerStatus2 =
PowerStatus(hasBattery ? OptTrue : OptFalse, batteryLevel->isVBUSPlug() ? OptTrue : OptFalse,
batteryLevel->isChargeing() ? OptTrue : OptFalse, batteryVoltageMv, batteryChargePercent);
DEBUG_MSG("Battery: usbPower=%d, isCharging=%d, batMv=%d, batPct=%d\n", powerStatus.getHasUSB(),
powerStatus.getIsCharging(), powerStatus.getBatteryVoltageMv(), powerStatus.getBatteryChargePercent());
newStatus.notifyObservers(&powerStatus);
DEBUG_MSG("Battery: usbPower=%d, isCharging=%d, batMv=%d, batPct=%d\n", powerStatus2.getHasUSB(),
powerStatus2.getIsCharging(), powerStatus2.getBatteryVoltageMv(), powerStatus2.getBatteryChargePercent());
newStatus.notifyObservers(&powerStatus2);
// If we have a battery at all and it is less than 10% full, force deep sleep if we have more than 3 low readings in a row
// Supect fluctuating voltage on the RAK4631 to force it to deep sleep even if battery is at 85% after only a few days
#ifdef NRF52_SERIES
if (powerStatus2.getHasBattery() && !powerStatus2.getHasUSB()){
if (batteryLevel->getBattVoltage() < MIN_BAT_MILLIVOLTS){
low_voltage_counter++;
if (low_voltage_counter>3)
powerFSM.trigger(EVENT_LOW_BATTERY);
} else {
low_voltage_counter = 0;
}
}
#else
// If we have a battery at all and it is less than 10% full, force deep sleep
if (powerStatus.getHasBattery() && !powerStatus.getHasUSB() && batteryLevel->getBattVoltage() < MIN_BAT_MILLIVOLTS)
if (powerStatus2.getHasBattery() && !powerStatus2.getHasUSB() && batteryLevel->getBattVoltage() < MIN_BAT_MILLIVOLTS)
powerFSM.trigger(EVENT_LOW_BATTERY);
#endif
} else {
// No power sensing on this board - tell everyone else we have no idea what is happening
const PowerStatus powerStatus = PowerStatus(OptUnknown, OptUnknown, OptUnknown, -1, -1);
newStatus.notifyObservers(&powerStatus);
const PowerStatus powerStatus3 = PowerStatus(OptUnknown, OptUnknown, OptUnknown, -1, -1);
newStatus.notifyObservers(&powerStatus3);
}
}

View File

@@ -1,4 +1,3 @@
#include "PowerFSM.h"
#include "GPS.h"
#include "MeshService.h"
@@ -12,6 +11,11 @@
/// Should we behave as if we have AC power now?
static bool isPowered()
{
// Completely circumvents the battery / power sensing logic and assumes constant power source
if (radioConfig.preferences.is_always_powered) {
return true;
}
bool isRouter = radioConfig.preferences.is_router;
// If we are not a router and we already have AC power go to POWER state after init, otherwise go to ON
@@ -28,10 +32,19 @@ static bool isPowered()
static void sdsEnter()
{
DEBUG_MSG("Enter state: SDS\n");
// FIXME - make sure GPS and LORA radio are off first - because we want close to zero current draw
doDeepSleep(getPref_sds_secs() * 1000LL);
}
extern Power *power;
static void shutdownEnter()
{
DEBUG_MSG("Enter state: SHUTDOWN\n");
power->shutdown();
}
#include "error.h"
static uint32_t secsSlept;
@@ -42,7 +55,7 @@ static void lsEnter()
screen->setOn(false);
secsSlept = 0; // How long have we been sleeping this time
DEBUG_MSG("lsEnter end\n");
// DEBUG_MSG("lsEnter end\n");
}
static void lsIdle()
@@ -50,7 +63,6 @@ static void lsIdle()
// DEBUG_MSG("lsIdle begin ls_secs=%u\n", getPref_ls_secs());
#ifndef NO_ESP32
esp_sleep_source_t wakeCause = ESP_SLEEP_WAKEUP_UNDEFINED;
// Do we have more sleeping to do?
if (secsSlept < getPref_ls_secs()) {
@@ -60,14 +72,14 @@ static void lsIdle()
// If some other service would stall sleep, don't let sleep happen yet
if (doPreflightSleep()) {
setLed(false); // Never leave led on while in light sleep
wakeCause = doLightSleep(sleepTime * 1000LL);
esp_sleep_source_t wakeCause2 = doLightSleep(sleepTime * 1000LL);
switch (wakeCause) {
switch (wakeCause2) {
case ESP_SLEEP_WAKEUP_TIMER:
// Normal case: timer expired, we should just go back to sleep ASAP
setLed(true); // briefly turn on led
wakeCause = doLightSleep(1); // leave led on for 1ms
wakeCause2 = doLightSleep(1); // leave led on for 1ms
secsSlept += sleepTime;
// DEBUG_MSG("sleeping, flash led!\n");
@@ -81,7 +93,7 @@ static void lsIdle()
default:
// We woke for some other reason (button press, device interrupt)
// uint64_t status = esp_sleep_get_ext1_wakeup_status();
DEBUG_MSG("wakeCause %d\n", wakeCause);
DEBUG_MSG("wakeCause2 %d\n", wakeCause2);
#ifdef BUTTON_PIN
bool pressed = !digitalRead(BUTTON_PIN);
@@ -113,6 +125,7 @@ static void lsIdle()
static void lsExit()
{
DEBUG_MSG("Exit state: LS\n");
// setGPSPower(true); // restore GPS power
if (gps)
gps->forceWake(true);
@@ -120,6 +133,7 @@ static void lsExit()
static void nbEnter()
{
DEBUG_MSG("Enter state: NB\n");
screen->setOn(false);
setBluetoothEnable(false);
@@ -134,6 +148,7 @@ static void darkEnter()
static void serialEnter()
{
DEBUG_MSG("Enter state: SERIAL\n");
setBluetoothEnable(false);
screen->setOn(true);
screen->print("Serial connected\n");
@@ -146,6 +161,7 @@ static void serialExit()
static void powerEnter()
{
DEBUG_MSG("Enter state: POWER\n");
if (!isPowered()) {
// If we got here, we are in the wrong state - we should be in powered, let that state ahndle things
DEBUG_MSG("Loss of power in Powered\n");
@@ -175,6 +191,7 @@ static void powerExit()
static void onEnter()
{
DEBUG_MSG("Enter state: ON\n");
screen->setOn(true);
setBluetoothEnable(true);
@@ -203,8 +220,12 @@ static void screenPress()
screen->onPress();
}
static void bootEnter() {}
static void bootEnter()
{
DEBUG_MSG("Enter state: BOOT\n");
}
State stateSHUTDOWN(shutdownEnter, NULL, NULL, "SHUTDOWN");
State stateSDS(sdsEnter, NULL, NULL, "SDS");
State stateLS(lsEnter, lsIdle, lsExit, "LS");
State stateNB(nbEnter, NULL, NULL, "NB");
@@ -227,10 +248,11 @@ void PowerFSM_setup()
// if we are a router node, we go to NB (no need for bluetooth) otherwise we go to DARK (so we can send message to phone)
powerFSM.add_transition(&stateLS, isRouter ? &stateNB : &stateDARK, EVENT_WAKE_TIMER, NULL, "Wake timer");
// Note we don't really use this transition, because when we wake from light sleep we _always_ transition to NB or dark and
// then it handles things powerFSM.add_transition(&stateLS, &stateNB, EVENT_RECEIVED_PACKET, NULL, "Received packet");
powerFSM.add_transition(&stateNB, &stateNB, EVENT_RECEIVED_PACKET, NULL, "Received packet, resetting win wake");
// We need this transition, because we might not transition if we were waiting to enter light-sleep, because when we wake from
// light sleep we _always_ transition to NB or dark and
powerFSM.add_transition(&stateLS, isRouter ? &stateNB : &stateDARK, EVENT_PACKET_FOR_PHONE, NULL,
"Received packet, exiting light sleep");
powerFSM.add_transition(&stateNB, &stateNB, EVENT_PACKET_FOR_PHONE, NULL, "Received packet, resetting win wake");
// Handle press events - note: we ignore button presses when in API mode
powerFSM.add_transition(&stateLS, &stateON, EVENT_PRESS, NULL, "Press");
@@ -249,11 +271,22 @@ void PowerFSM_setup()
powerFSM.add_transition(&stateON, &stateSDS, EVENT_LOW_BATTERY, NULL, "LowBat");
powerFSM.add_transition(&stateSERIAL, &stateSDS, EVENT_LOW_BATTERY, NULL, "LowBat");
// Handle being told to power off
powerFSM.add_transition(&stateBOOT, &stateSHUTDOWN, EVENT_SHUTDOWN, NULL, "Shutdown");
powerFSM.add_transition(&stateLS, &stateSHUTDOWN, EVENT_SHUTDOWN, NULL, "Shutdown");
powerFSM.add_transition(&stateNB, &stateSHUTDOWN, EVENT_SHUTDOWN, NULL, "Shutdown");
powerFSM.add_transition(&stateDARK, &stateSHUTDOWN, EVENT_SHUTDOWN, NULL, "Shutdown");
powerFSM.add_transition(&stateON, &stateSHUTDOWN, EVENT_SHUTDOWN, NULL, "Shutdown");
powerFSM.add_transition(&stateSERIAL, &stateSHUTDOWN, EVENT_SHUTDOWN, NULL, "Shutdown");
powerFSM.add_transition(&stateDARK, &stateON, EVENT_BLUETOOTH_PAIR, NULL, "Bluetooth pairing");
powerFSM.add_transition(&stateON, &stateON, EVENT_BLUETOOTH_PAIR, NULL, "Bluetooth pairing");
// if we are a router we don't turn the screen on for these things
if (!isRouter) {
// if any packet destined for phone arrives, turn on bluetooth at least
powerFSM.add_transition(&stateNB, &stateDARK, EVENT_PACKET_FOR_PHONE, NULL, "Packet for phone");
// show the latest node when we get a new node db update
powerFSM.add_transition(&stateNB, &stateON, EVENT_NODEDB_UPDATED, NULL, "NodeDB update");
powerFSM.add_transition(&stateDARK, &stateON, EVENT_NODEDB_UPDATED, NULL, "NodeDB update");
@@ -293,26 +326,35 @@ void PowerFSM_setup()
powerFSM.add_transition(&stateDARK, &stateON, EVENT_FIRMWARE_UPDATE, NULL, "Got firmware update");
powerFSM.add_transition(&stateON, &stateON, EVENT_FIRMWARE_UPDATE, NULL, "Got firmware update");
powerFSM.add_transition(&stateNB, &stateDARK, EVENT_PACKET_FOR_PHONE, NULL, "Packet for phone");
powerFSM.add_timed_transition(&stateON, &stateDARK, getPref_screen_on_secs() * 1000, NULL, "Screen-on timeout");
// On most boards we use light-sleep to be our main state, but on NRF52 we just stay in DARK
State *lowPowerState = &stateLS;
uint32_t meshSds = 0;
#ifndef NRF52_SERIES
// We never enter light-sleep or NB states on NRF52 (because the CPU uses so little power normally)
// I don't think this transition is correct, turning off for now - @geeksville
// powerFSM.add_timed_transition(&stateDARK, &stateNB, getPref_phone_timeout_secs() * 1000, NULL, "Phone timeout");
// See: https://github.com/meshtastic/Meshtastic-device/issues/1071
if (isRouter || radioConfig.preferences.is_power_saving) {
// I don't think this transition is correct, turning off for now - @geeksville
// powerFSM.add_timed_transition(&stateDARK, &stateNB, getPref_phone_timeout_secs() * 1000, NULL, "Phone timeout");
powerFSM.add_timed_transition(&stateNB, &stateLS, getPref_min_wake_secs() * 1000, NULL, "Min wake timeout");
powerFSM.add_timed_transition(&stateDARK, &stateLS, getPref_wait_bluetooth_secs() * 1000, NULL, "Bluetooth timeout");
meshSds = getPref_mesh_sds_timeout_secs();
} else {
meshSds = UINT32_MAX;
}
powerFSM.add_timed_transition(&stateNB, &stateLS, getPref_min_wake_secs() * 1000, NULL, "Min wake timeout");
powerFSM.add_timed_transition(&stateDARK, &stateLS, getPref_wait_bluetooth_secs() * 1000, NULL, "Bluetooth timeout");
#else
lowPowerState = &stateDARK;
meshSds = UINT32_MAX; // Workaround for now: Don't go into deep sleep on the RAK4631
#endif
auto meshSds = getPref_mesh_sds_timeout_secs();
if (meshSds != UINT32_MAX)
powerFSM.add_timed_transition(lowPowerState, &stateSDS, meshSds * 1000, NULL, "mesh timeout");
// removing for now, because some users don't even have phones

View File

@@ -6,7 +6,7 @@
#define EVENT_PRESS 1
#define EVENT_WAKE_TIMER 2
#define EVENT_RECEIVED_PACKET 3
// #define EVENT_RECEIVED_PACKET 3
#define EVENT_PACKET_FOR_PHONE 4
#define EVENT_RECEIVED_TEXT_MSG 5
// #define EVENT_BOOT 6 // now done with a timed transition
@@ -19,6 +19,7 @@
#define EVENT_POWER_CONNECTED 13
#define EVENT_POWER_DISCONNECTED 14
#define EVENT_FIRMWARE_UPDATE 15 // We just received a new firmware update packet from the phone
#define EVENT_SHUTDOWN 16 //force a full shutdown now (not just sleep)
extern Fsm powerFSM;
extern State statePOWER, stateSERIAL;

38
src/PowerFSMThread.h Normal file
View File

@@ -0,0 +1,38 @@
#include "configuration.h"
#include "concurrency/OSThread.h"
#include "main.h"
#include "PowerFSM.h"
#include "power.h"
#include "NodeDB.h"
namespace concurrency
{
/// Wrapper to convert our powerFSM stuff into a 'thread'
class PowerFSMThread : public OSThread
{
public:
// callback returns the period for the next callback invocation (or 0 if we should no longer be called)
PowerFSMThread() : OSThread("PowerFSM") {}
protected:
int32_t runOnce() override
{
powerFSM.run_machine();
/// If we are in power state we force the CPU to wake every 10ms to check for serial characters (we don't yet wake
/// cpu for serial rx - FIXME)
auto state = powerFSM.getState();
canSleep = (state != &statePOWER) && (state != &stateSERIAL);
if (powerStatus->getHasUSB()) {
timeLastPowered = millis();
} else if (radioConfig.preferences.on_battery_shutdown_after_secs > 0 &&
millis() > timeLastPowered + (1000 * radioConfig.preferences.on_battery_shutdown_after_secs)) { //shutdown after 30 minutes unpowered
powerFSM.trigger(EVENT_SHUTDOWN);
}
return 10;
}
};
}

7
src/RF95Configuration.h Normal file
View File

@@ -0,0 +1,7 @@
// TODO refactor this out with better radio configuration system
#ifdef USE_RF95
#define RF95_RESET LORA_RESET
#define RF95_IRQ LORA_DIO0 // on SX1262 version this is a no connect DIO0
#define RF95_DIO1 LORA_DIO1 // Note: not really used for RF95
#define RF95_DIO2 LORA_DIO2 // Note: not really used for RF95
#endif

Some files were not shown because too many files have changed in this diff Show More