Git Product home page Git Product logo

firmware's Introduction

Meshtastic

CI CLA assistant Fiscal Contributors Vercel

Overview

Website and documentation source for the Meshtastic project.

Stats

Alt

Development & Building

For complete instructions on setting up your development environment and for building and running the project locally, please refer to our Local Development Guide.

firmware's People

Contributors

a-f-g-u-c avatar andrekir avatar caveman99 avatar code8buster avatar costonisp avatar crossan007 avatar d4rk4 avatar garethhcoleman avatar garthvh avatar geeksville avatar girtsf avatar github-actions[bot] avatar guvwaf avatar joshpirihi avatar jp-bennett avatar lewisxhe avatar markbirss avatar mc-hamster avatar mkinney avatar mverch67 avatar neilhao avatar osmanovv avatar prampec avatar professr avatar rcarteraz avatar s5nc avatar sachaw avatar thebentern avatar todd-herbert avatar vfurman-gh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

firmware's Issues

"make bootloader-flash" required for boards with old bootloaders

I have bought a Heltec Lora in November 2017 and just had it laying around,
never done anything with it.
After discovering Meshtastic I decided to give it a try, but apparently my bootloader was too old:
my display never went lit up or displayed the meshtastic logo.
After a bit of debugging I executed
make bootloader-flash
from another, recent esp project.
After this flashed the bootloader, I flashed the Heltec bin again, and now the device is working.
Just a heads up, that you might want to add this to the troubleshooting section.

esptool flasher might be corrupting system preferences on some boards?

Using both a (reasonably new) Motorola Moto G7 with Android 9, and a (super old) HTC One M7 with Android 4.4.

I tap "pair" on the phone, then sometimes get no response at all, other times get a prompt on the phone for a passkey, but get no key displayed on the device or serial port.

Also noticed the "signal xx seconds ago" display often resets to 0 at the instant you tap "pair".

Simplify bluetooth API

In chat @girtsf asked (wrt the python API library/tool he's developing):

what would be the tradeoffs for grouping most things into a single bluetooth characteristic and having a top-level proto with a oneof?

Yah, some of this is an accident of history. That was my original implementation - you can see some notes here in the inline docs for ToRadio and FromRadio:

https://github.com/meshtastic/Meshtastic-protobufs/blob/master/mesh.proto#L440

But I switched relatively early to the sixish ble characteristics you see there currently. There were two reasons (which kinda made since then but less so now):

  • With multiple characteristics I didn't need to build a state machine on the device side to provide complex behavior for when the phone reads FromRadio. i.e. I woudn't need to go "the phone has sent WantNodes to me, so I should send one node from the DB at a time until done with that and then go back to providing received messages from the mesh. In fact, thinking now about it I'm not sure such a statemachine is needed on the device side, it might be better to just pass through any RX mesh packets we have and only if none are waiting, send the node db records? (then let the phone be smart enough to not process those messages until it has a nodedb (which it needs to intelligently provide those messages to higher application layers)

  • I initially didn't have a working phone app (or trusted/working device bluetooth code), so it was super handy for me to be able to use a tool like NRFConnect to do initial debugging of the device side (and that tool doesn't understand protobufs).

Now that things are a bit more mature, I think it might be a super good idea to go back to just having only the two FromRadio and ToRadio characteristics. This could be done incrementally without breaking the android app by:

  1. initially develop your python API by using the current device code (unchanged) but only implement FromRadio handling (if a packet arrives there print it to your debug console) and ToRadio handling (just have a test function to send a test packet to the broadcast address of a "hello world" text message). This would allow you to get the basic device/app plumbing all working before having to change any device code.

At startup read from FromRadio until you get back an empty packet. From then on just subscribe to NOTIFY ble messages for FromRadio. (This is similar to the android app)

