Compare commits

...
Author SHA1 Message Date
Ben MeadorsandGitHub c725a6b65f Bump for next tech preview release 2022-06-29 20:17:51 -05:00
Ben MeadorsandGitHub 9c6da233b9 Phoneapi moduleconfig (#1538) 2022-06-29 19:41:43 -05:00
0f2aa7660d [create-pull-request] automated change (#1537)
Co-authored-by: thebentern <thebentern@users.noreply.github.com>
2022-06-29 19:09:38 -05:00
Thomas GöttgensandGitHub 9f78dff25f Merge pull request #1532 from meshtastic/patch-1
avoid BLE device names like a123_a123
2022-06-22 15:44:25 +02:00
Thomas Göttgens e7dfd14917 Change recursive delete to be recursive 2022-06-22 15:33:53 +02:00
Thomas Göttgens bc47dd574b avoid BLE device names like a123_a123 2022-06-22 14:26:33 +02:00
Thomas GöttgensandGitHub 41d5ccc29f Merge pull request #1531 from meshtastic/patch-1
Small fixes and inprovements
2022-06-22 12:36:46 +02:00
Thomas Göttgens aead7a23f9 - Put Modemconfig in logical order and fix typo
- non-zero config.lora.bandwidth means a custom radio config, not 'Unknown'
- Enable 'this is a new device, set region' screen again now we can actually set region.
2022-06-22 09:52:08 +02:00
Thomas Göttgens c9fd591942 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-22 09:44:59 +02:00
Jm CaslerandGitHub c81fbd867d Merge pull request #1530 from mc-hamster/master
Add debug to monitor radio reconfiguration for #1014
2022-06-21 22:18:13 -07:00
Jm CaslerandGitHub cfb76290cb Merge branch 'master' into master 2022-06-21 21:52:55 -07:00
Jm Casler 46e13d23d9 Add debug to monitor radio reconfiguration for #1014 - 2022-06-21 21:51:45 -07:00
Jm CaslerandGitHub 45b2c169aa Merge pull request #1529 from mc-hamster/master
Fix typo in the modem presets
2022-06-21 19:34:37 -07:00
Jm Casler 90baf9d8a0 Fix typo in the modem presets 2022-06-21 19:23:07 -07:00
Jm CaslerandGitHub a390fc7ea8 Merge pull request #1528 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-06-21 19:07:36 -07:00
mc-hamsterandGitHub e0f912ab2a [create-pull-request] automated change 2022-06-22 02:06:51 +00:00
Thomas Göttgens 646d6f5615 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-21 10:09:22 +02:00
Jm CaslerandGitHub cf00ac593f Update to 1.3.21 2022-06-20 16:44:33 -07:00
Thomas Göttgens ff9f973a1d Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-20 20:33:43 +02:00
Ben MeadorsandGitHub 7a50ab4de2 Re-init config_state after we switch to nodeinfo (#1526) 2022-06-20 13:28:50 -05:00
Thomas Göttgens c80f260fba Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-20 20:26:13 +02:00
Ben MeadorsandGitHub a7d527c3c3 Pins for m5stack-core 2022-06-20 12:41:03 -05:00
2e2c485f4c M5Stack CoreInk Pins_Arduino.h (#1527)
* Update EInkDisplay2.cpp

* Create pins_arduino.h

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-06-20 12:33:44 -05:00
Ben MeadorsandGitHub 388865aba7 Dashes not underscores 2022-06-20 11:19:20 -05:00
Ben MeadorsandGitHub 21c6e595a1 Update build-all.sh 2022-06-20 11:18:30 -05:00
Ben MeadorsandGitHub 4a2522dbd3 Add m5stack core targets to release 2022-06-20 09:16:00 -05:00
Ben MeadorsandGitHub 877d72cbad Helps if you get the name right 2022-06-20 09:15:30 -05:00
Ben MeadorsandGitHub 63238cb810 Add m5stack core boards to CI 2022-06-20 09:13:27 -05:00
e87c5d8d34 Update EInkDisplay2.cpp (#1524)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-06-20 09:08:35 -05:00
Ben MeadorsandGitHub f9bbbfccb3 Fix typo 2022-06-18 14:03:58 -05:00
Thomas Göttgens 089c91a7ac Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-18 09:48:22 +02:00
Ben MeadorsandGitHub 9a5ff935f9 Bump to 1.3.20 2022-06-17 16:40:33 -05:00
Thomas Göttgens 515a411e8c Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-17 22:37:55 +02:00
Ben MeadorsandGitHub 52f299ec49 Remove is_always_pwoered (#1525) 2022-06-17 13:35:12 -05:00
Ben MeadorsandGitHub 9285316c78 Upgrade to nanopb 0.4.6 (#1523) 2022-06-17 08:37:52 -05:00
Thomas Göttgens cf380e6cb6 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-17 09:01:14 +02:00
Thomas GöttgensandGitHub c3c359c0cb Merge pull request #1519 from meshtastic/LocalConfig
Push of Config-Protos on PhoneAPI init
2022-06-17 08:47:41 +02:00
Thomas GöttgensandGitHub 68465f294a Merge branch 'master' into LocalConfig 2022-06-16 21:59:55 +02:00
Thomas Göttgens f63b876b71 Send config chunks one by one 2022-06-16 21:56:18 +02:00
Thomas GöttgensandGitHub 22fca01323 Merge pull request #1522 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-06-16 21:41:23 +02:00
caveman99andGitHub d4a4bcf91a [create-pull-request] automated change 2022-06-16 19:31:21 +00:00
Thomas GöttgensandGitHub d726ed6e7c Merge pull request #1425 from holdenk/sketch
Configure bluetooth name based on owner's short name
2022-06-16 21:26:39 +02:00
Thomas GöttgensandGitHub 349f6bf502 Merge branch 'master' into sketch 2022-06-16 21:13:19 +02:00
Thomas GöttgensandGitHub 192c10d6d7 Merge pull request #1521 from meshtastic/1510-enhancement-change-default-device-name-from-unknown-xxxx-to-meshtastic-xxxx-to-match-ble-name
Fix #1510
2022-06-16 21:13:09 +02:00
Thomas GöttgensandGitHub be8fb73204 Merge branch 'master' into sketch 2022-06-16 20:59:11 +02:00
Thomas GöttgensandGitHub bc9a4367d1 Fix #1510 2022-06-16 20:58:15 +02:00
Thomas GöttgensandGitHub 3d3511ceeb Change to a different logic 2022-06-16 20:54:50 +02:00
Thomas Göttgens 74e926ef00 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-16 20:44:43 +02:00
Ben MeadorsandGitHub f3a433f906 Merge branch 'master' into LocalConfig 2022-06-16 08:10:20 -05:00
Jm CaslerandGitHub 3c6a2f7bb6 Bump to 1.3.19 2022-06-16 05:24:08 -07:00
Thomas GöttgensandGitHub 1996a2a193 Merge pull request #1520 from meshtastic/radiolib-fix
Tryfix Portduino Radiolib
2022-06-16 12:30:23 +02:00
Thomas Göttgens b40abbf3ad Tryfix Portduino Radiolib 2022-06-16 12:22:01 +02:00
Thomas Göttgens af335e9c06 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-16 09:46:17 +02:00
Jm CaslerandGitHub 8684fd1c49 Bump to .18 2022-06-15 19:00:40 -07:00
Thomas GöttgensandGitHub 49e47f3e6d Let's try this 2022-06-15 21:50:33 +02:00
Thomas Göttgens d0a8a3018d Merge branch 'LocalConfig' of github.com:meshtastic/Meshtastic-device 2022-06-15 20:03:53 +02:00
Thomas Göttgens 7566ee1fea C++ is a weird language... 2022-06-15 20:03:08 +02:00
Thomas GöttgensandGitHub 43d48d4fb9 Merge branch 'master' into LocalConfig 2022-06-15 19:43:47 +02:00
Thomas GöttgensandGitHub 2a6633a666 Merge pull request #1518 from meshtastic/create-pull-request/patch
TEST: Push out LocalConfig Object on app Handshake
2022-06-15 19:43:05 +02:00
Thomas Göttgens 0146761850 TEST - Push of LocalConfig 2022-06-15 19:42:16 +02:00
caveman99andGitHub 0943e5f500 [create-pull-request] automated change 2022-06-15 17:40:08 +00:00
a1dc350231 Changed default baud to 115200 (#1517)
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2022-06-15 11:44:37 -05:00
Thomas GöttgensandGitHub d5a258cebd Merge pull request #1516 from meshtastic/LocalConfig
add file version to local savefiles
2022-06-15 18:05:52 +02:00
Thomas Göttgens 125f76d984 Don't use rmdir_r but roll our own version. 2022-06-15 17:52:37 +02:00
Thomas Göttgens b127479961 - Refactored factory reset a bit to not installDefaultDeviceState twice on ESP32
- clear BLE bonds on settings version increase
2022-06-15 17:09:42 +02:00
Thomas Göttgens d18aa2e7cb add file version to local savefiles 2022-06-15 16:52:04 +02:00
Thomas GöttgensandGitHub d301144efe Merge pull request #1515 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-06-15 16:45:11 +02:00
caveman99andGitHub 058b5ceddd [create-pull-request] automated change 2022-06-15 14:44:33 +00:00
Thomas GöttgensandGitHub e85baf00c4 Merge pull request #1511 from meshtastic/radiolib-fix
Set TX Power to some meaningful value
2022-06-13 23:24:37 +02:00
Thomas Göttgens 4a6cad6e46 Set TX Power to some meaningful value 2022-06-13 23:00:50 +02:00
Thomas GöttgensandGitHub bc05f98685 Merge pull request #1499 from meshtastic/radiolib-fix
new radiolib version (use upstream)
2022-06-13 21:33:51 +02:00
Thomas Göttgens 6e671d808a Our mod was accepted by RadioLib 2022-06-13 21:25:27 +02:00
Thomas Göttgens 1df3dd5f78 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-13 21:21:46 +02:00
Jm CaslerandGitHub c9822dee93 Update to 1.13.17 2022-06-13 09:38:33 -07:00
Thomas Göttgens e1783df49f Merge branch 'radiolib-fix' of github.com:meshtastic/Meshtastic-device
# Conflicts:
#	src/mesh/RadioLibInterface.h
2022-06-13 16:13:13 +02:00
Thomas Göttgens 6b8afdadc2 New variant of Radiolib patch 2022-06-13 16:10:16 +02:00
Thomas Göttgens f918548e44 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-13 16:08:50 +02:00
a1b07ed6aa Introduce contention window (CW) (#1500)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-06-13 08:21:18 -05:00
Thomas Göttgens b059fb9e8e Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-13 12:23:51 +02:00
Ben MeadorsandGitHub 553b35d0ad Consolidate power saving prefs (#1507)
* Fixed conversion linter warning

* Power saving consolidation

* Whoops
2022-06-12 19:56:32 -05:00
Thomas GöttgensandGitHub 04478081c6 Merge pull request #1508 from meshtastic/crpytfix
Remove nRF Crypt Debug
2022-06-12 23:52:16 +02:00
Thomas Göttgens 7bd07db2a8 Remove nRF Crypt Debug 2022-06-12 23:35:59 +02:00
Thomas Göttgens 5c44c4f772 Remove Debug Code for Encryption 2022-06-12 23:29:27 +02:00
Thomas Göttgens 7ff940409e Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-12 23:28:04 +02:00
Ben MeadorsandGitHub cb5c32490c Merge branch 'master' into radiolib-fix 2022-06-12 15:27:58 -05:00
Thomas GöttgensandGitHub e0b63c6692 Merge pull request #1506 from meshtastic/1504-proposal-default-short-name-to-mac-last-4
implement #1504
2022-06-12 22:05:04 +02:00
Thomas GöttgensandGitHub dc8d1d9a84 implement #1504 2022-06-12 21:52:46 +02:00
Thomas GöttgensandGitHub 710e2694ef Merge branch 'master' into radiolib-fix 2022-06-12 20:32:00 +02:00
Thomas GöttgensandGitHub 7594140afc actual change to our interface 2022-06-12 20:31:23 +02:00
Thomas Göttgens e793d933c6 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-12 20:28:39 +02:00
Thomas GöttgensandGitHub 9d8f9613d4 Merge branch 'master' into sketch 2022-06-12 18:48:08 +02:00
Thomas GöttgensandGitHub 61427528b6 Merge pull request #1505 from meshtastic/caveman99-patch-1
fix C++ warnings
2022-06-12 18:39:46 +02:00
Thomas GöttgensandGitHub 47ad27f9f6 fix C++ warnings
The cast throws errors about ambiguous conversions. There's a prototype of requestFrom(uint8_t address, uint8_t length) so just use that one.
2022-06-12 17:59:16 +02:00
Thomas Göttgens 77f096e56c Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-12 17:37:43 +02:00
Ben MeadorsandGitHub 5106433572 Removed phone_timeout_secs pref references (#1503) 2022-06-12 09:44:23 -05:00
Ben MeadorsandGitHub 4458b470aa Don't enable environmental telemetry by default (#1502)
* INA219 + INA260 support in telemetry

* Protobuf update

* Fixes + debug statement

* Fix size

* Fix conversion from mv

* Added getRegisterValue for i2cscan

* Accidentally left this in

* Removed line
2022-06-12 07:14:33 -05:00
Ben MeadorsandGitHub 90957e6994 INA260 + INA219 sensor support (#1501)
* INA219 + INA260 support in telemetry

* Protobuf update

* Fixes + debug statement

* Fix size

* Fix conversion from mv

* Added getRegisterValue for i2cscan
2022-06-11 16:44:56 -05:00
Thomas GöttgensandGitHub b73fd32f71 Merge branch 'master' into radiolib-fix 2022-06-10 20:39:50 +02:00
Thomas Göttgens 2a3272b7d0 patch radiolib on-the-fly while building. 2022-06-10 20:38:56 +02:00
Ben MeadorsandGitHub 3fd756900a Refactoring some of the i2c boilerplate (#1498)
* Refactoring some of the i2c boilerplate

* Default value

* Debug statement
2022-06-10 12:04:04 -05:00
Thomas GöttgensandGitHub beb8bc9e72 Merge pull request #1496 from benner/fix/NodeDB_without_FSCom
Compile when FSCom is not defined (NodeDB.cpp)
2022-06-07 22:22:20 +02:00
Thomas GöttgensandGitHub 1ad5cdc93c Merge branch 'master' into fix/NodeDB_without_FSCom 2022-06-07 21:57:26 +02:00
Nerijus Bendžiūnas e8e72d2e08 Compile when FSCom is not defined (NodeDB.cpp) 2022-06-07 20:55:05 +03:00
Thomas GöttgensandGitHub 1d0badd468 Merge pull request #1495 from benner/fix/typo
Correctly print script name in platformio-custom.py
2022-06-07 11:39:47 +02:00
Nerijus Bendžiūnas 9e87be4f22 Correctly print script name in platformio-custom.py 2022-06-07 12:26:01 +03:00
Jm CaslerandGitHub 97899aed26 1.3.16 2022-06-06 22:10:18 -07:00
Thomas GöttgensandGitHub 0ee4ba4975 Merge pull request #1494 from meshtastic/fix-1493
fixes power LED on T-Echo and T-Beam
2022-06-06 19:23:23 +02:00
Thomas Göttgens bbcccde787 Merge branch 'fix-1493' of github.com:meshtastic/Meshtastic-device 2022-06-06 19:15:14 +02:00
Thomas Göttgens 42c285bc31 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-06 19:14:43 +02:00
Thomas Göttgens c831242f25 fix nrf build 2022-06-06 19:14:30 +02:00
Thomas GöttgensandGitHub 3c6f36c8f7 Merge branch 'master' into fix-1493 2022-06-06 18:57:51 +02:00
Thomas GöttgensandGitHub dfde6cc9c1 Merge pull request #1490 from meshtastic/CryptFix
Crypt fix. Please leave branch open
2022-06-06 18:57:27 +02:00
Thomas GöttgensandGitHub 7816800012 Merge branch 'master' into CryptFix 2022-06-06 18:49:38 +02:00
Thomas Göttgens ebf132ad21 Bug-1493 2022-06-06 18:48:22 +02:00
Thomas Göttgens 67cf3018b5 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-06 18:27:28 +02:00
Ben MeadorsandGitHub eafbef0c2f Scan for i2c sensors in environmental telemetry if enabled (#1492)
* Scan for i2c sensors in environmental telemetry if enabled

* Update TelemetrySensor.h

* Added surpression.

* Remove suppression and fix real bug

* Interrogate BME sensor id registers
2022-06-05 09:50:06 -05:00
Ben MeadorsandGitHub 4ab831c103 Fix nagging bool linter warnings (#1491) 2022-06-04 07:28:58 -05:00
Thomas GöttgensandGitHub 3df5ec0b11 Merge pull request #1479 from meshtastic/ProtoFix
If we get an unreadable buffer, don't try to process it.
2022-06-04 11:07:00 +02:00
Thomas GöttgensandGitHub c5c2765fb4 Merge branch 'master' into ProtoFix 2022-06-04 10:49:36 +02:00
Thomas Göttgens df9e9bc223 Bugfix for nRF Crypto 90% done, includes heavy debug code, do not merge for now. 2022-06-04 10:37:24 +02:00
Thomas Göttgens 1ff0032c20 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-04 10:35:42 +02:00
Jm CaslerandGitHub 18024f1d25 Merge pull request #1489 from mc-hamster/master
Disabled the unset welcome screen
2022-06-04 01:19:44 -07:00
Jm CaslerandGitHub 313c50d6cf Merge branch 'master' into master 2022-06-03 21:55:27 -07:00
Jm Casler 80e08f6de9 Disabled the unset welcome screen 2022-06-03 21:51:47 -07:00
Jm CaslerandGitHub 5a256323e2 Merge pull request #1488 from mc-hamster/master
Change default screen on to 10 minutes
2022-06-03 20:57:23 -07:00
Jm CaslerandGitHub 45495c51e6 Merge branch 'meshtastic:master' into master 2022-06-03 20:38:28 -07:00
Jm Casler 40ded630d0 Change default screen on to 10 minutes 2022-06-03 20:38:13 -07:00
Jm CaslerandGitHub 432d06741e Update version.properties 2022-06-03 18:49:18 -07:00
Jm CaslerandGitHub 03b7f2f837 Merge pull request #1487 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-06-03 18:47:52 -07:00
mc-hamsterandGitHub 2e1b895791 [create-pull-request] automated change 2022-06-04 01:47:29 +00:00
Jm CaslerandGitHub 9821a0535b Bump to 1.3.14 2022-06-03 14:32:32 -07:00
Thomas Göttgens 0b666b827d Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-06-03 15:38:50 +02:00
Thomas GöttgensandGitHub 235cacf9b9 Merge pull request #1485 from markbirss/master
Update EInkDisplay2.cpp
2022-06-03 15:09:56 +02:00
Mark Trevor BirssandGitHub db28a1562e Update EInkDisplay2.cpp
Fix E-Ink not powering up bug at startup
2022-06-03 14:21:27 +02:00
Jm CaslerandGitHub f61d2d9eb4 Merge pull request #1484 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-06-02 18:12:35 -07:00
mc-hamsterandGitHub 5aef58e87f [create-pull-request] automated change 2022-06-03 01:07:08 +00:00
Thomas GöttgensandGitHub 77a2054254 Merge pull request #1480 from markbirss/master
Add M5Stack CoreInk 1.54 inch e-Ink - HopeRF95 Support
2022-06-01 20:56:05 +02:00
Mark Trevor BirssandGitHub 48ee995e0d Update EInkDisplay2.cpp 2022-06-01 20:33:51 +02:00
Mark Trevor BirssandGitHub c7dfd245e3 Update EInkDisplay2.cpp 2022-06-01 20:31:39 +02:00
Mark Trevor BirssandGitHub 4e813b098a Update platformio.ini 2022-06-01 20:30:21 +02:00
Thomas GöttgensandGitHub e57dbdd26c Merge branch 'master' into master 2022-06-01 20:28:12 +02:00
Mark Trevor BirssandGitHub 9512ea45de Update EInkDisplay2.cpp 2022-06-01 19:27:38 +02:00
Mark Trevor BirssandGitHub 0d09767efd Update variant.h 2022-06-01 18:11:06 +02:00
Mark Trevor BirssandGitHub 5828e6f423 Update variant.h 2022-06-01 18:08:40 +02:00
Mark Trevor BirssandGitHub c7a9ce7f49 Update variant.h 2022-06-01 18:08:13 +02:00
Mark Trevor BirssandGitHub 95f091041b Update variant.h 2022-06-01 17:53:19 +02:00
Mark Trevor BirssandGitHub f33e6a0e66 Update platformio.ini 2022-06-01 17:49:10 +02:00
Mark Trevor BirssandGitHub fe8bfdb762 Update variant.h 2022-06-01 17:48:31 +02:00
Thomas Göttgens e8afd4fb4b If we get an unreadable buffer, don't try to process it. 2022-06-01 17:09:57 +02:00
Ben MeadorsandGitHub 71a43a97cc Bump to 13 2022-06-01 06:06:40 -05:00
Mark Trevor BirssandGitHub b34b26518b Update EInkDisplay2.cpp 2022-06-01 11:28:18 +02:00
Mark Trevor BirssandGitHub b9f25eb85c Update EInkDisplay2.cpp 2022-06-01 11:21:09 +02:00
Mark Trevor BirssandGitHub a7fbe024e4 Create variant.h 2022-06-01 11:12:45 +02:00
Mark Trevor BirssandGitHub 1f7fee8e2a Create platformio.ini 2022-06-01 11:10:49 +02:00
Mark Trevor BirssandGitHub b8e7c6ee7a Update platformio.ini 2022-06-01 11:09:21 +02:00
Ben MeadorsandGitHub 06b2ed4ebe Merge branch 'master' into sketch 2022-05-30 18:07:40 -05:00
Thomas GöttgensandGitHub 32245a1a8d Merge pull request #1477 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-05-30 21:40:52 +02:00
Thomas Göttgens f6982ca726 fix building with new peotobuf structure. 2022-05-30 21:12:27 +02:00
caveman99andGitHub 03bbc5eff4 [create-pull-request] automated change 2022-05-30 19:00:01 +00:00
Ben MeadorsandGitHub 0767c0b0e8 Converted to jgromes/RadioLib upstream and pegged to latest ref (#1472)
* Converted to jgromes/RadioLib upstream and pegged to latest ref
2022-05-29 19:30:20 -05:00
Thomas GöttgensandGitHub 0d574e35c6 Merge pull request #1473 from meshtastic/LocalConfig
fixed typo in AdminModule
2022-05-29 16:40:14 +02:00
Thomas Göttgens b88e75cf2a Fixed Typo in get Config 2022-05-29 16:31:30 +02:00
Jm CaslerandGitHub 6306c53bfe Bump to .12 2022-05-27 12:21:59 -07:00
Jm CaslerandGitHub 8db57601bf Merge pull request #1471 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-05-27 12:20:31 -07:00
mc-hamsterandGitHub 1b8830e7df [create-pull-request] automated change 2022-05-27 19:19:57 +00:00
Jm CaslerandGitHub 0411401184 Bump to .11 2022-05-25 20:47:48 -07:00
Ben MeadorsandGitHub 2ee003f2a1 Merge branch 'master' into sketch 2022-05-25 06:33:42 -05:00
Jm CaslerandGitHub 5678221ead Merge pull request #1429 from mc-hamster/compression
Compression
2022-05-24 18:19:11 -07:00
Jm Casler c5f3cad0f9 Fixed missing brackets 2022-05-24 18:06:53 -07:00
Jm Casler f3c15eb6cc Completed compression. Tested between two devices. 2022-05-24 17:42:46 -07:00
Jm CaslerandGitHub e218bba87e Merge branch 'meshtastic:master' into compression 2022-05-24 16:48:28 -07:00
Jm CaslerandGitHub c04d62158b Merge pull request #1469 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-05-24 08:38:31 -07:00
Thomas GöttgensandGitHub 03affc9e73 Merge branch 'master' into create-pull-request/patch 2022-05-24 10:54:38 +02:00
Thomas GöttgensandGitHub 25bf97316d Merge pull request #1468 from meshtastic/LocalConfig
make sure all segments are enabled and saved
2022-05-24 10:26:26 +02:00
Jm CaslerandGitHub 1ef70a2489 Merge branch 'master' into sketch 2022-05-24 00:23:17 -07:00
Jm CaslerandGitHub 76ef240a3d Merge branch 'master' into LocalConfig 2022-05-24 00:21:46 -07:00
Jm CaslerandGitHub 3f171b29f7 Merge pull request #1466 from LucyHosking/master
Implemented hidden SSID
2022-05-24 00:21:32 -07:00
Jm Casler dca6c27c9d Update from config.payloadVariant to config.wifi 2022-05-23 22:08:33 -07:00
Jm Casler 2631a9324e Update from radioConfig.preferences to config.lora 2022-05-23 22:06:38 -07:00
Jm CaslerandGitHub c64f4bbb11 Merge pull request #97 from meshtastic/new-compression
Update compression branch
2022-05-23 21:19:11 -07:00
Jm CaslerandGitHub 94f7e7037d Merge branch 'compression' into new-compression 2022-05-23 21:18:45 -07:00
mc-hamsterandGitHub a0b4b4efa1 [create-pull-request] automated change 2022-05-24 04:10:51 +00:00
Ben MeadorsandGitHub d68d85590b Merge branch 'master' into master 2022-05-22 07:50:32 -05:00
Thomas Göttgens 800a4200ef make sure all segments are enabled and saved 2022-05-22 13:54:24 +02:00
Thomas GöttgensandGitHub 9c50a76ea2 Merge pull request #1464 from meshtastic/LocalConfig
Segemented config works for me (TM)
2022-05-22 13:41:47 +02:00
Thomas Göttgens 4a41694ec5 Merge branch 'LocalConfig' of github.com:meshtastic/Meshtastic-device 2022-05-22 13:28:32 +02:00
Thomas Göttgens 6bb3861e95 Moduleconfig also changed to localConfig Model. 2022-05-22 13:27:56 +02:00
Thomas Göttgens e8262540d4 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-05-22 13:06:08 +02:00
Thomas GöttgensandGitHub 2b6f632a50 Merge branch 'master' into master 2022-05-22 13:03:13 +02:00
Thomas GöttgensandGitHub bddab68110 Merge pull request #1467 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-05-22 13:01:45 +02:00
caveman99andGitHub c4f69cbcc0 [create-pull-request] automated change 2022-05-22 10:59:47 +00:00
Thomas Göttgens 85f5c7a40b Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-05-22 12:17:09 +02:00
LucyHosking e0c5e4d441 Implemented hidden SSID
https://github.com/meshtastic/Meshtastic-device/issues/1308
2022-05-21 20:10:36 -07:00
Sacha WeatherstoneandGitHub 8dfdc11af9 Merge branch 'master' into LocalConfig 2022-05-22 12:57:26 +10:00
Jm CaslerandGitHub ba1937de39 Merge pull request #1465 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-05-21 19:14:23 -07:00
mc-hamsterandGitHub 2e45d4f0fd [create-pull-request] automated change 2022-05-22 00:44:37 +00:00
Jm Casler b1f309545e Delete proto 2022-05-21 17:39:50 -07:00
Jm Casler 22764425f7 updating proto submodule to latest 2022-05-21 17:10:24 -07:00
Thomas Göttgens 5e8d49d24b missed one 2022-05-21 22:51:34 +02:00
Thomas Göttgens 53e9f4df46 Segemented config works for me (TM)
Small GPS Fix that cropped up while testing included.
2022-05-21 22:38:33 +02:00
Garth Vander HouwenandGitHub 33938f73a6 Merge pull request #1463 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-05-21 13:01:09 -07:00
caveman99andGitHub e4484270b1 [create-pull-request] automated change 2022-05-21 19:46:36 +00:00
Garth Vander HouwenandGitHub 964510ef52 Merge pull request #1462 from meshtastic/garthvh-patch-1
Update GitHub action Submodule
2022-05-21 12:45:50 -07:00
Garth Vander HouwenandGitHub b108540b08 Update GitHub action 2022-05-21 12:24:50 -07:00
Thomas GöttgensandGitHub db35b92b6f Merge pull request #1461 from meshtastic/UBXFIX
remove duplicate GPS setting
2022-05-21 21:05:14 +02:00
Thomas Göttgens 5d22efd8a8 remove duplicate GPS setting 2022-05-21 20:52:43 +02:00
Thomas GöttgensandGitHub 49ccb77e43 Merge pull request #1457 from meshtastic/UBXFIX
Streamline GPS Init
2022-05-18 18:13:40 +01:00
Thomas Göttgens 3d0d45a695 More UBX stuff from 1.2 2022-05-18 18:29:26 +02:00
Thomas Göttgens 2e39900f78 Merge branch 'UBXFIX' of github.com:meshtastic/Meshtastic-device 2022-05-18 18:18:32 +02:00
Thomas Göttgens 5e82423331 More UBX fixes 2022-05-18 18:16:23 +02:00
Thomas Göttgens dd8111e737 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-05-18 18:13:51 +02:00
Thomas GöttgensandGitHub 9b02841506 Merge branch 'master' into UBXFIX 2022-05-18 15:19:27 +01:00
Thomas Göttgens 3c5a096873 Streamline GPS Init 2022-05-18 16:16:59 +02:00
Thomas GöttgensandGitHub 93521f7b39 Merge pull request #1454 from meshtastic/t-echo
fix GPS and Buttons on T-Echo and log UBX (1.3)
2022-05-17 20:10:42 +01:00
Thomas Göttgens bdcdc1485c Merge branch 't-echo' of github.com:meshtastic/Meshtastic-device 2022-05-17 20:55:29 +02:00
Thomas Göttgens fdc10acfdd Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-05-17 20:54:17 +02:00
Thomas Göttgens ac93e3196e Don't try to be too smart 2022-05-17 20:53:57 +02:00
Thomas GöttgensandGitHub e5439c21ab Merge branch 'master' into t-echo 2022-05-17 18:55:35 +01:00
Thomas Göttgens 7f9bb5748e log UBX Init 2022-05-17 19:54:29 +02:00
Thomas Göttgens 894b091553 Fix ubox gps too or at least log errors 2022-05-17 19:48:48 +02:00
Thomas Göttgens 7576270423 switch GPS back to 9600 baud, seems to work better now we only use the 2 sentences 2022-05-17 19:09:12 +02:00
Thomas Göttgens 6b8f83cd71 don't wake t-echo through the touch button 2022-05-17 13:01:15 +02:00
Thomas GöttgensandGitHub fdc3a6e432 Merge pull request #1453 from meshtastic/PIO6-fix
Make PIO6 happy again
2022-05-17 10:42:46 +01:00
Thomas Göttgens 49d8c581bd missed one here as well... 2022-05-17 11:26:03 +02:00
Thomas Göttgens c15da3c104 Make PIO6 happy again 2022-05-17 11:14:21 +02:00
Sacha Weatherstone 12c46ced45 update protobufs 2022-05-13 10:41:05 +10:00
Sacha Weatherstone 3ed9a05ac6 Update max channels in protos & remove batt_lvl from position flags 2022-05-13 10:30:01 +10:00
Sacha Weatherstone 3b4c8ad0e2 fix max message sizes for unused protobufs 2022-05-12 23:12:37 +10:00
Sacha Weatherstone d9e2e09149 Fix NTP server initialization 2022-05-12 23:05:06 +10:00
Sacha Weatherstone 97713b2daa Increased NTP update frequency to 12 hours 2022-05-12 22:45:27 +10:00
Sacha Weatherstone 7799e1b7e6 Increased NTP update frequency to 1024 seconds 2022-05-12 22:06:36 +10:00
Sacha Weatherstone 38913bb661 Consistency fixes & repo cleanup 2022-05-12 20:45:30 +10:00
Sacha WeatherstoneandGitHub 14cbc439ab Update README.md 2022-05-12 20:04:10 +10:00
Sacha WeatherstoneandGitHub 6d15b9b82a Update main_matrix.yml 2022-05-12 20:03:53 +10:00
Sacha Weatherstone 2035ddf5a9 Add ntp server config option, remove old region logic 2022-05-11 18:30:29 +10:00
Thomas GöttgensandGitHub e91dedaab5 Merge pull request #1447 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-05-10 11:03:24 +01:00
Thomas GöttgensandGitHub 54bf02352f Merge branch 'master' into create-pull-request/patch 2022-05-10 10:46:36 +01:00
Thomas GöttgensandGitHub 3f415e3e8e Merge pull request #1448 from meshtastic/M5STACK
Make M5Stack Canon Hardware
2022-05-10 10:45:47 +01:00
Thomas Göttgens 7133e6e89b Use canon HW Identifier for M5 2022-05-10 11:10:32 +02:00
Thomas Göttgens e1d49a3632 Buzzer Support for M5Stack 2022-05-10 11:07:49 +02:00
caveman99andGitHub f26fb9408e [create-pull-request] automated change 2022-05-10 08:20:52 +00:00
Thomas GöttgensandGitHub 1e48989e2d Merge pull request #1446 from meshtastic/RAK14006
Support detecting RAK14006 KB
2022-05-09 20:29:29 +01:00
Thomas Göttgens e48285a33a Support detecting RAK14006 KB 2022-05-09 20:12:49 +02:00
Thomas GöttgensandGitHub 7f0fd642ec Merge pull request #1445 from meshtastic/M5Stack
Support M5Stack
2022-05-09 19:05:46 +01:00
Thomas Göttgens 5ee8c56c94 Support M5Stack with LORA868 (RA01H) Module and TFT Display (PRIVATE_HW, Canon Hardware TBD) 2022-05-09 19:50:39 +02:00
Sacha WeatherstoneandGitHub 4940822ae8 Merge pull request #1444 from GUVWAF/master
Optimize retransmission timer
2022-05-09 09:33:16 +10:00
Sacha WeatherstoneandGitHub 8b42b78033 Merge branch 'master' into master 2022-05-08 00:23:18 +10:00
GUVWAF a7f4263db4 Optimize retransmission timer
Based on airtime of packet + transmit, processing and CAD delays
2022-05-07 15:43:35 +02:00
GUVWAF 348e78718d Call cancelSending in stopRetransmission
This also removes pending packet from txQueue if it was already in there
2022-05-07 15:39:14 +02:00
Sacha Weatherstone 0ec6771cf7 Fix build when BATTERY_PIN is set 2022-05-07 20:47:52 +10:00
Sacha Weatherstone 5e7b372345 Satisfy cppcheck 2022-05-07 20:36:15 +10:00
Sacha Weatherstone 6b0ce6b729 Finish config transition 2022-05-07 20:31:21 +10:00
Sacha Weatherstone c07976438b fix old submodule 2022-05-07 13:37:58 +10:00
Sacha Weatherstone eb6dd6b53d Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-05-07 13:34:36 +10:00
Sacha Weatherstone ea86f76393 Move LoRa config out of primary channel 2022-05-07 13:34:06 +10:00
Thomas GöttgensandGitHub b699e5e6cd Merge pull request #1441 from meshtastic/patch-1-1
Enable Malloc Support in nanopb
2022-05-06 21:26:38 +01:00
Thomas GöttgensandGitHub 4fb0cfa909 Enable Malloc Support in nanopb 2022-05-06 22:16:51 +02:00
Thomas GöttgensandGitHub bb5b10eef3 Merge pull request #1440 from meshtastic/NO-SCREEN
Make #define NO_SCREEN work again
2022-05-06 14:50:54 +01:00
Thomas Göttgens b5cc304336 Make #define NO_SCREEN work again 2022-05-06 15:41:37 +02:00
Thomas GöttgensandGitHub 1812843363 Merge pull request #1439 from meshtastic/RAK18001
RAK18001 Buzzer Support
2022-05-06 13:31:37 +01:00
Thomas Göttgens 628740d6d1 Support Buzzer in Slot C 2022-05-06 14:20:46 +02:00
Thomas Göttgens 251365dca7 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-05-06 14:05:51 +02:00
Ben MeadorsandGitHub 223c706e91 Use meshtastic fork of arduino thread lib 2022-05-05 13:54:21 -05:00
5e109d9648 Fix typo in calculation of NUM_ONLINE_SECS constant (#1436)
Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-05-05 13:46:39 -05:00
Ben MeadorsandGitHub 2b769279ae Moving platform-native into meshtastic fork (#1437) 2022-05-05 13:20:16 -05:00
Thomas Göttgens 8f8eff6f95 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-05-05 08:33:03 +02:00
Thomas GöttgensandGitHub 02fe597f3f Merge pull request #1432 from meshtastic/patch-1
Forgot the readFromRTC for PCF8563 (T-Echo)
2022-05-04 16:25:47 +01:00
Thomas GöttgensandGitHub 4d611ba2f0 Forgot the readFromRTC for PCF8563 (T-Echo) 2022-05-04 17:06:06 +02:00
Thomas Göttgens 403a0b2ddc Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-05-04 09:17:06 +02:00
Sacha Weatherstone 211273cc08 Fix expected values in config setters 2022-05-04 12:52:44 +10:00
Sacha Weatherstone 8ba0a9bf87 Fix config switch 2022-05-03 22:16:50 +10:00
Sacha Weatherstone f84286d138 Split config structure in two 2022-05-02 22:00:24 +10:00
Jm CaslerandGitHub b980f3e311 Merge branch 'meshtastic:master' into compression 2022-05-01 21:02:07 -07:00
Sacha Weatherstone 399e053ebd workaround for undefined payload type on phoneapi 2022-05-02 13:04:05 +10:00
Jm CaslerandGitHub d6b20ea623 Merge branch 'meshtastic:master' into compression 2022-05-01 19:35:26 -07:00
Ben MeadorsandGitHub caac2ecb83 Compute config size and account for reloadconfig (#1428)
* Compute config size and account for reloadconfig

* Reload config and config_size
2022-05-01 20:30:19 -05:00
Sacha Weatherstone 7ae8601ba5 fix warnings 2022-05-02 10:24:28 +10:00
Sacha Weatherstone 8f038ced15 add handleSetConfig, remove team 2022-05-02 08:53:44 +10:00
Sacha Weatherstone 3a1f20821e Remove team and provision set_config 2022-05-02 08:35:31 +10:00
Sacha WeatherstoneandGitHub 057131b459 Merge pull request #1427 from meshtastic/radioconfig-refactor-telemetry
Radioconfig refactor telemetry
2022-05-02 08:16:06 +10:00
Ben Meadors 1040b0988a Removed unused members causing warnings 2022-05-01 15:37:34 -05:00
Ben Meadors 2ca0290662 Admin message implementation 2022-05-01 15:35:01 -05:00
Ben Meadors 163774bb1f Moved refactored prefs 2022-05-01 14:26:05 -05:00
Ben Meadors 6a8724213e Adafruit bus io is now required for sensor libs 2022-05-01 14:22:04 -05:00
Ben Meadors cf64da21fb Move adc multiplier code into battery pin region to surpress warning 2022-05-01 14:21:30 -05:00
Sacha Weatherstone c0d40895f8 Config rework - Init GetConfigResponse 2022-05-01 16:12:48 +10:00
Sacha Weatherstone 50326fbb6b Config rework - Init getConfig 2022-05-01 12:41:26 +10:00
Sacha Weatherstone 98cd19ea0f Config rework - Init getConfig 2022-05-01 12:39:48 +10:00
Holden Karau ca3192b3dc Clear the existing data before we start advertising 2022-04-30 18:20:41 -07:00
Holden Karau e1f28982cf When configured set meshtastic bluetooth name based on owner shortname. 2022-04-30 14:48:31 -07:00
Mark Trevor BirssandGitHub 8e996e3e63 Enable TXEN and RXEN for Waveshare LoRa Module (#1422)
This change enables RXEN TXEN for the use of the Waveshare Core1262-868M Anti-Interference SX1262 LoRa Module, EU868 Band
https://www.waveshare.com/core1262-868m.htm
2022-04-29 14:23:17 -05:00
Ben MeadorsandGitHub 53cc090814 Move sx1262 fixes upstream (#1421) 2022-04-29 07:46:44 -05:00
Thomas GöttgensandGitHub bfc2d30a46 Merge pull request #1419 from meshtastic/PCF8563
RTC Module support for T-Echo and others with PCF8563
2022-04-28 08:29:07 +02:00
Thomas Göttgens 516dff5b09 RTC Module support for T-Echo and others with PCF8563 2022-04-28 08:18:03 +02:00
mkinneyandGitHub 4df0e910b8 Update main_matrix.yml
add nano-g1
2022-04-27 10:23:20 -07:00
mkinneyandGitHub 3a5f492106 add nano_g1 to build (#1417) 2022-04-27 12:20:10 -05:00
Thomas GöttgensandGitHub 2dbb9075a3 Merge pull request #1408 from Pedestrian11/patch-1
TTGO_T_ECHO to use batteries, PIN_EINK_PWR_ON must be set to high
2022-04-27 15:45:01 +02:00
Thomas GöttgensandGitHub e5715a0048 Merge branch 'master' into patch-1 2022-04-27 15:32:05 +02:00
Thomas GöttgensandGitHub 629db8c718 Fix build errors and add a bit of failsafe 2022-04-27 15:30:27 +02:00
Ben MeadorsandGitHub cc2a84afcd Bump version for release 2022-04-27 07:03:09 -05:00
Thomas GöttgensandGitHub 6c1dc0d71a Merge pull request #1415 from meshtastic/RAK12002
I2C RTC Support (RAK12002)
2022-04-27 11:17:31 +02:00
Thomas Göttgens 9e97fac252 - implement generic support for on-device battery powered RTC Modules.
- implement support for I2C RV-3028 based RTC modules like the RAK12002
- pretty print some debug timestamps
2022-04-27 11:05:08 +02:00
Thomas Göttgens 3a9086dfc5 We may have RAK modules in Slot D pulling IO5 to Low permanently (like the RAK12002 RTC Module). React to assumed Long presses of the device button only 30 seconds after bootup to prevent a reboot loop. This is Particularly important for button-less RAK19003 Baseboard. 2022-04-27 11:02:45 +02:00
Thomas Göttgens a0f34a8d0a Make Debug Log less spammy 2022-04-27 11:00:26 +02:00
359b41d869 Position fwd phone (#1413)
* Correct factory reset code for NRF (from 1.2)

* Changes from 1.2

* Update proto ref

* Whoops

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-04-26 19:40:24 -05:00
Thomas GöttgensandGitHub 04723bd1a0 Merge pull request #1412 from meshtastic/nrf-softcrypt
use a tiny software AES lib if user wants AES-256
2022-04-26 21:45:54 +02:00
Thomas Göttgens 89d6990a92 Merge branch 'nrf-softcrypt' of github.com:meshtastic/Meshtastic-device into nrf-softcrypt 2022-04-26 21:30:21 +02:00
Thomas Göttgens 96f20287ff fix scope error 2022-04-26 21:30:14 +02:00
Thomas GöttgensandGitHub d8ba25747b Merge branch 'master' into nrf-softcrypt 2022-04-26 21:25:01 +02:00
Thomas Göttgens e66c01f0e6 Merge branch 'nrf-softcrypt' of github.com:meshtastic/Meshtastic-device into nrf-softcrypt 2022-04-26 21:24:29 +02:00
Thomas Göttgens aaea2e7456 make cppcheck happy 2022-04-26 21:24:21 +02:00
Ben MeadorsandGitHub 92185e763d Bump version for another 1.3 release 2022-04-26 14:10:17 -05:00
Thomas GöttgensandGitHub 4de5944474 Merge branch 'master' into nrf-softcrypt 2022-04-26 17:52:33 +02:00
Thomas Göttgens 76e48178c8 use a tiny software AES lib if user needs AES-256 2022-04-26 17:50:50 +02:00
Ben MeadorsandGitHub 75e7bccdfb Fix assert execution halt in nrf devices (#1410) 2022-04-26 06:49:05 -05:00
Ben MeadorsandGitHub 3786b1ee15 Reboot implementation for nrf devices (#1411) 2022-04-26 06:48:26 -05:00
Thomas GöttgensandGitHub f2dec07c8d Merge pull request #1409 from meshtastic/gps-check
GPS Fixes
2022-04-26 13:17:04 +02:00
Thomas Göttgens 701707a01b - Bounds Check is working on big integers, don't throw away valid coordinates.
- Set ublox chips back to NMEA mode if they have been configured wrongly before.
2022-04-26 13:00:11 +02:00
PedestrianandGitHub 13fa7c1628 TTGO_T_ECHO to use batteries, PIN_EINK_PWR_ON must be set to high 2022-04-26 17:43:32 +08:00
Thomas Göttgens b957001629 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-04-25 21:38:28 +02:00
Jm CaslerandGitHub 9b6b224af4 Merge branch 'meshtastic:master' into compression 2022-04-25 08:04:51 -07:00
Jm Casler 4785367915 Temp work on compression 2022-04-25 08:02:51 -07:00
Thomas GöttgensandGitHub d640478289 Merge pull request #1405 from meshtastic/rak-hw-crypto
use nRF52 Hardware Cryptography
2022-04-25 11:43:05 +02:00
Thomas GöttgensandGitHub b8b1a5cfb7 Merge branch 'master' into rak-hw-crypto 2022-04-25 11:14:04 +02:00
Thomas Göttgens 770f17f382 use nRF Hardware Cryptography. Removes the need for the sdk-nrfxlib submodule 2022-04-25 11:01:54 +02:00
Sacha WeatherstoneandGitHub 8ea3ebf74b Update README.md 2022-04-25 18:45:47 +10:00
Sacha WeatherstoneandGitHub cbf238652e Update README.md 2022-04-25 16:51:39 +10:00
Thomas GöttgensandGitHub c17cd47689 Update main_matrix.yml (#1402) 2022-04-25 16:48:04 +10:00
Thomas GöttgensandGitHub d2c278a856 Update main_matrix.yml (#1401) 2022-04-25 16:24:08 +10:00
213d9512f1 WIP: unify the RAK targets into one firmware (#1350)
* First steps to unify GPS Lib for RAK 1910 and RAK 12500

* Technicalities. Out with the old and build the new.

* Adapt Matrix

* We use 0.4.5 now

* While we're at it, yank the RAK815, it's EOL

* Satisfy CI - for now

* - yank UBX library, talk to GPS chip with NMEA only.
- more autodetect going on, this time for the Eink Display.

TODO: actually do something with the scan findings.

* i swear this works on windows! :-)

* these are only there to make CI happy

* don't update eink display if not detected.

* Replace Oberon Crypt Library with modified Adafruit Library. This elimintaes the need for the sdk-nfxlib submodule.

* - Revert auto screen selection (incomplete)
- Revert nrF crypto engine (needs more work)
- add separate defines for not-auto-selecting screen lib.

* Define 2 new variants for RAK - with or without epaper

* Update variants

Co-authored-by: Sacha Weatherstone <sachaw100@hotmail.com>
Co-authored-by: Ben Meadors <thebentern@tuta.io>
2022-04-25 15:13:41 +10:00
Andre KirchhoffandGitHub 81588d8bdc Merge pull request #1400 from meshtastic/min_app_version-1.3
update minimum_app_version to 1.3.0
2022-04-24 20:17:23 -03:00
Andre KirchhoffandGitHub 3c1407c7d2 bump minimum app version requirement to 1.3.0 2022-04-24 19:52:32 -03:00
98c8eaaaf0 Moved sender short name method into protobuf module (#1398)
* Moved sender short name method into protobuf module

* Correct factory reset code for NRF (from 1.2)

* Use the correct fs abstraction

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-04-24 16:12:25 -05:00
Jm CaslerandGitHub e7a825d1ba Merge pull request #1394 from GUVWAF/master
Implement listen-before-talk mechanism
2022-04-23 11:08:48 -07:00
GUVWAF 1d2551350d Merge branch 'master' of https://github.com/GUVWAF/Meshtastic-device 2022-04-23 19:01:53 +02:00
GUVWAF a13157ebde Rename setRandomDelay() function 2022-04-23 18:57:45 +02:00
Ben MeadorsandGitHub a0971ebe9c Merge branch 'master' into master 2022-04-23 08:46:02 -05:00
Ben MeadorsandGitHub 8733bcb52e Peg espressif platform version to 3.5.0 2022-04-23 08:42:26 -05:00
Thomas Göttgens 7c12234a9c Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-04-23 10:12:32 +02:00
Ben MeadorsandGitHub 823e6cb1ed Merge branch 'master' into master 2022-04-22 07:56:50 -05:00
Ben MeadorsandGitHub 29e378a11e Link to open collective from contributors badge 2022-04-22 07:49:26 -05:00
GUVWAF 692278343b Merge branch 'master' of https://github.com/GUVWAF/Meshtastic-device 2022-04-20 20:16:39 +02:00
GUVWAF c60d4c1ecc Implement listen-before-talk mechanism
- Function setRandomDelay() calls either startTransmitTimer() or startTransmitTimerSNR()
- After coming back from Rx/Tx-ing, call setRandomDelay()
- If channel is currently busy, call setRandomDelay()
2022-04-20 20:09:12 +02:00
GUVWAF 6d01f9aa89 Add isChannelActive() function to radio interface 2022-04-20 20:04:44 +02:00
GUVWAF 616c7d7b0e Expose front() function in MeshPacketQueue 2022-04-20 19:58:52 +02:00
Thomas Göttgens c6a2e26876 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-04-20 09:51:35 +02:00
Jm CaslerandGitHub 6b012ca5b0 Add fiscal contributors badge 2022-04-19 22:41:00 -07:00
Thomas GöttgensandGitHub 93466baa87 Merge pull request #1393 from meshtastic/create-pull-request/patch
Changes by create-pull-request action
2022-04-19 23:08:29 +02:00
Thomas GöttgensandGitHub 137328f567 Merge branch 'master' into create-pull-request/patch 2022-04-19 22:52:44 +02:00
Thomas GöttgensandGitHub 838f00c7d7 Merge pull request #1391 from D4rk4/master
Brother EP-44 support
2022-04-19 22:52:16 +02:00
Dmitry Galenko 293921e95a Brother EP-44 support 2022-04-19 22:37:04 +02:00
caveman99andGitHub b82bf5c729 [create-pull-request] automated change 2022-04-19 20:26:22 +00:00
Jm Casler 90df7c2488 bump to 1.3.8 2022-04-18 17:20:03 -07:00
Jm CaslerandGitHub 8c1a81c03a Merge branch 'compression' into master 2022-04-18 17:02:45 -07:00
Jm Casler 6fe9f0b42f Disable compression / decompression (for testing) 2022-04-18 17:00:36 -07:00
Thomas GöttgensandGitHub 43f6f61472 Merge pull request #1387 from meshtastic/patch-1
tryfix #1363
2022-04-18 23:01:07 +02:00
Thomas GöttgensandGitHub ed62b6916c tryfix #1363
Ask for the register several times and only go on if the answer is the same in 2 consecutive tries.
2022-04-18 22:46:45 +02:00
Thomas GöttgensandGitHub cf45e4fce5 Merge pull request #1386 from meshtastic/patch-1
Remove References to Pre-1.2 Preffile
2022-04-18 22:19:58 +02:00
Thomas GöttgensandGitHub 136e2e96f7 Remove References to Pre-1.2 Preffile
1.3+ need a clean install anyway, so no point migrating these any more.
2022-04-18 21:55:58 +02:00
Jm Casler 7c071e2361 updating proto submodule to latest 2022-04-18 12:29:20 -07:00
Thomas GöttgensandGitHub 0b85e97087 Merge pull request #1385 from meshtastic/oem-screen
Enable OEM Bootlogo, needs protobuf update
2022-04-18 18:43:47 +02:00
Thomas Göttgens 81d1cc1003 Merge branch 'oem-screen' of github.com:meshtastic/Meshtastic-device into oem-screen 2022-04-18 18:27:37 +02:00
Thomas Göttgens 748416d9e3 protobuf update 2022-04-18 18:27:17 +02:00
Thomas GöttgensandGitHub da6d49385c Merge branch 'master' into oem-screen 2022-04-18 18:18:19 +02:00
Thomas Göttgens f279f9614e Enable OEM Bootlogo, needs protobuf update 2022-04-18 18:11:17 +02:00
Sacha WeatherstoneandGitHub 9097475149 Add Repobeats stats image to readme 2022-04-18 23:56:16 +10:00
Jm Casler 5327d6162a remove targz library 2022-04-15 23:17:30 -07:00
Jm Casler 5d7990667d Max nodes to 64 and remove targz 2022-04-15 23:16:40 -07:00
Jm Casler 79a41bd81c updating proto submodule to latest 2022-04-15 22:30:21 -07:00
Jm CaslerandGitHub 6a3d81eff8 Merge pull request #1383 from mc-hamster/compression
Change to unishox library
2022-04-15 20:46:04 -07:00
Jm CaslerandGitHub 7cd66b2b68 Merge branch 'meshtastic:master' into compression 2022-04-15 20:45:44 -07:00
Jm Casler 8124ecbfd8 Change to unishox library 2022-04-15 18:11:17 -07:00
Jm CaslerandGitHub 7df1a64b52 Merge pull request #1382 from mc-hamster/compression
Updated welcome screen w/ text, pages and logo
2022-04-14 21:33:19 -07:00
Jm CaslerandGitHub e51b7c3c32 Merge branch 'meshtastic:master' into compression 2022-04-14 21:32:52 -07:00
Jm Casler 0c285aac6e enable welcome text 2022-04-14 21:32:00 -07:00
Jm Casler fbeb554186 Merge branch 'compression' of https://github.com/mc-hamster/Meshtastic-device into compression 2022-04-14 21:31:38 -07:00
Jm Casler 87da779478 Updated welcome screen w/ text, pages and logo
Updated welcome screen w/ text, pages and logo
2022-04-14 21:31:31 -07:00
Jm CaslerandGitHub 1082c5d771 Merge pull request #1381 from mc-hamster/compression
Fix for welcome screen going over ble pairing
2022-04-14 21:05:21 -07:00
Jm CaslerandGitHub 3933d24d62 Merge branch 'meshtastic:master' into compression 2022-04-14 21:03:18 -07:00
Jm Casler fc0508f254 Fix for welcome screen going over ble pairing 2022-04-14 21:02:52 -07:00
Jm Casler bb22b6ec58 bump to 1.3.7 2022-04-14 16:15:19 -07:00
Jm CaslerandGitHub ddb9678377 Merge pull request #1380 from mc-hamster/compression
Compression WIP
2022-04-14 16:14:31 -07:00
Jm Casler dc20cbb672 one more fix for cppcheck 2022-04-14 15:57:31 -07:00
Jm Casler a10ea604af Fixes for cppcheck errors 2022-04-14 15:51:48 -07:00
Jm CaslerandGitHub fb1caa51d0 Merge branch 'meshtastic:master' into compression 2022-04-13 21:59:42 -07:00
Jm Casler 7e977aea00 Add welcome screen feature toggle 2022-04-13 21:59:25 -07:00
Jm Casler ecc114f1cd temp work on compression 2022-04-13 19:23:35 -07:00
b76424db50 Make Observer to be able to observe multiple Observables. (#1234)
* Make Observer to be able to observe multiple Observables.

* Fix Observer destructor cleanup.

Co-authored-by: Sacha Weatherstone <sachaw100@hotmail.com>
2022-04-14 08:43:06 +10:00
Jm Casler f511baba9a Bump to 1.3.6 2022-04-12 21:25:33 -07:00
Jm CaslerandGitHub b056081d3c Merge branch 'meshtastic:master' into compression 2022-04-12 21:14:25 -07:00
Jm Casler 0e4699d8b6 updating proto submodule to latest 2022-04-12 21:13:35 -07:00
Ben MeadorsandGitHub 794167c701 Removed phone sds timeout (#1372) 2022-04-12 08:04:24 -05:00
b59368ca3c Updated pinut in variant tlorav2_1_16 (#1365)
* Added the last mac address bytes in bluetooth device name ESP32Bluetooth.cpp
Add default notification pinout to tlora_v2_1_16/variant.h

* updated ADC_MULTIPLIER  value for more accuracy

* Update variant.h

Updated LORA_RESET GPIO in this board is 23
Removed LORA_DIO1 35 , gpio 35 is a battery pin 
Removed LORA_DIO2 34, gpio 34 is unuse in this board

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2022-04-12 07:13:25 -05:00
Jm Casler a4bdef4151 compression WIP
compression works. next is to store it in the proto as a oneof and then decompress it on use.
2022-04-11 22:12:04 -07:00
Jm Casler 478274aff1 Beginning of compression 2022-04-11 20:09:48 -07:00
Jm CaslerandGitHub 02066cc8b9 Merge pull request #1370 from mc-hamster/region_unset
Work around for issue with unknown age due to not having time
2022-04-11 19:18:59 -07:00
Jm CaslerandGitHub 309de52f5c Merge branch 'master' into region_unset 2022-04-11 18:53:54 -07:00
Jm Casler 340737f2a8 Work around for issue with unknown age due to not having time
Work around for issue with unknown age due to not having time
2022-04-11 18:53:29 -07:00
Jm CaslerandGitHub 9bd970c55e Merge pull request #1368 from mc-hamster/region_unset
Show welcome screen if region unset
2022-04-10 19:55:05 -07:00
Jm Casler 6eab8f84d1 Updated text for better fit 2022-04-10 19:34:13 -07:00
Jm Casler a31bf71ec1 Merge branch 'region_unset' of https://github.com/mc-hamster/Meshtastic-device into region_unset 2022-04-10 19:27:17 -07:00
Jm Casler 14eef42762 Disable indicator on welcome screen. 2022-04-10 19:27:11 -07:00
Jm CaslerandGitHub ef85b74cec Merge branch 'master' into region_unset 2022-04-10 19:15:47 -07:00
Jm Casler 16ae867c2d Show welcome screen if region unset 2022-04-10 19:15:10 -07:00
Jm CaslerandGitHub 0643dcd745 Merge pull request #1367 from mc-hamster/region_unset
Disable TX if region is unset
2022-04-09 23:08:59 -07:00
Jm Casler 69ed477040 Disable TX if region is unset 2022-04-09 22:42:43 -07:00
Jm CaslerandGitHub 0f5b0b5f00 Update README.md 2022-04-08 19:51:13 -07:00
Sacha Weatherstone 11323acb23 Update link to site 2022-04-08 13:40:41 +10:00
Ben MeadorsandGitHub a20ba7e686 Add pca10059_diy_eink to boards matrix 2022-04-06 11:04:11 -05:00
Ben MeadorsandGitHub 10a7071300 Remove send owner interval (#1361)
* NodeInfo slimfast

* Removed send_owner_interval
2022-04-06 08:03:44 -05:00
Thomas GöttgensandGitHub eae9673ddb Merge pull request #1360 from meshtastic/1355-bug-crash-in-json-mqtt-bridge
fixes #1355
2022-04-06 14:28:23 +02:00
Thomas Göttgens 6e9cf82b68 fixes #1355 2022-04-06 14:11:39 +02:00
Thomas Göttgens 06aae85e45 Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-04-06 13:06:15 +02:00
Thomas GöttgensandGitHub 0035469790 Merge pull request #1358 from meshtastic/gpsfix
Improve T-Echo GPS Handling
2022-04-06 09:29:59 +02:00
Thomas Göttgens 028999697e Improve T-Echo GPS Handling 2022-04-06 09:18:55 +02:00
b7aa1397c7 Add DIY nRF82540 PCA10059 4.2inch NiceRF 868 (#1354)
* Update build-all.sh

* Update configuration.h

* Update EInkDisplay2.cpp

* Create platformio.ini

* Create variant.cpp

* Create variant.h

* Update platformio.ini

* Update check-all.sh

* Create nordic_pca10059.json

* Update variant.h

* Update EInkDisplay2.cpp

* Update configuration.h

* Update platformio.ini

* Update EInkDisplay2.cpp

* Update variant.h

* Update EInkDisplay2.cpp

* Update configuration.h

* Update EInkDisplay2.cpp

* Update variant.h

* Update nordic_pca10059.json

* Update platformio.ini

* Update platformio.ini

* Update platformio.ini

* Update platformio.ini

* Update variant.h

* Update variant.h

* Update variant.h

* Update variant.h

* Update variant.h

* Update variant.h

* Update variant.h

* Update configuration.h

* Update EInkDisplay2.cpp

* Update variant.h

* Update variant.h

* Update platformio.ini

* Update configuration.h

* Update configuration.h

* Update platformio.ini

* Update platformio.ini

* Update configuration.h

* Update platformio.ini

* Update configuration.h

* Update platformio.ini

* Update configuration.h

* Update configuration.h

* Update platformio.ini

* Update configuration.h

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
2022-04-05 11:46:07 -05:00
279def7911 [create-pull-request] automated change (#1356)
Co-authored-by: thebentern <thebentern@users.noreply.github.com>
2022-04-05 11:31:13 -05:00
Ben MeadorsandGitHub d73d3ca959 Update proto action to use nanopb 0.4.5 2022-04-05 11:29:54 -05:00
Thomas Göttgens a2df441e1f Merge branch 'master' of github.com:meshtastic/Meshtastic-device
# Conflicts:
#	variants/heltec_v1/variant.h
2022-04-05 11:03:51 +02:00
998c90d326 Use JSON library for Web UI REST Endpoints (#1340)
* Updated rest endpoint json handling.

* Fixes, typos corrected.

Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
Co-authored-by: Sacha Weatherstone <sachaw100@hotmail.com>
2022-04-05 06:22:38 +10:00
0c600363c8 add nano g1 (#1351)
* add nano g1

* Update platformio.ini

* Update configuration.h

* Revert platformio.ini to previous state

* Update configuration.h

* Update platformio.ini

Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com>
2022-04-04 20:16:19 +10:00
Thomas GöttgensandGitHub 6c2d45d866 Merge pull request #1353 from meshtastic/patch-1
Add second scancode for SH1106
2022-04-04 09:12:09 +02:00
Thomas GöttgensandGitHub cf532496a4 Merge branch 'master' into patch-1 2022-04-04 08:52:07 +02:00
Thomas GöttgensandGitHub 92d32f722d Add second scancode for SH1106
This display is found on the Nano G1
2022-04-04 08:51:29 +02:00
Jm Casler e5b19fdf5f Bump to 1.3.5 2022-04-03 19:05:56 -07:00
Thomas GöttgensandGitHub a8ef3967cd Merge pull request #1349 from meshtastic/patch-1
adjust for serial wait time during nRF52 bootup
2022-04-02 16:25:57 +02:00
Thomas GöttgensandGitHub e372306497 Merge branch 'master' into patch-1 2022-04-02 16:03:58 +02:00
Thomas Göttgens 364d81e906 adjust for serial wait time during nRF52 bootup 2022-04-02 16:02:26 +02:00
Thomas GöttgensandGitHub f9ec201394 Merge pull request #1348 from meshtastic/patch-1
GPS Timing Mod and Pinchange on Heltec
2022-04-02 13:12:27 +02:00
Thomas Göttgens fd407a2a9e GPS Pin Change for V2 and V1 too. 2022-04-02 12:57:10 +02:00
Thomas Göttgens 7c4bb80977 Variable GPS Thread Timing, keep default of 100 msec 2022-04-02 12:52:50 +02:00
Thomas Göttgens d246c31548 GPS Pin Changes on V 2.0 and V1 too. 2022-04-02 12:16:42 +02:00
Thomas Göttgens 19589bf12d Merge branch 'master' of github.com:meshtastic/Meshtastic-device 2022-04-02 12:05:30 +02:00
Thomas Göttgens ba984aebfa Varaible GPS Thread Timing, keep default of 100 msec 2022-04-02 12:05:07 +02:00
Thomas GöttgensandGitHub 2f099a59bc Merge pull request #1346 from ssysm/master
Change GPS Pin on Heltec v2.1
2022-04-02 11:29:41 +02:00
Thomas GöttgensandGitHub 12f44def5e Merge branch 'master' into master 2022-04-02 11:09:12 +02:00
Sacha WeatherstoneandGitHub 5a67dada95 Create New Board.yml 2022-04-02 16:30:34 +11:00
ssysm 600e840889 Merge branch 'master' of https://github.com/ssysm/Meshtastic-device 2022-04-01 23:38:39 -04:00
ssysm 357c9fcd76 revert 2022-04-01 23:38:23 -04:00
ssysm e6e96803b9 Merge branch 'master' of https://github.com/ssysm/Meshtastic-device 2022-04-01 23:22:27 -04:00
Ben MeadorsandGitHub 07e2816703 Promote device metrics (#1347)
* NodeInfo slimfast

* Update
2022-04-01 18:35:18 -05:00
Shengming YuanandGitHub 9ce8db1a0b Change RX pin back to 36 2022-04-01 15:30:55 -04:00
ssysm d73ef3c2fe Change GPS Pin on Heltec v2.1 2022-03-31 23:25:37 -04:00
Ben MeadorsandGitHub 286e64d5f6 Smoke test moving device telemetry into portduino 2022-03-31 16:27:55 -05:00
Thomas GöttgensandGitHub 2319d8723e Merge pull request #1344 from meshtastic/patch-1
Fixes #1294 Bluetooth-Wifi Deadlock
2022-03-31 19:03:12 +02:00
Thomas Göttgens 4e29984549 Slightly more verbose GPS debug logging 2022-03-31 18:52:40 +02:00
Thomas Göttgens 57ba626e4c Fixes #1294 Bluetooth-Wifi Deadlock 2022-03-31 18:52:13 +02:00
Thomas GöttgensandGitHub 2627db66ff Merge pull request #1343 from meshtastic/patch-1
Fix Crash if no texts defined but plugin enabled
2022-03-31 15:10:33 +02:00
Thomas GöttgensandGitHub 7282b562fa Fix Crash if no texts defined but plugin enabled 2022-03-31 14:59:42 +02:00
Thomas GöttgensandGitHub 0e3ac246b5 Add RAK1921 OLED Probe Code (#1339) 2022-03-30 15:36:16 -05:00
Thomas GöttgensandGitHub 9586a2e932 Merge pull request #1338 from meshtastic/patch-1
Remove OSThread from UpDown Input.
2022-03-30 15:20:58 +02:00
Thomas Göttgens c3defc5c86 The UpDown Input is purely interrupt driven and doesn't need an empty OSThread. 2022-03-30 15:10:02 +02:00
Jm CaslerandGitHub da87c15d0b Merge pull request #1337 from mc-hamster/location
Added new roles
2022-03-29 22:03:06 -07:00
Jm Casler e905f15a0f Added new roles 2022-03-29 22:02:21 -07:00
Jm Casler 3d42da7968 updating proto submodule to latest 2022-03-29 21:44:49 -07:00
Jm CaslerandGitHub e21fdb5d82 Merge pull request #1336 from mc-hamster/location
bump node_db max_count to 80
2022-03-29 20:20:22 -07:00
Jm Casler c1ec842454 bump node_db max_count to 80 2022-03-29 20:06:32 -07:00
Jm Casler 9480f591e3 updating proto submodule to latest 2022-03-29 20:04:40 -07:00
Thomas GöttgensandGitHub 3b8455ff6e Merge pull request #1335 from meshtastic/patch-1176
Fix #1126
2022-03-29 14:01:27 +02:00
Thomas GöttgensandGitHub e10e781ff9 Removed unused functions for touch button
that causes logspam through TX
2022-03-29 13:52:07 +02:00
Sacha Weatherstone 2ed8ea10c0 Remove eink0.1 and Air530 files 2022-03-29 22:28:34 +11:00
Ben MeadorsandGitHub eafd205169 Update telemetry for local node (#1332) 2022-03-28 12:13:22 -05:00
Thomas GöttgensandGitHub 5366eba535 Merge pull request #1333 from meshtastic/inputbroker-v2
Add CardKB, FACES and RAK14004 support to inputbroker/cannedmessages
2022-03-28 17:57:16 +02:00
Thomas Göttgens 049481f952 Merge branch 'inputbroker-v2' of github.com:meshtastic/Meshtastic-device into inputbroker-v2 2022-03-28 17:40:27 +02:00
Thomas Göttgens 50edeb5281 remove leftover stumps 2022-03-28 17:40:17 +02:00
Thomas GöttgensandGitHub cd86d33f6f Merge branch 'master' into inputbroker-v2 2022-03-28 17:00:05 +02:00
Thomas Göttgens f119e294af Add CardKB, FACES and RAK14004 support to inputbroker/cannedmessages 2022-03-28 16:55:58 +02:00
Ben MeadorsandGitHub ba2fa84ebd Reworked metrics structure and split telemetry into device or environ… (#1331)
* Reworked metrics structure and split telemetry into device or environment

* Comment cleanup
2022-03-27 09:55:35 -05:00
Jm CaslerandGitHub 7b8096f5b2 Merge pull request #1329 from mc-hamster/location
Regen protos for serial baud & mode. Update serial_module to support …
2022-03-26 11:27:11 -07:00
Thomas GöttgensandGitHub 450ab95ab5 Merge branch 'master' into location 2022-03-26 18:14:41 +01:00
Thomas GöttgensandGitHub 93ab20a8af Merge pull request #1330 from meshtastic/inputbroker-v2
RAK Rotary and simple up/down/press button support for Canned Messages
2022-03-26 18:14:27 +01:00
Thomas GöttgensandGitHub a48cc202a7 Merge branch 'master' into inputbroker-v2 2022-03-26 17:46:30 +01:00
Thomas Göttgens 0058382e85 RAK Rotary and simple up/down/press button support for Canned Messages 2022-03-26 17:45:42 +01:00
Jm Casler 8bca0d94cd Regen protos for serial baud & mode. Update serial_module to support new enums.
Regen protos for serial baud & mode. Update serial_module to support new enums.
2022-03-26 09:35:06 -07:00
Jm Casler 266cdfed57 updating proto submodule to latest 2022-03-26 09:32:13 -07:00
Jm CaslerandGitHub e9fcc2ac42 Merge pull request #1328 from mc-hamster/location
Regen protos with support for messaged waypoints
2022-03-26 09:29:16 -07:00
Jm Casler 48fa2b6b9b Regen protos with support for messaged waypoints 2022-03-26 07:48:35 -07:00
Thomas GöttgensandGitHub 9bece843c3 Merge pull request #1327 from meshtastic/serialconsole
SerialDebug NRF
2022-03-26 11:29:46 +01:00
Thomas Göttgens c8254f9ec8 SerialDebug NRF
On slow systems, it takes up to 5 seconds to init serial
2022-03-26 11:15:57 +01:00
Thomas GöttgensandGitHub 62337aa4b6 Merge pull request #1326 from meshtastic/modem_config
Resync modem_config display with 1.3 protobufs
2022-03-26 11:15:31 +01:00
Thomas GöttgensandGitHub 42ee4e8416 Resync modem_config display with 1.3 protobufs
current as of 20220326
2022-03-26 10:59:36 +01:00
Thomas GöttgensandGitHub 596a889a1e Merge pull request #1322 from meshtastic/inputbroker-v2
Fixes forward ported from 1.2 and renaming of pin names for more generic use.
2022-03-26 10:22:34 +01:00
Thomas GöttgensandGitHub 74d987b24c Merge branch 'master' into inputbroker-v2 2022-03-26 08:55:40 +01:00
Thomas Göttgens cd79542e52 Merge branch 'inputbroker-v2' of github.com:meshtastic/Meshtastic-device into inputbroker-v2 2022-03-26 08:54:50 +01:00
Thomas Göttgens aec626f5e0 Update proto to HEAD 2022-03-26 08:54:37 +01:00
Jm CaslerandGitHub 31d7724ef1 Merge pull request #1325 from mc-hamster/location
Update protos regen scripts
2022-03-25 23:08:00 -07:00
Jm Casler 34dc5b92a5 Update protos regen scripts 2022-03-25 23:06:54 -07:00
Jm Casler 15db9f056f updating proto submodule to latest 2022-03-25 22:30:41 -07:00
Jm Casler bea1611e5f updating proto submodule to latest 2022-03-25 22:22:20 -07:00
Ben MeadorsandGitHub 92482199ed Merge branch 'master' into inputbroker-v2 2022-03-26 01:00:07 +00:00
Thomas GöttgensandGitHub 7aeca185f1 Merge pull request #1324 from meshtastic/nRF-serialinit
Wait up to 2 seconds for port being connected.
2022-03-25 23:16:19 +01:00
Thomas GöttgensandGitHub 54d802f15d Wait up to 2 seconds for port being connected.
This will send serial debug log from the beginning and not somewhere in between.
2022-03-25 23:06:31 +01:00
Ben MeadorsandGitHub e0142a9363 Merge branch 'master' into inputbroker-v2 2022-03-25 12:25:27 +00:00
amerinojandGitHub 501067cd36 Added the last mac address bytes in bluetooth device and default notification pinout to tlora_v2_1_16 (#1320)
* Added the last mac address bytes in bluetooth device name ESP32Bluetooth.cpp
Add default notification pinout to tlora_v2_1_16/variant.h

* updated ADC_MULTIPLIER  value for more accuracy
2022-03-25 07:24:56 -05:00
Thomas Göttgens 98792f0c05 fix option name 2022-03-25 12:52:11 +01:00
Thomas Göttgens e320850707 Resolve Conflicts between PIN_BUtton and the Rotary Select and keep screen powered during plugin operation. Forward Port from 1.2 firmware fix. 2022-03-25 12:27:14 +01:00
Thomas GöttgensandGitHub 8bfe277269 Merge branch 'master' into inputbroker-v2 2022-03-25 11:45:13 +01:00
Thomas GöttgensandGitHub 1022b8216b Merge pull request #1321 from meshtastic/create-pull-request/patch
Changes by create-pull-request action - this will break CI builds till the next merge request
2022-03-25 11:44:50 +01:00
caveman99andGitHub 3e8ca1f381 [create-pull-request] automated change 2022-03-25 10:40:54 +00:00
Thomas Göttgens ad2cec2579 Update Protobuf Submodule to Master 2022-03-25 11:38:01 +01:00
Ben MeadorsandGitHub 362795a7c8 Meshtastic-diy battery and adc multiplier 2022-03-24 19:20:15 -05:00
Thomas Göttgens fe5b5ebf15 Adjust rotary defines to new universal names 2022-03-24 22:17:06 +01:00
Thomas GöttgensandGitHub 188306d429 Merge pull request #1318 from meshtastic/gps-disabled
free serial pins if gps_disabled is set
2022-03-24 18:52:03 +01:00
Thomas GöttgensandGitHub 72f443c519 free serial pins if gps_disabled is set 2022-03-24 18:22:31 +01:00
Thomas GöttgensandGitHub cef1614770 Autodetect OLED Controller 1306/1106 (#1317)
* Autodetect OLED Controller 1306/1106 and make #define NO_SCREEN work again

* fix epaper with autodetect

* Try kicking CI - NFC
2022-03-24 11:36:56 -05:00
Ben MeadorsandGitHub 47524d58d7 Telemetry tweaks (#1315)
* Update protos

* Removed battery level from position packets

* Send internal metrics

* Handle telemetry on node info for now

* Fixes

* Default telemetry to enabled and same interval as position

* Fixes for lots of interval issues

* Fixed interval

* Regen

* Cleanup

* Newline

* Update proto ref

* Fixed missing metric and updated power level to uint

* Regen
2022-03-23 15:46:39 -05:00
Ben MeadorsandGitHub e97bd4f9f9 Battery level / telemetry rework (first pass) (#1306)
* Update protos

* Removed battery level from position packets

* Send internal metrics

* Handle telemetry on node info for now

* Fixes

* Default telemetry to enabled and same interval as position

* Fixes for lots of interval issues

* Fixed interval

* Regen

* Cleanup

* Newline

* Update proto ref
2022-03-20 09:55:38 -05:00
Thomas GöttgensandGitHub bbf044795a weed out old versioning macros (#1312)
weed out old versioning macros
2022-03-20 11:53:37 +01:00
Sacha Weatherstone 8adacba3a1 Respect loc_share_disabled 2022-03-20 16:12:55 +11:00
Sacha Weatherstone e5e25c2f31 Use gps_disabled 2022-03-20 15:57:49 +11:00
Sacha Weatherstone a530249503 Fix typo "Fahrenheit" 2022-03-20 14:15:32 +11:00
Sacha Weatherstone 285413c68c Rename packetNum to packetId 2022-03-20 11:40:13 +11:00
Sacha Weatherstone 4cd1570543 make location_share a boolean 2022-03-20 11:01:49 +11:00
mkinneyandGitHub 535919dfff Merge pull request #1302 from mkinney/nrf_factory_reset_for_13
remove /prefs for nrf factory reset
2022-03-17 12:47:10 -07:00
Mike Kinney 94c1286010 changed on 1.3 2022-03-17 19:32:34 +00:00
Mike Kinney f2a4308497 remove /prefs for nrf factory reset 2022-03-17 19:10:58 +00:00
Jm CaslerandGitHub 5b8ff56731 Merge pull request #1296 from caveman99/littlefs-fix
LittleFS recursive display and erase.
2022-03-16 10:11:30 -07:00
Thomas GöttgensandGitHub 3e14f76a94 Merge branch 'master' into littlefs-fix 2022-03-16 08:44:23 +01:00
Thomas Göttgens cb6846ebc6 fix PortduinoFS integration for Firmware. 2022-03-16 08:30:38 +01:00
Jm CaslerandGitHub 44681c90f5 Merge pull request #1298 from mc-hamster/router
comment out DSRRouter
2022-03-15 18:02:47 -07:00
Jm CaslerandGitHub 5eccfb6f2b Merge branch 'meshtastic:master' into router 2022-03-15 17:52:43 -07:00
Jm Casler b4f9008b2b comment out DSRRouter 2022-03-15 17:52:18 -07:00
Jm CaslerandGitHub 5eb761c397 Merge pull request #1297 from mc-hamster/router
remove is_router in favor of role == Role_Router
2022-03-15 17:12:06 -07:00
Jm Casler 11130496c4 remove is_router in favor of role == Role_Router 2022-03-15 15:49:25 -07:00
Jm Casler e893ff447f updating proto submodule to latest 2022-03-15 15:45:59 -07:00
Thomas Göttgens e435453363 fix building for nRF52 2022-03-15 22:49:06 +01:00
Thomas Göttgens 697c749a8d LittleFS recursive display and erase. Cause we got directories now, baby! 2022-03-15 22:22:05 +01:00
Sacha Weatherstone b9058ce7c5 fix build 2022-03-15 18:28:39 +11:00
Sacha Weatherstone ceacbe0b94 Cleanup pio config (less intimidating) 2022-03-15 17:35:29 +11:00
Sacha Weatherstone 5b8ce7fe07 Remove unused scripts 2022-03-15 17:30:55 +11:00
Jm CaslerandGitHub 9037a51f83 Merge pull request #1293 from mc-hamster/router
support for position_broadcast_smart_disabled
2022-03-14 18:22:49 -07:00
Jm Casler 1b1c3936a4 support for position_broadcast_smart_disabled 2022-03-14 18:09:11 -07:00
Jm Casler d1897f8e5a updating proto submodule to latest 2022-03-14 18:05:25 -07:00
Jm CaslerandGitHub abc0579e75 Merge pull request #1292 from mc-hamster/router
Add weighted tx delay for flooding router
2022-03-14 17:56:57 -07:00
Jm Casler 3816a2fbe0 Add weighted tx delay for flooding router 2022-03-14 17:47:01 -07:00
Jm CaslerandGitHub bb15a001f7 Merge branch 'meshtastic:master' into router 2022-03-14 16:59:09 -07:00
mkinneyandGitHub 6fa2d47f0c Merge pull request #1291 from raldi/master
Get sleep side effect out of DEBUG_MSG()
2022-03-14 13:33:27 -07:00
Mike Schiraldi f1ed691fd3 Get sleep side effect out of DEBUG_MSG() 2022-03-14 13:05:25 -07:00
mkinneyandGitHub f7f783b48b Merge pull request #1290 from raldi/master
Get side effects out of DEBUG_MSG
2022-03-14 12:58:44 -07:00
Mike Schiraldi fc0eb7de46 Add semicolon 2022-03-14 12:40:57 -07:00
Mike Schiraldi 88d6850c82 Get side effects out of DEBUG_MSG 2022-03-14 12:31:13 -07:00
Jm Casler 0a1e6517a1 updating proto submodule to latest 2022-03-14 07:42:01 -07:00
Jm Casler 82591b2a69 Remove more old router role work. 2022-03-13 14:50:27 -07:00
Jm Casler cb4ca87abe remove role from flooding router 2022-03-12 07:22:59 -08:00
d4e6dd32c5 JSON MQTT Integration (#1283)
* Added downstream JSON MQTT handling.

* Added uplink JSON messaging

* Fixed shadow variable.

* Added missing dependency.

* Fixes Environment -> Telemetry.

* Fixed native issue.

* Added json11 pio reg dependency.

* Fixed json11 library dependency.

Co-authored-by: Sacha Weatherstone <sachaw100@hotmail.com>
2022-03-12 08:08:57 -06:00
Sacha Weatherstone f33cd4081e Implement getOwner 2022-03-10 09:14:56 +11:00
Sacha Weatherstone 8a7a6e9a5d Use registry version of OneButton 2022-03-10 09:03:30 +11:00
Sacha Weatherstone 593dc67cfb Remove unused lib dir 2022-03-10 08:40:39 +11:00
Sacha Weatherstone 400630199f Use nanopb from PIO registry 2022-03-10 08:37:24 +11:00
Sacha Weatherstone 379fd9cdd0 Remove unused nrf52 tests 2022-03-10 08:13:39 +11:00
Sacha Weatherstone b31580a35c Removed unused linker files 2022-03-10 08:04:45 +11:00
Sacha Weatherstone 5f47939543 Remove CMakeLists 2022-03-10 08:00:27 +11:00
Sacha WeatherstoneandGitHub 655d694552 Move README-docker.md to docs 2022-03-10 00:41:28 +11:00
Sacha WeatherstoneandGitHub 3292b2ff21 Delete .gitlab-ci.yml 2022-03-10 00:10:24 +11:00
Sacha Weatherstone c98a9441d6 Update CI 2022-03-10 00:04:49 +11:00
Sacha Weatherstone 6bee95d6b2 Rename MeshPlugin, SinglePortPlugin and ProtobufPlugin 2022-03-09 19:01:43 +11:00
Sacha Weatherstone 46b8b61b7f Fix Serial Plugin name 2022-03-09 18:37:41 +11:00
Jm CaslerandGitHub f5369c3f1b Merge pull request #1280 from michaelkleinhenz/txt-mqtt
Plaintext publish to MQTT
2022-03-08 15:35:46 -08:00
Michael Kleinhenz 428d062b9a Added txt message publishing on MQTT. 2022-03-07 20:45:50 +01:00
Jm Casler 2b20bf3d0a Building new BLE stack for 1.3.4 2022-03-06 17:52:05 -08:00
Jm CaslerandGitHub 61c2e58479 Merge pull request #1273 from joshpirihi/master
NimBLE API Implementation
2022-03-06 17:48:14 -08:00
Jm CaslerandGitHub eddc202799 Merge branch 'master' into master 2022-03-06 16:12:11 -08:00
Jm CaslerandGitHub e22601b599 Merge pull request #1278 from mc-hamster/router
Update to flooding router -- add 'isPacketLocal' and change to sniffReceived
2022-03-06 16:11:58 -08:00
Jm Casler 2a2448e367 address tool-cppcheck error 2022-03-06 15:46:56 -08:00
Jm CaslerandGitHub c1c8fea21e Merge branch 'meshtastic:master' into router 2022-03-06 14:40:11 -08:00
Ben MeadorsandGitHub ca21e8b2bf New PR artifacts upload scheme 2022-03-06 08:50:42 -06:00
Ben MeadorsandGitHub 6151af0343 Merge branch 'master' into master 2022-03-06 02:39:54 +00:00
hb9tobandGitHub bcac20490e Update Screen.cpp (#1274) 2022-03-05 20:26:25 -06:00
Jm Casler ec86246da9 Update to flooding router 2022-03-05 12:38:26 -08:00
Joshua Pirihi d27efd0749 Merge branch 'master' of https://github.com/joshpirihi/Meshtastic-device into mymaster 2022-03-06 05:59:20 +13:00
Joshua Pirihi a48838153b NimBLE merge conflicts 2022-03-06 05:59:13 +13:00
Joshua Pirihi d59de171c5 NimBLE implementation 2022-03-06 05:57:38 +13:00
Joshua Pirihi facf7f56c2 Merge branch 'master' of https://github.com/meshtastic/Meshtastic-device 2022-03-06 05:56:34 +13:00
joshpirihiandGitHub 0a14f5d168 Merge branch 'meshtastic:master' into master 2022-03-06 05:46:32 +13:00
Joshua Pirihi 3ab2ca57e9 NimBLE implementation 2022-03-06 05:43:26 +13:00
mkinneyandGitHub ea99f96014 Merge pull request #1270 from mkinney/bugfixes_from_1_2
merge the 1.2 hang bugfix to 1.3
2022-03-02 21:36:56 -08:00
mkinneyandGitHub 6001e96c82 Merge branch 'master' into bugfixes_from_1_2 2022-03-02 21:28:11 -08:00
Jm Casler 2fe124eb17 Bump to 1.3.3 2022-03-02 20:50:09 -08:00
mkinneyandGitHub d91a63a5ee Merge branch 'master' into bugfixes_from_1_2 2022-03-02 20:43:12 -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
mkinneyandGitHub 047c5ec36a Merge branch 'master' into bugfixes_from_1_2 2022-03-02 20:40:36 -08:00
Jm CaslerandGitHub ef4c01f4ea Merge pull request #1271 from mc-hamster/router
Update PERIODS_TO_LOG
2022-03-02 20:39:10 -08:00
Jm CaslerandGitHub 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
Mike Kinney 0f862edc47 remove the --user 2022-03-03 04:29:34 +00:00
Mike Kinney c1613de426 merge the 1.2 hang bugfix to 1.3 2022-03-03 04:27:49 +00:00
Jm Casler ee533b2d5c Bumping to 1.3.1 2022-03-02 19:02:08 -08:00
Jm CaslerandGitHub 52960f5fa2 Merge pull request #1269 from mc-hamster/router
Fix tophone build error
2022-03-02 18:55:43 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub cf928fca93 Merge pull request #1268 from mc-hamster/router
Added router to mynodeinfo
2022-03-02 18:52:52 -08:00
Jm CaslerandGitHub 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 MeadorsandGitHub 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 CaslerandGitHub 950b54aaba Merge pull request #1263 from mc-hamster/router
Add rssi to printPacket
2022-02-28 22:06:01 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub 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 CaslerandGitHub 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-pancakeandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub c5c12bcc6b Merge pull request #1244 from puzzled-pancake/master
Added NZ865 Frequency
2022-02-26 21:36:58 -08:00
Jm CaslerandGitHub 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-pancakeandGitHub 9b44d2e999 Update RadioInterface.cpp 2022-02-27 18:12:27 +13:00
Jm CaslerandGitHub 01a86133ea Merge branch 'master' into master 2022-02-26 21:07:44 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 5bff62e428 Delete environmental_measurement.pb.h 2022-02-26 20:31:16 -08:00
Jm CaslerandGitHub a0f80c1a2a Delete environmental_measurement.pb.c 2022-02-26 20:31:05 -08:00
puzzled-pancakeandGitHub f9bcddafef Update RadioInterface.cpp 2022-02-27 17:30:11 +13:00
puzzled-pancakeandGitHub a25beff241 Update RadioInterface.cpp 2022-02-27 17:29:25 +13:00
Jm CaslerandGitHub 529707489a Rename EnvironmentalMeasurementPlugin.h to Telemetry.h 2022-02-26 20:19:14 -08:00
Jm CaslerandGitHub ceccbd3ef2 Rename Telemetry to Telemetry.cpp 2022-02-26 20:18:50 -08:00
Jm CaslerandGitHub 59ce0c7d09 Rename EnvironmentalMeasurementPlugin.cpp to Telemetry 2022-02-26 20:18:32 -08:00
puzzled-pancakeandGitHub f2a31cc678 Update RadioInterface.cpp
Add NZ 866
2022-02-27 17:01:25 +13:00
Ben MeadorsandGitHub c97541d4fc Turns out this workflow is needed on the target branch 2022-02-25 17:25:43 -06:00
Ben MeadorsandGitHub fc54f2f63d Temporary 1.2 legacy PR checks (#1243)
* Temporary 1.2 legacy PR checks
2022-02-25 16:13:28 -06:00
joshpirihiandGitHub 961cadd550 Merge branch 'meshtastic:master' into master 2022-02-26 10:26:04 +13:00
Andre KirchhoffandGitHub c3cee236bd add m-flasher to README (#1241) 2022-02-25 08:22:59 -06:00
Mark Trevor BirssandGitHub 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 CaslerandGitHub 2e402a726b Merge pull request #1238 from mc-hamster/group-chat
Remove chat groups
2022-02-24 20:08:51 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 060eac7ab9 Merge pull request #1235 from mc-hamster/group-chat
remove test code
2022-02-22 17:18:19 -08:00
Jm CaslerandGitHub 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 KelemenandGitHub bb15ed903d Cleanup docker readme. (#1233)
Cleanup docker readme.
2022-02-22 06:18:54 -06:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 06064d92cd Merge pull request #1225 from mc-hamster/group-chat
Add ourGroupInfo to NodeDB
2022-02-20 00:05:13 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub d32989cd7e Merge pull request #1224 from mc-hamster/group-chat
Plumbing for the GroupPlugin
2022-02-19 23:50:39 -08:00
Jm CaslerandGitHub 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 MeadorsandGitHub 29e70a80c6 Add rak eink variant (#1221) 2022-02-19 07:32:15 -06:00
Mark Trevor BirssandGitHub 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öttgensandGitHub 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öttgensandGitHub 54f062e94d Add littlefs dependancy to release flow as well (#1217) 2022-02-16 07:22:40 -06:00
Joshua Pirihi a37f49bcbf Add define to platformio.ini to switch between old and new bluetooth 2022-02-16 19:57:35 +13: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
joshpirihiandGitHub de9680d461 Merge branch 'meshtastic:master' into master 2022-02-16 19:50:16 +13:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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
joshpirihiandGitHub 53e8a40ffa Merge branch 'meshtastic:master' into master 2022-02-15 06:52:48 +13:00
Joshua Pirihi 6c17626132 Use NimBLE API for ESP32 bluetooth 2022-02-15 06:52:00 +13:00
Thomas GöttgensandGitHub 8e9b852faa Littlefs rebased to Master (#1205)
* Littlefs
2022-02-14 11:45:29 -06:00
Ben MeadorsandGitHub 6b4907e841 Added after-checks 2022-02-14 11:27:33 -06:00
Ben MeadorsandGitHub 1808e9b3d8 Pick up littlefs instead of spiffs bin 2022-02-14 10:39:31 -06:00
Ben MeadorsandGitHub 1dd53eeaf5 Set max parallel workers on jobs to favor esp32 2022-02-14 10:36:16 -06:00
Ben MeadorsandGitHub 892d9a34c7 Add littlefs-python package for ESP32 target 2022-02-14 10:21:28 -06:00
Ben MeadorsandGitHub 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 MeadorsandGitHub 3f83acdbef Ignore version.properties on ci-build 2022-02-10 21:13:36 -06:00
Ben MeadorsandGitHub 9db7c62a49 1.2.55 release 2022-02-10 21:02:43 -06:00
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 MeadorsandGitHub 7ea6babb7f Add workflow_dispatch back 2022-02-10 16:23:34 -06:00
Garth Vander HouwenandGitHub 0b4b901504 Merge pull request #1196 from meshtastic/mkinney-patch-1
Update main.yml
2022-02-10 14:09:49 -08:00
mkinneyandGitHub cc7b5cf136 Update main.yml 2022-02-10 14:06:09 -08:00
Clemens H / OE1RFC / datacopandGitHub 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 MeadorsandGitHub c867af8522 Adjusted adc_multiplier for heltec2.1 and added adc_mulitplier_override (#1183) 2022-02-09 13:37:48 -06:00
Ric LetsonandGitHub 856f2f9589 MCP9808 sensor implementation (#1188)
* MCP9808 Sensor Implementation Initial Test
2022-02-08 11:03:34 -06:00
Ben MeadorsandGitHub e649bc84e1 Fix PR artifact permissions (#1190) 2022-02-08 10:29:57 -06:00
Ben MeadorsandGitHub bbcd59ec7b Specify branch for PR artifact storage (#1187) 2022-02-07 12:44:10 -06:00
Ben MeadorsandGitHub e11fd593ae Update github action to flatten firmware zip and attach artifacts (#1186) 2022-02-07 11:15:03 -06:00
Thomas GöttgensandGitHub 868af9dd6b Get rid of log clutter during oled screen animation (#1182) 2022-02-03 07:22:46 -06:00
Garth Vander HouwenandGitHub 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
thebenternandGitHub e567fe7322 [create-pull-request] automated change 2022-02-03 03:21:12 +00:00
Ben MeadorsandGitHub 365120e9c2 Added RAK11200 board variant support (#1177)
* Added RAK11200 board variant support
2022-02-02 12:41:07 -06:00
Ben MeadorsandGitHub 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]andGitHub dd31a829fb Update and regen protobufs (#1175)
* Update and regen protobufs
2022-02-01 09:41:56 -06:00
Thomas GöttgensandGitHub 9a505c27fa add missing Config definition for PRIVATE_HW (#1174) 2022-02-01 08:08:03 -06:00
Ben MeadorsandGitHub ed9cd7b03d Update nimble (#1173) 2022-01-31 20:56:31 -06:00
Ben MeadorsandGitHub 66413d8b7f Refactored sensors (#1172)
* Refactored sensors
2022-01-31 20:24:32 -06:00
Jm CaslerandGitHub e4fe2c159a Merge pull request #1165 from joshpirihi/master
Allow publishing of decrypted packets to MQTT
2022-01-28 21:10:00 -08:00
Jm CaslerandGitHub f5e0718052 Merge branch 'master' into master 2022-01-28 20:13:46 -08:00
Jm CaslerandGitHub 64ff48c4a5 Merge pull request #1163 from caveman99/caveman99-patch-1
Fixed typo
2022-01-28 13:05:52 -08:00
Jm CaslerandGitHub 50969c4e42 Merge branch 'master' into caveman99-patch-1 2022-01-28 13:05:45 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub c545155b03 Merge branch 'master' into fix_nullptrderef 2022-01-28 13:05:11 -08:00
Vladislav OsmanovandGitHub 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
joshpirihiandGitHub 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öttgensandGitHub 0a1125d7e4 Merge branch 'master' into caveman99-patch-1 2022-01-28 08:44:46 +01:00
Thomas GöttgensandGitHub 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 CaslerandGitHub 66cd824437 Merge pull request #1162 from mkinney/remote_hw
gpio read and write work as expected
2022-01-27 17:49:23 -08:00
mkinneyandGitHub 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
mkinneyandGitHub c278a0e299 Merge pull request #1149 from caveman99/caveman99-patch-1
accept one or more environment definitions
2022-01-27 11:39:43 -08:00
mkinneyandGitHub fbc25c3a13 Merge branch 'master' into caveman99-patch-1 2022-01-27 11:09:57 -08:00
mkinneyandGitHub 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
mkinneyandGitHub d5377a0f19 Merge branch 'master' into create-pull-request/patch 2022-01-27 10:40:01 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 477b666998 Merge branch 'master' into thebentern-patch-2 2022-01-27 10:37:04 -08:00
Jm CaslerandGitHub 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 MeadorsandGitHub 59c2bcd978 Merge branch 'master' into thebentern-patch-2 2022-01-27 12:33:55 -06:00
mkinneyandGitHub aea6675e64 [create-pull-request] automated change 2022-01-27 18:32:55 +00:00
mkinneyandGitHub 8bff696bef Merge branch 'master' into patch-1 2022-01-27 10:28:21 -08:00
mkinneyandGitHub da0ec09bf4 Merge pull request #1157 from meshtastic/thebentern-patch-1
Create pr instead of commit
2022-01-27 10:28:03 -08:00
Ben MeadorsandGitHub 2c99020037 Ignore markdown and yml for continuous integration 2022-01-27 11:59:08 -06:00
Ben MeadorsandGitHub 14419cbd02 Create pr instead of commit 2022-01-27 11:54:32 -06:00
Ben MeadorsandGitHub 1bfa6839e2 Use correct path to mesh (#1155) 2022-01-27 08:57:49 -06:00
Ben MeadorsandGitHub a61676504f Attempt to only update proto (#1153) 2022-01-27 07:51:51 -06:00
Vladislav OsmanovandGitHub f4d3de086a Fix MISO/MOSI pins for DIY v1.1 2022-01-27 16:49:55 +03:00
Thomas GöttgensandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub 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
mkinneyandGitHub 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 MeadorsandGitHub 3c7670186a Update protobufs and regenerate classes 2022-01-26 14:25:30 -06:00
Ben MeadorsandGitHub b51be320dd BME680 support (#1142) 2022-01-25 14:22:48 -06:00
Thomas GöttgensandGitHub 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
mkinneyandGitHub 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
mkinneyandGitHub a8dab94087 Merge branch 'master' into fix_some_cpp_warnings 2022-01-24 13:27:33 -08:00
mkinneyandGitHub 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öttgensandGitHub 115b835b83 Merge branch 'master' into master 2022-01-24 21:57:54 +01:00
Thomas GöttgensandGitHub 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
mkinneyandGitHub e1d3c01199 Merge branch 'master' into fix_some_cpp_warnings 2022-01-24 12:52:21 -08:00
mkinneyandGitHub 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 stoandGitHub a2eef895bd Create variant.h 2022-01-24 20:40:28 +01:00
co stoandGitHub 64671c8ce7 Delete variants/heltev_v2.1 directory 2022-01-24 20:38:51 +01:00
Thomas GöttgensandGitHub 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 stoandGitHub c6b851a2e6 Update variant.h 2022-01-24 19:01:23 +01:00
co stoandGitHub ec4346aba3 Update variant.h 2022-01-24 18:59:09 +01:00
co stoandGitHub 791186a264 Create variant.h 2022-01-24 18:58:32 +01:00
co stoandGitHub ab947f06aa Delete .heltec_v2.1 2022-01-24 18:55:51 +01:00
co stoandGitHub cfa0ceb604 Create .heltec_v2.1 2022-01-24 18:55:26 +01:00
co stoandGitHub c7686ad57e Delete variant.h 2022-01-24 18:46:35 +01:00
co stoandGitHub 8732b7cb4d Add files via upload 2022-01-24 18:45:51 +01:00
co stoandGitHub fe9dcbb316 Delete heltec_v2.1 2022-01-24 18:40:15 +01:00
co stoandGitHub 38d1a381e6 Create heltec_v2.1 2022-01-24 18:35:25 +01:00
co stoandGitHub 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öttgensandGitHub 9a0126cde1 use the new version of Screen lib when building 2022-01-24 17:37:33 +01:00
co stoandGitHub 39d0c0fd8f Merge branch 'meshtastic:master' into master 2022-01-24 14:00:33 +01:00
mkinneyandGitHub 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 CaslerandGitHub 2357240d84 Merge pull request #1136 from osmanovv/diy-v11
Meshtastic DIY v1.1 new schematic
2022-01-23 20:43:00 -08:00
co stoandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub 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 stoandGitHub 91ad0df11c Update variant.h 2022-01-23 17:04:55 +01:00
co stoandGitHub 976627d974 Merge branch 'meshtastic:master' into master 2022-01-23 14:20:29 +01:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub ab8083dec4 Merge pull request #1131 from mc-hamster/master
Fixes PIO code inspector
2022-01-23 01:01:50 -08:00
Jm CaslerandGitHub 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 MeadorsandGitHub 61e1b8d859 Set lastMeasurementPacket as one we're sending (#1130) 2022-01-22 19:24:47 -06:00
mkinneyandGitHub 165e8e8cba Merge pull request #1127 from mkinney/add_docker
initial dockerfile and notes
2022-01-22 14:02:19 -08:00
mkinneyandGitHub 635fbcf0d5 Merge branch 'master' into add_docker 2022-01-22 13:34:29 -08:00
mkinneyandGitHub 815222ad80 Merge pull request #1128 from osmanovv/diy-rfm95
RFM95/SX127x support in DIY
2022-01-22 13:34:17 -08:00
mkinneyandGitHub 64a9f15b1c Merge branch 'master' into add_docker 2022-01-22 13:16:20 -08:00
Ben MeadorsandGitHub abcdf39b20 Merge branch 'master' into diy-rfm95 2022-01-22 15:09:57 -06:00
Ben MeadorsandGitHub 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 MeadorsandGitHub b6706c7ac1 Admin message shutdown feature (#1124)
* Shutdown via proto admin message
2022-01-21 15:03:26 -06:00
Thomas GöttgensandGitHub 7723b30951 Custom_ArialMT_Plain_10 not used anywhere (#1122) 2022-01-21 09:53:57 -06:00
Ben MeadorsandGitHub 6d34151590 Admin message shutdown protobufs (#1119)
* Updated protos for admin message shutdown protobufs
2022-01-20 21:43:15 -06:00
co stoandGitHub 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 stoandGitHub b49ba55658 Merge branch 'master' into master 2022-01-21 02:37:39 +01:00
co stoandGitHub 0864154157 Update platformio.ini 2022-01-21 02:26:59 +01:00
co stoandGitHub c4f64b1592 Update variant.h 2022-01-21 02:09:25 +01:00
co stoandGitHub 001d054924 Update platformio.ini 2022-01-21 02:07:29 +01:00
mkinneyandGitHub 5e590a4a5e Merge pull request #1118 from meshtastic/mkinney-patch-1
Update README.md
2022-01-20 10:57:17 -08:00
mkinneyandGitHub 22a2fe2cb4 Update README.md
add github downloads badge
2022-01-20 10:16:18 -08:00
mkinneyandGitHub f047ae6792 Update README.md
add ci badge
2022-01-20 10:04:43 -08:00
Ben MeadorsandGitHub 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
mkinneyandGitHub 1acabb9d35 Merge pull request #1110 from prampec/master
Temporary fix on canned messages total length.
2022-01-19 16:14:56 -08:00
mkinneyandGitHub 420495cb2d Merge branch 'master' into master 2022-01-19 15:45:58 -08:00
Ben MeadorsandGitHub 9309824874 RAK / NRF shutdown functionality on user button long press (#1113) 2022-01-19 17:10:02 -06:00
Balázs KelemenandGitHub 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 MeadorsandGitHub 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
mkinneyandGitHub 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
mkinneyandGitHub 8e3d30bd7f Merge branch 'master' into fix_warning 2022-01-17 22:44:01 -08:00
mkinneyandGitHub 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 CaslerandGitHub 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 CaslerandGitHub b53f4214bc Merge pull request #1099 from mc-hamster/master
AirTime - fix bug in array shifter
2022-01-15 15:28:39 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 1c993c10a1 Merge pull request #1097 from mc-hamster/master
airtime - reuse some functions
2022-01-15 11:20:33 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub c798e1a2da Merge pull request #1096 from mc-hamster/master
Airtime - removed debug message
2022-01-15 09:51:46 -08:00
Jm CaslerandGitHub 7eb4713422 Merge branch 'meshtastic:master' into master 2022-01-15 09:51:10 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 38dd5612fd Merge branch 'master' into CannedMessagePlugin 2022-01-15 09:20:10 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 419349e13e Merge branch 'master' into CannedMessagePlugin 2022-01-13 17:31:12 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub 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 BirssandGitHub 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 CaslerandGitHub ad038b07b6 Merge pull request #1082 from mc-hamster/master
Fix typo
2022-01-11 15:57:50 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 01f1b33eec Merge branch 'meshtastic:master' into master 2022-01-07 17:23:40 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub abae99f577 Merge branch 'master' into portable-shebangs 2022-01-07 11:10:47 -08:00
Jm CaslerandGitHub 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
ernax78andGitHub 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
ernax78andGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub c366d81510 Merge pull request #94 from mc-hamster/BLE_NOPIN
BLE MITM disabled
2022-01-04 20:55:53 -08:00
Jm CaslerandGitHub 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
linageeandGitHub cb0073f6fa Merge pull request #3 from meshtastic/master
Merge master
2022-01-04 10:27:26 -07:00
Jm CaslerandGitHub 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 CaslerandGitHub 97ad7a1825 Merge pull request #93 from meshtastic/master
Update from head
2022-01-03 16:18:20 -08:00
Jm CaslerandGitHub 1f9b1e2828 Merge branch 'NTP' into master 2022-01-03 16:18:01 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 8569595249 Merge pull request #1046 from caveman99/Heltec-V1
Heltec v1
2022-01-02 11:09:57 -08:00
Jm CaslerandGitHub 88281dbbf1 Merge branch 'master' into Heltec-V1 2022-01-02 11:09:46 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub c00c2744bf Merge branch 'master' into StoreAndForward 2022-01-01 23:23:26 -08:00
Jm CaslerandGitHub 83293a5f4d Merge pull request #1048 from prampec/ExternalNotificationFix
Channel-binding filter accepts empty channel names.
2022-01-01 23:18:55 -08:00
Jm CaslerandGitHub 0812094f35 Merge branch 'master' into ExternalNotificationFix 2022-01-01 23:18:49 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub de1d5d61ff Merge branch 'master' into Heltec-V1 2022-01-01 14:11:52 -06:00
Ben MeadorsandGitHub af8f70e9ae Merge branch 'master' into StoreAndForward 2022-01-01 14:11:30 -06:00
Ben MeadorsandGitHub c135a59787 Merge branch 'master' into ExternalNotificationFix 2022-01-01 14:00:50 -06:00
linageeandGitHub 333b195804 Don't commit vim swap files to repo (#1051) 2022-01-01 14:00:32 -06:00
Ben MeadorsandGitHub 40f1a7bcaf Merge branch 'master' into ExternalNotificationFix 2022-01-01 13:13:15 -06:00
Ben MeadorsandGitHub 432854ce31 Merge branch 'master' into master 2022-01-01 13:12:59 -06:00
Sjoer van der PloegandGitHub 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
linageeandGitHub 69e1985eda Merge pull request #2 from meshtastic/master
Merge master
2022-01-01 11:48:30 -07:00
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 WeatherstoneandGitHub 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 WeatherstoneandGitHub 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 CaslerandGitHub 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öttgensandGitHub 20497335c2 stop old chip from crashing 2021-12-30 22:20:15 +01:00
Thomas GöttgensandGitHub e24a2116d8 build the new board with build_all 2021-12-30 22:19:04 +01:00
Thomas GöttgensandGitHub 9c7121df3e Update platformio.ini
add new board to platform.io definition
2021-12-30 22:18:08 +01:00
Thomas GöttgensandGitHub c531ea8601 new Configuration section 2021-12-30 22:16:46 +01:00
linageeandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub 1063415292 Remove networking operations from presentation layer (#1033)
* Remove networking operations from presentation layer
2021-12-28 14:17:56 -06:00
Ben MeadorsandGitHub a70b849039 Changed getMacAddr behavior (#1017) 2021-12-28 11:20:45 -06:00
Jm CaslerandGitHub 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 https://github.com/meshtastic/Meshtastic/pull/160/commits/1ffa55d39a8270686c8ba087634d31826c0f4a33

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
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
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 CaslerandGitHub 2818dfc948 Merge pull request #1030 from mc-hamster/StoreAndForward
Support for MeshPacket_Delayed_DELAYED_BROADCAST
2021-12-27 10:03:36 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 988f8c4d23 Merge branch 'master' into StoreAndForward 2021-12-26 15:53:54 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 228be41ba6 Merge branch 'meshtastic:master' into StoreAndForward 2021-12-26 15:49:52 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub caa4f3cd71 Merge branch 'master' into master 2021-12-24 13:52:25 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub a192da5cd0 Merge pull request #1010 from andrekir/backlight
add T-Echo backlight trigger
2021-12-19 19:38:28 -05:00
Jm CaslerandGitHub 73985c47d6 Merge branch 'master' into backlight 2021-12-19 19:34:29 -05:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub b6d72d3248 Merge branch 'meshtastic:master' into master 2021-12-19 14:28:08 -05:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 34908a8f79 Merge pull request #1009 from meshtastic/nimble-lib-swap
Nimble lib swap
2021-12-18 16:30:27 -05:00
Jm CaslerandGitHub 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 MeadorsandGitHub 727dcbc809 Merge branch 'master' into nimble-lib-swap 2021-12-18 15:16:39 -06:00
Jm CaslerandGitHub 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 KirchhoffandGitHub 4cd25bc755 add eink userButtonDoublePressed backlight trigger 2021-12-18 17:47:54 -03:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub e68ca88c9c Merge branch 'master' into master 2021-12-18 13:58:57 -05:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub 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 MeadorsandGitHub 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 CaslerandGitHub 2f16b3f345 Merge pull request #989 from mc-hamster/display_speed
Bug in getNumOnlineNodes #988
2021-12-11 20:10:36 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 WeatherstoneandGitHub 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 MeadorsandGitHub 033e0e99ec Merge branch 'meshtastic:master' into master 2021-12-09 19:58:00 -06:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub 148b62c02f Merge branch 'master' into master 2021-12-08 18:11:38 -06:00
Jm CaslerandGitHub 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 CaslerandGitHub 084ef821b7 Merge pull request #972 from mc-hamster/master
Add calculated airtimes to myNodeInfo  … #970
2021-12-07 13:30:15 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 9c8c419939 Merge pull request #966 from mc-hamster/StoreAndForward
Create new default channel configurations. #965
2021-12-06 15:46:12 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 9ec3085cd5 Merge branch 'master' into StoreAndForward 2021-12-05 16:43:46 -08:00
Ben MeadorsandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub e19a7c73bc Merge pull request #951 from mc-hamster/StoreAndForward
Cleanup rangetestplugin #950
2021-12-03 19:27:34 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 040e3234fc Merge pull request #948 from Solarvortx/SX1262-Power
Sx1262 power
2021-12-02 22:53:09 -08:00
Jm CaslerandGitHub 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
SolanaceaeandGitHub 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 CaslerandGitHub 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 CaslerandGitHub be44fa11b1 Merge pull request #944 from mc-hamster/StoreAndForward
Store and forward
2021-12-02 11:50:57 -08:00
Jm CaslerandGitHub de104a2707 Merge branch 'master' into StoreAndForward 2021-12-02 09:27:42 -08:00
Ben MeadorsandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub bbf3091889 Merge branch 'master' into master 2021-11-29 09:58:16 -06:00
Jm CaslerandGitHub 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 CaslerandGitHub 98d0907f4d Merge branch 'master' into issue-919 2021-11-28 22:36:41 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub e791a5aa2f Merge branch 'master' into issue-919 2021-11-28 20:13:56 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 3ed4a1e3e1 Merge branch 'master' into StoreAndForward 2021-11-28 19:31:49 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 MeadorsandGitHub 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 CaslerandGitHub 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 CaslerandGitHub 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 WeatherstoneandGitHub bc311ac9f6 Merge branch 'master' into issue-927 2021-11-27 08:59:22 +11:00
Sacha WeatherstoneandGitHub 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 TolboomandGitHub 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 TolboomandGitHub a0d829a91e Merge branch 'master' into issue-919 2021-11-23 13:36:09 -05:00
Jm CaslerandGitHub 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 TolboomandGitHub e3ee3c411c Merge branch 'master' into issue-919 2021-11-22 23:08:06 -05:00
Jm CaslerandGitHub d3e1bbf355 Merge branch 'master' into ignore-phone-messages-screen 2021-11-22 19:46:55 -08:00
Jm CaslerandGitHub 2fa2497ed8 Merge pull request #918 from osmanovv/llcc68
[LLCC68] module support
2021-11-22 19:46:31 -08:00
Jm CaslerandGitHub a5727052bc Merge branch 'master' into llcc68 2021-11-22 19:25:52 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 CaslerandGitHub cf0d9a2c86 Merge pull request #91 from mc-hamster/master
Move Serial Plugin to new location
2021-11-22 13:17:01 -08:00
Jm CaslerandGitHub ec7953ccf0 Rename src/plugins/SerialPlugin.h to src/plugins/esp32/SerialPlugin.h 2021-11-22 13:15:50 -08:00
Jm CaslerandGitHub 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 CaslerandGitHub 43e543eabc Merge pull request #89 from meshtastic/master
Update meshtastic from head
2021-11-14 18:34:38 -08:00
Sacha WeatherstoneandGitHub 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 WeatherstoneandGitHub f7da9ac071 Merge branch 'master' into add-always-powered-preference 2021-11-11 13:50:13 +11:00
Sacha WeatherstoneandGitHub 928198ff03 Merge pull request #915 from jacky4566/master
Add firmware update links
2021-11-11 13:49:39 +11:00
Jm CaslerandGitHub 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 WiebeandGitHub 19f43689ca Merge pull request #1 from jacky4566/patch-1
Patch 1
2021-11-05 20:50:22 -06:00
Jackson WiebeandGitHub e78e82ef42 Update README.md 2021-11-05 20:49:40 -06:00
Jackson WiebeandGitHub 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 WeatherstoneandGitHub 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-CandGitHub 8115ee0c97 set Team field via Admin plugin 2021-11-02 13:27:56 +00:00
Sacha WeatherstoneandGitHub 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 WeatherstoneandGitHub 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 WeatherstoneandGitHub 2c5ba29648 Merge branch 'master' into owner-update 2021-10-30 10:13:10 +11:00
Sacha WeatherstoneandGitHub 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-CandGitHub 5ef9414a25 fix owner name update issue (off #900) 2021-10-29 13:28:48 +00:00
a-f-G-U-CandGitHub 2ebed9cb6c update protobufs to 61bc1d0 2021-10-29 13:13:26 +00:00
a-f-G-U-CandGitHub 7a1409c42a Merge branch 'master' into ublox-filter-dop-fix 2021-10-28 13:03:01 +00:00
Sacha WeatherstoneandGitHub 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-CandGitHub a911515dec clean up old data during fix transition 2021-10-28 11:58:08 +00:00
a-f-G-U-CandGitHub 7ecb36dbe7 Merge branch 'meshtastic:master' into ublox-filter-dop-fix 2021-10-28 11:56:11 +00:00
a-f-G-U-CandGitHub d4ea18851d update for RX_SRC_USER 2021-10-28 11:33:32 +00:00
a-f-G-U-CandGitHub 646d1caf66 updatePosition process time-only message 2021-10-28 11:31:19 +00:00
a-f-G-U-CandGitHub 74c138620a revert sanity check from PR 898 2021-10-28 11:25:45 +00:00
Jm CaslerandGitHub 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 CaslerandGitHub 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 HesterandGitHub e2992cd3b9 Merge branch 'master' into ublox-filter-dop-fix 2021-10-28 10:41:03 +08:00
Kevin HesterandGitHub 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-CandGitHub e89b3bd1ec implement fix2d and max DOP user settings 2021-10-27 13:30:39 +00:00
a-f-G-U-CandGitHub da9dd62a33 add the user as distinct message source 2021-10-27 13:16:51 +00:00
Sacha WeatherstoneandGitHub 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 WeatherstoneandGitHub 0133a1b293 Merge branch 'master' into feature/environmental-ds18b20-sensor-support 2021-10-27 10:23:40 +11:00
Sacha WeatherstoneandGitHub 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 WeatherstoneandGitHub 6d778cdda4 Merge branch 'master' into inpos-selfrej-nicelog 2021-10-27 06:42:13 +11:00
Sacha WeatherstoneandGitHub 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-CandGitHub 24b2fd2657 better sanity check, logging of inbound positions 2021-10-26 12:41:44 +00:00
a-f-G-U-CandGitHub b74c2da530 implement RX_SRC_LOCAL, Position in updatePosition 2021-10-26 12:22:34 +00:00
Kevin HesterandGitHub 26415cf8e0 Merge branch 'master' into feature/environmental-ds18b20-sensor-support 2021-10-26 02:36:50 +08:00
Sacha WeatherstoneandGitHub 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-CandGitHub ef1d52ca04 update log message, sanity check 2021-10-24 13:02:31 +00:00
a-f-G-U-CandGitHub f69c8dddad update MeshService to use Position struct 2021-10-24 12:48:48 +00:00
a-f-G-U-CandGitHub 70b80e600d use Position struct for GPS data 2021-10-24 12:38:35 +00:00
Joar SvenssonandGitHub 90d95d8e98 Merge branch 'master' into feature/environmental-ds18b20-sensor-support 2021-10-24 11:36:10 +02:00
a-f-G-U-CandGitHub 7d267e8027 update GPSStatus to use Position struct atomically (#885) 2021-10-24 11:36:18 +11:00
a-f-G-U-CandGitHub 0d884d159a implement position packet optional fields (#892) 2021-10-24 11:10:36 +11:00
a-f-G-U-CandGitHub 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-CandGitHub 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-CandGitHub d0fb363422 discriminate local/remote node position updates (#889) 2021-10-23 12:58:56 +11:00
a-f-G-U-CandGitHub 992bbe76d7 add backward compatible position flag defaults (#884) 2021-10-23 12:12:53 +11:00
syundandGitHub 6fc3c9c868 Inline pow_neg - removes build warning (#891) 2021-10-23 11:40:43 +11:00
Kevin HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 83eb94126b Merge pull request #870 from osmanovv/meshtastic-diy
[Meshtastic DIY v1]
2021-10-12 23:41:29 +08:00
Kevin HesterandGitHub 0a529dcaac Merge branch 'master' into meshtastic-diy 2021-10-12 23:18:17 +08:00
Kevin HesterandGitHub 128a481259 Merge pull request #871 from claesg/master
Low battery level counter for NRF52
2021-10-12 23:12:36 +08:00
Vladislav OsmanovandGitHub 87ef15d371 Merge branch 'master' into meshtastic-diy 2021-10-12 15:23:30 +03:00
Kevin HesterandGitHub 9679861b56 Merge branch 'master' into master 2021-10-12 11:58:52 +08:00
Kevin HesterandGitHub 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 HesterandGitHub 3d197d732c Merge branch 'master' into fix-plugin-return-type 2021-10-12 09:15:34 +08:00
Kevin HesterandGitHub 5d6fc6d63e Merge branch 'master' into master 2021-10-12 09:14:18 +08:00
Kevin HesterandGitHub 40505a23dc Merge pull request #881 from sachaw/master
Web server changes to support frontend
2021-10-12 09:13:18 +08:00
Kevin HesterandGitHub 31e833ec59 Merge branch 'master' into master 2021-10-12 08:53:14 +08:00
Kevin HesterandGitHub 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 HesterandGitHub 89cd3fd73a Merge branch 'master' into 875-Create-geo-coordinates-class 2021-10-12 08:34:03 +08:00
Kevin HesterandGitHub 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 WeatherstoneandGitHub 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-CandGitHub 1e455ac4c3 issue 879 - add opt-in flag for plugins 2021-10-09 14:02:21 +00:00
a-f-G-U-CandGitHub 4669e4713c oops 2021-10-09 14:00:14 +00:00
a-f-G-U-CandGitHub 26330120ce oops 2021-10-09 13:59:54 +00:00
a-f-G-U-CandGitHub c3ebe80f53 issue 879 - add opt-in flag for plugins 2021-10-09 13:57:56 +00:00
a-f-G-U-CandGitHub 5eb2e6401f issue 879 - changes to Router.cpp 2021-10-09 13:54:42 +00:00
a-f-G-U-CandGitHub ee9c72b8c7 issue 879 - define source types 2021-10-09 13:48:30 +00:00
Sacha WeatherstoneandGitHub 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 HesterandGitHub 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 HesterandGitHub a1b37d3407 Merge branch 'master' into HAE-MSL-banner 2021-09-18 15:59:54 -07:00
Kevin HesterandGitHub 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 HesterandGitHub d54fecca4e Merge branch 'master' into sanitize-course-value 2021-09-18 15:38:00 -07:00
Kevin HesterandGitHub 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 HesterandGitHub b3012b7ee5 Merge branch 'master' into Show-fixed-GPS-coordinates-on-screen 2021-09-18 14:44:10 -07:00
Kevin HesterandGitHub 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-CandGitHub 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 OsmanovandGitHub 2e48b88113 Merge branch 'meshtastic:master' into master 2021-09-09 23:33:16 +03:00
a-f-G-U-CandGitHub a2f06cb077 Display HAE/MSL mode on startup 2021-09-09 14:12:37 +00:00
Kevin HesterandGitHub b9443d87aa Merge pull request #850 from osmanovv/radiolib-sync-upstream
Radiolib sync upstream
2021-09-08 14:45:36 -07:00
Kevin HesterandGitHub 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 HesterandGitHub 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-CandGitHub de712ce41a disable debug code 2021-09-08 14:26:21 +00:00
a-f-G-U-CandGitHub 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 HesterandGitHub 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 OsmanovandGitHub 3eb20d3bd1 Merge branch 'meshtastic:master' into master 2021-09-06 09:46:17 +03:00
a-f-G-U-CandGitHub 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-CandGitHub 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 HesterandGitHub c8269d67c3 Merge branch 'master' into radiolib-sync-upstream 2021-09-04 18:07:55 -07:00
Kevin HesterandGitHub 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 HesterandGitHub ccb4596299 Merge branch 'master' into radiolib-sync-upstream 2021-09-04 17:35:34 -07:00
Kevin HesterandGitHub 2741de90e5 Merge branch 'master' into virtual-haslock 2021-09-04 17:34:41 -07:00
Kevin HesterandGitHub 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
srichsandsrichs 72e22b6744 Added OLC and OS grid ref protobufs 2021-09-04 01:31:29 -06:00
srichsandsrichs 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
srichsandsrichs d381f091e9 Added OLC and OS grid ref, adjusted DMS display 2021-09-03 23:19:47 -06:00
Vladislav OsmanovandGitHub 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-CandGitHub 5cf1a87657 redefine hasLock() for UBlox GPS 2021-09-02 13:21:48 +00:00
a-f-G-U-CandGitHub 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
(https://github.com/osmanovv/RadioLib/commit/252fe74d5386c4a28bc7f69f5d3bd3962a6c9780)

The argument `currentLimit` was removed from the `begin` method:
https://github.com/jgromes/RadioLib/commit/e1141ca64c2f19110eac84f123d89861e98c4650#diff-507c32190e4a29ffe411c8eab06c75b594c5d2a5fd92e5cb703b787e5f019589L568
2021-09-02 16:10:44 +03:00
Kevin HesterandGitHub 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 HesterandGitHub f96d8bf645 Merge branch 'master' into a-f-G-U-C-ublox-power 2021-09-01 10:21:50 -07:00
Kevin HesterandGitHub b1b3d9df6e Merge pull request #848 from srichs/gps-coordinate-formats
GPS Coordinate Formats
2021-09-01 10:21:27 -07:00
srichsandsrichs 29124c3416 Adjusted formatting for DMS 2021-08-30 19:23:50 -06:00
a-f-G-U-CandGitHub 71951a4e6a fix a typo 2021-08-30 13:55:50 +00:00
a-f-G-U-CandGitHub 8dbfd0f19b disable gps powercycle for small gps_update_interval 2021-08-30 13:45:42 +00:00
srichsandsrichs 5c6355489f Changed gps coordinate formats to use sprintf() 2021-08-30 04:42:14 -06:00
srichsandsrichs 8edac1f86c Added different gps coordinate formats for OLED 2021-08-30 01:17:18 -06:00
Kevin HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 9f450cb1c5 Merge pull request #837 from claesg/master
No SuperDeepSleep for RAK4631 and T-Echo
2021-08-12 17:01:28 -07:00
Kevin HesterandGitHub 388f19da79 Merge branch 'master' into master 2021-08-12 16:32:52 -07:00
Kevin HesterandGitHub 4f11598112 Merge pull request #831 from geeksville/dev
bugs
2021-08-12 16:32:37 -07:00
Kevin HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub bb396508a4 Merge pull request #822 from audunf/issue-108
Track recent packets in unordered_set
2021-07-26 04:53:13 +08:00
Kevin HesterandGitHub 810740b156 Merge branch 'master' into issue-108 2021-07-26 04:31:05 +08:00
Kevin HesterandGitHub 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 HesterandGitHub 5826c52242 Merge branch 'master' into issue-108 2021-07-26 04:23:33 +08:00
Kevin HesterandGitHub a6904105f7 Merge branch 'master' into patch-1 2021-07-26 04:08:08 +08:00
Kevin HesterandGitHub 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 WeatherstoneandGitHub 2e1746ca0f Merge pull request #820 from meshtastic/sachaw-patch-1
Update README.md
2021-07-09 13:56:15 +10:00
Sacha WeatherstoneandGitHub 863b60277b Update README.md 2021-07-09 13:36:37 +10:00
Ben MeadorsandGitHub 035f25190b Handle MQTT host string with port omitted 2021-07-02 07:47:12 -05:00
Ben MeadorsandGitHub 3ea03dadb5 Convert MQTT server to hostname:port 2021-07-01 16:57:50 -05:00
Kevin HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 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 WeatherstoneandGitHub 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 HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 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 HesterandGitHub 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
Jm 1a8b128640 small change, moving it to the laptop 2021-04-16 19:44:59 -07:00
Jm CaslerandGitHub a83dcbadb9 Merge pull request #84 from meshtastic/master
update from head
2021-04-16 19:33:42 -07:00
Jm CaslerandGitHub a5e3f271ea Merge pull request #83 from meshtastic/master
update from head
2021-04-09 20:36:35 -07:00
436 changed files with 18142 additions and 16176 deletions
-11
View File
@@ -1,11 +0,0 @@
# 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
-32
View File
@@ -1,32 +0,0 @@
// 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
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
+46
View File
@@ -0,0 +1,46 @@
name: New Board
description: Request us to support new hardware
title: "[Board]: "
labels: ["enhancement", "triage"]
body:
- type: markdown
attributes:
value: |
Thanks for requesting a new board, this will not gurantee that we will support it, but will be on our radar.
- type: dropdown
id: soc
attributes:
label: SOC
description: What SOC does your board have?
multiple: true
options:
- NRF52
- ESP32
- Other
validations:
required: true
- type: input
id: lora
attributes:
label: Lora IC
description: What LoRa IC does the board have?
validations:
required: true
- type: input
id: link
attributes:
label: Product Link
description: Where can we find this product?
validations:
required: true
- type: textarea
id: body
attributes:
label: Description
description: Please provide any further details you think we may need.
validations:
required: true
@@ -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.
-39
View File
@@ -1,39 +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
# Don't cache for now because I want to be lazy with portuino updates githashes
# - 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
-86
View File
@@ -1,86 +0,0 @@
name: Continuous Integration
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:
# - name: Startup
# run: echo "No action setup currently needed, skipping..."
ci-build:
# needs: setup
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
- 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: Install linux apt packages
# run: |
# sudo apt-get install -y libgpiod-dev
- 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
# 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 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: Build everything
run: bin/build-all.sh
- name: Store release zip as an artifact
uses: actions/upload-artifact@v2
with:
name: built
path: release/archive/firmware-*.zip
retention-days: 30
+350
View File
@@ -0,0 +1,350 @@
name: CI
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
- board: rak4631_eink
- board: t-echo
- board: nano-g1
- board: m5stack-core
- board: m5stack-coreink
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
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
- board: nano-g1
- board: m5stack-core
- board: m5stack-coreink
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
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 adafruit-nrfutil littlefs-python
pip install -U --pre meshtastic
- 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
- board: rak4631_eink
- board: t-echo
- board: pca10059_diy_eink
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
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 adafruit-nrfutil
pip install -U --pre meshtastic
- 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@v3
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 adafruit-nrfutil
pip install -U --pre meshtastic
- 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@v3
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@v3
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-token: ${{ secrets.ARTIFACTS_TOKEN }}
artifacts-repo: meshtastic/artifacts
artifacts-branch: device
artifacts-dir: pr
artifacts: ./firmware-${{ steps.version.outputs.version }}.zip
+70 -58
View File
@@ -1,80 +1,92 @@
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:
- "v1*"
- master
paths:
- "version.properties"
jobs:
release-build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
submodules: "recursive"
- name: Checkout code
uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
# 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/}
# 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: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.x
- 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 littlefs-python
# Note: we don't use caches on release builds because we don't want to accidentally not have a virgin build machine
- name: Upgrade platformio
run: |
pio upgrade
- 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: 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: Upgrade platformio
run: |
pio upgrade
- name: Unpack web ui
run: |
tar -xf build.tar -C data/static
rm build.tar
# Will be available in steps.version.outputs.version
- name: Get version string
run: echo "::set-output name=version::$(./bin/buildinfo.py)"
id: version
- name: Build everything
run: bin/build-all.sh
- name: Build everything
run: bin/build-all.sh
- name: Create release
uses: actions/create-release@v1
id: create_release
with:
draft: true
prerelease: true
release_name: ${{ steps.version.outputs.version }} alpha
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: Create release
uses: actions/create-release@v1
id: create_release
with:
draft: true
prerelease: true
release_name: ${{ steps.version.outputs.version }} alpha
tag_name: ${{ steps.branch_name.outputs.SOURCE_TAG }}
# was ${{ github.ref }}
body: |
Autogenerated by github action, developer should edit as required before publishing...
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Add bins 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/firmware-${{ steps.version.outputs.version }}.zip
asset_name: firmware-${{ steps.version.outputs.version }}.zip
asset_content_type: application/zip
- name: Add artifact 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/firmware-${{ steps.version.outputs.version }}.zip
asset_name: firmware-${{ steps.version.outputs.version }}.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
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@v3
with:
submodules: true
- name: Update submodule
run: |
git submodule update --remote protobufs
- name: Download nanopb
run: |
wget https://jpa.kapsi.fi/nanopb/download/nanopb-0.4.6-linux-x86.tar.gz
tar xvzf nanopb-0.4.6-linux-x86.tar.gz
mv nanopb-0.4.6-linux-x86 nanopb-0.4.6
- name: Re-generate protocol buffers
run: |
./bin/regen-protos.sh
- name: Create pull request
uses: peter-evans/create-pull-request@v3
with:
add-paths: |
protobufs
src/mesh
+7 -1
View File
@@ -9,7 +9,7 @@ main/credentials.h
!.vscode/extensions.json
*.code-workspace
.idea/workspace.xml
.idea
.DS_Store
Thumbs.db
@@ -23,3 +23,9 @@ flash.uf2
cmake-build*
__pycache__
*.swp
*.swo
*~
venv/
release/
+2 -8
View File
@@ -1,9 +1,3 @@
[submodule "proto"]
path = proto
[submodule "protobufs"]
path = protobufs
url = https://github.com/meshtastic/Meshtastic-protobufs.git
[submodule "sdk-nrfxlib"]
path = sdk-nrfxlib
url = https://github.com/nrfconnect/sdk-nrfxlib.git
[submodule "design"]
path = design
url = https://github.com/meshtastic/meshtastic-design.git
-7
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>
-5
View File
@@ -1,5 +0,0 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
-2
View File
@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CMake" type="CPP_MODULE" version="4" />
-4
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
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>
Generated
-9
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>
+11 -8
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"
]
}
+3 -6
View File
@@ -50,7 +50,9 @@
"cassert": "cpp",
"iterator": "cpp",
"shared_mutex": "cpp",
"iostream": "cpp"
"iostream": "cpp",
"esp_nimble_hci.h": "c",
"map": "cpp"
},
"cSpell.words": [
"Blox",
@@ -72,10 +74,5 @@
"cmake.configureOnOpen": true,
"protoc": {
"compile_on_save": false,
"compile_all_path": "/home/kevinh/development/meshtastic/meshtastic-esp32/proto",
"options": [
"--java_out=/tmp",
"-I=/home/kevinh/development/meshtastic/meshtastic-esp32/proto"
]
}
}
-36
View File
@@ -1,36 +0,0 @@
# !!! WARNING !!! AUTO-GENERATED FILE, PLEASE DO NOT MODIFY IT AND USE
# https://docs.platformio.org/page/projectconf/section_env_build.html#build-flags
#
# If you need to override existing CMake configuration or add extra,
# please create `CMakeListsUser.txt` in the root of project.
# The `CMakeListsUser.txt` will not be overwritten by PlatformIO.
cmake_minimum_required(VERSION 3.13)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER_WORKS 1)
set(CMAKE_CXX_COMPILER_WORKS 1)
project("meshtastic-esp32" C CXX)
include(CMakeListsPrivate.txt)
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeListsUser.txt)
include(CMakeListsUser.txt)
endif()
include_directories("$ENV{HOME}/.platformio/packages/framework-portduino")
include_directories("/usr/include")
add_custom_target(
Production ALL
COMMAND platformio -c clion run "$<$<NOT:$<CONFIG:All>>:-e${CMAKE_BUILD_TYPE}>"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_custom_target(
Debug ALL
COMMAND platformio -c clion run --target debug "$<$<NOT:$<CONFIG:All>>:-e${CMAKE_BUILD_TYPE}>"
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_executable(Z_DUMMY_TARGET ${SRC_LIST})
File diff suppressed because it is too large Load Diff
+12 -206
View File
@@ -1,213 +1,19 @@
# Meshtastic-device
# Meshtastic Firmware
This is the device side code for the [meshtastic.org](https://www.meshtastic.org) project.
![GitHub release downloads](https://img.shields.io/github/downloads/meshtastic/meshtastic-device/total)
[![CI](https://img.shields.io/github/workflow/status/meshtastic/Meshtastic-device/CI?label=actions&logo=github&color=yellow)](https://github.com/meshtastic/repo/actions/workflows/main_matrix.yml)
[![CLA assistant](https://cla-assistant.io/readme/badge/meshtastic/Meshtastic-device)](https://cla-assistant.io/meshtastic/Meshtastic-device)
[![Fiscal Contributors](https://opencollective.com/meshtastic/tiers/badge.svg?label=Fiscal%20Contributors&color=deeppink)](https://opencollective.com/meshtastic/)
[![Vercel](https://img.shields.io/static/v1?label=Powered%20by&message=Vercel&style=flat&logo=vercel&color=000000)](https://vercel.com?utm_source=meshtastic&utm_campaign=oss)
![Continuous Integration](https://github.com/meshtastic/Meshtastic-esp32/workflows/Continuous%20Integration/badge.svg)
## Overview
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.
This repository contains the device firmware for the Meshtastic project.
The radios automatically create a mesh to forward packets as needed, so everyone in the group can receive messages from even the furthest member. The radios
will optionally work with your phone, but no phone is required.
Typical time between recharging the radios should be about eight days.
**[Building Instructions](https://meshtastic.org/docs/developers/Firmware/build)**
**[Flashing Instructions](https://meshtastic.org/docs/getting-started/flashing-firmware/)**
This project is is currently in beta-testing - if you have questions please [join our discussion forum](https://meshtastic.discourse.group/).
## Stats
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](https://meshtastic.org/docs/software/other/sw-design) 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.
![Alt](https://repobeats.axiom.co/api/embed/99a2cf5622bb4807f9e8c3b86589f1133cce58a2.svg 'Repobeats analytics image')
+19 -11
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 nano-g1 m5stack-core m5stack-coreink"
#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 t-echo"
BOARDS_NRF52="rak4631 rak4631_eink t-echo pca10059_diy_eink"
#BOARDS_NRF52=""
OUTDIR=release/latest
@@ -26,14 +28,12 @@ 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
export APP_VERSION=$VERSION
# Are we building a universal/regionless rom?
export HW_VERSION="1.0"
basename=universal/firmware-$BOARD-$VERSION
pio run --environment $BOARD # -v
@@ -57,6 +57,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 +71,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 +95,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
+41
View File
@@ -0,0 +1,41 @@
#!/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
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
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
-38
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
+36
View File
@@ -0,0 +1,36 @@
#!/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
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
+3 -1
View File
@@ -1,7 +1,9 @@
#!/usr/bin/env python3
import configparser
import sys
from readprops import readProps
verObj = readProps('version.properties')
print(f"{verObj['long']}")
propName = sys.argv[1]
print(f"{verObj[propName]}")
+26
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 rak4631_eink rak11200 t-echo pca10059_diy_eink"
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
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 115200 erase_flash
%PYTHON% -m esptool --baud 115200 write_flash 0x1000 system-info.bin
for %%f in (littlefs-*.bin) do (
%PYTHON% -m esptool --baud 115200 write_flash 0x00390000 %%f
)
%PYTHON% -m esptool --baud 115200 write_flash 0x10000 %FILENAME%
) else (
echo "Invalid file: %FILENAME%"
goto HELP
)
:EOF
+5 -5
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
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 115200 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 115200 erase_region 0xe000 0x2000
) else (
echo "Invalid file: %FILENAME%"
goto HELP
)
:EOF
+2 -2
View File
@@ -44,9 +44,9 @@ shift "$((OPTIND-1))"
if [ -f "${FILENAME}" ]; then
echo "Trying to flash update ${FILENAME}."
$PYTHON -m esptool --baud 921600 write_flash 0x10000 ${FILENAME}
$PYTHON -m esptool --baud 115200 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
$PYTHON -m esptool --baud 115200 erase_region 0xe000 0x2000
else
echo "Invalid file: ${FILENAME}"
show_help
+2
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'
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env bash
set -e
+2 -2
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)
-35
View File
@@ -1,35 +0,0 @@
# You probably don't want to use this script, it programs a custom bootloader build onto a nrf52 board
set -e
# dependencies
# apt install srecord
BOOTDIR=/home/kevinh/development/meshtastic/Adafruit_nRF52_Bootloader
BOARD=othernet_ppr1
BOOTVER=0.3.2
BOOTNUM=128
BOOTSHA=gc01b9ea
SDCODE=s113
SDVER=7.2.0
PROJ=ppr1
# FIXME for nRF52840 use 0xff000, for nRF52833 use 0x7f000
BOOTSET=0x7f000
nrfjprog --eraseall -f nrf52
# this generates an intel hex file that can be programmed into a NRF52 to tell the adafruit bootloader that the current app image is valid
# Bootloader settings are at BOOTLOADER_SETTINGS (rw) : ORIGIN = 0xFF000, LENGTH = 0x1000
# first 4 bytes should be 0x01 to indicate valid app image
# second 4 bytes should be 0x00 to indicate no CRC required for image
echo "01 00 00 00 00 00 00 00" | xxd -r -p - >/tmp/bootconf.bin
srec_cat /tmp/bootconf.bin -binary -offset $BOOTSET -output /tmp/bootconf.hex -intel
echo Generating merged hex file from .pio/build/$PROJ/firmware.hex
mergehex -o ${BOARD}_full.hex -m $BOOTDIR/_build/build-$BOARD/${BOARD}_bootloader-$BOOTVER-$BOOTNUM-$BOOTSHA-dirty_${SDCODE}_$SDVER.hex .pio/build/$PROJ/firmware.hex /tmp/bootconf.hex
echo Telling bootloader app region is valid and telling CPU to run
nrfjprog --program ${BOARD}_full.hex -f nrf52 --reset
# nrfjprog --readuicr /tmp/uicr.hex; objdump -s /tmp/uicr.hex | less
-24
View File
@@ -1,24 +0,0 @@
# You probably don't want to use this script, it programs a custom bootloader build onto a nrf52 board
set -e
BOOTDIR=/home/kevinh/development/meshtastic/Adafruit_nRF52_Bootloader
nrfjprog --eraseall -f nrf52
# to get tool run "sudo apt-get install srecord"
# this generates an intel hex file that can be programmed into a NRF52 to tell the adafruit bootloader that the current app image is valid
# Bootloader settings are at BOOTLOADER_SETTINGS (rw) : ORIGIN = 0xFF000, LENGTH = 0x1000
# first 4 bytes should be 0x01 to indicate valid app image
# second 4 bytes should be 0x00 to indicate no CRC required for image
echo "01 00 00 00 00 00 00 00" | xxd -r -p - >/tmp/bootconf.bin
srec_cat /tmp/bootconf.bin -binary -offset 0xff000 -output /tmp/bootconf.hex -intel
echo Generating merged hex file
mergehex -m $BOOTDIR/_build/build-ttgo_eink/ttgo_eink_bootloader-0.3.2-213-gf67f592-dirty_s140_6.1.1.hex .pio/build/eink/firmware.hex /tmp/bootconf.hex -o ttgo_eink_full.hex
echo Telling bootloader app region is valid and telling CPU to run
nrfjprog --program ttgo_eink_full.hex -f nrf52 --reset
# nrfjprog --readuicr /tmp/uicr.hex; objdump -s /tmp/uicr.hex | less
-61
View File
@@ -1,61 +0,0 @@
# Example OpenOCD configuration file for ESP-WROOM-32 module.
# By default, the following configuration is used:
# - dual core debugging
# - support for listing FreeRTOS tasks is enabled
# - OpenOCD is configured to set SPI flash voltage at 3.3V
# by keeping MTDI bootstrapping pin low
#
# Use variables listed below to customize this.
# Variables can be modified in this file or set on the command line.
#
# For example, OpenOCD can be started for single core ESP32 debugging on
# ESP-WROVER-KIT with ESP-WROOM-32 module as follows:
#
# openocd -f interface/ftdi/esp32_devkitj_v1.cfg -c 'set ESP32_ONLYCPU 1' -f board/esp-wroom-32.cfg
#
# If a different JTAG interface is used, change the first -f option.
#
# If OpenOCD is built from source, pass an additional -s option to specify
# the location of 'tcl' directory:
#
# src/openocd -s tcl <rest of the command line>
#
# Note:
# For ESP32-WROVER module use 'esp32-wrover.cfg' configuration file
# ESP-WROOM-32 and ESP32-WROVER have different flash voltage setting
# The ESP32 only supports JTAG.
transport select jtag
# The speed of the JTAG interface, in KHz. If you get DSR/DIR errors (and they
# do not relate to OpenOCD trying to read from a memory range without physical
# memory being present there), you can try lowering this.
#
# On DevKit-J, this can go as high as 20MHz if CPU frequency is 80MHz, or 26MHz
# if CPU frequency is 160MHz or 240MHz.
adapter_khz 20000
# If single core debugging is required, uncomment the following line
# set ESP32_ONLYCPU 1
# To disable RTOS support, uncomment the following line
# set ESP32_RTOS none
# Tell OpenOCD which SPI flash voltage is used by the board (3.3 or 1.8)
# The TDI pin of ESP32 is also a bootstrap pin that selects the voltage the SPI flash
# chip runs at. When a hard reset happens (e.g. because someone switches the board off
# and on) the ESP32 will use the current TDI value as the bootstrap value because the
# JTAG adapter overrides the pull-up or pull-down resistor that is supposed to do the
# bootstrapping. These lines basically set the idle value of the TDI line to a
# specified value, therefore reducing the chance of a bad bootup due to a bad flash
# voltage greatly.
# This option defaults to 3.3, if not set. To override the default, uncomment
# the following line:
# set ESP32_FLASH_VOLTAGE 1.8
# Set semihosting I/O base dir
# set ESP_SEMIHOST_BASEDIR ""
# Source the ESP32 configuration file
source [find target/esp32.cfg]
+51
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)
-3
View File
@@ -1,3 +0,0 @@
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"
-1
View File
@@ -1 +0,0 @@
mosquitto_pub -h mqtt.meshtastic.org -u meshdev -P large4cats -t msh/1/stat/FakeNode -m online -d
+2
View File
@@ -1,3 +1,5 @@
#!/usr/bin/env bash
set -e
pio run --environment native
gdbserver --once localhost:2345 .pio/build/native/program "$@"
+2
View File
@@ -1,3 +1,5 @@
#!/usr/bin/env bash
set -e
pio run --environment native
.pio/build/native/program "$@"
-4
View File
@@ -1,4 +0,0 @@
# JLinkRTTViewer
JLinkRTTClient
-3
View File
@@ -1,3 +0,0 @@
JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52832_XXAA
-3
View File
@@ -1,3 +0,0 @@
JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52833_XXAA
-3
View File
@@ -1,3 +0,0 @@
JLinkGDBServerCLExe -if SWD -select USB -port 2331 -device NRF52840_XXAA -SuppressInfoUpdateFW -DisableAutoUpdateFW -rtos GDBServer/RTOSPlugin_FreeRTOS
+8 -1
View File
@@ -6,11 +6,18 @@ 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 littlefs-python")
Import("projenv")
prefsLoc = projenv["PROJECT_DIR"] + "/version.properties"
verObj = readProps(prefsLoc)
print("Using meshtastic platform-custom.py, firmare version " + verObj['long'])
print("Using meshtastic platformio-custom.py, firmare version " + verObj['long'])
# print("path is" + ','.join(sys.path))
# General options that are passed to the C and C++ compilers
-3
View File
@@ -1,3 +0,0 @@
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
-1
View File
@@ -1 +0,0 @@
esptool.py --baud 921600 write_flash 0x10000 release/archive/old/firmware-tbeam-1.1.50.bin
-6
View File
@@ -1,6 +0,0 @@
set -e
source bin/version.sh
esptool.py --baud 921600 write_flash 0x10000 release/latest/bins/firmware-heltec-US-$VERSION.bin
-8
View File
@@ -1,8 +0,0 @@
set -e
VERSION=`bin/buildinfo.py`
FILENAME=release/latest/bins/universal/firmware-tbeam-$VERSION.bin
echo Installing $FILENAME
esptool.py --baud 921600 write_flash 0x10000 $FILENAME
-6
View File
@@ -1,6 +0,0 @@
set -e
source bin/version.sh
esptool.py --baud 921600 write_flash 0x10000 release/latest/bins/universal/firmware-tbeam-$VERSION.bin
+10 -2
View File
@@ -1,9 +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`
VERSION=`bin/buildinfo.py long`
# Must have a V prefix to trigger github
git tag "v${VERSION}"
git push root "v${VERSION}" # push the tag
# 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"
-6
View File
@@ -1,6 +0,0 @@
# 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
nrfjprog --qspiini nrf52/ttgo_eink_qpsi.ini --memwr 0x12000000 --val 0xdeadbeef --verify
nrfjprog --qspiini nrf52/ttgo_eink_qpsi.ini --readqspi spi.hex
objdump -s spi.hex | less
+3 -1
View File
@@ -1 +1,3 @@
esptool.py --baud 921600 read_flash 0x1000 0xf000 system-info.img
#!/usr/bin/env bash
esptool.py --baud 115200 read_flash 0x1000 0xf000 system-info.img
+1
View File
@@ -0,0 +1 @@
cd protobufs && ..\nanopb-0.4.6\generator-bin\protoc.exe --nanopb_out=-v:..\src\mesh\generated -I=..\protobufs *.proto
+6 -6
View File
@@ -1,15 +1,15 @@
#!/bin/bash
#!/usr/bin/env bash
set -e
echo "This script requires https://jpa.kapsi.fi/nanopb/download/ version 0.4.4 to be located in the"
echo "This script requires https://jpa.kapsi.fi/nanopb/download/ version 0.4.6 to be located in the"
echo "meshtastic-device root directory if the following step fails, you should download the correct"
echo "prebuilt binaries for your computer into nanopb-0.4.4"
echo "prebuilt binaries for your computer into nanopb-0.4.6"
# the nanopb tool seems to require that the .options file be in the current directory!
cd proto
../nanopb-0.4.4/generator-bin/protoc --nanopb_out=-v:../src/mesh/generated -I=../proto *.proto
cd protobufs
../nanopb-0.4.6/generator-bin/protoc --nanopb_out=-v:../src/mesh/generated -I=../protobufs *.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
#bin/regen-docs.sh
-1
View File
@@ -1 +0,0 @@
pio run --upload-port /dev/ttyUSB0 -t upload -t monitor
-1
View File
@@ -1 +0,0 @@
pio run --upload-port /dev/ttyUSB1 -t upload -t monitor
-7
View File
@@ -1,7 +0,0 @@
set -e
echo uploading to usb1
pio run --upload-port /dev/ttyUSB1 -t upload
echo uploading to usb0
pio run --upload-port /dev/ttyUSB0 -t upload -t monitor
-13
View File
@@ -1,13 +0,0 @@
set -e
TARG=tbeam
pio run -e $TARG
echo uploading to usb1
pio run --upload-port /dev/ttyUSB1 -t upload -e $TARG &
echo uploading to usb0
pio run --upload-port /dev/ttyUSB0 -t upload -e $TARG &
wait
-5
View File
@@ -1,5 +0,0 @@
# /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
-1
View File
@@ -1 +0,0 @@
pio device monitor -b 921600
-1
View File
@@ -1 +0,0 @@
pio device monitor -p /dev/ttyUSB1 -b 921600
+11
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
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)
-5
View File
@@ -1,5 +0,0 @@
set -e
echo "Converting to uf2 for NRF52 Adafruit bootloader"
bin/uf2conv.py .pio/build/t-echo/firmware.hex -f 0xADA52840
cp flash.uf2 /media/kevinh/FTH*BOOT/
-5
View File
@@ -1,5 +0,0 @@
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/
-1
View File
@@ -1 +0,0 @@
pio run --upload-port /dev/ttyUSB1 -t upload
+2
View File
@@ -1,2 +1,4 @@
#!/usr/bin/env bash
echo using amap tool to display memory map
amap .pio/build/output.map
+72
View File
@@ -0,0 +1,72 @@
{
"build": {
"arduino": {
"ldscript": "nrf52840_s140_v6.ld"
},
"core": "nRF5",
"cpu": "cortex-m4",
"extra_flags": "-DARDUINO_NRF52840_FEATHER -DNRF52840_XXAA",
"f_cpu": "64000000L",
"hwids": [
[
"0x239A",
"0x8029"
],
[
"0x239A",
"0x0029"
],
[
"0x239A",
"0x002A"
],
[
"0x239A",
"0x802A"
]
],
"usb_product": "PCA10059",
"mcu": "nrf52840",
"variant": "nRF52840 Dongle",
"bsp": {
"name": "adafruit"
},
"softdevice": {
"sd_flags": "-DS140",
"sd_name": "s140",
"sd_version": "6.1.1",
"sd_fwid": "0x00B6"
},
"bootloader": {
"settings_addr": "0xFF000"
}
},
"connectivity": [
"bluetooth"
],
"debug": {
"jlink_device": "nRF52840_xxAA",
"svd_path": "nrf52840.svd"
},
"frameworks": [
"arduino"
],
"name": "nRF52840 Dongle",
"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": "https://www.nordicsemi.com/Products/Development-hardware/nrf52840-dongle",
"vendor": "Nordic Semiconductor"
}
+3 -3
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": {
-55
View File
@@ -1,55 +0,0 @@
{
"build": {
"arduino":{
"ldscript": "nrf52832_s132_v6.ld"
},
"core": "nRF5",
"cpu": "cortex-m4",
"extra_flags": "-DNRF52832_XXAA -DNRF52",
"f_cpu": "64000000L",
"hwids": [
[
"0x10c4",
"0xea60"
]
],
"usb_product": "RAK815",
"mcu": "nrf52832",
"variant": "rak815",
"bsp": {
"name": "adafruit"
},
"softdevice": {
"sd_flags": "-DS132",
"sd_name": "s132",
"sd_version": "6.1.1",
"sd_fwid": "0x00B7"
}
},
"connectivity": [
"bluetooth"
],
"debug": {
"jlink_device": "nRF52832_xxAA",
"svd_path": "nrf52.svd"
},
"frameworks": [
"arduino"
],
"name": "RAK RAK815",
"upload": {
"maximum_ram_size": 65536,
"maximum_size": 524288,
"require_upload_port": true,
"speed": 115200,
"protocol": "nrfutil",
"protocols": [
"jlink",
"nrfjprog",
"nrfutil",
"stlink"
]
},
"url": "https://store.rakwireless.com/products/rak815-hybrid-location-tracker",
"vendor": "RAK"
}
+39
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"
}
View File
-1
View File
@@ -1 +0,0 @@
not yet supported - soon will be included in build
Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 B

-1
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

Submodule design deleted from 73ba05ceef
-19
View File
@@ -1,19 +0,0 @@
# Setup Monitor Mode Debugging
# Per .platformio/packages/framework-arduinoadafruitnrf52-old/cores/nRF5/linker/nrf52840_s140_v6.ld
# our appload starts at 0x26000
# Disable for now because our version on board doesn't support monitor mode debugging
# mon exec SetMonModeDebug=1
# mon exec SetMonModeVTableAddr=0x26000
# echo setting RTTAddr
# eval "monitor exec SetRTTAddr %p", &_SEGGER_RTT
# the jlink debugger seems to want a pause after reset before we tell it to start running
define restart
echo Restarting
monitor reset
shell sleep 1
cont
end
-356
View File
@@ -1,356 +0,0 @@
# Geeksville's current work queue
You probably don't care about this section - skip to the next one.
## before next release
* turn on setTx(timeout) and state = setDioIrqParams(SX126X_IRQ_TX_DONE | SX126X_IRQ_TIMEOUT, SX126X_IRQ_TX_DONE | SX126X_IRQ_TIMEOUT); in sx1262 code
* pine64 lora module
* nrf52 USB is unreliable while sleeping?
* @havealoha fixedposition not working
* merge https://meshtastic.discourse.group/t/spanish-translation-update/2986/5
* @luxonn reports that after a while the android app stops showing new messages
* nrf52 shows as "sleeping" in android app? (but led is blinking)
* 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)
* DONE remote admin busted?
* DONE check android code - @havealoha comments about odd sleep behavior
* ABANDONED test github actions locally on linux
* DONE fix github actions per sasha tip
* tell ttgo to preinstall new bins
* DONE sendtext busted in portduino, due to bytetime calculations
* remove linux dependency in native build
* 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
* optionally restrict position sends to a named channel
* release to beta and amazon
* add reference counting to mesh packets
* allow multiple simultanteous phoneapi connections
* DONE split position.time and last_heard
* DONE update android app to use last_heard
* DONE turn off bluetooth interface ENTIRELY while using serial API (was python client times out on connect sometimes)
* DONE gps assistance from phone not working?
* DONE test latest firmware update with is_router
* DONE firmware OTA updates of is_router true nodes fails?
* DONE add UI in android app to reset to defaults https://github.com/meshtastic/Meshtastic-Android/issues/263
* DONE TEST THIS! changing channels requires a reboot to take effect https://github.com/meshtastic/Meshtastic-device/issues/752
* DONE bug report with remote info request timing out
* DONE retest channel changing in android (using sim?)
* DONE move remote admin doc from forum into git
* DONE check crashlytics
* DONE ask for a documentation czar
* DONE timestamps on oled screen are wrong - don't seem to be updating based on message rx (actually: this is expected behavior when no node on the mesh has GPS time)
* DONE add ch-del
* DONE channel hash suffixes are wrong on android
* DONE before next relase: test empty channel sets on android
* DONE channel sharing in android
* DONE test 1.0 firmware update on android
* DONE test 1.1 firmwhttps://github.com/meshtastic/Meshtastic-Android/issues/271are update on android
* DONE test 1.2.10 firmware update on android
* DONE test link sharing on android
* FIXED? luxon bug report - seeing rx acks for nodes that are not on the network
* DONE release py
* DONE show GPS time only if we know what global time is
* DONE android should always provide time to nodes - so that it is easier for the mesh to learn the current time
## Multichannel support
* DONE cleanup the external notification and serial plugins
* 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
* DONE fix android to use new device types for firmware update
* 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 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
* DONE fix setchannel in phoneapi.cpp
* 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 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 use get-channels from python
* DONE use get channels & get settings from android
* DONE use set-channel from python
* DONE make settings changes from python work
* DONE pthon should stop fetching channels once we've reached our first empty channel definition (hasSettings == true)
* DONE add check for old devices with new API library
* DONE release python api
* DONE release protobufs
* DONE release to developers
* 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 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
* DONE release to users
* DONE warn in android app about unset regions
* DONE use set-channel from android
* DONE add gui in android app for setting region
* DONE clean up python channel usage
* DONE use bindToChannel to limit admin access for remote nodes
* DONE move channels and radio config out of device settings
* DONE test remote info and remote settings changes
* make python tests more exhaustive
* DONE pick default random admin key
* exclude admin channels from URL?
* make a way to share just secondary channels via URL
* generalize the concept of "shortstrings" use it for both PSKs and well known channel names. Possibly use a ShortString class.
* 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)
* stress test multi channel
* DONE investigate @mc-hamster report of heap corruption
* DONE use set-user from android
* untrusted users should not be allowed to provide bogus times (via position broadcasts) to the rest of the mesh. Invent a new lowest quality notion of UntrustedTime.
* use portuino TCP connection to debug with python API
* document the relationship between want_response (indicating remote node received it) and want_ack (indicating that this message should be sent reliably - and also get acks from the first rx node and naks if it is never delivered)
* DONE android should stop fetching channels once we've reached our first empty channel definition (hasSettings == true)
* DONE warn in python api if we are too new to talk to the device code
* DONE make a post warning about 1.2, telling how to stay on old android & python clients. link to this from the android dialog message and python version warning.
* DONE "FIXME - move the radioconfig/user/channel READ operations into SettingsMessage as well"
* DONE scrub protobufs to make sure they are absoloute minimum wiresize (in particular Data, ChannelSets and positions)
* DONE change syncword (now ox2b)
* 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 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
* add support for full DSR unicast delivery
* 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)
* 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)
* DONE figure out how to add micro_delta to position, make it so that phone apps don't need to understand it?
* only send battery updates a max of once a minute
* DONE add python channel selection for sending
* DONE record recevied channel in meshpacket
* test remote settings operations (confirm it works 3 hops away)
* DONE make a primaryChannel global and properly maintain it when the phone sends setChannel
* DONE move setCrypto call into packet send and packet decode code
* implement 'small location diffs' change
* move battery level out of position?
* consider "A special exception (FIXME, not sure if this is a good idea) - packets that arrive on the local interface
are allowed on any channel (this lets the local user do anything)." Probably by adding a "secure_local_interface" settings bool.
* DOUBLE CHECK android app can still upgrade 1.1 and 1.0 loads
For app cleanup:
* don't store redundant User admin or position broadcasts in the ToPhone queue (only keep one per sending node per proto type, and only most recent)
* use structured logging to kep logs in ram. Also send logs as packets to api clients
* DONE writeup nice python options docs (common cases, link to protobuf docs)
* have android app link to user manual
* DONE only do wantReplies once per packet type, if we change network settings force it again
* update positions and nodeinfos based on packets we just merely witness on the mesh. via isPromsciousPort bool, remove sniffing
* DONE make device build always have a valid version
* DONE do fixed position bug https://github.com/meshtastic/Meshtastic-device/issues/536
* DONE check build guide
* DONE write devapi user guide
* DONE update android code: https://developer.android.com/topic/libraries/view-binding/migration
* DONE test GPIO watch
* DONE set --set-chan-fast, --set-chan-default
* writeup docs on gpio
* DONE make python ping command
* DONE make hello world example service
* DONE have python tool check max packet size before sending to device
* DONE if request was sent reliably, send reply reliably
* 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 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 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
* DONE test that position, text messages and user info work properly with new android app and old device code
* DONE do UDP tunnel
* DONE fix the RTC drift bug
* move python ping functionality into device, reply with rxsnr info
* use channels for gpio security https://github.com/meshtastic/Meshtastic-device/issues/104
* MeshPackets for sending should be reference counted so that API clients would have the option of checking sent status (would allow removing the nasty 30 sec timer in gpio watch sending)
For high speed/lots of devices/short range tasks:
- When guessing numhops for sending: if I've heard from many local (0 hop neighbors) decrease hopcount by 2 rather than 1.
This should nicely help 'router' nodes do the right thing when long range, or if there are many local nodes for short range.
- fix timeouts/delays to be based on packet length at current radio settings
* update faq with antennas https://meshtastic.discourse.group/t/range-test-ideas-requested/738/2
* update faq on recommended android version and phones
* add help link inside the app, reference a page on the wiki
* turn on amazon reviews support
* add a tablet layout (with map next to messages) in the android app
# Completed
## eink 1.0
* DONE check email of reported issues
* DONE turn off vbus driving (in bootloader)
* new battery level sensing
* current draw no good
* DONE: fix backlight
* DONE - USB is busted because of power enable mode?
* test CPU voltage? something is bad with RAM (removing eink module does not help)
* test that board leaves bootloader always
* test USB - works in bootloader
* test LEDs
* Test BME280
* test gps
* check GPS fast locking
* tested! dlora
* test eink backlight
* tested! eink
* test buttons
* test battery charging
* test serial flash
* send updated app and bootloader image
* OHH BME280! THAT IS GREAT!
* make new screen work, ask for datasheet
* say I think you could ship this
* leds seem busted
* fix hw_model: "nrf52unknown"
* use larger icon for meshtastic logo
* send email about variants & faster flash programming - https://github.com/geeksville/Meshtastic-esp32/commit/f110225173a77326aac029321cdb6491bfa640f6
* send PR for bootloader
* fix nrf52 time/date
* send new master bin file
* send email about low power mode problems
* support new flash chip in appload, possibly use low power mode
* swbug! stuck busy tx occurred!
# Old docs to merge
MESH RADIO PROTOCOL
Old TODO notes on the mesh radio protocol, merge into real docs someday...
for each named group we have a pre-shared key known by all group members and
wrapped around the device. you can only be in one group at a time (FIXME?!) To
join the group we read a qr code with the preshared key and ParamsCodeEnum. that
gets sent via bluetooth to the device. ParamsCodeEnum maps to a set of various
radio params (regulatory region, center freq, SF, bandwidth, bitrate, power
etc...) so all members of the mesh can have their radios set the same way.
once in that group, we can talk between 254 node numbers.
to get our node number (and announce our presence in the channel) we pick a
random node number and broadcast as that node with WANT-NODENUM(my globally
unique name). If anyone on the channel has seen someone _else_ using that name
within the last 24 hrs(?) they reply with DENY-NODENUM. Note: we might receive
multiple denies. Note: this allows others to speak up for some other node that
might be saving battery right now. Any time we hear from another node (for any
message type), we add that node number to the unpickable list. To dramatically
decrease the odds a node number we request is already used by someone. If no one
denies within TBD seconds, we assume that we have that node number. As long as
we keep talking to folks at least once every 24 hrs, others should remember we
have it.
Once we have a node number we can broadcast POSITION-UPDATE(my globally unique
name, lat, lon, alt, amt battery remaining). All receivers will use this to a)
update the mapping of who is at what node nums, b) the time of last rx, c)
position. If we haven't heard from that node in a while we reply to that node
(only) with our current POSITION_UPDATE state - so that node (presumably just
rejoined the network) can build a map of all participants.
We will periodically broadcast POSITION-UPDATE as needed based on distance moved
or a periodic minimum heartbeat.
If user wants to send a text they can SEND_TEXT(dest user, short text message).
Dest user is a node number, or 0xff for broadcast.
# Medium priority
Items to complete before 1.0.
# Post 1.0 ideas
- finish DSR for unicast
- check fcc rules on duty cycle. we might not need to freq hop. https://www.sunfiretesting.com/LoRa-FCC-Certification-Guide/ . Might need to add enforcement for europe though.
- make a no bluetooth configured yet screen - include this screen in the loop if the user hasn't yet paired
- if radio params change fundamentally, discard the nodedb
- re-enable the bluetooth battery level service on the T-BEAM
- provide generalized (but slow) internet message forwarding service if one of our nodes has internet connectivity (MQTT) [ Not a requirement but a personal interest ]
# Low priority ideas
Items after the first final candidate release.
- implement nimble battery level service
- Nimble implement device info service remaining fields (hw version etc)
- Turn on RPA addresses for the device side in Nimble
- Try to teardown less of the Nimble protocol stack across sleep
- dynamic frequency scaling could save a lot of power on ESP32, but it seems to corrupt uart (even with ref_tick set correctly)
- Change back to using a fixed sized MemoryPool rather than MemoryDynamic (see bug #149)
- scan to find channels with low background noise? (Use CAD mode of the RF95 to automatically find low noise channels)
- If the phone doesn't read fromradio mailbox within X seconds, assume the phone is gone and we can stop queing location msgs
for it (because it will redownload the nodedb when it comes back)
- add frequency hopping, dependent on the gps time, make the switch moment far from the time anyone is going to be transmitting
- assign every "channel" a random shared 8 bit sync word (per 4.2.13.6 of datasheet) - use that word to filter packets before even checking CRC. This will ensure our CPU will only wake for packets on our "channel"
- the BLE stack is leaking about 200 bytes each time we go to light sleep
- use fuse bits to store the board type and region. So one load can be used on all boards
- Don't store position packets in the to phone fifo if we are disconnected. The phone will get that info for 'free' when it
fetches the fresh nodedb.
- Use the RFM95 sequencer to stay in idle mode most of the time, then automatically go to receive mode and automatically go from transmit to receive mode. See 4.2.8.2 of manual.
- Use fixed32 for node IDs, packetIDs, successid, failid, and lat/lon - will require all nodes to be updated, but make messages slightly smaller.
- 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
- 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
- show radio and gps signal strength as an image
- only BLE advertise for a short time after the screen is on and button pressed - to save power and prevent people for sniffing for our BT app.
- make mesh aware network timing state machine (sync wake windows to gps time) - this can save LOTS of battery
- split out the software update utility so other projects can use it. Have the appload specify the URL for downloads.
- read the PMU battery fault indicators and blink/led/warn user on screen
- discard very old nodedb records (> 1wk)
- handle millis() rollover in GPS.getTime - otherwise we will break after 50 days
- report esp32 device code bugs back to the mothership via android
- change BLE bonding to something more secure. see comment by pSecurity->setAuthenticationMode(ESP_LE_AUTH_BOND)
Changes related to wifi support on ESP32:
- iram space: https://esp32.com/viewtopic.php?t=8460
- set https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/external-ram.html spi ram bss
- figure out if iram or bluetooth classic caused ble problems
- post bug on esp32-arduino with BLE bug findings
# Spinoff project ideas
- an open source version of https://www.burnair.ch/skynet/
- a paragliding app like http://airwhere.co.uk/
- How do avalanche beacons work? Could this do that as well? possibly by using beacon mode feature of the RF95?
-51
View File
@@ -1,51 +0,0 @@
# 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
-32
View File
@@ -1,32 +0,0 @@
{
"name": "BluetoothOTA",
"keywords": "esp32, bluetooth",
"description": "A BTLE based software OTA update tool",
"repository": {
"type": "git",
"url": "https://github.com/geeksville/fixme.git"
},
"authors": [
{
"name": "Kevin Hester",
"email": "kevinh@geeksville.com",
"url": "https://github.com/geeksville",
"maintainer": true
}
],
"version": "0.0.1",
"frameworks": "arduino",
"platforms": "*",
"dependencies": [
{
"name": "Update"
},
{
"name": "ESP32 BLE Arduino"
},
{
"name": "arduino-fsm",
"version": "https://github.com/meshtastic/arduino-fsm.git"
}
]
}
-878
View File
@@ -1,878 +0,0 @@
/* Common parts of the nanopb library. Most of these are quite low-level
* stuff. For the high-level interface, see pb_encode.h and pb_decode.h.
*/
#ifndef PB_H_INCLUDED
#define PB_H_INCLUDED
/*****************************************************************
* Nanopb compilation time options. You can change these here by *
* uncommenting the lines, or on the compiler command line. *
*****************************************************************/
/* Enable support for dynamically allocated fields */
#define PB_ENABLE_MALLOC 1
/* Define this if your CPU / compiler combination does not support
* unaligned memory access to packed structures. */
/* #define PB_NO_PACKED_STRUCTS 1 */
/* Increase the number of required fields that are tracked.
* A compiler warning will tell if you need this. */
/* #define PB_MAX_REQUIRED_FIELDS 256 */
/* Add support for tag numbers > 65536 and fields larger than 65536 bytes. */
/* #define PB_FIELD_32BIT 1 */
/* Disable support for error messages in order to save some code space. */
/* #define PB_NO_ERRMSG 1 */
/* Disable support for custom streams (support only memory buffers). */
/* #define PB_BUFFER_ONLY 1 */
/* Disable support for 64-bit datatypes, for compilers without int64_t
or to save some code space. */
/* #define PB_WITHOUT_64BIT 1 */
/* Don't encode scalar arrays as packed. This is only to be used when
* the decoder on the receiving side cannot process packed scalar arrays.
* Such example is older protobuf.js. */
/* #define PB_ENCODE_ARRAYS_UNPACKED 1 */
/* Enable conversion of doubles to floats for platforms that do not
* support 64-bit doubles. Most commonly AVR. */
/* #define PB_CONVERT_DOUBLE_FLOAT 1 */
/* Check whether incoming strings are valid UTF-8 sequences. Slows down
* the string processing slightly and slightly increases code size. */
/* #define PB_VALIDATE_UTF8 1 */
/******************************************************************
* You usually don't need to change anything below this line. *
* Feel free to look around and use the defined macros, though. *
******************************************************************/
/* Version of the nanopb library. Just in case you want to check it in
* your own program. */
#define NANOPB_VERSION nanopb - 0.4.4
/* Include all the system headers needed by nanopb. You will need the
* definitions of the following:
* - strlen, memcpy, memset functions
* - [u]int_least8_t, uint_fast8_t, [u]int_least16_t, [u]int32_t, [u]int64_t
* - size_t
* - bool
*
* If you don't have the standard header files, you can instead provide
* a custom header that defines or includes all this. In that case,
* define PB_SYSTEM_HEADER to the path of this file.
*/
#ifdef PB_SYSTEM_HEADER
#include PB_SYSTEM_HEADER
#else
#include <limits.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <string.h>
#ifdef PB_ENABLE_MALLOC
#include <stdlib.h>
#endif
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Macro for defining packed structures (compiler dependent).
* This just reduces memory requirements, but is not required.
*/
#if defined(PB_NO_PACKED_STRUCTS)
/* Disable struct packing */
#define PB_PACKED_STRUCT_START
#define PB_PACKED_STRUCT_END
#define pb_packed
#elif defined(__GNUC__) || defined(__clang__)
/* For GCC and clang */
#define PB_PACKED_STRUCT_START
#define PB_PACKED_STRUCT_END
#define pb_packed __attribute__((packed))
#elif defined(__ICCARM__) || defined(__CC_ARM)
/* For IAR ARM and Keil MDK-ARM compilers */
#define PB_PACKED_STRUCT_START _Pragma("pack(push, 1)")
#define PB_PACKED_STRUCT_END _Pragma("pack(pop)")
#define pb_packed
#elif defined(_MSC_VER) && (_MSC_VER >= 1500)
/* For Microsoft Visual C++ */
#define PB_PACKED_STRUCT_START __pragma(pack(push, 1))
#define PB_PACKED_STRUCT_END __pragma(pack(pop))
#define pb_packed
#else
/* Unknown compiler */
#define PB_PACKED_STRUCT_START
#define PB_PACKED_STRUCT_END
#define pb_packed
#endif
/* Handly macro for suppressing unreferenced-parameter compiler warnings. */
#ifndef PB_UNUSED
#define PB_UNUSED(x) (void)(x)
#endif
/* Harvard-architecture processors may need special attributes for storing
* field information in program memory. */
#ifndef PB_PROGMEM
#ifdef __AVR__
#include <avr/pgmspace.h>
#define PB_PROGMEM PROGMEM
#define PB_PROGMEM_READU32(x) pgm_read_dword(&x)
#else
#define PB_PROGMEM
#define PB_PROGMEM_READU32(x) (x)
#endif
#endif
/* Compile-time assertion, used for checking compatible compilation options.
* If this does not work properly on your compiler, use
* #define PB_NO_STATIC_ASSERT to disable it.
*
* But before doing that, check carefully the error message / place where it
* comes from to see if the error has a real cause. Unfortunately the error
* message is not always very clear to read, but you can see the reason better
* in the place where the PB_STATIC_ASSERT macro was called.
*/
#ifndef PB_NO_STATIC_ASSERT
#ifndef PB_STATIC_ASSERT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
/* C11 standard _Static_assert mechanism */
#define PB_STATIC_ASSERT(COND, MSG) _Static_assert(COND, #MSG);
#else
/* Classic negative-size-array static assert mechanism */
#define PB_STATIC_ASSERT(COND, MSG) typedef char PB_STATIC_ASSERT_MSG(MSG, __LINE__, __COUNTER__)[(COND) ? 1 : -1];
#define PB_STATIC_ASSERT_MSG(MSG, LINE, COUNTER) PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER)
#define PB_STATIC_ASSERT_MSG_(MSG, LINE, COUNTER) pb_static_assertion_##MSG##_##LINE##_##COUNTER
#endif
#endif
#else
/* Static asserts disabled by PB_NO_STATIC_ASSERT */
#define PB_STATIC_ASSERT(COND, MSG)
#endif
/* Number of required fields to keep track of. */
#ifndef PB_MAX_REQUIRED_FIELDS
#define PB_MAX_REQUIRED_FIELDS 64
#endif
#if PB_MAX_REQUIRED_FIELDS < 64
#error You should not lower PB_MAX_REQUIRED_FIELDS from the default value (64).
#endif
#ifdef PB_WITHOUT_64BIT
#ifdef PB_CONVERT_DOUBLE_FLOAT
/* Cannot use doubles without 64-bit types */
#undef PB_CONVERT_DOUBLE_FLOAT
#endif
#endif
/* List of possible field types. These are used in the autogenerated code.
* Least-significant 4 bits tell the scalar type
* Most-significant 4 bits specify repeated/required/packed etc.
*/
typedef uint_least8_t pb_type_t;
/**** Field data types ****/
/* Numeric types */
#define PB_LTYPE_BOOL 0x00U /* bool */
#define PB_LTYPE_VARINT 0x01U /* int32, int64, enum, bool */
#define PB_LTYPE_UVARINT 0x02U /* uint32, uint64 */
#define PB_LTYPE_SVARINT 0x03U /* sint32, sint64 */
#define PB_LTYPE_FIXED32 0x04U /* fixed32, sfixed32, float */
#define PB_LTYPE_FIXED64 0x05U /* fixed64, sfixed64, double */
/* Marker for last packable field type. */
#define PB_LTYPE_LAST_PACKABLE 0x05U
/* Byte array with pre-allocated buffer.
* data_size is the length of the allocated PB_BYTES_ARRAY structure. */
#define PB_LTYPE_BYTES 0x06U
/* String with pre-allocated buffer.
* data_size is the maximum length. */
#define PB_LTYPE_STRING 0x07U
/* Submessage
* submsg_fields is pointer to field descriptions */
#define PB_LTYPE_SUBMESSAGE 0x08U
/* Submessage with pre-decoding callback
* The pre-decoding callback is stored as pb_callback_t right before pSize.
* submsg_fields is pointer to field descriptions */
#define PB_LTYPE_SUBMSG_W_CB 0x09U
/* Extension pseudo-field
* The field contains a pointer to pb_extension_t */
#define PB_LTYPE_EXTENSION 0x0AU
/* Byte array with inline, pre-allocated byffer.
* data_size is the length of the inline, allocated buffer.
* This differs from PB_LTYPE_BYTES by defining the element as
* pb_byte_t[data_size] rather than pb_bytes_array_t. */
#define PB_LTYPE_FIXED_LENGTH_BYTES 0x0BU
/* Number of declared LTYPES */
#define PB_LTYPES_COUNT 0x0CU
#define PB_LTYPE_MASK 0x0FU
/**** Field repetition rules ****/
#define PB_HTYPE_REQUIRED 0x00U
#define PB_HTYPE_OPTIONAL 0x10U
#define PB_HTYPE_SINGULAR 0x10U
#define PB_HTYPE_REPEATED 0x20U
#define PB_HTYPE_FIXARRAY 0x20U
#define PB_HTYPE_ONEOF 0x30U
#define PB_HTYPE_MASK 0x30U
/**** Field allocation types ****/
#define PB_ATYPE_STATIC 0x00U
#define PB_ATYPE_POINTER 0x80U
#define PB_ATYPE_CALLBACK 0x40U
#define PB_ATYPE_MASK 0xC0U
#define PB_ATYPE(x) ((x)&PB_ATYPE_MASK)
#define PB_HTYPE(x) ((x)&PB_HTYPE_MASK)
#define PB_LTYPE(x) ((x)&PB_LTYPE_MASK)
#define PB_LTYPE_IS_SUBMSG(x) (PB_LTYPE(x) == PB_LTYPE_SUBMESSAGE || PB_LTYPE(x) == PB_LTYPE_SUBMSG_W_CB)
/* Data type used for storing sizes of struct fields
* and array counts.
*/
#if defined(PB_FIELD_32BIT)
typedef uint32_t pb_size_t;
typedef int32_t pb_ssize_t;
#else
typedef uint_least16_t pb_size_t;
typedef int_least16_t pb_ssize_t;
#endif
#define PB_SIZE_MAX ((pb_size_t)-1)
/* Data type for storing encoded data and other byte streams.
* This typedef exists to support platforms where uint8_t does not exist.
* You can regard it as equivalent on uint8_t on other platforms.
*/
typedef uint_least8_t pb_byte_t;
/* Forward declaration of struct types */
typedef struct pb_istream_s pb_istream_t;
typedef struct pb_ostream_s pb_ostream_t;
typedef struct pb_field_iter_s pb_field_iter_t;
/* This structure is used in auto-generated constants
* to specify struct fields.
*/
typedef struct pb_msgdesc_s pb_msgdesc_t;
struct pb_msgdesc_s {
const uint32_t *field_info;
const pb_msgdesc_t *const *submsg_info;
const pb_byte_t *default_value;
bool (*field_callback)(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_iter_t *field);
pb_size_t field_count;
pb_size_t required_field_count;
pb_size_t largest_tag;
};
/* Iterator for message descriptor */
struct pb_field_iter_s {
const pb_msgdesc_t *descriptor; /* Pointer to message descriptor constant */
void *message; /* Pointer to start of the structure */
pb_size_t index; /* Index of the field */
pb_size_t field_info_index; /* Index to descriptor->field_info array */
pb_size_t required_field_index; /* Index that counts only the required fields */
pb_size_t submessage_index; /* Index that counts only submessages */
pb_size_t tag; /* Tag of current field */
pb_size_t data_size; /* sizeof() of a single item */
pb_size_t array_size; /* Number of array entries */
pb_type_t type; /* Type of current field */
void *pField; /* Pointer to current field in struct */
void *pData; /* Pointer to current data contents. Different than pField for arrays and pointers. */
void *pSize; /* Pointer to count/has field */
const pb_msgdesc_t *submsg_desc; /* For submessage fields, pointer to field descriptor for the submessage. */
};
/* For compatibility with legacy code */
typedef pb_field_iter_t pb_field_t;
/* Make sure that the standard integer types are of the expected sizes.
* Otherwise fixed32/fixed64 fields can break.
*
* If you get errors here, it probably means that your stdint.h is not
* correct for your platform.
*/
#ifndef PB_WITHOUT_64BIT
PB_STATIC_ASSERT(sizeof(int64_t) == 2 * sizeof(int32_t), INT64_T_WRONG_SIZE)
PB_STATIC_ASSERT(sizeof(uint64_t) == 2 * sizeof(uint32_t), UINT64_T_WRONG_SIZE)
#endif
/* This structure is used for 'bytes' arrays.
* It has the number of bytes in the beginning, and after that an array.
* Note that actual structs used will have a different length of bytes array.
*/
#define PB_BYTES_ARRAY_T(n) \
struct { \
pb_size_t size; \
pb_byte_t bytes[n]; \
}
#define PB_BYTES_ARRAY_T_ALLOCSIZE(n) ((size_t)n + offsetof(pb_bytes_array_t, bytes))
struct pb_bytes_array_s {
pb_size_t size;
pb_byte_t bytes[1];
};
typedef struct pb_bytes_array_s pb_bytes_array_t;
/* This structure is used for giving the callback function.
* It is stored in the message structure and filled in by the method that
* calls pb_decode.
*
* The decoding callback will be given a limited-length stream
* If the wire type was string, the length is the length of the string.
* If the wire type was a varint/fixed32/fixed64, the length is the length
* of the actual value.
* The function may be called multiple times (especially for repeated types,
* but also otherwise if the message happens to contain the field multiple
* times.)
*
* The encoding callback will receive the actual output stream.
* It should write all the data in one call, including the field tag and
* wire type. It can write multiple fields.
*
* The callback can be null if you want to skip a field.
*/
typedef struct pb_callback_s pb_callback_t;
struct pb_callback_s {
/* Callback functions receive a pointer to the arg field.
* You can access the value of the field as *arg, and modify it if needed.
*/
union {
bool (*decode)(pb_istream_t *stream, const pb_field_t *field, void **arg);
bool (*encode)(pb_ostream_t *stream, const pb_field_t *field, void *const *arg);
} funcs;
/* Free arg for use by callback */
void *arg;
};
extern bool pb_default_field_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_t *field);
/* Wire types. Library user needs these only in encoder callbacks. */
typedef enum { PB_WT_VARINT = 0, PB_WT_64BIT = 1, PB_WT_STRING = 2, PB_WT_32BIT = 5 } pb_wire_type_t;
/* Structure for defining the handling of unknown/extension fields.
* Usually the pb_extension_type_t structure is automatically generated,
* while the pb_extension_t structure is created by the user. However,
* if you want to catch all unknown fields, you can also create a custom
* pb_extension_type_t with your own callback.
*/
typedef struct pb_extension_type_s pb_extension_type_t;
typedef struct pb_extension_s pb_extension_t;
struct pb_extension_type_s {
/* Called for each unknown field in the message.
* If you handle the field, read off all of its data and return true.
* If you do not handle the field, do not read anything and return true.
* If you run into an error, return false.
* Set to NULL for default handler.
*/
bool (*decode)(pb_istream_t *stream, pb_extension_t *extension, uint32_t tag, pb_wire_type_t wire_type);
/* Called once after all regular fields have been encoded.
* If you have something to write, do so and return true.
* If you do not have anything to write, just return true.
* If you run into an error, return false.
* Set to NULL for default handler.
*/
bool (*encode)(pb_ostream_t *stream, const pb_extension_t *extension);
/* Free field for use by the callback. */
const void *arg;
};
struct pb_extension_s {
/* Type describing the extension field. Usually you'll initialize
* this to a pointer to the automatically generated structure. */
const pb_extension_type_t *type;
/* Destination for the decoded data. This must match the datatype
* of the extension field. */
void *dest;
/* Pointer to the next extension handler, or NULL.
* If this extension does not match a field, the next handler is
* automatically called. */
pb_extension_t *next;
/* The decoder sets this to true if the extension was found.
* Ignored for encoding. */
bool found;
};
#define pb_extension_init_zero \
{ \
NULL, NULL, NULL, false \
}
/* Memory allocation functions to use. You can define pb_realloc and
* pb_free to custom functions if you want. */
#ifdef PB_ENABLE_MALLOC
#ifndef pb_realloc
#define pb_realloc(ptr, size) realloc(ptr, size)
#endif
#ifndef pb_free
#define pb_free(ptr) free(ptr)
#endif
#endif
/* This is used to inform about need to regenerate .pb.h/.pb.c files. */
#define PB_PROTO_HEADER_VERSION 40
/* These macros are used to declare pb_field_t's in the constant array. */
/* Size of a structure member, in bytes. */
#define pb_membersize(st, m) (sizeof((st *)0)->m)
/* Number of entries in an array. */
#define pb_arraysize(st, m) (pb_membersize(st, m) / pb_membersize(st, m[0]))
/* Delta from start of one member to the start of another member. */
#define pb_delta(st, m1, m2) ((int)offsetof(st, m1) - (int)offsetof(st, m2))
/* Force expansion of macro value */
#define PB_EXPAND(x) x
/* Binding of a message field set into a specific structure */
#define PB_BIND(msgname, structname, width) \
const uint32_t structname##_field_info[] PB_PROGMEM = {msgname##_FIELDLIST(PB_GEN_FIELD_INFO_##width, structname) 0}; \
const pb_msgdesc_t *const structname##_submsg_info[] = {msgname##_FIELDLIST(PB_GEN_SUBMSG_INFO, structname) NULL}; \
const pb_msgdesc_t structname##_msg = { \
structname##_field_info, \
structname##_submsg_info, \
msgname##_DEFAULT, \
msgname##_CALLBACK, \
0 msgname##_FIELDLIST(PB_GEN_FIELD_COUNT, structname), \
0 msgname##_FIELDLIST(PB_GEN_REQ_FIELD_COUNT, structname), \
0 msgname##_FIELDLIST(PB_GEN_LARGEST_TAG, structname), \
}; \
msgname##_FIELDLIST(PB_GEN_FIELD_INFO_ASSERT_##width, structname)
#define PB_GEN_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) +1
#define PB_GEN_REQ_FIELD_COUNT(structname, atype, htype, ltype, fieldname, tag) +(PB_HTYPE_##htype == PB_HTYPE_REQUIRED)
#define PB_GEN_LARGEST_TAG(structname, atype, htype, ltype, fieldname, tag) *0 + tag
/* X-macro for generating the entries in struct_field_info[] array. */
#define PB_GEN_FIELD_INFO_1(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_1(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_GEN_FIELD_INFO_2(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_2(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_GEN_FIELD_INFO_4(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_4(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_GEN_FIELD_INFO_8(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_8(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_GEN_FIELD_INFO_AUTO(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_##atype, _PB_HTYPE_##htype, _PB_LTYPE_##ltype), tag, \
PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_FIELDINFO_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \
PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size)
#define PB_FIELDINFO_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \
PB_FIELDINFO_##width(tag, type, data_offset, data_size, size_offset, array_size)
/* X-macro for generating asserts that entries fit in struct_field_info[] array.
* The structure of macros here must match the structure above in PB_GEN_FIELD_INFO_x(),
* but it is not easily reused because of how macro substitutions work. */
#define PB_GEN_FIELD_INFO_ASSERT_1(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_ASSERT_1(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_GEN_FIELD_INFO_ASSERT_2(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_ASSERT_2(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_GEN_FIELD_INFO_ASSERT_4(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_ASSERT_4(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_GEN_FIELD_INFO_ASSERT_8(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_ASSERT_8(tag, PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_GEN_FIELD_INFO_ASSERT_AUTO(structname, atype, htype, ltype, fieldname, tag) \
PB_FIELDINFO_ASSERT_AUTO2(PB_FIELDINFO_WIDTH_AUTO(_PB_ATYPE_##atype, _PB_HTYPE_##htype, _PB_LTYPE_##ltype), tag, \
PB_ATYPE_##atype | PB_HTYPE_##htype | PB_LTYPE_MAP_##ltype, \
PB_DATA_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_DATA_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_SIZE_OFFSET_##atype(_PB_HTYPE_##htype, structname, fieldname), \
PB_ARRAY_SIZE_##atype(_PB_HTYPE_##htype, structname, fieldname))
#define PB_FIELDINFO_ASSERT_AUTO2(width, tag, type, data_offset, data_size, size_offset, array_size) \
PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size)
#define PB_FIELDINFO_ASSERT_AUTO3(width, tag, type, data_offset, data_size, size_offset, array_size) \
PB_FIELDINFO_ASSERT_##width(tag, type, data_offset, data_size, size_offset, array_size)
#define PB_DATA_OFFSET_STATIC(htype, structname, fieldname) PB_DO##htype(structname, fieldname)
#define PB_DATA_OFFSET_POINTER(htype, structname, fieldname) PB_DO##htype(structname, fieldname)
#define PB_DATA_OFFSET_CALLBACK(htype, structname, fieldname) PB_DO##htype(structname, fieldname)
#define PB_DO_PB_HTYPE_REQUIRED(structname, fieldname) offsetof(structname, fieldname)
#define PB_DO_PB_HTYPE_SINGULAR(structname, fieldname) offsetof(structname, fieldname)
#define PB_DO_PB_HTYPE_ONEOF(structname, fieldname) offsetof(structname, PB_ONEOF_NAME(FULL, fieldname))
#define PB_DO_PB_HTYPE_OPTIONAL(structname, fieldname) offsetof(structname, fieldname)
#define PB_DO_PB_HTYPE_REPEATED(structname, fieldname) offsetof(structname, fieldname)
#define PB_DO_PB_HTYPE_FIXARRAY(structname, fieldname) offsetof(structname, fieldname)
#define PB_SIZE_OFFSET_STATIC(htype, structname, fieldname) PB_SO##htype(structname, fieldname)
#define PB_SIZE_OFFSET_POINTER(htype, structname, fieldname) PB_SO_PTR##htype(structname, fieldname)
#define PB_SIZE_OFFSET_CALLBACK(htype, structname, fieldname) PB_SO_CB##htype(structname, fieldname)
#define PB_SO_PB_HTYPE_REQUIRED(structname, fieldname) 0
#define PB_SO_PB_HTYPE_SINGULAR(structname, fieldname) 0
#define PB_SO_PB_HTYPE_ONEOF(structname, fieldname) \
PB_SO_PB_HTYPE_ONEOF2(structname, PB_ONEOF_NAME(FULL, fieldname), PB_ONEOF_NAME(UNION, fieldname))
#define PB_SO_PB_HTYPE_ONEOF2(structname, fullname, unionname) PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname)
#define PB_SO_PB_HTYPE_ONEOF3(structname, fullname, unionname) pb_delta(structname, fullname, which_##unionname)
#define PB_SO_PB_HTYPE_OPTIONAL(structname, fieldname) pb_delta(structname, fieldname, has_##fieldname)
#define PB_SO_PB_HTYPE_REPEATED(structname, fieldname) pb_delta(structname, fieldname, fieldname##_count)
#define PB_SO_PB_HTYPE_FIXARRAY(structname, fieldname) 0
#define PB_SO_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 0
#define PB_SO_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 0
#define PB_SO_PTR_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname)
#define PB_SO_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 0
#define PB_SO_PTR_PB_HTYPE_REPEATED(structname, fieldname) PB_SO_PB_HTYPE_REPEATED(structname, fieldname)
#define PB_SO_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) 0
#define PB_SO_CB_PB_HTYPE_REQUIRED(structname, fieldname) 0
#define PB_SO_CB_PB_HTYPE_SINGULAR(structname, fieldname) 0
#define PB_SO_CB_PB_HTYPE_ONEOF(structname, fieldname) PB_SO_PB_HTYPE_ONEOF(structname, fieldname)
#define PB_SO_CB_PB_HTYPE_OPTIONAL(structname, fieldname) 0
#define PB_SO_CB_PB_HTYPE_REPEATED(structname, fieldname) 0
#define PB_SO_CB_PB_HTYPE_FIXARRAY(structname, fieldname) 0
#define PB_ARRAY_SIZE_STATIC(htype, structname, fieldname) PB_AS##htype(structname, fieldname)
#define PB_ARRAY_SIZE_POINTER(htype, structname, fieldname) PB_AS_PTR##htype(structname, fieldname)
#define PB_ARRAY_SIZE_CALLBACK(htype, structname, fieldname) 1
#define PB_AS_PB_HTYPE_REQUIRED(structname, fieldname) 1
#define PB_AS_PB_HTYPE_SINGULAR(structname, fieldname) 1
#define PB_AS_PB_HTYPE_OPTIONAL(structname, fieldname) 1
#define PB_AS_PB_HTYPE_ONEOF(structname, fieldname) 1
#define PB_AS_PB_HTYPE_REPEATED(structname, fieldname) pb_arraysize(structname, fieldname)
#define PB_AS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname)
#define PB_AS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) 1
#define PB_AS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) 1
#define PB_AS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) 1
#define PB_AS_PTR_PB_HTYPE_ONEOF(structname, fieldname) 1
#define PB_AS_PTR_PB_HTYPE_REPEATED(structname, fieldname) 1
#define PB_AS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_arraysize(structname, fieldname[0])
#define PB_DATA_SIZE_STATIC(htype, structname, fieldname) PB_DS##htype(structname, fieldname)
#define PB_DATA_SIZE_POINTER(htype, structname, fieldname) PB_DS_PTR##htype(structname, fieldname)
#define PB_DATA_SIZE_CALLBACK(htype, structname, fieldname) PB_DS_CB##htype(structname, fieldname)
#define PB_DS_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname)
#define PB_DS_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname)
#define PB_DS_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname)
#define PB_DS_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname))
#define PB_DS_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0])
#define PB_DS_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0])
#define PB_DS_PTR_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname[0])
#define PB_DS_PTR_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname[0])
#define PB_DS_PTR_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname[0])
#define PB_DS_PTR_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname)[0])
#define PB_DS_PTR_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname[0])
#define PB_DS_PTR_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname[0][0])
#define PB_DS_CB_PB_HTYPE_REQUIRED(structname, fieldname) pb_membersize(structname, fieldname)
#define PB_DS_CB_PB_HTYPE_SINGULAR(structname, fieldname) pb_membersize(structname, fieldname)
#define PB_DS_CB_PB_HTYPE_OPTIONAL(structname, fieldname) pb_membersize(structname, fieldname)
#define PB_DS_CB_PB_HTYPE_ONEOF(structname, fieldname) pb_membersize(structname, PB_ONEOF_NAME(FULL, fieldname))
#define PB_DS_CB_PB_HTYPE_REPEATED(structname, fieldname) pb_membersize(structname, fieldname)
#define PB_DS_CB_PB_HTYPE_FIXARRAY(structname, fieldname) pb_membersize(structname, fieldname)
#define PB_ONEOF_NAME(type, tuple) PB_EXPAND(PB_ONEOF_NAME_##type tuple)
#define PB_ONEOF_NAME_UNION(unionname, membername, fullname) unionname
#define PB_ONEOF_NAME_MEMBER(unionname, membername, fullname) membername
#define PB_ONEOF_NAME_FULL(unionname, membername, fullname) fullname
#define PB_GEN_SUBMSG_INFO(structname, atype, htype, ltype, fieldname, tag) \
PB_SUBMSG_INFO_##htype(_PB_LTYPE_##ltype, structname, fieldname)
#define PB_SUBMSG_INFO_REQUIRED(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE)
#define PB_SUBMSG_INFO_SINGULAR(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE)
#define PB_SUBMSG_INFO_OPTIONAL(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE)
#define PB_SUBMSG_INFO_ONEOF(ltype, structname, fieldname) \
PB_SUBMSG_INFO_ONEOF2(ltype, structname, PB_ONEOF_NAME(UNION, fieldname), PB_ONEOF_NAME(MEMBER, fieldname))
#define PB_SUBMSG_INFO_ONEOF2(ltype, structname, unionname, membername) \
PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername)
#define PB_SUBMSG_INFO_ONEOF3(ltype, structname, unionname, membername) \
PB_SI##ltype(structname##_##unionname##_##membername##_MSGTYPE)
#define PB_SUBMSG_INFO_REPEATED(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE)
#define PB_SUBMSG_INFO_FIXARRAY(ltype, structname, fieldname) PB_SI##ltype(structname##_##fieldname##_MSGTYPE)
#define PB_SI_PB_LTYPE_BOOL(t)
#define PB_SI_PB_LTYPE_BYTES(t)
#define PB_SI_PB_LTYPE_DOUBLE(t)
#define PB_SI_PB_LTYPE_ENUM(t)
#define PB_SI_PB_LTYPE_UENUM(t)
#define PB_SI_PB_LTYPE_FIXED32(t)
#define PB_SI_PB_LTYPE_FIXED64(t)
#define PB_SI_PB_LTYPE_FLOAT(t)
#define PB_SI_PB_LTYPE_INT32(t)
#define PB_SI_PB_LTYPE_INT64(t)
#define PB_SI_PB_LTYPE_MESSAGE(t) PB_SUBMSG_DESCRIPTOR(t)
#define PB_SI_PB_LTYPE_MSG_W_CB(t) PB_SUBMSG_DESCRIPTOR(t)
#define PB_SI_PB_LTYPE_SFIXED32(t)
#define PB_SI_PB_LTYPE_SFIXED64(t)
#define PB_SI_PB_LTYPE_SINT32(t)
#define PB_SI_PB_LTYPE_SINT64(t)
#define PB_SI_PB_LTYPE_STRING(t)
#define PB_SI_PB_LTYPE_UINT32(t)
#define PB_SI_PB_LTYPE_UINT64(t)
#define PB_SI_PB_LTYPE_EXTENSION(t)
#define PB_SI_PB_LTYPE_FIXED_LENGTH_BYTES(t)
#define PB_SUBMSG_DESCRIPTOR(t) &(t##_msg),
/* The field descriptors use a variable width format, with width of either
* 1, 2, 4 or 8 of 32-bit words. The two lowest bytes of the first byte always
* encode the descriptor size, 6 lowest bits of field tag number, and 8 bits
* of the field type.
*
* Descriptor size is encoded as 0 = 1 word, 1 = 2 words, 2 = 4 words, 3 = 8 words.
*
* Formats, listed starting with the least significant bit of the first word.
* 1 word: [2-bit len] [6-bit tag] [8-bit type] [8-bit data_offset] [4-bit size_offset] [4-bit data_size]
*
* 2 words: [2-bit len] [6-bit tag] [8-bit type] [12-bit array_size] [4-bit size_offset]
* [16-bit data_offset] [12-bit data_size] [4-bit tag>>6]
*
* 4 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit array_size]
* [8-bit size_offset] [24-bit tag>>6]
* [32-bit data_offset]
* [32-bit data_size]
*
* 8 words: [2-bit len] [6-bit tag] [8-bit type] [16-bit reserved]
* [8-bit size_offset] [24-bit tag>>6]
* [32-bit data_offset]
* [32-bit data_size]
* [32-bit array_size]
* [32-bit reserved]
* [32-bit reserved]
* [32-bit reserved]
*/
#define PB_FIELDINFO_1(tag, type, data_offset, data_size, size_offset, array_size) \
(0 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(data_offset)&0xFF) << 16) | \
(((uint32_t)(size_offset)&0x0F) << 24) | (((uint32_t)(data_size)&0x0F) << 28)),
#define PB_FIELDINFO_2(tag, type, data_offset, data_size, size_offset, array_size) \
(1 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size)&0xFFF) << 16) | \
(((uint32_t)(size_offset)&0x0F) << 28)), \
(((uint32_t)(data_offset)&0xFFFF) | (((uint32_t)(data_size)&0xFFF) << 16) | (((uint32_t)(tag)&0x3c0) << 22)),
#define PB_FIELDINFO_4(tag, type, data_offset, data_size, size_offset, array_size) \
(2 | (((tag) << 2) & 0xFF) | ((type) << 8) | (((uint32_t)(array_size)&0xFFFF) << 16)), \
((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), (data_offset), (data_size),
#define PB_FIELDINFO_8(tag, type, data_offset, data_size, size_offset, array_size) \
(3 | (((tag) << 2) & 0xFF) | ((type) << 8)), \
((uint32_t)(int_least8_t)(size_offset) | (((uint32_t)(tag) << 2) & 0xFFFFFF00)), (data_offset), (data_size), \
(array_size), 0, 0, 0,
/* These assertions verify that the field information fits in the allocated space.
* The generator tries to automatically determine the correct width that can fit all
* data associated with a message. These asserts will fail only if there has been a
* problem in the automatic logic - this may be worth reporting as a bug. As a workaround,
* you can increase the descriptor width by defining PB_FIELDINFO_WIDTH or by setting
* descriptorsize option in .options file.
*/
#define PB_FITS(value, bits) ((uint32_t)(value) < ((uint32_t)1 << bits))
#define PB_FIELDINFO_ASSERT_1(tag, type, data_offset, data_size, size_offset, array_size) \
PB_STATIC_ASSERT(PB_FITS(tag, 6) && PB_FITS(data_offset, 8) && PB_FITS(size_offset, 4) && PB_FITS(data_size, 4) && \
PB_FITS(array_size, 1), \
FIELDINFO_DOES_NOT_FIT_width1_field##tag)
#define PB_FIELDINFO_ASSERT_2(tag, type, data_offset, data_size, size_offset, array_size) \
PB_STATIC_ASSERT(PB_FITS(tag, 10) && PB_FITS(data_offset, 16) && PB_FITS(size_offset, 4) && PB_FITS(data_size, 12) && \
PB_FITS(array_size, 12), \
FIELDINFO_DOES_NOT_FIT_width2_field##tag)
#ifndef PB_FIELD_32BIT
/* Maximum field sizes are still 16-bit if pb_size_t is 16-bit */
#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \
PB_STATIC_ASSERT(PB_FITS(tag, 16) && PB_FITS(data_offset, 16) && PB_FITS((int_least8_t)size_offset, 8) && \
PB_FITS(data_size, 16) && PB_FITS(array_size, 16), \
FIELDINFO_DOES_NOT_FIT_width4_field##tag)
#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \
PB_STATIC_ASSERT(PB_FITS(tag, 16) && PB_FITS(data_offset, 16) && PB_FITS((int_least8_t)size_offset, 8) && \
PB_FITS(data_size, 16) && PB_FITS(array_size, 16), \
FIELDINFO_DOES_NOT_FIT_width8_field##tag)
#else
/* Up to 32-bit fields supported.
* Note that the checks are against 31 bits to avoid compiler warnings about shift wider than type in the test.
* I expect that there is no reasonable use for >2GB messages with nanopb anyway.
*/
#define PB_FIELDINFO_ASSERT_4(tag, type, data_offset, data_size, size_offset, array_size) \
PB_STATIC_ASSERT(PB_FITS(tag, 30) && PB_FITS(data_offset, 31) && PB_FITS(size_offset, 8) && PB_FITS(data_size, 31) && \
PB_FITS(array_size, 16), \
FIELDINFO_DOES_NOT_FIT_width4_field##tag)
#define PB_FIELDINFO_ASSERT_8(tag, type, data_offset, data_size, size_offset, array_size) \
PB_STATIC_ASSERT(PB_FITS(tag, 30) && PB_FITS(data_offset, 31) && PB_FITS(size_offset, 8) && PB_FITS(data_size, 31) && \
PB_FITS(array_size, 31), \
FIELDINFO_DOES_NOT_FIT_width8_field##tag)
#endif
/* Automatic picking of FIELDINFO width:
* Uses width 1 when possible, otherwise resorts to width 2.
* This is used when PB_BIND() is called with "AUTO" as the argument.
* The generator will give explicit size argument when it knows that a message
* structure grows beyond 1-word format limits.
*/
#define PB_FIELDINFO_WIDTH_AUTO(atype, htype, ltype) PB_FI_WIDTH##atype(htype, ltype)
#define PB_FI_WIDTH_PB_ATYPE_STATIC(htype, ltype) PB_FI_WIDTH##htype(ltype)
#define PB_FI_WIDTH_PB_ATYPE_POINTER(htype, ltype) PB_FI_WIDTH##htype(ltype)
#define PB_FI_WIDTH_PB_ATYPE_CALLBACK(htype, ltype) 2
#define PB_FI_WIDTH_PB_HTYPE_REQUIRED(ltype) PB_FI_WIDTH##ltype
#define PB_FI_WIDTH_PB_HTYPE_SINGULAR(ltype) PB_FI_WIDTH##ltype
#define PB_FI_WIDTH_PB_HTYPE_OPTIONAL(ltype) PB_FI_WIDTH##ltype
#define PB_FI_WIDTH_PB_HTYPE_ONEOF(ltype) PB_FI_WIDTH##ltype
#define PB_FI_WIDTH_PB_HTYPE_REPEATED(ltype) 2
#define PB_FI_WIDTH_PB_HTYPE_FIXARRAY(ltype) 2
#define PB_FI_WIDTH_PB_LTYPE_BOOL 1
#define PB_FI_WIDTH_PB_LTYPE_BYTES 2
#define PB_FI_WIDTH_PB_LTYPE_DOUBLE 1
#define PB_FI_WIDTH_PB_LTYPE_ENUM 1
#define PB_FI_WIDTH_PB_LTYPE_UENUM 1
#define PB_FI_WIDTH_PB_LTYPE_FIXED32 1
#define PB_FI_WIDTH_PB_LTYPE_FIXED64 1
#define PB_FI_WIDTH_PB_LTYPE_FLOAT 1
#define PB_FI_WIDTH_PB_LTYPE_INT32 1
#define PB_FI_WIDTH_PB_LTYPE_INT64 1
#define PB_FI_WIDTH_PB_LTYPE_MESSAGE 2
#define PB_FI_WIDTH_PB_LTYPE_MSG_W_CB 2
#define PB_FI_WIDTH_PB_LTYPE_SFIXED32 1
#define PB_FI_WIDTH_PB_LTYPE_SFIXED64 1
#define PB_FI_WIDTH_PB_LTYPE_SINT32 1
#define PB_FI_WIDTH_PB_LTYPE_SINT64 1
#define PB_FI_WIDTH_PB_LTYPE_STRING 2
#define PB_FI_WIDTH_PB_LTYPE_UINT32 1
#define PB_FI_WIDTH_PB_LTYPE_UINT64 1
#define PB_FI_WIDTH_PB_LTYPE_EXTENSION 1
#define PB_FI_WIDTH_PB_LTYPE_FIXED_LENGTH_BYTES 2
/* The mapping from protobuf types to LTYPEs is done using these macros. */
#define PB_LTYPE_MAP_BOOL PB_LTYPE_BOOL
#define PB_LTYPE_MAP_BYTES PB_LTYPE_BYTES
#define PB_LTYPE_MAP_DOUBLE PB_LTYPE_FIXED64
#define PB_LTYPE_MAP_ENUM PB_LTYPE_VARINT
#define PB_LTYPE_MAP_UENUM PB_LTYPE_UVARINT
#define PB_LTYPE_MAP_FIXED32 PB_LTYPE_FIXED32
#define PB_LTYPE_MAP_FIXED64 PB_LTYPE_FIXED64
#define PB_LTYPE_MAP_FLOAT PB_LTYPE_FIXED32
#define PB_LTYPE_MAP_INT32 PB_LTYPE_VARINT
#define PB_LTYPE_MAP_INT64 PB_LTYPE_VARINT
#define PB_LTYPE_MAP_MESSAGE PB_LTYPE_SUBMESSAGE
#define PB_LTYPE_MAP_MSG_W_CB PB_LTYPE_SUBMSG_W_CB
#define PB_LTYPE_MAP_SFIXED32 PB_LTYPE_FIXED32
#define PB_LTYPE_MAP_SFIXED64 PB_LTYPE_FIXED64
#define PB_LTYPE_MAP_SINT32 PB_LTYPE_SVARINT
#define PB_LTYPE_MAP_SINT64 PB_LTYPE_SVARINT
#define PB_LTYPE_MAP_STRING PB_LTYPE_STRING
#define PB_LTYPE_MAP_UINT32 PB_LTYPE_UVARINT
#define PB_LTYPE_MAP_UINT64 PB_LTYPE_UVARINT
#define PB_LTYPE_MAP_EXTENSION PB_LTYPE_EXTENSION
#define PB_LTYPE_MAP_FIXED_LENGTH_BYTES PB_LTYPE_FIXED_LENGTH_BYTES
/* These macros are used for giving out error messages.
* They are mostly a debugging aid; the main error information
* is the true/false return value from functions.
* Some code space can be saved by disabling the error
* messages if not used.
*
* PB_SET_ERROR() sets the error message if none has been set yet.
* msg must be a constant string literal.
* PB_GET_ERROR() always returns a pointer to a string.
* PB_RETURN_ERROR() sets the error and returns false from current
* function.
*/
#ifdef PB_NO_ERRMSG
#define PB_SET_ERROR(stream, msg) PB_UNUSED(stream)
#define PB_GET_ERROR(stream) "(errmsg disabled)"
#else
#define PB_SET_ERROR(stream, msg) (stream->errmsg = (stream)->errmsg ? (stream)->errmsg : (msg))
#define PB_GET_ERROR(stream) ((stream)->errmsg ? (stream)->errmsg : "(none)")
#endif
#define PB_RETURN_ERROR(stream, msg) return PB_SET_ERROR(stream, msg), false
#ifdef __cplusplus
} /* extern "C" */
#endif
#ifdef __cplusplus
#if __cplusplus >= 201103L
#define PB_CONSTEXPR constexpr
#else // __cplusplus >= 201103L
#define PB_CONSTEXPR
#endif // __cplusplus >= 201103L
#if __cplusplus >= 201703L
#define PB_INLINE_CONSTEXPR inline constexpr
#else // __cplusplus >= 201703L
#define PB_INLINE_CONSTEXPR PB_CONSTEXPR
#endif // __cplusplus >= 201703L
namespace nanopb
{
// Each type will be partially specialized by the generator.
template <typename GenMessageT> struct MessageDescriptor;
} // namespace nanopb
#endif /* __cplusplus */
#endif
-49
View File
@@ -1,49 +0,0 @@
/* pb_common.h: Common support functions for pb_encode.c and pb_decode.c.
* These functions are rarely needed by applications directly.
*/
#ifndef PB_COMMON_H_INCLUDED
#define PB_COMMON_H_INCLUDED
#include "pb.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Initialize the field iterator structure to beginning.
* Returns false if the message type is empty. */
bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_msgdesc_t *desc, void *message);
/* Get a field iterator for extension field. */
bool pb_field_iter_begin_extension(pb_field_iter_t *iter, pb_extension_t *extension);
/* Same as pb_field_iter_begin(), but for const message pointer.
* Note that the pointers in pb_field_iter_t will be non-const but shouldn't
* be written to when using these functions. */
bool pb_field_iter_begin_const(pb_field_iter_t *iter, const pb_msgdesc_t *desc, const void *message);
bool pb_field_iter_begin_extension_const(pb_field_iter_t *iter, const pb_extension_t *extension);
/* Advance the iterator to the next field.
* Returns false when the iterator wraps back to the first field. */
bool pb_field_iter_next(pb_field_iter_t *iter);
/* Advance the iterator until it points at a field with the given tag.
* Returns false if no such field exists. */
bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag);
/* Find a field with type PB_LTYPE_EXTENSION, or return false if not found.
* There can be only one extension range field per message. */
bool pb_field_iter_find_extension(pb_field_iter_t *iter);
#ifdef PB_VALIDATE_UTF8
/* Validate UTF-8 text string */
bool pb_validate_utf8(const char *s);
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif
-199
View File
@@ -1,199 +0,0 @@
/* pb_decode.h: Functions to decode protocol buffers. Depends on pb_decode.c.
* The main function is pb_decode. You also need an input stream, and the
* field descriptions created by nanopb_generator.py.
*/
#ifndef PB_DECODE_H_INCLUDED
#define PB_DECODE_H_INCLUDED
#include "pb.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Structure for defining custom input streams. You will need to provide
* a callback function to read the bytes from your storage, which can be
* for example a file or a network socket.
*
* The callback must conform to these rules:
*
* 1) Return false on IO errors. This will cause decoding to abort.
* 2) You can use state to store your own data (e.g. buffer pointer),
* and rely on pb_read to verify that no-body reads past bytes_left.
* 3) Your callback may be used with substreams, in which case bytes_left
* is different than from the main stream. Don't use bytes_left to compute
* any pointers.
*/
struct pb_istream_s
{
#ifdef PB_BUFFER_ONLY
/* Callback pointer is not used in buffer-only configuration.
* Having an int pointer here allows binary compatibility but
* gives an error if someone tries to assign callback function.
*/
int *callback;
#else
bool (*callback)(pb_istream_t *stream, pb_byte_t *buf, size_t count);
#endif
void *state; /* Free field for use by callback implementation */
size_t bytes_left;
#ifndef PB_NO_ERRMSG
const char *errmsg;
#endif
};
#ifndef PB_NO_ERRMSG
#define PB_ISTREAM_EMPTY {0,0,0,0}
#else
#define PB_ISTREAM_EMPTY {0,0,0}
#endif
/***************************
* Main decoding functions *
***************************/
/* Decode a single protocol buffers message from input stream into a C structure.
* Returns true on success, false on any failure.
* The actual struct pointed to by dest must match the description in fields.
* Callback fields of the destination structure must be initialized by caller.
* All other fields will be initialized by this function.
*
* Example usage:
* MyMessage msg = {};
* uint8_t buffer[64];
* pb_istream_t stream;
*
* // ... read some data into buffer ...
*
* stream = pb_istream_from_buffer(buffer, count);
* pb_decode(&stream, MyMessage_fields, &msg);
*/
bool pb_decode(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct);
/* Extended version of pb_decode, with several options to control
* the decoding process:
*
* PB_DECODE_NOINIT: Do not initialize the fields to default values.
* This is slightly faster if you do not need the default
* values and instead initialize the structure to 0 using
* e.g. memset(). This can also be used for merging two
* messages, i.e. combine already existing data with new
* values.
*
* PB_DECODE_DELIMITED: Input message starts with the message size as varint.
* Corresponds to parseDelimitedFrom() in Google's
* protobuf API.
*
* PB_DECODE_NULLTERMINATED: Stop reading when field tag is read as 0. This allows
* reading null terminated messages.
* NOTE: Until nanopb-0.4.0, pb_decode() also allows
* null-termination. This behaviour is not supported in
* most other protobuf implementations, so PB_DECODE_DELIMITED
* is a better option for compatibility.
*
* Multiple flags can be combined with bitwise or (| operator)
*/
#define PB_DECODE_NOINIT 0x01U
#define PB_DECODE_DELIMITED 0x02U
#define PB_DECODE_NULLTERMINATED 0x04U
bool pb_decode_ex(pb_istream_t *stream, const pb_msgdesc_t *fields, void *dest_struct, unsigned int flags);
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define pb_decode_noinit(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_NOINIT)
#define pb_decode_delimited(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_DELIMITED)
#define pb_decode_delimited_noinit(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_DELIMITED | PB_DECODE_NOINIT)
#define pb_decode_nullterminated(s,f,d) pb_decode_ex(s,f,d, PB_DECODE_NULLTERMINATED)
#ifdef PB_ENABLE_MALLOC
/* Release any allocated pointer fields. If you use dynamic allocation, you should
* call this for any successfully decoded message when you are done with it. If
* pb_decode() returns with an error, the message is already released.
*/
void pb_release(const pb_msgdesc_t *fields, void *dest_struct);
#else
/* Allocation is not supported, so release is no-op */
#define pb_release(fields, dest_struct) PB_UNUSED(fields); PB_UNUSED(dest_struct);
#endif
/**************************************
* Functions for manipulating streams *
**************************************/
/* Create an input stream for reading from a memory buffer.
*
* msglen should be the actual length of the message, not the full size of
* allocated buffer.
*
* Alternatively, you can use a custom stream that reads directly from e.g.
* a file or a network socket.
*/
pb_istream_t pb_istream_from_buffer(const pb_byte_t *buf, size_t msglen);
/* Function to read from a pb_istream_t. You can use this if you need to
* read some custom header data, or to read data in field callbacks.
*/
bool pb_read(pb_istream_t *stream, pb_byte_t *buf, size_t count);
/************************************************
* Helper functions for writing field callbacks *
************************************************/
/* Decode the tag for the next field in the stream. Gives the wire type and
* field tag. At end of the message, returns false and sets eof to true. */
bool pb_decode_tag(pb_istream_t *stream, pb_wire_type_t *wire_type, uint32_t *tag, bool *eof);
/* Skip the field payload data, given the wire type. */
bool pb_skip_field(pb_istream_t *stream, pb_wire_type_t wire_type);
/* Decode an integer in the varint format. This works for enum, int32,
* int64, uint32 and uint64 field types. */
#ifndef PB_WITHOUT_64BIT
bool pb_decode_varint(pb_istream_t *stream, uint64_t *dest);
#else
#define pb_decode_varint pb_decode_varint32
#endif
/* Decode an integer in the varint format. This works for enum, int32,
* and uint32 field types. */
bool pb_decode_varint32(pb_istream_t *stream, uint32_t *dest);
/* Decode a bool value in varint format. */
bool pb_decode_bool(pb_istream_t *stream, bool *dest);
/* Decode an integer in the zig-zagged svarint format. This works for sint32
* and sint64. */
#ifndef PB_WITHOUT_64BIT
bool pb_decode_svarint(pb_istream_t *stream, int64_t *dest);
#else
bool pb_decode_svarint(pb_istream_t *stream, int32_t *dest);
#endif
/* Decode a fixed32, sfixed32 or float value. You need to pass a pointer to
* a 4-byte wide C variable. */
bool pb_decode_fixed32(pb_istream_t *stream, void *dest);
#ifndef PB_WITHOUT_64BIT
/* Decode a fixed64, sfixed64 or double value. You need to pass a pointer to
* a 8-byte wide C variable. */
bool pb_decode_fixed64(pb_istream_t *stream, void *dest);
#endif
#ifdef PB_CONVERT_DOUBLE_FLOAT
/* Decode a double value into float variable. */
bool pb_decode_double_as_float(pb_istream_t *stream, float *dest);
#endif
/* Make a limited-length substream for reading a PB_WT_STRING field. */
bool pb_make_string_substream(pb_istream_t *stream, pb_istream_t *substream);
bool pb_close_string_substream(pb_istream_t *stream, pb_istream_t *substream);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif
-185
View File
@@ -1,185 +0,0 @@
/* pb_encode.h: Functions to encode protocol buffers. Depends on pb_encode.c.
* The main function is pb_encode. You also need an output stream, and the
* field descriptions created by nanopb_generator.py.
*/
#ifndef PB_ENCODE_H_INCLUDED
#define PB_ENCODE_H_INCLUDED
#include "pb.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Structure for defining custom output streams. You will need to provide
* a callback function to write the bytes to your storage, which can be
* for example a file or a network socket.
*
* The callback must conform to these rules:
*
* 1) Return false on IO errors. This will cause encoding to abort.
* 2) You can use state to store your own data (e.g. buffer pointer).
* 3) pb_write will update bytes_written after your callback runs.
* 4) Substreams will modify max_size and bytes_written. Don't use them
* to calculate any pointers.
*/
struct pb_ostream_s
{
#ifdef PB_BUFFER_ONLY
/* Callback pointer is not used in buffer-only configuration.
* Having an int pointer here allows binary compatibility but
* gives an error if someone tries to assign callback function.
* Also, NULL pointer marks a 'sizing stream' that does not
* write anything.
*/
int *callback;
#else
bool (*callback)(pb_ostream_t *stream, const pb_byte_t *buf, size_t count);
#endif
void *state; /* Free field for use by callback implementation. */
size_t max_size; /* Limit number of output bytes written (or use SIZE_MAX). */
size_t bytes_written; /* Number of bytes written so far. */
#ifndef PB_NO_ERRMSG
const char *errmsg;
#endif
};
/***************************
* Main encoding functions *
***************************/
/* Encode a single protocol buffers message from C structure into a stream.
* Returns true on success, false on any failure.
* The actual struct pointed to by src_struct must match the description in fields.
* All required fields in the struct are assumed to have been filled in.
*
* Example usage:
* MyMessage msg = {};
* uint8_t buffer[64];
* pb_ostream_t stream;
*
* msg.field1 = 42;
* stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
* pb_encode(&stream, MyMessage_fields, &msg);
*/
bool pb_encode(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct);
/* Extended version of pb_encode, with several options to control the
* encoding process:
*
* PB_ENCODE_DELIMITED: Prepend the length of message as a varint.
* Corresponds to writeDelimitedTo() in Google's
* protobuf API.
*
* PB_ENCODE_NULLTERMINATED: Append a null byte to the message for termination.
* NOTE: This behaviour is not supported in most other
* protobuf implementations, so PB_ENCODE_DELIMITED
* is a better option for compatibility.
*/
#define PB_ENCODE_DELIMITED 0x02U
#define PB_ENCODE_NULLTERMINATED 0x04U
bool pb_encode_ex(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct, unsigned int flags);
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define pb_encode_delimited(s,f,d) pb_encode_ex(s,f,d, PB_ENCODE_DELIMITED)
#define pb_encode_nullterminated(s,f,d) pb_encode_ex(s,f,d, PB_ENCODE_NULLTERMINATED)
/* Encode the message to get the size of the encoded data, but do not store
* the data. */
bool pb_get_encoded_size(size_t *size, const pb_msgdesc_t *fields, const void *src_struct);
/**************************************
* Functions for manipulating streams *
**************************************/
/* Create an output stream for writing into a memory buffer.
* The number of bytes written can be found in stream.bytes_written after
* encoding the message.
*
* Alternatively, you can use a custom stream that writes directly to e.g.
* a file or a network socket.
*/
pb_ostream_t pb_ostream_from_buffer(pb_byte_t *buf, size_t bufsize);
/* Pseudo-stream for measuring the size of a message without actually storing
* the encoded data.
*
* Example usage:
* MyMessage msg = {};
* pb_ostream_t stream = PB_OSTREAM_SIZING;
* pb_encode(&stream, MyMessage_fields, &msg);
* printf("Message size is %d\n", stream.bytes_written);
*/
#ifndef PB_NO_ERRMSG
#define PB_OSTREAM_SIZING {0,0,0,0,0}
#else
#define PB_OSTREAM_SIZING {0,0,0,0}
#endif
/* Function to write into a pb_ostream_t stream. You can use this if you need
* to append or prepend some custom headers to the message.
*/
bool pb_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count);
/************************************************
* Helper functions for writing field callbacks *
************************************************/
/* Encode field header based on type and field number defined in the field
* structure. Call this from the callback before writing out field contents. */
bool pb_encode_tag_for_field(pb_ostream_t *stream, const pb_field_iter_t *field);
/* Encode field header by manually specifying wire type. You need to use this
* if you want to write out packed arrays from a callback field. */
bool pb_encode_tag(pb_ostream_t *stream, pb_wire_type_t wiretype, uint32_t field_number);
/* Encode an integer in the varint format.
* This works for bool, enum, int32, int64, uint32 and uint64 field types. */
#ifndef PB_WITHOUT_64BIT
bool pb_encode_varint(pb_ostream_t *stream, uint64_t value);
#else
bool pb_encode_varint(pb_ostream_t *stream, uint32_t value);
#endif
/* Encode an integer in the zig-zagged svarint format.
* This works for sint32 and sint64. */
#ifndef PB_WITHOUT_64BIT
bool pb_encode_svarint(pb_ostream_t *stream, int64_t value);
#else
bool pb_encode_svarint(pb_ostream_t *stream, int32_t value);
#endif
/* Encode a string or bytes type field. For strings, pass strlen(s) as size. */
bool pb_encode_string(pb_ostream_t *stream, const pb_byte_t *buffer, size_t size);
/* Encode a fixed32, sfixed32 or float value.
* You need to pass a pointer to a 4-byte wide C variable. */
bool pb_encode_fixed32(pb_ostream_t *stream, const void *value);
#ifndef PB_WITHOUT_64BIT
/* Encode a fixed64, sfixed64 or double value.
* You need to pass a pointer to a 8-byte wide C variable. */
bool pb_encode_fixed64(pb_ostream_t *stream, const void *value);
#endif
#ifdef PB_CONVERT_DOUBLE_FLOAT
/* Encode a float value so that it appears like a double in the encoded
* message. */
bool pb_encode_float_as_double(pb_ostream_t *stream, float value);
#endif
/* Encode a submessage field.
* You need to pass the pb_field_t array and pointer to struct, just like
* with pb_encode(). This internally encodes the submessage twice, first to
* calculate message size and then to actually write it out.
*/
bool pb_encode_submessage(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct);
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif
-388
View File
@@ -1,388 +0,0 @@
/* pb_common.c: Common support functions for pb_encode.c and pb_decode.c.
*
* 2014 Petteri Aimonen <jpa@kapsi.fi>
*/
#include "pb_common.h"
static bool load_descriptor_values(pb_field_iter_t *iter)
{
uint32_t word0;
uint32_t data_offset;
int_least8_t size_offset;
if (iter->index >= iter->descriptor->field_count)
return false;
word0 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index]);
iter->type = (pb_type_t)((word0 >> 8) & 0xFF);
switch(word0 & 3)
{
case 0: {
/* 1-word format */
iter->array_size = 1;
iter->tag = (pb_size_t)((word0 >> 2) & 0x3F);
size_offset = (int_least8_t)((word0 >> 24) & 0x0F);
data_offset = (word0 >> 16) & 0xFF;
iter->data_size = (pb_size_t)((word0 >> 28) & 0x0F);
break;
}
case 1: {
/* 2-word format */
uint32_t word1 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index + 1]);
iter->array_size = (pb_size_t)((word0 >> 16) & 0x0FFF);
iter->tag = (pb_size_t)(((word0 >> 2) & 0x3F) | ((word1 >> 28) << 6));
size_offset = (int_least8_t)((word0 >> 28) & 0x0F);
data_offset = word1 & 0xFFFF;
iter->data_size = (pb_size_t)((word1 >> 16) & 0x0FFF);
break;
}
case 2: {
/* 4-word format */
uint32_t word1 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index + 1]);
uint32_t word2 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index + 2]);
uint32_t word3 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index + 3]);
iter->array_size = (pb_size_t)(word0 >> 16);
iter->tag = (pb_size_t)(((word0 >> 2) & 0x3F) | ((word1 >> 8) << 6));
size_offset = (int_least8_t)(word1 & 0xFF);
data_offset = word2;
iter->data_size = (pb_size_t)word3;
break;
}
default: {
/* 8-word format */
uint32_t word1 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index + 1]);
uint32_t word2 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index + 2]);
uint32_t word3 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index + 3]);
uint32_t word4 = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index + 4]);
iter->array_size = (pb_size_t)word4;
iter->tag = (pb_size_t)(((word0 >> 2) & 0x3F) | ((word1 >> 8) << 6));
size_offset = (int_least8_t)(word1 & 0xFF);
data_offset = word2;
iter->data_size = (pb_size_t)word3;
break;
}
}
if (!iter->message)
{
/* Avoid doing arithmetic on null pointers, it is undefined */
iter->pField = NULL;
iter->pSize = NULL;
}
else
{
iter->pField = (char*)iter->message + data_offset;
if (size_offset)
{
iter->pSize = (char*)iter->pField - size_offset;
}
else if (PB_HTYPE(iter->type) == PB_HTYPE_REPEATED &&
(PB_ATYPE(iter->type) == PB_ATYPE_STATIC ||
PB_ATYPE(iter->type) == PB_ATYPE_POINTER))
{
/* Fixed count array */
iter->pSize = &iter->array_size;
}
else
{
iter->pSize = NULL;
}
if (PB_ATYPE(iter->type) == PB_ATYPE_POINTER && iter->pField != NULL)
{
iter->pData = *(void**)iter->pField;
}
else
{
iter->pData = iter->pField;
}
}
if (PB_LTYPE_IS_SUBMSG(iter->type))
{
iter->submsg_desc = iter->descriptor->submsg_info[iter->submessage_index];
}
else
{
iter->submsg_desc = NULL;
}
return true;
}
static void advance_iterator(pb_field_iter_t *iter)
{
iter->index++;
if (iter->index >= iter->descriptor->field_count)
{
/* Restart */
iter->index = 0;
iter->field_info_index = 0;
iter->submessage_index = 0;
iter->required_field_index = 0;
}
else
{
/* Increment indexes based on previous field type.
* All field info formats have the following fields:
* - lowest 2 bits tell the amount of words in the descriptor (2^n words)
* - bits 2..7 give the lowest bits of tag number.
* - bits 8..15 give the field type.
*/
uint32_t prev_descriptor = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index]);
pb_type_t prev_type = (prev_descriptor >> 8) & 0xFF;
pb_size_t descriptor_len = (pb_size_t)(1 << (prev_descriptor & 3));
/* Add to fields.
* The cast to pb_size_t is needed to avoid -Wconversion warning.
* Because the data is is constants from generator, there is no danger of overflow.
*/
iter->field_info_index = (pb_size_t)(iter->field_info_index + descriptor_len);
iter->required_field_index = (pb_size_t)(iter->required_field_index + (PB_HTYPE(prev_type) == PB_HTYPE_REQUIRED));
iter->submessage_index = (pb_size_t)(iter->submessage_index + PB_LTYPE_IS_SUBMSG(prev_type));
}
}
bool pb_field_iter_begin(pb_field_iter_t *iter, const pb_msgdesc_t *desc, void *message)
{
memset(iter, 0, sizeof(*iter));
iter->descriptor = desc;
iter->message = message;
return load_descriptor_values(iter);
}
bool pb_field_iter_begin_extension(pb_field_iter_t *iter, pb_extension_t *extension)
{
const pb_msgdesc_t *msg = (const pb_msgdesc_t*)extension->type->arg;
bool status;
uint32_t word0 = PB_PROGMEM_READU32(msg->field_info[0]);
if (PB_ATYPE(word0 >> 8) == PB_ATYPE_POINTER)
{
/* For pointer extensions, the pointer is stored directly
* in the extension structure. This avoids having an extra
* indirection. */
status = pb_field_iter_begin(iter, msg, &extension->dest);
}
else
{
status = pb_field_iter_begin(iter, msg, extension->dest);
}
iter->pSize = &extension->found;
return status;
}
bool pb_field_iter_next(pb_field_iter_t *iter)
{
advance_iterator(iter);
(void)load_descriptor_values(iter);
return iter->index != 0;
}
bool pb_field_iter_find(pb_field_iter_t *iter, uint32_t tag)
{
if (iter->tag == tag)
{
return true; /* Nothing to do, correct field already. */
}
else if (tag > iter->descriptor->largest_tag)
{
return false;
}
else
{
pb_size_t start = iter->index;
uint32_t fieldinfo;
if (tag < iter->tag)
{
/* Fields are in tag number order, so we know that tag is between
* 0 and our start position. Setting index to end forces
* advance_iterator() call below to restart from beginning. */
iter->index = iter->descriptor->field_count;
}
do
{
/* Advance iterator but don't load values yet */
advance_iterator(iter);
/* Do fast check for tag number match */
fieldinfo = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index]);
if (((fieldinfo >> 2) & 0x3F) == (tag & 0x3F))
{
/* Good candidate, check further */
(void)load_descriptor_values(iter);
if (iter->tag == tag &&
PB_LTYPE(iter->type) != PB_LTYPE_EXTENSION)
{
/* Found it */
return true;
}
}
} while (iter->index != start);
/* Searched all the way back to start, and found nothing. */
(void)load_descriptor_values(iter);
return false;
}
}
bool pb_field_iter_find_extension(pb_field_iter_t *iter)
{
if (PB_LTYPE(iter->type) == PB_LTYPE_EXTENSION)
{
return true;
}
else
{
pb_size_t start = iter->index;
uint32_t fieldinfo;
do
{
/* Advance iterator but don't load values yet */
advance_iterator(iter);
/* Do fast check for field type */
fieldinfo = PB_PROGMEM_READU32(iter->descriptor->field_info[iter->field_info_index]);
if (PB_LTYPE((fieldinfo >> 8) & 0xFF) == PB_LTYPE_EXTENSION)
{
return load_descriptor_values(iter);
}
} while (iter->index != start);
/* Searched all the way back to start, and found nothing. */
(void)load_descriptor_values(iter);
return false;
}
}
static void *pb_const_cast(const void *p)
{
/* Note: this casts away const, in order to use the common field iterator
* logic for both encoding and decoding. The cast is done using union
* to avoid spurious compiler warnings. */
union {
void *p1;
const void *p2;
} t;
t.p2 = p;
return t.p1;
}
bool pb_field_iter_begin_const(pb_field_iter_t *iter, const pb_msgdesc_t *desc, const void *message)
{
return pb_field_iter_begin(iter, desc, pb_const_cast(message));
}
bool pb_field_iter_begin_extension_const(pb_field_iter_t *iter, const pb_extension_t *extension)
{
return pb_field_iter_begin_extension(iter, (pb_extension_t*)pb_const_cast(extension));
}
bool pb_default_field_callback(pb_istream_t *istream, pb_ostream_t *ostream, const pb_field_t *field)
{
if (field->data_size == sizeof(pb_callback_t))
{
pb_callback_t *pCallback = (pb_callback_t*)field->pData;
if (pCallback != NULL)
{
if (istream != NULL && pCallback->funcs.decode != NULL)
{
return pCallback->funcs.decode(istream, field, &pCallback->arg);
}
if (ostream != NULL && pCallback->funcs.encode != NULL)
{
return pCallback->funcs.encode(ostream, field, &pCallback->arg);
}
}
}
return true; /* Success, but didn't do anything */
}
#ifdef PB_VALIDATE_UTF8
/* This function checks whether a string is valid UTF-8 text.
*
* Algorithm is adapted from https://www.cl.cam.ac.uk/~mgk25/ucs/utf8_check.c
* Original copyright: Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> 2005-03-30
* Licensed under "Short code license", which allows use under MIT license or
* any compatible with it.
*/
bool pb_validate_utf8(const char *str)
{
const pb_byte_t *s = (const pb_byte_t*)str;
while (*s)
{
if (*s < 0x80)
{
/* 0xxxxxxx */
s++;
}
else if ((s[0] & 0xe0) == 0xc0)
{
/* 110XXXXx 10xxxxxx */
if ((s[1] & 0xc0) != 0x80 ||
(s[0] & 0xfe) == 0xc0) /* overlong? */
return false;
else
s += 2;
}
else if ((s[0] & 0xf0) == 0xe0)
{
/* 1110XXXX 10Xxxxxx 10xxxxxx */
if ((s[1] & 0xc0) != 0x80 ||
(s[2] & 0xc0) != 0x80 ||
(s[0] == 0xe0 && (s[1] & 0xe0) == 0x80) || /* overlong? */
(s[0] == 0xed && (s[1] & 0xe0) == 0xa0) || /* surrogate? */
(s[0] == 0xef && s[1] == 0xbf &&
(s[2] & 0xfe) == 0xbe)) /* U+FFFE or U+FFFF? */
return false;
else
s += 3;
}
else if ((s[0] & 0xf8) == 0xf0)
{
/* 11110XXX 10XXxxxx 10xxxxxx 10xxxxxx */
if ((s[1] & 0xc0) != 0x80 ||
(s[2] & 0xc0) != 0x80 ||
(s[3] & 0xc0) != 0x80 ||
(s[0] == 0xf0 && (s[1] & 0xf0) == 0x80) || /* overlong? */
(s[0] == 0xf4 && s[1] > 0x8f) || s[0] > 0xf4) /* > U+10FFFF? */
return false;
else
s += 4;
}
else
{
return false;
}
}
return true;
}
#endif
File diff suppressed because it is too large Load Diff
-987
View File
@@ -1,987 +0,0 @@
/* pb_encode.c -- encode a protobuf using minimal resources
*
* 2011 Petteri Aimonen <jpa@kapsi.fi>
*/
#include "pb.h"
#include "pb_encode.h"
#include "pb_common.h"
/* Use the GCC warn_unused_result attribute to check that all return values
* are propagated correctly. On other compilers and gcc before 3.4.0 just
* ignore the annotation.
*/
#if !defined(__GNUC__) || ( __GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 4)
#define checkreturn
#else
#define checkreturn __attribute__((warn_unused_result))
#endif
/**************************************
* Declarations internal to this file *
**************************************/
static bool checkreturn buf_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count);
static bool checkreturn encode_array(pb_ostream_t *stream, pb_field_iter_t *field);
static bool checkreturn pb_check_proto3_default_value(const pb_field_iter_t *field);
static bool checkreturn encode_basic_field(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn encode_callback_field(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn encode_field(pb_ostream_t *stream, pb_field_iter_t *field);
static bool checkreturn encode_extension_field(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn default_extension_encoder(pb_ostream_t *stream, const pb_extension_t *extension);
static bool checkreturn pb_encode_varint_32(pb_ostream_t *stream, uint32_t low, uint32_t high);
static bool checkreturn pb_enc_bool(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn pb_enc_varint(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn pb_enc_fixed(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn pb_enc_bytes(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn pb_enc_string(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn pb_enc_submessage(pb_ostream_t *stream, const pb_field_iter_t *field);
static bool checkreturn pb_enc_fixed_length_bytes(pb_ostream_t *stream, const pb_field_iter_t *field);
#ifdef PB_WITHOUT_64BIT
#define pb_int64_t int32_t
#define pb_uint64_t uint32_t
#else
#define pb_int64_t int64_t
#define pb_uint64_t uint64_t
#endif
/*******************************
* pb_ostream_t implementation *
*******************************/
static bool checkreturn buf_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count)
{
size_t i;
pb_byte_t *dest = (pb_byte_t*)stream->state;
stream->state = dest + count;
for (i = 0; i < count; i++)
dest[i] = buf[i];
return true;
}
pb_ostream_t pb_ostream_from_buffer(pb_byte_t *buf, size_t bufsize)
{
pb_ostream_t stream;
#ifdef PB_BUFFER_ONLY
stream.callback = (void*)1; /* Just a marker value */
#else
stream.callback = &buf_write;
#endif
stream.state = buf;
stream.max_size = bufsize;
stream.bytes_written = 0;
#ifndef PB_NO_ERRMSG
stream.errmsg = NULL;
#endif
return stream;
}
bool checkreturn pb_write(pb_ostream_t *stream, const pb_byte_t *buf, size_t count)
{
if (count > 0 && stream->callback != NULL)
{
if (stream->bytes_written + count < stream->bytes_written ||
stream->bytes_written + count > stream->max_size)
{
PB_RETURN_ERROR(stream, "stream full");
}
#ifdef PB_BUFFER_ONLY
if (!buf_write(stream, buf, count))
PB_RETURN_ERROR(stream, "io error");
#else
if (!stream->callback(stream, buf, count))
PB_RETURN_ERROR(stream, "io error");
#endif
}
stream->bytes_written += count;
return true;
}
/*************************
* Encode a single field *
*************************/
/* Read a bool value without causing undefined behavior even if the value
* is invalid. See issue #434 and
* https://stackoverflow.com/questions/27661768/weird-results-for-conditional
*/
static bool safe_read_bool(const void *pSize)
{
const char *p = (const char *)pSize;
size_t i;
for (i = 0; i < sizeof(bool); i++)
{
if (p[i] != 0)
return true;
}
return false;
}
/* Encode a static array. Handles the size calculations and possible packing. */
static bool checkreturn encode_array(pb_ostream_t *stream, pb_field_iter_t *field)
{
pb_size_t i;
pb_size_t count;
#ifndef PB_ENCODE_ARRAYS_UNPACKED
size_t size;
#endif
count = *(pb_size_t*)field->pSize;
if (count == 0)
return true;
if (PB_ATYPE(field->type) != PB_ATYPE_POINTER && count > field->array_size)
PB_RETURN_ERROR(stream, "array max size exceeded");
#ifndef PB_ENCODE_ARRAYS_UNPACKED
/* We always pack arrays if the datatype allows it. */
if (PB_LTYPE(field->type) <= PB_LTYPE_LAST_PACKABLE)
{
if (!pb_encode_tag(stream, PB_WT_STRING, field->tag))
return false;
/* Determine the total size of packed array. */
if (PB_LTYPE(field->type) == PB_LTYPE_FIXED32)
{
size = 4 * (size_t)count;
}
else if (PB_LTYPE(field->type) == PB_LTYPE_FIXED64)
{
size = 8 * (size_t)count;
}
else
{
pb_ostream_t sizestream = PB_OSTREAM_SIZING;
void *pData_orig = field->pData;
for (i = 0; i < count; i++)
{
if (!pb_enc_varint(&sizestream, field))
PB_RETURN_ERROR(stream, PB_GET_ERROR(&sizestream));
field->pData = (char*)field->pData + field->data_size;
}
field->pData = pData_orig;
size = sizestream.bytes_written;
}
if (!pb_encode_varint(stream, (pb_uint64_t)size))
return false;
if (stream->callback == NULL)
return pb_write(stream, NULL, size); /* Just sizing.. */
/* Write the data */
for (i = 0; i < count; i++)
{
if (PB_LTYPE(field->type) == PB_LTYPE_FIXED32 || PB_LTYPE(field->type) == PB_LTYPE_FIXED64)
{
if (!pb_enc_fixed(stream, field))
return false;
}
else
{
if (!pb_enc_varint(stream, field))
return false;
}
field->pData = (char*)field->pData + field->data_size;
}
}
else /* Unpacked fields */
#endif
{
for (i = 0; i < count; i++)
{
/* Normally the data is stored directly in the array entries, but
* for pointer-type string and bytes fields, the array entries are
* actually pointers themselves also. So we have to dereference once
* more to get to the actual data. */
if (PB_ATYPE(field->type) == PB_ATYPE_POINTER &&
(PB_LTYPE(field->type) == PB_LTYPE_STRING ||
PB_LTYPE(field->type) == PB_LTYPE_BYTES))
{
bool status;
void *pData_orig = field->pData;
field->pData = *(void* const*)field->pData;
if (!field->pData)
{
/* Null pointer in array is treated as empty string / bytes */
status = pb_encode_tag_for_field(stream, field) &&
pb_encode_varint(stream, 0);
}
else
{
status = encode_basic_field(stream, field);
}
field->pData = pData_orig;
if (!status)
return false;
}
else
{
if (!encode_basic_field(stream, field))
return false;
}
field->pData = (char*)field->pData + field->data_size;
}
}
return true;
}
/* In proto3, all fields are optional and are only encoded if their value is "non-zero".
* This function implements the check for the zero value. */
static bool checkreturn pb_check_proto3_default_value(const pb_field_iter_t *field)
{
pb_type_t type = field->type;
if (PB_ATYPE(type) == PB_ATYPE_STATIC)
{
if (PB_HTYPE(type) == PB_HTYPE_REQUIRED)
{
/* Required proto2 fields inside proto3 submessage, pretty rare case */
return false;
}
else if (PB_HTYPE(type) == PB_HTYPE_REPEATED)
{
/* Repeated fields inside proto3 submessage: present if count != 0 */
return *(const pb_size_t*)field->pSize == 0;
}
else if (PB_HTYPE(type) == PB_HTYPE_ONEOF)
{
/* Oneof fields */
return *(const pb_size_t*)field->pSize == 0;
}
else if (PB_HTYPE(type) == PB_HTYPE_OPTIONAL && field->pSize != NULL)
{
/* Proto2 optional fields inside proto3 message, or proto3
* submessage fields. */
return safe_read_bool(field->pSize) == false;
}
else if (field->descriptor->default_value)
{
/* Proto3 messages do not have default values, but proto2 messages
* can contain optional fields without has_fields (generator option 'proto3').
* In this case they must always be encoded, to make sure that the
* non-zero default value is overwritten.
*/
return false;
}
/* Rest is proto3 singular fields */
if (PB_LTYPE(type) <= PB_LTYPE_LAST_PACKABLE)
{
/* Simple integer / float fields */
pb_size_t i;
const char *p = (const char*)field->pData;
for (i = 0; i < field->data_size; i++)
{
if (p[i] != 0)
{
return false;
}
}
return true;
}
else if (PB_LTYPE(type) == PB_LTYPE_BYTES)
{
const pb_bytes_array_t *bytes = (const pb_bytes_array_t*)field->pData;
return bytes->size == 0;
}
else if (PB_LTYPE(type) == PB_LTYPE_STRING)
{
return *(const char*)field->pData == '\0';
}
else if (PB_LTYPE(type) == PB_LTYPE_FIXED_LENGTH_BYTES)
{
/* Fixed length bytes is only empty if its length is fixed
* as 0. Which would be pretty strange, but we can check
* it anyway. */
return field->data_size == 0;
}
else if (PB_LTYPE_IS_SUBMSG(type))
{
/* Check all fields in the submessage to find if any of them
* are non-zero. The comparison cannot be done byte-per-byte
* because the C struct may contain padding bytes that must
* be skipped. Note that usually proto3 submessages have
* a separate has_field that is checked earlier in this if.
*/
pb_field_iter_t iter;
if (pb_field_iter_begin(&iter, field->submsg_desc, field->pData))
{
do
{
if (!pb_check_proto3_default_value(&iter))
{
return false;
}
} while (pb_field_iter_next(&iter));
}
return true;
}
}
else if (PB_ATYPE(type) == PB_ATYPE_POINTER)
{
return field->pData == NULL;
}
else if (PB_ATYPE(type) == PB_ATYPE_CALLBACK)
{
if (PB_LTYPE(type) == PB_LTYPE_EXTENSION)
{
const pb_extension_t *extension = *(const pb_extension_t* const *)field->pData;
return extension == NULL;
}
else if (field->descriptor->field_callback == pb_default_field_callback)
{
pb_callback_t *pCallback = (pb_callback_t*)field->pData;
return pCallback->funcs.encode == NULL;
}
else
{
return field->descriptor->field_callback == NULL;
}
}
return false; /* Not typically reached, safe default for weird special cases. */
}
/* Encode a field with static or pointer allocation, i.e. one whose data
* is available to the encoder directly. */
static bool checkreturn encode_basic_field(pb_ostream_t *stream, const pb_field_iter_t *field)
{
if (!field->pData)
{
/* Missing pointer field */
return true;
}
if (!pb_encode_tag_for_field(stream, field))
return false;
switch (PB_LTYPE(field->type))
{
case PB_LTYPE_BOOL:
return pb_enc_bool(stream, field);
case PB_LTYPE_VARINT:
case PB_LTYPE_UVARINT:
case PB_LTYPE_SVARINT:
return pb_enc_varint(stream, field);
case PB_LTYPE_FIXED32:
case PB_LTYPE_FIXED64:
return pb_enc_fixed(stream, field);
case PB_LTYPE_BYTES:
return pb_enc_bytes(stream, field);
case PB_LTYPE_STRING:
return pb_enc_string(stream, field);
case PB_LTYPE_SUBMESSAGE:
case PB_LTYPE_SUBMSG_W_CB:
return pb_enc_submessage(stream, field);
case PB_LTYPE_FIXED_LENGTH_BYTES:
return pb_enc_fixed_length_bytes(stream, field);
default:
PB_RETURN_ERROR(stream, "invalid field type");
}
}
/* Encode a field with callback semantics. This means that a user function is
* called to provide and encode the actual data. */
static bool checkreturn encode_callback_field(pb_ostream_t *stream, const pb_field_iter_t *field)
{
if (field->descriptor->field_callback != NULL)
{
if (!field->descriptor->field_callback(NULL, stream, field))
PB_RETURN_ERROR(stream, "callback error");
}
return true;
}
/* Encode a single field of any callback, pointer or static type. */
static bool checkreturn encode_field(pb_ostream_t *stream, pb_field_iter_t *field)
{
/* Check field presence */
if (PB_HTYPE(field->type) == PB_HTYPE_ONEOF)
{
if (*(const pb_size_t*)field->pSize != field->tag)
{
/* Different type oneof field */
return true;
}
}
else if (PB_HTYPE(field->type) == PB_HTYPE_OPTIONAL)
{
if (field->pSize)
{
if (safe_read_bool(field->pSize) == false)
{
/* Missing optional field */
return true;
}
}
else if (PB_ATYPE(field->type) == PB_ATYPE_STATIC)
{
/* Proto3 singular field */
if (pb_check_proto3_default_value(field))
return true;
}
}
if (!field->pData)
{
if (PB_HTYPE(field->type) == PB_HTYPE_REQUIRED)
PB_RETURN_ERROR(stream, "missing required field");
/* Pointer field set to NULL */
return true;
}
/* Then encode field contents */
if (PB_ATYPE(field->type) == PB_ATYPE_CALLBACK)
{
return encode_callback_field(stream, field);
}
else if (PB_HTYPE(field->type) == PB_HTYPE_REPEATED)
{
return encode_array(stream, field);
}
else
{
return encode_basic_field(stream, field);
}
}
/* Default handler for extension fields. Expects to have a pb_msgdesc_t
* pointer in the extension->type->arg field, pointing to a message with
* only one field in it. */
static bool checkreturn default_extension_encoder(pb_ostream_t *stream, const pb_extension_t *extension)
{
pb_field_iter_t iter;
if (!pb_field_iter_begin_extension_const(&iter, extension))
PB_RETURN_ERROR(stream, "invalid extension");
return encode_field(stream, &iter);
}
/* Walk through all the registered extensions and give them a chance
* to encode themselves. */
static bool checkreturn encode_extension_field(pb_ostream_t *stream, const pb_field_iter_t *field)
{
const pb_extension_t *extension = *(const pb_extension_t* const *)field->pData;
while (extension)
{
bool status;
if (extension->type->encode)
status = extension->type->encode(stream, extension);
else
status = default_extension_encoder(stream, extension);
if (!status)
return false;
extension = extension->next;
}
return true;
}
/*********************
* Encode all fields *
*********************/
bool checkreturn pb_encode(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct)
{
pb_field_iter_t iter;
if (!pb_field_iter_begin_const(&iter, fields, src_struct))
return true; /* Empty message type */
do {
if (PB_LTYPE(iter.type) == PB_LTYPE_EXTENSION)
{
/* Special case for the extension field placeholder */
if (!encode_extension_field(stream, &iter))
return false;
}
else
{
/* Regular field */
if (!encode_field(stream, &iter))
return false;
}
} while (pb_field_iter_next(&iter));
return true;
}
bool checkreturn pb_encode_ex(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct, unsigned int flags)
{
if ((flags & PB_ENCODE_DELIMITED) != 0)
{
return pb_encode_submessage(stream, fields, src_struct);
}
else if ((flags & PB_ENCODE_NULLTERMINATED) != 0)
{
const pb_byte_t zero = 0;
if (!pb_encode(stream, fields, src_struct))
return false;
return pb_write(stream, &zero, 1);
}
else
{
return pb_encode(stream, fields, src_struct);
}
}
bool pb_get_encoded_size(size_t *size, const pb_msgdesc_t *fields, const void *src_struct)
{
pb_ostream_t stream = PB_OSTREAM_SIZING;
if (!pb_encode(&stream, fields, src_struct))
return false;
*size = stream.bytes_written;
return true;
}
/********************
* Helper functions *
********************/
/* This function avoids 64-bit shifts as they are quite slow on many platforms. */
static bool checkreturn pb_encode_varint_32(pb_ostream_t *stream, uint32_t low, uint32_t high)
{
size_t i = 0;
pb_byte_t buffer[10];
pb_byte_t byte = (pb_byte_t)(low & 0x7F);
low >>= 7;
while (i < 4 && (low != 0 || high != 0))
{
byte |= 0x80;
buffer[i++] = byte;
byte = (pb_byte_t)(low & 0x7F);
low >>= 7;
}
if (high)
{
byte = (pb_byte_t)(byte | ((high & 0x07) << 4));
high >>= 3;
while (high)
{
byte |= 0x80;
buffer[i++] = byte;
byte = (pb_byte_t)(high & 0x7F);
high >>= 7;
}
}
buffer[i++] = byte;
return pb_write(stream, buffer, i);
}
bool checkreturn pb_encode_varint(pb_ostream_t *stream, pb_uint64_t value)
{
if (value <= 0x7F)
{
/* Fast path: single byte */
pb_byte_t byte = (pb_byte_t)value;
return pb_write(stream, &byte, 1);
}
else
{
#ifdef PB_WITHOUT_64BIT
return pb_encode_varint_32(stream, value, 0);
#else
return pb_encode_varint_32(stream, (uint32_t)value, (uint32_t)(value >> 32));
#endif
}
}
bool checkreturn pb_encode_svarint(pb_ostream_t *stream, pb_int64_t value)
{
pb_uint64_t zigzagged;
if (value < 0)
zigzagged = ~((pb_uint64_t)value << 1);
else
zigzagged = (pb_uint64_t)value << 1;
return pb_encode_varint(stream, zigzagged);
}
bool checkreturn pb_encode_fixed32(pb_ostream_t *stream, const void *value)
{
uint32_t val = *(const uint32_t*)value;
pb_byte_t bytes[4];
bytes[0] = (pb_byte_t)(val & 0xFF);
bytes[1] = (pb_byte_t)((val >> 8) & 0xFF);
bytes[2] = (pb_byte_t)((val >> 16) & 0xFF);
bytes[3] = (pb_byte_t)((val >> 24) & 0xFF);
return pb_write(stream, bytes, 4);
}
#ifndef PB_WITHOUT_64BIT
bool checkreturn pb_encode_fixed64(pb_ostream_t *stream, const void *value)
{
uint64_t val = *(const uint64_t*)value;
pb_byte_t bytes[8];
bytes[0] = (pb_byte_t)(val & 0xFF);
bytes[1] = (pb_byte_t)((val >> 8) & 0xFF);
bytes[2] = (pb_byte_t)((val >> 16) & 0xFF);
bytes[3] = (pb_byte_t)((val >> 24) & 0xFF);
bytes[4] = (pb_byte_t)((val >> 32) & 0xFF);
bytes[5] = (pb_byte_t)((val >> 40) & 0xFF);
bytes[6] = (pb_byte_t)((val >> 48) & 0xFF);
bytes[7] = (pb_byte_t)((val >> 56) & 0xFF);
return pb_write(stream, bytes, 8);
}
#endif
bool checkreturn pb_encode_tag(pb_ostream_t *stream, pb_wire_type_t wiretype, uint32_t field_number)
{
pb_uint64_t tag = ((pb_uint64_t)field_number << 3) | wiretype;
return pb_encode_varint(stream, tag);
}
bool pb_encode_tag_for_field ( pb_ostream_t* stream, const pb_field_iter_t* field )
{
pb_wire_type_t wiretype;
switch (PB_LTYPE(field->type))
{
case PB_LTYPE_BOOL:
case PB_LTYPE_VARINT:
case PB_LTYPE_UVARINT:
case PB_LTYPE_SVARINT:
wiretype = PB_WT_VARINT;
break;
case PB_LTYPE_FIXED32:
wiretype = PB_WT_32BIT;
break;
case PB_LTYPE_FIXED64:
wiretype = PB_WT_64BIT;
break;
case PB_LTYPE_BYTES:
case PB_LTYPE_STRING:
case PB_LTYPE_SUBMESSAGE:
case PB_LTYPE_SUBMSG_W_CB:
case PB_LTYPE_FIXED_LENGTH_BYTES:
wiretype = PB_WT_STRING;
break;
default:
PB_RETURN_ERROR(stream, "invalid field type");
}
return pb_encode_tag(stream, wiretype, field->tag);
}
bool checkreturn pb_encode_string(pb_ostream_t *stream, const pb_byte_t *buffer, size_t size)
{
if (!pb_encode_varint(stream, (pb_uint64_t)size))
return false;
return pb_write(stream, buffer, size);
}
bool checkreturn pb_encode_submessage(pb_ostream_t *stream, const pb_msgdesc_t *fields, const void *src_struct)
{
/* First calculate the message size using a non-writing substream. */
pb_ostream_t substream = PB_OSTREAM_SIZING;
size_t size;
bool status;
if (!pb_encode(&substream, fields, src_struct))
{
#ifndef PB_NO_ERRMSG
stream->errmsg = substream.errmsg;
#endif
return false;
}
size = substream.bytes_written;
if (!pb_encode_varint(stream, (pb_uint64_t)size))
return false;
if (stream->callback == NULL)
return pb_write(stream, NULL, size); /* Just sizing */
if (stream->bytes_written + size > stream->max_size)
PB_RETURN_ERROR(stream, "stream full");
/* Use a substream to verify that a callback doesn't write more than
* what it did the first time. */
substream.callback = stream->callback;
substream.state = stream->state;
substream.max_size = size;
substream.bytes_written = 0;
#ifndef PB_NO_ERRMSG
substream.errmsg = NULL;
#endif
status = pb_encode(&substream, fields, src_struct);
stream->bytes_written += substream.bytes_written;
stream->state = substream.state;
#ifndef PB_NO_ERRMSG
stream->errmsg = substream.errmsg;
#endif
if (substream.bytes_written != size)
PB_RETURN_ERROR(stream, "submsg size changed");
return status;
}
/* Field encoders */
static bool checkreturn pb_enc_bool(pb_ostream_t *stream, const pb_field_iter_t *field)
{
uint32_t value = safe_read_bool(field->pData) ? 1 : 0;
PB_UNUSED(field);
return pb_encode_varint(stream, value);
}
static bool checkreturn pb_enc_varint(pb_ostream_t *stream, const pb_field_iter_t *field)
{
if (PB_LTYPE(field->type) == PB_LTYPE_UVARINT)
{
/* Perform unsigned integer extension */
pb_uint64_t value = 0;
if (field->data_size == sizeof(uint_least8_t))
value = *(const uint_least8_t*)field->pData;
else if (field->data_size == sizeof(uint_least16_t))
value = *(const uint_least16_t*)field->pData;
else if (field->data_size == sizeof(uint32_t))
value = *(const uint32_t*)field->pData;
else if (field->data_size == sizeof(pb_uint64_t))
value = *(const pb_uint64_t*)field->pData;
else
PB_RETURN_ERROR(stream, "invalid data_size");
return pb_encode_varint(stream, value);
}
else
{
/* Perform signed integer extension */
pb_int64_t value = 0;
if (field->data_size == sizeof(int_least8_t))
value = *(const int_least8_t*)field->pData;
else if (field->data_size == sizeof(int_least16_t))
value = *(const int_least16_t*)field->pData;
else if (field->data_size == sizeof(int32_t))
value = *(const int32_t*)field->pData;
else if (field->data_size == sizeof(pb_int64_t))
value = *(const pb_int64_t*)field->pData;
else
PB_RETURN_ERROR(stream, "invalid data_size");
if (PB_LTYPE(field->type) == PB_LTYPE_SVARINT)
return pb_encode_svarint(stream, value);
#ifdef PB_WITHOUT_64BIT
else if (value < 0)
return pb_encode_varint_32(stream, (uint32_t)value, (uint32_t)-1);
#endif
else
return pb_encode_varint(stream, (pb_uint64_t)value);
}
}
static bool checkreturn pb_enc_fixed(pb_ostream_t *stream, const pb_field_iter_t *field)
{
#ifdef PB_CONVERT_DOUBLE_FLOAT
if (field->data_size == sizeof(float) && PB_LTYPE(field->type) == PB_LTYPE_FIXED64)
{
return pb_encode_float_as_double(stream, *(float*)field->pData);
}
#endif
if (field->data_size == sizeof(uint32_t))
{
return pb_encode_fixed32(stream, field->pData);
}
#ifndef PB_WITHOUT_64BIT
else if (field->data_size == sizeof(uint64_t))
{
return pb_encode_fixed64(stream, field->pData);
}
#endif
else
{
PB_RETURN_ERROR(stream, "invalid data_size");
}
}
static bool checkreturn pb_enc_bytes(pb_ostream_t *stream, const pb_field_iter_t *field)
{
const pb_bytes_array_t *bytes = NULL;
bytes = (const pb_bytes_array_t*)field->pData;
if (bytes == NULL)
{
/* Treat null pointer as an empty bytes field */
return pb_encode_string(stream, NULL, 0);
}
if (PB_ATYPE(field->type) == PB_ATYPE_STATIC &&
bytes->size > field->data_size - offsetof(pb_bytes_array_t, bytes))
{
PB_RETURN_ERROR(stream, "bytes size exceeded");
}
return pb_encode_string(stream, bytes->bytes, (size_t)bytes->size);
}
static bool checkreturn pb_enc_string(pb_ostream_t *stream, const pb_field_iter_t *field)
{
size_t size = 0;
size_t max_size = (size_t)field->data_size;
const char *str = (const char*)field->pData;
if (PB_ATYPE(field->type) == PB_ATYPE_POINTER)
{
max_size = (size_t)-1;
}
else
{
/* pb_dec_string() assumes string fields end with a null
* terminator when the type isn't PB_ATYPE_POINTER, so we
* shouldn't allow more than max-1 bytes to be written to
* allow space for the null terminator.
*/
if (max_size == 0)
PB_RETURN_ERROR(stream, "zero-length string");
max_size -= 1;
}
if (str == NULL)
{
size = 0; /* Treat null pointer as an empty string */
}
else
{
const char *p = str;
/* strnlen() is not always available, so just use a loop */
while (size < max_size && *p != '\0')
{
size++;
p++;
}
if (*p != '\0')
{
PB_RETURN_ERROR(stream, "unterminated string");
}
}
#ifdef PB_VALIDATE_UTF8
if (!pb_validate_utf8(str))
PB_RETURN_ERROR(stream, "invalid utf8");
#endif
return pb_encode_string(stream, (const pb_byte_t*)str, size);
}
static bool checkreturn pb_enc_submessage(pb_ostream_t *stream, const pb_field_iter_t *field)
{
if (field->submsg_desc == NULL)
PB_RETURN_ERROR(stream, "invalid field descriptor");
if (PB_LTYPE(field->type) == PB_LTYPE_SUBMSG_W_CB && field->pSize != NULL)
{
/* Message callback is stored right before pSize. */
pb_callback_t *callback = (pb_callback_t*)field->pSize - 1;
if (callback->funcs.encode)
{
if (!callback->funcs.encode(stream, field, &callback->arg))
return false;
}
}
return pb_encode_submessage(stream, field->submsg_desc, field->pData);
}
static bool checkreturn pb_enc_fixed_length_bytes(pb_ostream_t *stream, const pb_field_iter_t *field)
{
return pb_encode_string(stream, (const pb_byte_t*)field->pData, (size_t)field->data_size);
}
#ifdef PB_CONVERT_DOUBLE_FLOAT
bool pb_encode_float_as_double(pb_ostream_t *stream, float value)
{
union { float f; uint32_t i; } in;
uint_least8_t sign;
int exponent;
uint64_t mantissa;
in.f = value;
/* Decompose input value */
sign = (uint_least8_t)((in.i >> 31) & 1);
exponent = (int)((in.i >> 23) & 0xFF) - 127;
mantissa = in.i & 0x7FFFFF;
if (exponent == 128)
{
/* Special value (NaN etc.) */
exponent = 1024;
}
else if (exponent == -127)
{
if (!mantissa)
{
/* Zero */
exponent = -1023;
}
else
{
/* Denormalized */
mantissa <<= 1;
while (!(mantissa & 0x800000))
{
mantissa <<= 1;
exponent--;
}
mantissa &= 0x7FFFFF;
}
}
/* Combine fields */
mantissa <<= 29;
mantissa |= (uint64_t)(exponent + 1023) << 52;
mantissa |= (uint64_t)sign << 63;
return pb_encode_fixed64(stream, &mantissa);
}
#endif
-18
View File
@@ -1,18 +0,0 @@
/* This section is only included if CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY
is set, to link some sections to BSS in PSRAM */
SECTIONS
{
/* external memory bss, from any global variable with EXT_RAM_ATTR attribute*/
.ext_ram.bss (NOLOAD) :
{
_ext_ram_bss_start = ABSOLUTE(.);
*(.ext_ram.bss*)
*libnet80211.a:(.dynsbss .sbss .sbss.* .gnu.linkonce.sb.* .scommon .sbss2.* .gnu.linkonce.sb2.* .dynbss .bss .bss.* .share.mem .gnu.linkonce.b.* COMMON)
*libpp.a:(.dynsbss .sbss .sbss.* .gnu.linkonce.sb.* .scommon .sbss2.* .gnu.linkonce.sb2.* .dynbss .bss .bss.* .share.mem .gnu.linkonce.b.* COMMON)
*liblwip.a:(.dynsbss .sbss .sbss.* .gnu.linkonce.sb.* .scommon .sbss2.* .gnu.linkonce.sb2.* .dynbss .bss .bss.* .share.mem .gnu.linkonce.b.* COMMON)
*libbt.a:(EXCLUDE_FILE (libbtdm_app.a) .dynsbss .sbss .sbss.* .gnu.linkonce.sb.* .scommon .sbss2.* .gnu.linkonce.sb2.* .dynbss .bss .bss.* .share.mem .gnu.linkonce.b.* COMMON)
. = ALIGN(4);
_ext_ram_bss_end = ABSOLUTE(.);
} > extern_ram_seg
}
-46
View File
@@ -1,46 +0,0 @@
/* Linker script to configure memory regions.
geeksville: modified this to simulate a nrf52832 but with a sd140 soft device. So I can
see how the memory footprint works on this lower end CPU. Note: to work with sd140 in my bootloader
I need to start ram at 0x6000 (instead of the correct 0x3600 for sd132) - so I have less
RAM available than on a real 832.
*/
SEARCH_DIR(.)
GROUP(-lgcc -lc -lnosys)
MEMORY
{
FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0x6D000 - 0x26000
/* FLASH (rx) : ORIGIN = 0x26000, LENGTH = 0xED000 - 0x26000 */
/* SRAM required by S132 depend on
* - Attribute Table Size
* - Vendor UUID count
* - Max ATT MTU
* - Concurrent connection peripheral + central + secure links
* - Event Len, HVN queue, Write CMD queue
*/
/* RAM (rwx) : ORIGIN = 0x20003600, LENGTH = 0x20010000 - 0x20003600 */
RAM (rwx) : ORIGIN = 0x20006000, LENGTH = 0x20010000 - 0x20006000
}
SECTIONS
{
. = ALIGN(4);
.svc_data :
{
PROVIDE(__start_svc_data = .);
KEEP(*(.svc_data))
PROVIDE(__stop_svc_data = .);
} > RAM
.fs_data :
{
PROVIDE(__start_fs_data = .);
KEEP(*(.fs_data))
PROVIDE(__stop_fs_data = .);
} > RAM
} INSERT AFTER .data;
INCLUDE "nrf52_common.ld"
-62
View File
@@ -1,62 +0,0 @@
; nrfjprog.exe configuration file.
; Note: QSPI flash is mapped into memory at address 0x12000000
[DEFAULT_CONFIGURATION]
; Define the capacity of the flash memory device in bytes. Set to 0 if no external memory device is present in your board.
; MX25R1635F is 16Mbit/2Mbyte
MemSize = 0x200000
; Define the desired ReadMode. Valid options are FASTREAD, READ2O, READ2IO, READ4O and READ4IO
ReadMode = READ4IO
; Define the desired WriteMode. Valid options are PP, PP2O, PP4O and PP4IO
WriteMode = PP4IO
; Define the desired AddressMode. Valid options are BIT24 and BIT32
AddressMode = BIT24
; Define the desired Frequency. Valid options are M2, M4, M8, M16 and M32
Frequency = M16
; Define the desired SPI mode. Valid options are MODE0 and MODE3
SpiMode = MODE0
; Define the desired SckDelay. Valid options are in the range 0 to 255
SckDelay = 0x80
; Define the desired IO level for DIO2 and DIO3 during a custom instruction. Valid options are LEVEL_HIGH and LEVEL_LOW
CustomInstructionIO2Level = LEVEL_LOW
CustomInstructionIO3Level = LEVEL_HIGH
; Define the assigned pins for the QSPI peripheral. Valid options are those existing in your device
CSNPin = 15
CSNPort = 1
SCKPin = 14
SCKPort = 1
DIO0Pin = 12
DIO0Port = 1
DIO1Pin = 13
DIO1Port = 1
DIO2Pin = 7
DIO2Port = 0
DIO3Pin = 5
DIO3Port = 0
; Define the Index of the Write In Progress (WIP) bit in the status register. Valid options are in the range of 0 to 7.
WIPIndex = 0
; Define page size for commands. Valid sizes are PAGE256 and PAGE512.
PPSize = PAGE256
; Custom instructions to send to the external memory after initialization. Format is instruction code plus data to send in between optional brakets.
; These instructions will be executed each time the qspi peripheral is initiated by nrfjprog.
; To improve execution speed on consecutive interations with QSPI, you can run nrfjprog once with custom initialization, and then comment out the lines below.
; Numbers can be given in decimal, hex (starting with either 0x or 0X) and binary (starting with either 0b or 0B) formats.
; The custom instructions will be executed in the order found.
; For MX25R1635F on TTGO board, only two data lines are connected
; This example includes two commands, first a WREN (WRite ENable) and then a WRSR (WRite Satus Register) enabling Quad Operation and the High Performance
; mode. For normal operation you might want low power mode instead.
InitializationCustomInstruction = 0x06
InitializationCustomInstruction = 0x01, [0x40, 0, 0x2]
-69
View File
@@ -1,69 +0,0 @@
; nrfjprog.exe configuration file.
; Note: QSPI flash is mapped into memory at address 0x12000000
[DEFAULT_CONFIGURATION]
; Define the capacity of the flash memory device in bytes. Set to 0 if no external memory device is present in your board.
; MX25R1635F is 16Mbit/2Mbyte
MemSize = 0x200000
; Define the desired ReadMode. Valid options are FASTREAD, READ2O, READ2IO, READ4O and READ4IO
ReadMode = READ2IO
; Define the desired WriteMode. Valid options are PP, PP2O, PP4O and PP4IO
WriteMode = PP
; Define the desired AddressMode. Valid options are BIT24 and BIT32
AddressMode = BIT24
; Define the desired Frequency. Valid options are M2, M4, M8, M16 and M32
Frequency = M16
; Define the desired SPI mode. Valid options are MODE0 and MODE3
SpiMode = MODE0
; Define the desired SckDelay. Valid options are in the range 0 to 255
SckDelay = 0x80
; Define the desired IO level for DIO2 and DIO3 during a custom instruction. Valid options are LEVEL_HIGH and LEVEL_LOW
CustomInstructionIO2Level = LEVEL_LOW
CustomInstructionIO3Level = LEVEL_HIGH
; Define the assigned pins for the QSPI peripheral. Valid options are those existing in your device
CSNPin = 15
CSNPort = 1
SCKPin = 14
SCKPort = 1
DIO0Pin = 12
DIO0Port = 1
DIO1Pin = 13
DIO1Port = 1
;These two pins are not connected, but we must name something
DIO2Pin = 3
DIO2Port = 1
DIO3Pin = 5
DIO3Port = 1
; Define the Index of the Write In Progress (WIP) bit in the status register. Valid options are in the range of 0 to 7.
WIPIndex = 0
; Define page size for commands. Valid sizes are PAGE256 and PAGE512.
PPSize = PAGE256
; Custom instructions to send to the external memory after initialization. Format is instruction code plus data to send in between optional brakets.
; These instructions will be executed each time the qspi peripheral is initiated by nrfjprog.
; To improve execution speed on consecutive interations with QSPI, you can run nrfjprog once with custom initialization, and then comment out the lines below.
; Numbers can be given in decimal, hex (starting with either 0x or 0X) and binary (starting with either 0b or 0B) formats.
; The custom instructions will be executed in the order found.
; This example includes two commands, first a WREN (WRite ENable) and then a WRSR (WRite Satus Register) enabling the Quad Operation and the High Performance
; mode for the MX25R6435F memory present in the nRF52840 DK.
;InitializationCustomInstruction = 0x06
;InitializationCustomInstruction = 0x01, [0x40, 0, 0x2]
; For MX25R1635F on TTGO board, only two data lines are connected
; This example includes two commands, first a WREN (WRite ENable) and then a WRSR (WRite Satus Register) disabling Quad Operation and the High Performance
; mode. For normal operation you might want low power mode instead.
InitializationCustomInstruction = 0x06
InitializationCustomInstruction = 0x01, [0x00, 0, 0x2]
+78 -346
View File
@@ -1,39 +1,30 @@
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[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 = 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 = nano-g1
;default_envs = pca10059_diy_eink
;default_envs = meshtastic-diy-v1
;default_envs = meshtastic-diy-v1.1
;default_envs = m5stack-coreink
[common]
; common is not currently used
; REQUIRED environment variables - if not set the specified default will be sued
; The following environment variables must be set in the shell if you'd like to override them.
; They are used in this ini file as systenv.VARNAME, so in your shell do export "VARNAME=fish"
; COUNTRY (default US), i.e. "export COUNTRY=EU865"
; HW_VERSION (default emptystring)
extra_configs = variants/*/platformio.ini
[env]
; note: APP_VERSION now comes from bin/version.json
extra_scripts = bin/platformio-custom.py
; note: we add src to our include search path so that lmic_project_config can override
@@ -43,83 +34,97 @@ extra_scripts = bin/platformio-custom.py
build_flags = -Wno-missing-field-initializers
-Wno-format
-Isrc -Isrc/mesh -Isrc/gps -Isrc/buzz -Wl,-Map,.pio/build/output.map
-DHW_VERSION_${sysenv.COUNTRY}
-DHW_VERSION=${sysenv.HW_VERSION}
-DUSE_THREAD_NAMES
-DTINYGPS_OPTION_NO_CUSTOM_FIELDS
-DPB_ENABLE_MALLOC=1
; the default is esptool
; upload_protocol = esp-prog
; monitor_speed = 115200
monitor_speed = 921600
# debug_tool = esp-prog
# debug_port = /dev/ttyACM0
debug_tool = jlink
;upload_protocol = jlink
; debug_tool = olimex-arm-usb-ocd-h
; upload_protocol = olimex-arm-usb-ocd-h
;debug_init_cmds =
; monitor adapter_khz 10000
monitor_speed = 115200
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#53580644255b48ebb7a737343c6b4e71c7e11cf2 ; ESP8266_SSD1306
mathertel/OneButton@^2.0.3 ; 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/SparkFun_Ublox_Arduino_Library.git#31015a55e630a2df77d9d714669c621a5bf355ad
https://github.com/meshtastic/RadioLib.git#80ed10d689a0568782c5bd152906b0f97d2bce93
https://github.com/meshtastic/TinyGPSPlus.git#f0f47067ef2f67c856475933188251c1ef615e79
https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460
https://github.com/meshtastic/arduino-fsm.git
https://github.com/meshtastic/TinyGPSPlus.git
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
https://github.com/meshtastic/ArduinoThread.git#72921ac222eed6f526ba1682023cee290d9aa1b3
nanopb/Nanopb@^0.4.6
; 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
lib_deps =
${env.lib_deps}
; Portduino is using meshtastic fork for now
https://github.com/jgromes/RadioLib.git
build_flags = ${env.build_flags} -Os
# -DRADIOLIB_GODMODE
build_src_filter = ${env.build_src_filter} -<portduino/>
src_filter = ${env.src_filter} -<portduino/>
; Common libs for communicating over TCP/IP networks such as MQTT
[networking_base]
lib_deps =
PubSubClient
meshtastic/json11@^1.0.2
; Common libs for environmental measurements in telemetry module
; (not included in native / portduino)
[environmental_base]
lib_deps =
adafruit/Adafruit BusIO@^1.11.4
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
adafruit/Adafruit INA260 Library@^1.5.0
adafruit/Adafruit INA219@^1.2.0
; Common settings for ESP targes, mixin with extends = esp32_base
[esp32_base]
extends = arduino_base
platform = espressif32
src_filter =
${arduino_base.src_filter} -<nrf52/>
upload_speed = 921600
platform = espressif32@3.5.0
build_src_filter =
${arduino_base.build_src_filter} -<nrf52/>
upload_speed = 115200
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
# -DUSE_NEW_ESP32_BLUETOOTH will enable the new NimBLE C++ api
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
-DAXP_DEBUG_PORT=Serial
-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 -DUSE_NEW_ESP32_BLUETOOTH
lib_deps =
${arduino_base.lib_deps}
${networking_base.lib_deps}
${environmental_base.lib_deps}
https://github.com/meshtastic/esp32_https_server.git
adafruit/DHT sensor library@^1.4.1
adafruit/Adafruit Unified Sensor@^1.1.4
# Hmm - this doesn't work yet
# board_build.ldscript = linker/esp32.extram.bss.ld
lib_ignore = segger_rtt
h2zero/NimBLE-Arduino@1.3.7
arduino-libraries/NTPClient@^3.1.0
lorol/LittleFS_esp32@^1.0.6
https://github.com/meshtastic/AXP202X_Library.git#8404abb6d4b486748636bc6ad72d2a47baaf5460
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
; Please don't delete these lines. JM uses them.
;upload_port = /dev/cu.SLAB_USBtoUART
;monitor_port = /dev/cu.SLAB_USBtoUART
@@ -127,309 +132,36 @@ upload_port = /dev/ttyUSB0
; http://docs.platformio.org/en/latest/platforms/espressif32.html#partition-tables
board_build.partitions = partition-table.csv
; not needed included in ttgo-t-beam board file
; also to use PSRAM https://docs.platformio.org/en/latest/platforms/espressif32.html#external-ram-psram
; -DBOARD_HAS_PSRAM
; -mfix-esp32-psram-cache-issue
; -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
; 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/>
; Common settings for NRF52 based targets
[nrf52_base]
; Instead of the standard nordicnrf52 platform, we use our fork which has our added variant files
; platform = nordicnrf52
; platform = nordicnrf52 ;pending https://github.com/platformio/builder-framework-arduino-nrf5/pull/7
platform = https://github.com/meshtastic/platform-nordicnrf52.git#merge
extends = arduino_base
build_type = debug ; I'm debugging with ICE a lot now
; note: liboberon provides the AES256 implementation for NRF52 (though not using the hardware acceleration of the NRF52840 - FIXME)
build_flags =
${arduino_base.build_flags} -Wno-unused-variable
-Isrc/nrf52
-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/>
-Isrc/nrf52
build_src_filter =
${arduino_base.build_src_filter} -<esp32/> -<nimble/> -<mesh/wifi/> -<mesh/http/> -<modules/esp32> -<mqtt/>
lib_ignore =
BluetoothOTA
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_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
# /home/kevinh/.platformio/packages/tool-jlink/JLinkGDBServerCLExe
# This doesn't work yet, so not using for now
disabled_debug_server =
/usr/bin/JLinkGDBServerCLExe
-singlerun
-if
SWD
-select
USB
-device
nRF52840_xxAA
-port
2331
-rtos
GDBServer/RTOSPlugin_FreeRTOS
debug_extra_cmds =
source gdbinit
; after programming the flash, reset the initial PC
; debug_load_cmds = load
; Set initial breakpoint (defaults to main)
debug_init_break =
;debug_init_break = tbreak loop
;debug_init_break = tbreak Reset_Handler
[nrf52840_base]
; Common base class for all nrf52840 based targets
extends = nrf52_base
build_flags = ${nrf52_base.build_flags}
lib_deps =
${arduino_base.lib_deps}
Adafruit nRFCrypto
# add Adafruit nRFCrypto platform IO automated scan is broken
${environmental_base.lib_deps}
https://github.com/Kongduino/Adafruit_nRFCrypto.git
[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
board = adafruit_feather_nrf52832
[env:rak815]
extends = nrf52_base
board = rak815
debug_tool = jlink
upload_protocol = jlink
monitor_port = /dev/ttyUSB0
; this board's serial chip can only run at 115200, not faster
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:t-echo]
extends = nrf52840_base
board = t-echo
# 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/t-echo
-DBUSY_PIN=3 -DRST_PIN=2 -DDC_PIN=28 -DCS_PIN=30
src_filter = ${nrf52_base.src_filter} +<../variants/t-echo>
lib_deps =
${nrf52840_base.lib_deps}
https://github.com/geeksville/EPD_Libraries.git
TFT_eSPI
;upload_protocol = fs
; First prototype eink/nrf52840/sx1262 device (removed from build because didn't ship in quantity)
;[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 -lgpiod
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
Submodule proto deleted from 5be5307c90

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