Category
Other
Hardware
Heltec Wireless Paper
Is this bug report about any UI component firmware like InkHUD or Meshtatic UI (MUI)?
Firmware Version
2.7.10
Description
A while ago I've bought a Heltec Wireless Paper and it rebooted/crashed way too often (reliably every 3-5 Minutes, but sometimes it worked for hours) (this was with 2.7.5 IIRC). I recently updated to 2.7.9 to see if the situation has improved, but it didn't. I did some testing/debugging with 2.7.10 but it also showed the same symptoms.
Crash report looks like:
DEBUG | 11:23:19 310 [Router] Module 'RecentsListApplet' wantsPacket=1
DEBUG | 11:23:19 310 [Router] Module 'RecentsListApplet' considered
DEBUG | 11:23:19 310 [Renderer] FULL-update debt:0.933333
DEBUG | 11:23:19 310 [Renderer] UNSPECIFIED: using FAST
INFO | 11:23:19 310 [Renderer] Drawing card for node 0xb50443e0
INFO | 11:23:19 310 [Renderer] nodeDB Size=200
INFO | 11:23:19 310 [Renderer] Printing hops away
INFO | 11:23:19 310 [Renderer] Node has 3 hops away
INFO | 11:23:19 310 [Renderer] Node Field HasHopsAway=1
INFO | 11:23:19 310 [Renderer] Node 3
INFO | 11:23:19 310 [Renderer] Printing hops away value 3
INFO | 11:23:19 310 [Renderer] Printed hops away
INFO | 11:23:19 310 [Renderer] Printed hatch
INFO | 11:23:19 310 [Renderer] Drawing card for node 0x6f2531d2
INFO | 11:23:19 310 [Renderer] nodeDB Size=200
INFO | 11:23:19 310 [Renderer] Printing hops away
INFO | 11:23:19 310 [Renderer] Node has 1 hops away
INFO | 11:23:19 310 [Renderer] Node Field HasHopsAway=1
INFO | 11:23:19 310 [Renderer] Node 1
INFO | 11:23:19 310 [Renderer] Printing hops away value 1
INFO | 11:23:19 311 [Renderer] Printed hops away
INFO | 11:23:19 311 [Renderer] Printed hatch
INFO | 11:23:19 311 [Renderer] Drawing card for node 0xe0d39c28
INFO | 11:23:19 311 [Renderer] nodeDB Size=200
INFO | 11:23:19 311 [Renderer] Printing hops away
INFO | 11:23:19 311 [Renderer] Node has 5 hops away
INFO | 11:23:19 311 [Renderer] Node Field HasHopsAway=1
INFO | 11:23:19 311 [Renderer] Node 5
INFO | 11:23:19 311 [Renderer] Printing hops away value 5
INFO | 11:23:19 311 [Renderer] Printed hops away
INFO | 11:23:19 311 [Renderer] Printed hatch
INFO | 11:23:19 311 [Renderer] Drawing card for node 0xbb38eef9
INFO | 11:23:19 311 [Renderer] nodeDB Size=200
INFO | 11:23:19 311 [Renderer] Printing hops away
INFO | 11:23:19 311 [Renderer] Node has 4 hops away
INFO | 11:23:19 311 [Renderer] Node Field HasHopsAway=1
INFO | 11:23:19 311 [Renderer] Node 4
INFO | 11:23:19 311 [Renderer] Printing hops away value 4
INFO | 11:23:19 311 [Renderer] Printed hops away
INFO | 11:23:19 311 [Renderer] Printed hatch
INFO | 11:23:19 311 [Renderer] Drawing card for node 0x6d48eb21
INFO | 11:23:19 311 [Renderer] nodeDB Size=200
INFO | 11:23:19 311 [Renderer] Printed hatch
INFO | 11:23:19 311 [Renderer] Drawing card for node 0x8e2e4c9c
INFO | 11:23:19 311 [Renderer] nodeDB Size=200
INFO | 11:23:19 311 [Renderer] Printing hops away
INFO | 11:23:19 311 [Renderer] Node has 5 hops away
Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x4207488d PS : 0x00060030 A0 : 0x82071173 A1 : 0x3fcebe20
#0 0x4207488d in NicheGraphics::InkHUD::NodeListApplet::onRender() at ??:?
A2 : 0x3fcf448c A3 : 0x3c161804 A4 : 0x00000000 A5 : 0x3fcd5f4c
A6 : 0x00000a84 A7 : 0x00000a84 A8 : 0x82074888 A9 : 0x3fcebda0
A10 : 0x3fcec33c A11 : 0x3c161804 A12 : 0x00000000 A13 : 0x3fcd5c60
A14 : 0x3fcebdb0 A15 : 0x00000001 SAR : 0x00000017 EXCCAUSE: 0x0000001c
EXCVADDR: 0x000000ba LBEG : 0x400554b9 LEND : 0x400554dd LCOUNT : 0x8207f5a0
Backtrace: 0x4207488a:0x3fcebe20 0x42071170:0x3fcebf70 0x42068b99:0x3fcebf90 0x42068f01:0x3fcebfe0 0x4207b8ea:0x3fcec000 0x4206358d:0x3fcec020 0x42016541:0x3fcec060
#0 0x4207488a in NicheGraphics::InkHUD::NodeListApplet::onRender() at ??:?
#1 0x42071170 in NicheGraphics::InkHUD::Applet::render() at ??:?
#2 0x42068b99 in NicheGraphics::InkHUD::Renderer::render(bool) at :?
#3 0x42068f01 in NicheGraphics::InkHUD::Renderer::runOnce() at :?
#4 0x4207b8ea in concurrency::OSThread::run() at ??:?
#5 0x4206358d in loop() at ??:?
#6 0x42016541 in loopTask(void*) at :?
Note: This log already contains some "LOG_INFO" debugging that I've added.
So I was able to track it down to the following piece of code in /src/graphics/niche/InkHUD/Applets/Bases/NodeList
/NodeListApplet.cpp
// Otherwise, print "hops away" info, if available
else if (hopsAway != CardInfo::HOPS_UNKNOWN) {
std::string hopString = to_string(node->hops_away);
hopString += " Hop";
if (node->hops_away != 1)
hopString += "s"; // Append s for "Hops", rather than "Hop"
printAt(width() - 1, lineAY, hopString, RIGHT, MIDDLE);
}
It crashes when to_string() (or a LOG_INFO, or whatever else) tries to access node->hops_away.
I'm wondering why it crashes there, since the other fields of node could be accessed (like node->user.long_name ). My NodeDB is full with 200 entries, so I'm wondering if this could be some problem with Garbage Collection or some other multi-threaded issues.. but my knowledge with the codebase is too limited for this. (On the other hand, I also had reboots when my NodeDB was wiped.. so this might be a red hering)
So, not fixing the issue - only the symptoms:
In the piece of code above, we already have the hops information in hopsAway, we don't need to access node to get that (right?):
else if (hopsAway != CardInfo::HOPS_UNKNOWN) {
std::string hopString = to_string(hopsAway);
hopString += " Hop";
if (hopsAway != 1)
hopString += "s"; // Append s for "Hops", rather than "Hop"
printAt(width() - 1, lineAY, hopString, RIGHT, MIDDLE);
}
I've been running the firmware with this modification now since a while and didn't have crashes (yet)...
I'm still reporting this, since somebody might know what the actual root cause of this could be...
Relevant log output
Category
Other
Hardware
Heltec Wireless Paper
Is this bug report about any UI component firmware like InkHUD or Meshtatic UI (MUI)?
Firmware Version
2.7.10
Description
A while ago I've bought a Heltec Wireless Paper and it rebooted/crashed way too often (reliably every 3-5 Minutes, but sometimes it worked for hours) (this was with 2.7.5 IIRC). I recently updated to 2.7.9 to see if the situation has improved, but it didn't. I did some testing/debugging with 2.7.10 but it also showed the same symptoms.
Crash report looks like:
Note: This log already contains some "LOG_INFO" debugging that I've added.
So I was able to track it down to the following piece of code in /src/graphics/niche/InkHUD/Applets/Bases/NodeList
/NodeListApplet.cpp
It crashes when to_string() (or a LOG_INFO, or whatever else) tries to access node->hops_away.
I'm wondering why it crashes there, since the other fields of node could be accessed (like node->user.long_name ). My NodeDB is full with 200 entries, so I'm wondering if this could be some problem with Garbage Collection or some other multi-threaded issues.. but my knowledge with the codebase is too limited for this. (On the other hand, I also had reboots when my NodeDB was wiped.. so this might be a red hering)
So, not fixing the issue - only the symptoms:
In the piece of code above, we already have the hops information in
hopsAway, we don't need to accessnodeto get that (right?):I've been running the firmware with this modification now since a while and didn't have crashes (yet)...
I'm still reporting this, since somebody might know what the actual root cause of this could be...
Relevant log output