Don't implement/use any of the other characteristics.

  1. Uncomment the extra lines you see commented out in FromRadio and ToRadio. You'll also need to add a couple of other Protobufs in that 'API' for things like 'WantConfig', 'WantMyNodeInfo' etc... Change the device code that handles ToRadio writes to properly handle these new operations. Either you can do this, or if you don't feel comfortable yet mucking with that device code tell me you want me to do it.

  2. Finish your python API using just these two characteristics. (Separately I'll change the android app to only use these two characteristics)

  3. Delete the 4ish unneeded characteristics from the docs and the device code.

(cc @jeksys because useful and relevant to you)

Bluetooth Won't Pair

I tried .7 and .8 alpha release and the TTGO V1 will not pair with the phone or tablets. Shows the pin code on he screen.

Use either button-press or fixed-pin for screenless device pairing

The TTGO T-BEAM device does not come with a screen by default. Pairing currently displays a PIN on the device screen and then asks you to type it into the phone. We should set the right bluetooth flag when pairing to fall back to some simpler pairing mechanism if a screen does not exist.

PowerFSM onEnter calls sendNetworkPing(broadcast), that is sub optimal

When the user presses the button we currently ask all nodes for an update. Instead of calling sendNetworkPing(BROADCAST) we should be calling it with the ID of the node that the user is currently displaying in the display.

Fix this by adding a getDisplayedNode() function to Screen. That function should return null if we are not looking at a node, otherwise it should return the node we are watching. in PowerFSM onEnter() if that node is null do nothing, otherwise send the ping only to that node.

"no radio was able to send packet"

canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
canSleep, mode=3, isRx=0, txEmpty=0, txGood=168
NOTE! Recording critical error 2, address=0
Setting bluetooth enable=0
Shutdown BT: 170596 heap size
Exit light sleep gpio: btn=0, rf95=1
wakeCause 7
Trigger powerFSM 2
Transition powerFSM transition=Wake timer, from=LS to=DARK
Looking for GPS lock
Setting bluetooth enable=1
Pre BT: 170596 heap size
Starting bluetooth
*** Mesh service:
fix type 3
ERROR! Bug! Tx packet took too long to send, forcing radio into rx mode
NOTE! Recording critical error 1, address=0
sending owner !246f28b200b4/bob/b
Update DB node 0xb4, rx_time=1587178505
old user !246f28b200b4/bob/b
updating changed=0 user !246f28b200b4/bob/b
Deleting old broadcast record 0
Adding broadcast record for fr=0xb4,to=0xff,id=194
Sending packet via interface fr=0xb4,to=0xff,id=194
immediate send on mesh fr=0xb4,to=0xff,id=194
(txGood=168,rxGood=141,rxBad=2)
pmu irq!
Battery fully charged
fix type 3
new gps pos lat=37.521136, lon=-122.309262, alt=115
got gps notify
Sending position to mesh
Update DB node 0xb4, rx_time=1587178514
Providing time to mesh 1587178514
Deleting old broadcast record 0
Adding broadcast record for fr=0xb4,to=0xff,id=195
Sending packet via interface fr=0xb4,to=0xff,id=195
enquing packet for send from=0xb4, to=0xff
No radio was able to send packet, discarding...
pmu irq!
Battery start charging
pmu irq!
Battery fully charged
ERROR! Bug! Tx packet took too long to send, forcing radio into rx mode
NOTE! Recording critical error 1, address=0
pmu irq!
Battery start charging
fix type 3
pmu irq!
Battery fully charged
fix type 3
new gps pos lat=37.521136, lon=-122.309262, alt=115
got gps notify
Sending position to mesh
Update DB node 0xb4, rx_time=1587178554
Providing time to mesh 1587178554
Deleting old broadcast record 0
Adding broadcast record for fr=0xb4,to=0xff,id=196
Sending packet via interface fr=0xb4,to=0xff,id=196
immediate send on mesh fr=0xb4,to=0xff,id=196
(txGood=168,rxGood=141,rxBad=2)
pmu irq!
Battery start charging
pmu irq!
Battery fully charged
sending owner !246f28b200b4/bob/b
Update DB node 0xb4, rx_time=1587178565
old user !246f28b200b4/bob/b
updating changed=0 user !246f28b200b4/bob/b
Deleting old broadcast record 0
Adding broadcast record for fr=0xb4,to=0xff,id=197
Sending packet via interface fr=0xb4,to=0xff,id=197
enquing packet for send from=0xb4, to=0xff
No radio was able to send packet, discarding...
pmu irq!
Battery start charging

Core Panic on Firmware .2

TTGO LORA32 V1

ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
booted, wake cause 0 (boot count 1), reset_reason=reset
No I2C devices found
Meshtastic swver=0.2.0, hwver=1.0-US
Read RTC time as 173 (cur millis 42) valid=0
ERROR: No bidirectional GPS found, hoping that it still might work
Loading saved preferences
Warn: devicestate is old, discarding
NODENUM=0x4, dbsize=1
Starting meshradio init...
IRQ flag mask 0x0
Set radio: name=Default. config=3, ch=6, txpower=23
sending owner !246f28978300/Unknown 8300/?00
Update DB node 0x4 for variant 4, rx_time=0
old user !246f28978300/Unknown 8300/?00
updating changed=0 user !246f28978300/Unknown 8300/?00
immedate send on mesh (txGood=0,rxGood=0,rxBad=0)
Screen: Started...
showing standard frames
Transition powerFSM transition=boot timeout, from=BOOT to=ON
Setting bluetooth enable=1
Pre BT: 197256 heap size
Starting bluetooth
*** Mesh service:

Turning on screen
**Guru Meditation Error: Core 1 panic'ed (StoreProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x4000c46c PS : 0x00060330 A0 : 0x800d8b40 A1 : 0x3ffd90b0
A2 : 0x00000000 A3 : 0x00000000 A4 : 0x00000400 A5 : 0x00000000
A6 : 0x0000003a A7 : 0x00000040 A8 : 0x00000000 A9 : 0x00000000
A10 : 0x00000000 A11 : 0x00000001 A12 : 0x00000050 A13 : 0x00000000
A14 : 0x00000000 A15 : 0x00000000 SAR : 0x0000000a EXCCAUSE: 0x0000001d
EXCVADDR: 0x00000000 LBEG : 0x4000c46c LEND : 0x4000c477 LCOUNT : 0x0000003f

Backtrace: 0x4000c46c:0x3ffd90b0 0x400d8b3d:0x3ffd90c0 0x400d93f8:0x3ffd90e0 0x400d949d:0x3ffd9100 0x400d6613:0x3ffd9130 0x400d4a33:0x3ffd9160 0x400d55a7:0x3ffd9190 0x400e5945:0x3ffd91c0 0x4008ee31:0x3ffd91e0**

rebooting

RH95 driver does spi accesses from the ISR and tries to grab mutexes!

after an eight 8hr stress test one of the nodes entered this reboot loop:

updating changed=0 user !2462abdddf38/Unknown df38/?38
Deleting old broadcast record 0
Deleting old broadcast record 0
Deleting old broadcast record 0
Adding broadcast record for fr=0x38,to=0xff,id=60
Sending packet via interface fr=0x38,to=0xff,id=60
immediate send on mesh fr=0x38,to=0xff,id=60
 (txGood=1018,rxGood=794,rxBad=0)
Deleting old broadcast record 0
Found existing broadcast record for fr=0x38,to=0xff,id=60
Ignoring incoming floodmsg, because we've already seen it
fix type 3
Notifying observers of received packet fr=0xb4,to=0x38,id=214
Trigger powerFSM 3
Ignoring incoming time, because we have a GPS
Forwarding to phone, from=0xb4, rx_time=1587236495
Update DB node 0xb4, rx_time=1587236495
old user !246f28b200b4/bob/b
updating changed=0 user !246f28b200b4/bob/b
NOTE: tophone queue is full, discarding oldest
Adding broadcast record for fr=0xb4,to=0xff,id=215
Rebroadcasting received floodmsg to neighbors fr=0xb4,to=0xff,id=215
Sending packet via interface fr=0xb4,to=0xff,id=215
immediate send on mesh fr=0xb4,to=0xff,id=215
 (txGood=1019,rxGood=797,rxBad=0)
Notifying observers of received packet fr=0xb4,to=0xff,id=215
Trigger powerFSM 3
Ignoring incoming time, because we have a GPS
Received broadcast Owner from 0xb4, replying with our owner
sending owner !2462abdddf38/Unknown df38/?38
Update DB node 0x38, rx_time=1587236498
old user !2462abdddf38/Unknown df38/?38
updating changed=0 user !2462abdddf38/Unknown df38/?38
Sending packet via interface fr=0x38,to=0xb4,id=61
enquing packet for send from=0x38, to=0xb4
Forwarding to phone, from=0xb4, rx_time=1587236498
Update DB node 0xb4, rx_time=1587236498
old user !246f28b200b4/bob/b
updating changed=0 user !246f28b200b4/bob/b
NOTE: tophone queue is full, discarding oldest
Screen: Joined: bob
fix type 3
fix type 3
new gps pos lat=37.521061, lon=-122.309048, alt=189
got gps notify
Sending position to mesh
Update DB node 0x38, rx_time=1587236515
Providing time to mesh 1587236515
Deleting old broadcast record 0
Deleting old broadcast record 0
Adding broadcast record for fr=0x38,to=0xff,id=62
Sending packet via interface fr=0x38,to=0xff,id=62
immediate send on mesh fr=0x38,to=0xff,id=62
 (txGood=1021,rxGood=797,rxBad=0)
/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/queue.c:1446 (xQueueGenericReceive)- assert failed!
abort() was called at PC 0x4009105f on core 1

Backtrace: 0x40094cb4:0x3ffbe7e0 0x40094ee5:0x3ffbe800 0x4009105f:0x3ffbe820 0x400e7da1:0x3ffbe860 0x400d8c70:0x3ffbe880 0x400d690d:0x3ffbe8a0 0x400d6a91:0x3ffbe8c0 0x400d6d55:0x3ffbe8e0 0x400d63d1:0x3ffbe900 0x40081307:0x3ffbe940 0x4008137d:0x3ffbe960 0x40087d85:0x3ffbe980 0x4000bfed:0x3ffdc040 0x40092545:0x3ffdc050 0x400919f8:0x3ffdc070 0x400e6f9e:0x3ffdc0a0 0x400e73b7:0x3ffdc0d0 0x400d88b1:0x3ffdc0f0 0x400d890d:0x3ffdc110 0x400d8a3d:0x3ffdc130 0x400dbf4c:0x3ffdc150 0x400dc643:0x3ffdc170 0x400d84b7:0x3ffdc1a0 0x400d56c0:0x3ffdc1c0 0x400d3f5e:0x3ffdc1e0 0x400d3f37:0x3ffdc210 0x400d5be9:0x3ffdc240 0x400e8b31:0x3ffdc270 0x400913c9:0x3ffdc290

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
booted, wake cause 0 (boot count 1), reset_reason=reset
I2C device found at address 0x34
axp192 PMU found
I2C device found at address 0x3c
ssd1306 display found
done
Meshtastic swver=0.0.0, hwver=1.0 - US
Turning on screen
chip id detect 0x3
Detect CHIP :AXP192
OUTPUT Register 0x5f
AXP192 Begin PASS
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: ENABLE
DCDC3: ENABLE
Exten: ENABLE
----------------------------------------
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: ENABLE
DCDC3: ENABLE
Exten: ENABLE
SRC REG:0xc4
Charging enable is enable
Charging target-voltage : 0x2
 end when the charge current is lower than 10% of the set value
Charge current : 700.00 mA
Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
Core 1 register dump:
PC      : 0x40081369  PS      : 0x00050034  A0      : 0x40087d88  A1      : 0x3ffbe960  
A2      : 0x00000015  A3      : 0x3ffd2db4  A4      : 0x00000000  A5      : 0x04000000  
A6      : 0x00000004  A7      : 0x3ffbb130  A8      : 0x00000001  A9      : 0x00000020  
A10     : 0x00000020  A11     : 0x00000000  A12     : 0x800948fb  A13     : 0x3ffdc020  
A14     : 0x3ffb9a20  A15     : 0xbaad5678  SAR     : 0x00000015  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x400029ac  LEND    : 0x400029cb  LCOUNT  : 0x00000000  
Core 1 was running in ISR context:
EPC1    : 0x4000bff0  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x40081369

Backtrace: 0x40081369:0x3ffbe960 0x40087d85:0x3ffbe980 0x4000bfed:0x3ffdc070 0x40092545:0x3ffdc080 0x400ebe77:0x3ffdc0a0 0x400ebecd:0x3ffdc0e0 0x400e65ed:0x3ffdc110 0x400e6699:0x3ffdc140 0x400d593e:0x3ffdc160 0x400d5a40:0x3ffdc180 0x400e8b1f:0x3ffdc1c0 0x400913c9:0x3ffdc1e0

Core 0 register dump:
PC      : 0x4019cf5e  PS      : 0x00060134  A0      : 0x800eb539  A1      : 0x3ffbc700  
A2      : 0x00000000  A3      : 0x00000001  A4      : 0x00000000  A5      : 0x00000001  
A6      : 0x00060320  A7      : 0x00000000  A8      : 0x800ea75a  A9      : 0x3ffbc6d0  
A10     : 0x00000000  A11     : 0x00000001  A12     : 0x800915dc  A13     : 0x3ffbd5e0  
A14     : 0x00000000  A15     : 0x3ffbc400  SAR     : 0x00000000  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  

Backtrace: 0x4019cf5e:0x3ffbc700 0x400eb536:0x3ffbc720 0x40092bbd:0x3ffbc740 0x400913c9:0x3ffbc760

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
booted, wake cause 0 (boot count 1), reset_reason=reset
I2C device found at address 0x34
axp192 PMU found
I2C device found at address 0x3c
ssd1306 display found
done
Meshtastic swver=0.0.0, hwver=1.0 - US
Turning on screen
chip id detect 0x3
Detect CHIP :AXP192
OUTPUT Register 0x5f
AXP192 Begin PASS
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: ENABLE
DCDC3: ENABLE
Exten: ENABLE
----------------------------------------
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: ENABLE
DCDC3: ENABLE
Exten: ENABLE
SRC REG:0xc4
Charging enable is enable
Charging target-voltage : 0x2
 end when the charge current is lower than 10% of the set value
Charge current : 700.00 mA
Guru Meditation Error: Core  1 panic'ed (Interrupt wdt timeout on CPU1)
Core 1 register dump:
PC      : 0x40081369  PS      : 0x00050034  A0      : 0x40087d88  A1      : 0x3ffbe960  
A2      : 0x00000015  A3      : 0x3ffd2db4  A4      : 0x00000000  A5      : 0x04000000  
A6      : 0x00000004  A7      : 0x3ffbb130  A8      : 0x00000001  A9      : 0x00000020  
A10     : 0x00000020  A11     : 0x00000000  A12     : 0x800948fb  A13     : 0x3ffdc020  
A14     : 0x3ffb9a20  A15     : 0xbaad5678  SAR     : 0x00000015  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x400029ac  LEND    : 0x400029cb  LCOUNT  : 0x00000000  
Core 1 was running in ISR context:
EPC1    : 0x4000bff0  EPC2    : 0x00000000  EPC3    : 0x00000000  EPC4    : 0x40081369

Backtrace: 0x40081369:0x3ffbe960 0x40087d85:0x3ffbe980 0x4000bfed:0x3ffdc070 0x40092545:0x3ffdc080 0x400ebe77:0x3ffdc0a0 0x400ebecd:0x3ffdc0e0 0x400e65ed:0x3ffdc110 0x400e6699:0x3ffdc140 0x400d593e:0x3ffdc160 0x400d5a40:0x3ffdc180 0x400e8b1f:0x3ffdc1c0 0x400913c9:0x3ffdc1e0

Core 0 register dump:
PC      : 0x4019cf5e  PS      : 0x00060134  A0      : 0x800eb539  A1      : 0x3ffbc700  
A2      : 0x00000000  A3      : 0x00000001  A4      : 0x00000000  A5      : 0x00000001  
A6      : 0x00060320  A7      : 0x00000000  A8      : 0x800ea75a  A9      : 0x3ffbc6d0  
A10     : 0x00000000  A11     : 0x00000001  A12     : 0x800915dc  A13     : 0x3ffbd5e0  
A14     : 0x00000000  A15     : 0x3ffbc400  SAR     : 0x00000000  EXCCAUSE: 0x00000006  
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000  

Backtrace: 0x4019cf5e:0x3ffbc700 0x400eb536:0x3ffbc720 0x40092bbd:0x3ffbc740 0x400913c9:0x3ffbc760

Rebooting...
ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
booted, wake cause 0 (boot count 1), reset_reason=reset
I2C device found at address 0x34
axp192 PMU found
I2C device found at address 0x3c
ssd1306 display found
done
Meshtastic swver=0.0.0, hwver=1.0 - US
Turning on screen
chip id detect 0x3
Detect CHIP :AXP192
OUTPUT Register 0x5f
AXP192 Begin PASS
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: ENABLE
DCDC3: ENABLE
Exten: ENABLE
----------------------------------------
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: ENABLE
DCDC3: ENABLE

Android App Causing Radio to Reboot

After pairing, in the setting I see the radio. When I select other menu items it just sends the radio into a boot loop.

ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5828
entry 0x400806ac
booted, wake cause 0 (boot count 1), reset_reason=reset
I2C device found at address 0x3c
ssd1306 display found
done
Meshtastic swver=0.2.0, hwver=1.0-US
Turning on screen
Read RTC time as 29 (cur millis 89) valid=0
ERROR: No bidirectional GPS found, hoping that it still might work
Loading saved preferences
Warn: devicestate is old, discarding
NODENUM=0x4, dbsize=1
Starting meshradio init...
IRQ flag mask 0x0
Set radio: name=Default. config=3, ch=6, txpower=23
sending owner !246f28978300/Unknown 8300/?00
Update DB node 0x4 for variant 4, rx_time=0
old user !246f28978300/Unknown 8300/?00
updating changed=0 user !246f28978300/Unknown 8300/?00
immedate send on mesh (txGood=0,rxGood=0,rxBad=0)
Screen: Started...
showing standard frames
Transition powerFSM transition=boot timeout, from=BOOT to=ON
Setting bluetooth enable=1
Pre BT: 194964 heap size
Starting bluetooth
*** Mesh service:
onAuthenticationComplete -> success size: 12
showing standard frames
Trigger powerFSM 9
Error: can't encode protobuf unterminated string
assertion "0" failed: file "src/mesh-pb-constants.cpp", line 17, function: size_t pb_encode_to_bytes(uint8_t*, size_t, const pb_msgdesc_t*, const void*)
abort() was called at PC 0x400fea63 on core 0

Backtrace: 0x4009271c:0x3ffe2070 0x4009294d:0x3ffe2090 0x400fea63:0x3ffe20b0 0x400d577e:0x3ffe20e0 0x400d314a:0x3ffe2120 0x400d31db:0x3ffe2170 0x400d31f2:0x3ffe2190 0x400dcda1:0x3ffe21b0 0x400e1135:0x3ffe2460 0x400df911:0x3ffe2480 0x400dfd0d:0x3ffe24d0 0x400df361:0x3ffe24f0 0x400ddcbd:0x3ffe2550 0x4011dca1:0x3ffe2570 0x40117d52:0x3ffe25b0 0x4008ee31:0x3ffe25e0

Rebooting...

TBEAM shipping currently not available to US

Interesting...
I just went to purchase a TBEAM unit from your link to Ali Express. Selected the 915mHz unit. Received this message:
"Unable to ship to the US".
Not sure if its COVID-related or another issue. Might be good to find multiple sources of these products if possible.

Make debug info screen show real data

  • Show battery voltage & charging status
  • Show GPS lock/no-lock

Getting battery percentage isn't trivial. We could look into calculating it from the voltage, or doing coulomb counting by polling axp192 current/voltage registers.

Oled is upside down

Flashed one of my T-Beam's with 0.1.8
The screen is upside down compared to the other T-Beam which is running 0.1.7
IMG_20200319_193141
The right one in the picture is running 0.1.8
The T-Beam is a V1.0.

Need documentation to add additional boards

Interesting project. I thought I could use it for my next video. I have many LoRa boards. Unfortunately not the ones you support. For example, I have a few of those: https://www.aliexpress.com/item/4000438284523.html or those: https://www.aliexpress.com/item/32825749403.html .
When I upload the .bin file according to your instruction, the Heltec only reboots. If I upload your platformIO project to a T-beam without a display, at least I see that it runs in Serial.

I would like to get a description of the different pins to change and maybe to switch GPS off if not available. Then maybe I could add the boards I own.

sometimes we fail to complete lora message tx

version 0.1.8 -It was happening on previous version too, this time about ten minutes after flashing. I dont know if its always the same node. I will check this time it was my node ending 44.

canSleep, mode=3, isRx=0, txEmpty=0, txGood=4
canSleep, mode=3, isRx=0, txEmpty=0, txGood=4
canSleep, mode=3, isRx=0, txEmpty=0, txGood=4
Trigger powerFSM 9
Transition powerFSM transition=Contact from phone, from=DARK to=DARK
pbread from ea9f3f82-8dc4-4733-9452-1f6da28892a2 returns 30 bytes
canSleep, mode=3, isRx=0, txEmpty=0, txGood=4
canSleep, mode=3, isRx=0, txEmpty=0, txGood=4
canSleep, mode=3, isRx=0, txEmpty=0, txGood=4
canSleep, mode=3, isRx=0, txEmpty=0, txGood=4
canSleep, mode=3, isRx=0, txEmpty=0, txGood=4
canSleep, mode=3, isRx=0, txEmpty=0, txGood=4

previously I didn't see the message in the middle, its usually just the other lines scrolling very quickly. Cannot get screen to turn on or anything happening by pressing the button. Blue led is off, have to press RST button then it works again. I am tending to leave my units on all they time, this problem usually arise some minutes after boot. I will see if I can capture the preceeding message by running the terminal through tee, or make it log to file.

Currently we always claim GPS is available on TTGO boards

Based on a comment from @claesg that he got the TBEAM load working with this: https://www.banggood.com/LILYGO-TTGO-LORA32-868Mhz-SX1276-ESP32-Oled-Display-bluetooth-WIFI-Lora-Development-Module-Board-p-1248652.html?cur_warehouse=UK

We should probably change the way we set the flag in NodeDB.cpp:

    myNodeInfo.has_gps = true;

based on board type. But really, we should always set that flag based on "have we ever successfully talked to the GPS" - this should be done from GPS.cpp if the encode() routine ever returns true.

This would allow proper reporting of that flag to phones based on what we dynamically discovered to actually be connected on our board. This is important, because if the phone sees that flag as false, it assumes the local device doesn't have a GPS so the phone spends battery to periodically use the android GPS to send location data for the current node.

Guru Meditation Error: Core 1 panic'ed (InstrFetchProhibited)

I've got this on both nodes, I did a git pull yesterday, and built myself - I notice there are a few commits since the last release zip, its in MeshService.cpp:204 which is handleFromRadio();
Here is stack and decode from both, they are very similar, it could also be some external library/framework though,:

scott@n550jk:~/pio/Meshtastic-esp32$ bin/exception_decoder.py -p ESP32 -e .pio/build/tbeam/firmware.elf /tmp/crash1
stack:
0x400d39d5: MeshService::loop() at /home/scott/pio/Meshtastic-esp32/src/MeshService.cpp:204
0x400d5ff3: loop() at /home/scott/pio/Meshtastic-esp32/src/main.cpp:319
0x400e799d: loopTask(void*) at /home/scott/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:19
0x400913c9: vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
scott@n550jk:~/pio/Meshtastic-esp32$ bin/exception_decoder.py -p ESP32 -e .pio/build/tbeam/firmware.elf /tmp/crash2
stack:
0x400d39d5: MeshService::loop() at /home/scott/pio/Meshtastic-esp32/src/MeshService.cpp:204
0x400d5ff3: loop() at /home/scott/pio/Meshtastic-esp32/src/main.cpp:319
0x400e799d: loopTask(void*) at /home/scott/.platformio/packages/framework-arduinoespressif32/cores/esp32/main.cpp:19
0x400913c9: vPortTaskWrapper at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/port.c:355 (discriminator 1)
scott@n550jk:~/pio/Meshtastic-esp32$ cat /tmp/crash1 /tmp/crash2
Guru Meditation Error: Core  1 panic'ed (InstrFetchProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x3ffe9300  PS      : 0x00060330  A0      : 0x800d39d8  A1      : 0x3ffd8ce0  
A2      : 0x3ffc54c0  A3      : 0x3ffe7d08  A4      : 0x00000005  A5      : 0x00000000  
A6      : 0x00000000  A7      : 0x3ffd6e00  A8      : 0x800d39c4  A9      : 0x3ffd8cb0  
A10     : 0x3ffe91d8  A11     : 0x00000005  A12     : 0x00000000  A13     : 0x00000020  
A14     : 0x00060920  A15     : 0x00000000  SAR     : 0x00000004  EXCCAUSE: 0x00000014  
EXCVADDR: 0x3ffe9300  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0xffffffff  

Backtrace: 0x3ffe9300:0x3ffd8ce0 0x400d39d5:0x3ffd8d00 0x400d5ff3:0x3ffd8d20 0x400e799d:0x3ffd8d50 0x400913c9:0x3ffd8d70
Guru Meditation Error: Core  1 panic'ed (InstrFetchProhibited). Exception was unhandled.
Core 1 register dump:
PC      : 0x3ffe9238  PS      : 0x00060330  A0      : 0x800d39d8  A1      : 0x3ffd8ce0  
A2      : 0x3ffc54c0  A3      : 0x3ffe8bf4  A4      : 0x00000005  A5      : 0x00000000  
A6      : 0x00000000  A7      : 0x3ffd6e00  A8      : 0x800d39c4  A9      : 0x3ffd8cb0  
A10     : 0x3ffe9238  A11     : 0x00000005  A12     : 0x00000001  A13     : 0x0000001c  
A14     : 0x3ffc52c8  A15     : 0x3ffd8c7c  SAR     : 0x0000000e  EXCCAUSE: 0x00000014  
EXCVADDR: 0x3ffe9238  LBEG    : 0x4000c46c  LEND    : 0x4000c477  LCOUNT  : 0x00000000  

Backtrace: 0x3ffe9238:0x3ffd8ce0 0x400d39d5:0x3ffd8d00 0x400d5ff3:0x3ffd8d20 0x400e799d:0x3ffd8d50 0x400913c9:0x3ffd8d70
scott@n550jk:~/pio/Meshtastic-esp32$ 

I triggered it again a few times both nodes had canSleep, mode=4, isRx=0, txEmpty=1, txGood=3 repeating on the debug output and I woke them both up with button press, and one node had similar crash addresses to the above when sending packet to the node - maybe related to new receive collision avoidance? Apologies if this is expected, or due to my environment, I know you are doing a lot of great work and the normal release mechanism is via the zipfile. I thought I would add this in case you hadn't seen it.

TBEAM stuck in loop (deep sleep for zero seconds)

From @claesg

TTGO T-BEAN stuck in boot loop.

Yesterday it was running fine (on 0.1.0) and this morning it was dead. I connected it to arduino ide and the serial monitor and noticed that it was looping:
k⸮⸮)Setting GPS power=0
ets Jun 8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5816
entry 0x400806ac
booted, wake cause 4 (boot count 6)
I2C device found at address 0x34
axp192 PMU found
I2C device found at address 0x3c
ssd1306 display found
done
chip id detect 0x3
Detect CHIP :AXP192
OUTPUT Register 0x57
AXP192 Begin PASS
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: DISABLE
DCDC3: ENABLE

Exten: ENABLE
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: ENABLE
DCDC3: ENABLE
Exten: ENABLE
SRC REG:0xc4
Charging enable is enable
Charging target-voltage : 0x2
end when the charge current is lower than 10% of the set value
Charge current : 700.00 mA
enable [0x40]val:0xdc
enable [0x41]val:0xff
Meshtastic swver=0.1.0, hwver=1.0-EU
Read RTC time as 21 (cur millis 1503) valid=0
Screen: Started...
Loading saved preferences
NODENUM=0xa0, dbsize=1
Starting meshradio init...
IRQ flag mask 0x0
Set radio: name=. config=0, ch=0, txpower=0
Trigger powerFSM 6
Transition powerFSM transition=Boot, from=DARK to=ON
Setting bluetooth enable=1
Pre BT: 187784 heap size
Starting bluetooth

  • Mesh service:
    Transition powerFSM transition=Screen-on timeout, from=ON to=DARK
    Transition powerFSM transition=Phone timeout, from=DARK to=NB
    Setting bluetooth enable=0
    Shutdown BT: 186980 heap size
    Transition powerFSM transition=Min wake timeout, from=NB to=LS
    Transition powerFSM transition=mesh timeout, from=LS to=SDS
    Setting GPS power=1
    Looking for GPS lock
    Entering deep sleep for 0 seconds
    Writing preferences
    Setting GPS power=0
    ets Jun 8 2016 00:22:57

rst:0x5 (DEEPSLEEP_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:8896
load:0x40080400,len:5816
entry 0x400806ac
booted, wake cause 4 (boot count 7)
I2C device found at address 0x34
axp192 PMU found
I2C device found at address 0x3c
ssd1306 display found
done
chip id detect 0x3
Detect CHIP :AXP192
OUTPUT Register 0x57
AXP192 Begin PASS
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: DISABLE
DCDC3: ENABLE

Exten: ENABLE
DCDC1: ENABLE
DCDC2: ENABLE
LDO2: ENABLE
LDO3: ENABLE
DCDC3: ENABLE
Exten: ENABLE
SRC REG:0xc4
Charging enable is enable
Charging target-voltage : 0x2
end when the charge current is lower than 10% of the set value
Charge current : 700.00 mA
enable [0x40]val:0xdc
enable [0x41]val:0xff
Meshtastic swver=0.1.0, hwver=1.0-EU
Read RTC time as 25 (cur millis 1503) valid=0
Screen: Started...
Loading saved preferences
NODENUM=0xa0, dbsize=1
Starting meshradio init...
IRQ flag mask 0x0
Set radio: name=. config=0, ch=0, txpower=0
Trigger powerFSM 6
Transition powerFSM transition=Boot, from=DARK to=ON
Setting bluetooth enable=1
Pre BT: 187784 heap size
Starting bluetooth

  • Mesh service:
    Transition powerFSM transition=Screen-on timeout, from=ON to=DARK
    Transition powerFSM transition=Phone timeout, from=DARK to=NB

Setting bluetooth enable=0
I tried to reflash meshtastic but it did not help. I had to flash 'wifi scan' example from the ide which it accepted and it was working. I then flashed meshtastic and this time it is working as expected. Maybe the log above can tell what happened?

Sorry about the strange formatting.

Let clients subscribe to multiple channels at once (and possibly change terminology)

per good feedback from @cyclomies:

The simplicity of the app, including the other parts of this project as well, is greate. The ability to communicate with all channel users are nice, and all hikers can start using the app with minimal knowledge of the system.

There could be these logical ways to send text messages between users:

a chat for one to all mesh users (default cryptography)
one to one text messages (whoever on the mesh, default cryptography)
public rooms within the mesh (all users can join and use the room, default cryptography)
private rooms for one to many (selected users, private PSK)
unencrypted room for everyone to send emergency messages (totally unencrypted, whoever on the MHz band can open the plain modulation)
Private rooms could be using a different PSK, but the same mesh network settings.

Rooms can be problematic, as they might increase amount of packets. If there are a lot of users within the rooms, unicast messages might become as dense as broadcast messages on the mesh (as almost all messages has to be sent to several nodes).

What about renaming channel to network settings or similar, to empathize the differences between chat rooms, the physical networking settings, and mesh settings? Settings should still be easily set up (working defaults).

Add support for a 'I need emergency help' button.

This is a short user story, so that we don't forget this idea and do it sometime post beta. It would need a fair amount of user testing and feedback and proceed in stages.

Stage 1: User falls and hurts their ankle, they long press on the button. The device prompts "release and press three more times to call for help." After the user presses three times the device enters emergency mode.

While in emergency mode all the normal features work the same, but a location packet with the "I need help" bit is also broadcast to the entire mesh every 5 minutes.

When another node receives this packet the screen lights up (showing direction and distance and help) and led flashes. The associated phone (if connected) will chime with a notification. Presumably this will prompt the users friends who are on this same channel to ask what's up. One of those users takes responsiblity for messaging the injured person and calling 911 as needed/possible.

After discussing stage 1 with other users/devs and implementing stage one we get feedback on utility (by this point we will probably have a couple of hundred users of the beta - and real data on how these devices are working for users on hikes etc).

If Stage 1 goes well, Stage 2: Add noonlight support to the app. In this case the flow would be as above except any of the members who have cell coverage would be offered the option to "Report this problem to 911", then the user would be asked to double confirm. Then we'd use the API to put in a call giving the gps coords of the person who had the accident but the contact information of the person who is acting as their agent for talking to 911. The noonlight service would then call/text the person who reported the accident and get more info, tripple confirm this is a real emergency etc... and contact first responders.

This user story was prompted because I was contacted by a product manager for Noonlight. After a useful email conversation between the two of us I decided to capture this as an issue, so that we can work for this after the beta release.

Good ideas for docs or videos new developers could contribute ;-)

doc/video ideas:

It would be awesome if someone wants to make these happen!

  • how to pair with phone, how to use GUI on phone, how to send/receive a text message
  • how to use gui on device, how to navigate to someone else
  • how to understand the serial log output on the device, what messages mean phone is talking etc...

(Based on discussion with @SensorsIot)

Heltec Lora32 is not really the same as ttgo lora32

theory, it is the flash partitioning.

I think I have a pretty good theory on what is wrong with programming your device (I just reproed it on a similar device of mine). Some kind soul reported that the HELTEC image works fine on the TTGO LoRa32, but I think that somewhat depends on luck because I think TTGO and Heltec partition their flash somewhat differently. I'll need to make a small script to let you program your device reliably. I'll do that tonight.

It is highly recommended that the firmware can support esp32 + LORA sx1278, and other meanings

To be honest, I highly recommend this function that can support modularity. For example, if you only need SMS, then the interface reminds you that you can only use this, and I hope that the APP of this software can be modified, like the chat room, let The interface is better-looking, and can have the same interface as ordinary mobile phone text messages. It can also support the switch between Bluetooth and WIFI connection instead of flashing the firmware through the computer, because it is too troublesome. Secondly, such a Mesh device hopes to pass WIFI. Support multi-person connection, and multiple people share one device.

I highly recommend that it can be used to support more boards, so that it can pass through different boards and different loRa boards, so that it is easier to DIY! For example, this esp32 Espressif and sx1278 (An Xinxin Ra02)

I really hope that everyone can adopt it and act! At the same time, I also hope it will succeed

From a radio enthusiast

Compilation errors after pulling the new version

I tried to build a version for the beam and got these errors:

Building in release mode
Compiling .pio\build\tbeam\src\rf95\CustomRF95.cpp.o
Compiling .pio\build\tbeam\src\rf95\RH_RF95.cpp.o
Compiling .pio\build\tbeam\src\sleep.cpp.o
Generating partitions .pio\build\tbeam\partitions.bin
Compiling .pio\build\tbeam\lib9b7\Wire\Wire.cpp.o
Compiling .pio\build\tbeam\libf31\SPI\SPI.cpp.o
Compiling .pio\build\tbeam\lib178\ESP8266_SSD1306\OLEDDisplay.cpp.o
Compiling .pio\build\tbeam\lib178\ESP8266_SSD1306\OLEDDisplayUi.cpp.o
Compiling .pio\build\tbeam\lib01c\CRC32_ID1202\CRC32.cpp.o
src\rf95\CustomRF95.cpp: In member function 'virtual void CustomRF95::loop()':
src\rf95\CustomRF95.cpp:191:5: error: 'loop' is not a member of 'RH_RF95'
RH_RF95::loop();
^
Compiling .pio\build\tbeam\libea2\arduino-fsm\Fsm.cpp.o
src\rf95\RH_RF95.cpp: In member function 'virtual bool RH_RF95::init()':
src\rf95\RH_RF95.cpp:114:28: error: 'enableInterrupt' was not declared in this scope
return enableInterrupt();
^
src\rf95\RH_RF95.cpp: At global scope:
src\rf95\RH_RF95.cpp:117:31: error: no 'bool RH_RF95::enableInterrupt()' member function declared in class 'RH_RF95'
bool RH_RF95::enableInterrupt()
^
src\rf95\RH_RF95.cpp:136:50: error: no 'void RH_RF95::disableInterrupt()' member function declared in class 'RH_RF95'
void RH_INTERRUPT_ATTR RH_RF95::disableInterrupt()
^
src\rf95\RH_RF95.cpp:159:55: error: no 'void RH_RF95::handleInterruptLevel0()' member function declared in class 'RH_RF95'
void RH_INTERRUPT_ATTR RH_RF95::handleInterruptLevel0()
^
src\rf95\RH_RF95.cpp: In member function 'virtual void RH_RF95::handleInterrupt()':
src\rf95\RH_RF95.cpp:246:21: error: 'enableInterrupt' was not declared in this scope
enableInterrupt(); // Let ISR run again
^
src\rf95\RH_RF95.cpp: At global scope:
src\rf95\RH_RF95.cpp:249:20: error: no 'void RH_RF95::loop()' member function declared in class 'RH_RF95'
void RH_RF95::loop()
^
src\rf95\RH_RF95.cpp: In static member function 'static void RH_RF95::isr0()':
src\rf95\RH_RF95.cpp:263:33: error: 'class RH_RF95' has no member named 'handleInterruptLevel0'
_deviceForInterrupt[0]->handleInterruptLevel0();
^
src\rf95\RH_RF95.cpp: In static member function 'static void RH_RF95::isr1()':
src\rf95\RH_RF95.cpp:268:33: error: 'class RH_RF95' has no member named 'handleInterruptLevel0'
_deviceForInterrupt[1]->handleInterruptLevel0();
^
src\rf95\RH_RF95.cpp: In static member function 'static void RH_RF95::isr2()':
src\rf95\RH_RF95.cpp:273:33: error: 'class RH_RF95' has no member named 'handleInterruptLevel0'
_deviceForInterrupt[2]->handleInterruptLevel0();

mesh.options and mesh.proto are symlinks

Just looking around I see two files that are symlinks outside the repo.

mesh.options -> ../MeshUtil/app/src/main/proto/mesh.options
mesh.proto -> ../MeshUtil/app/src/main/proto/mesh.proto

Are these important for the build?

boot message reports: Meshtastic swver=0.0.0, hwver=1.0 - US

Even if you are set to EU433, I think this is legacy from the old method of selecting hardware and band in configuration.h
It may be a good idea to display which band and hardware is selected in boot messages and on the screen in case someone flashed the wrong firmware. All the sx1276/7/8/9 are advertised to operate over a wide frequency range, I assume that they may operate suboptimally outside of the intended frequency, though its not clear from what I seen scanning semtech datasheet.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.