Comments (8)
Guys, I am on this. I don't need any more trace dumps at the moment. When I have a fix, it will be great if you can test it, but for now, throwing more information at me is just distracting me.
from fluidnc.
Can you share what the serial monitor reports when this happens? I think I might have seen similar before (and have reported via Discord)
from fluidnc.
Based on this backtrace:
#0 0x40081507:0x3ffc0010 in Machine::Axes::unstep() at FluidNC/src/Machine/Axes.cpp:86
#1 0x400820b4:0x3ffc0030 in Stepper::pulse_func() at FluidNC/src/Stepper.cpp:298
#2 0x40082114:0x3ffc0050 in Machine::Stepping::onStepperDriverTimer() at FluidNC/src/Stepping.cpp:214 #3 0x400826e1:0x3ffc0070 in __timerISR at C:\Users\wmb\.platformio\packages\framework-arduinoespressif32\cores\esp32/esp32-hal-timer.c:174
#4 0x40088641:0x3ffc0090 in _xt_lowint1 at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1154
#5 0x40089598:0x3ffb1870 in spi_flash_read at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/spi_flash/flash_ops.c:599
I think it could be an IRAM problem. The foreground code is performing a FLASH read and then a stepper interrupt comes along. If that stepper code tries to read from FLASH you get a conflict. The stepper code is supposed to run from IRAM but it can be difficult to guarantee that. I need to look at the assembler code.
from fluidnc.
I have found some factors that contribute to this crash. One is switch statements inside ISRs, another is calling virtual methods inside ISRs. Avoiding those stops the crash. We already suspected that such things could be a problem, but lacking a clear proof that they were actually causing trouble, it was hard to get up the motivation to weed them all out.
Now that I have a test case, I will see what I can do. Eliminating switches is easy; virtual method calls will be a bit more difficult.
Further discussion of this will be on Discord.
from fluidnc.
I just encountered a similar issue, although it may be unrelated - hard to say. Running a job from SD Card while clicking through the Web UI between Tablet Mode and Dashboard Mode.
Decoding stack results
0x40081503: emptyRxFifo at C:\Users\amood\OneDrive\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.6\cores\esp32\esp32-hal-i2c.c line 759
0x40082110: heap_caps_free at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c line 267
0x40082170: heap_caps_realloc at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_private.h line 61
0x4008273d: esp_timer_impl_set_alarm at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/esp_timer_esp32.c line 150
0x4008869d: xTaskResumeAll at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c line 2217
0x400d63e3: uw_frame_state_for at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libgcc/config/xtensa/unwind-dw2-xtensa.c line 240
0x400e8e8b: nvs::PageManager::load(unsigned int, unsigned int) at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/src/nvs_pagemanager.cpp line 64
0x400dda2a: _dtoa_r at ../../../.././newlib/libc/stdlib/dtoa.c line 444
0x400d8a29: _svfprintf_r at ../../../.././newlib/libc/stdio/vfprintf.c line 1848
0x400d95e2: _svfprintf_r at ../../../.././newlib/libc/stdio/vfprintf.c line 1426
0x400dda93: _dtoa_r at ../../../.././newlib/libc/stdlib/dtoa.c line 459
0x400d78ee: sprintf at ../../../.././newlib/libc/stdio/sprintf.c line 646
0x400e66f8: get_reset_reason at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/reset_reason.c line 64
0x400e78ae: nvs::Storage::init(unsigned int, unsigned int) at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/src/intrusive_list.h line 126
0x400dd875: _dtoa_r at ../../../.././newlib/libc/stdlib/dtoa.c line 356
0x4008bf66: esp_rom_spiflash_read at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/spi_flash/spi_flash_rom_patch.c line 570
Backtrace.txt
NutPlateX_2_0.125_Flat.nc.txt
from fluidnc.
This is the error I received.
An unexpected error was detected: Guru Meditation Error: Core 1 panic'ed (Cache disabled but cached memory region accessed)
Core 1 register dump:
PC : 0x40081507 PS : 0x00060034 A0 : 0x800820b7 A1 : 0x3ffc0010
A2 : 0x00000000 A3 : 0x3ffc1b24 A4 : 0x3ffb9740 A5 : 0x00000000
A6 : 0x00000003 A7 : 0x3ffb9740 A8 : 0xbad00bad A9 : 0x3ffbfff0
A10 : 0x3ffb3b9c A11 : 0xb0000000 A12 : 0x00060021 A13 : 0x00000001
A14 : 0x00000001 A15 : 0x3ffb8058 SAR : 0x00000020 EXCCAUSE: 0x00000007
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000
Core 1 was running in ISR context:
EPC1 : 0x4009124e EPC2 : 0x00000000 EPC3 : 0x00000000 EPC4 : 0x40081507
ELF file SHA256: 0000000000000000
Backtrace: 0x40081507:0x3ffc0010 0x400820b4:0x3ffc0030 0x40082114:0x3ffc0050 0x400826e1:0x3ffc0070 0x40088641:0x3ffc0090 0x4009124b:0x3ffb1350 0x40091a49:0x3ffb1370 0x40089598:0x3ffb1390 0x401a991a:0x3ffb1400 0x401502fa:0x3ffb1430 0x40150516:0x3ffb1460 0x401519b3:0x3ffb1490 0x40153395:0x3ffb14d0 0x4014f6c7:0x3ffb1510 0x4014ec0a:0x3ffb1540 0x40199646:0x3ffb1560 0x4000bd67:0x3ffb1580 0x401268da:0x3ffb15a0 0x40126969:0x3ffb15d0 0x400d6413:0x3ffb15f0 0x400f2272:0x3ffb1650 0x401b2a65:0x3ffb1b80 0x400ff8b2:0x3ffb1ba0 0x40103fd6:0x3ffb1bc0 0x401040a9:0x3ffb1c10 0x400f15e5:0x3ffb1c60 0x400fa486:0x3ffb1ca0 0x400e8aa7:0x3ffb1cc0 0x400dda22:0x3ffb1ce0 0x400d8a59:0x3ffb1d00 0x400d96fe:0x3ffb1d20 0x400dda8b:0x3ffb1d40 0x400d791e:0x3ffb1d60 0x400e6604:0x3ffb1e10 0x400e77ba:0x3ffb1e30 0x400dd86e:0x3ffb1f60 0x4010b4a8:0x3ffb1fb0 0x4008bf0a:0x3ffb1fd0
Rebooting...
from fluidnc.
Looks very similar to the error I had. This is the decoded version of your backtrace:
Decoding stack results
0x40081507: emptyRxFifo at C:\Users\amood\OneDrive\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.6\cores\esp32\esp32-hal-i2c.c line 759
0x400820b4: heap_caps_malloc_default at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c line 140
0x40082114: heap_caps_free at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c line 267
0x400826e1: esp_timer_impl_get_time at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/esp_timer_esp32.c line 151
0x40088641: xTaskIncrementTick at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/tasks.c line 2596
0x400d6413: uw_frame_state_for at /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libgcc/config/xtensa/unwind-dw2-xtensa.c line 251
0x400e8aa7: nvs::HashList::erase(unsigned int, bool) at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/src/intrusive_list.h line 199
0x400dda22: _dtoa_r at ../../../.././newlib/libc/stdlib/dtoa.c line 438
0x400d8a59: _svfprintf_r at ../../../.././newlib/libc/stdio/vfprintf.c line 1849
0x400d96fe: _svfprintf_r at ../../../.././newlib/libc/stdio/vfprintf.c line 1437
0x400dda8b: _dtoa_r at ../../../.././newlib/libc/stdlib/dtoa.c line 453
0x400d791e: get_arg at ../../../.././newlib/libc/stdio/vfprintf.c line 2094
0x400e6604: esp_dport_access_int_init at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/dport_access.c line 187
0x400e77ba: nvs::Storage::eraseOrphanDataBlobs(intrusive_list &) at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/src/nvs_storage.cpp line 74
0x400dd86e: _dtoa_r at ../../../.././newlib/libc/stdlib/dtoa.c line 356
0x4008bf0a: esp_rom_spiflash_read at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/spi_flash/spi_flash_rom_patch.c line 557
from fluidnc.
Fixed by #143
from fluidnc.
Related Issues (20)
- Best practices for controlling plasma cutter relay with MKS-DLC32 HOT 12
- Problem: with configurations in ultimate bee, updated to FluidNC, only one y axis moter working HOT 34
- Problem: Motors are not locked when make home - 3.7.11 HOT 16
- Problem: Limit switches trigger on noise and not on TTL 5V to 0V (i think) HOT 6
- Z Height Changes During Program HOT 11
- Feature: Make forced RPM to Hz conversion optional
- Problem: additional UART doesn't work HOT 4
- Problem: Custom XyyZ RMT setup problem HOT 13
- Feature: Realtime Axis Override // Torch Height Controller HOT 1
- Problem: ERROR:20 when reversing pwm spindle HOT 2
- Feature: Separate brain from end device expanding servo control options. HOT 13
- Feature: new laser control board HOT 4
- Please add OpenCNC Shield v2 to the list of existing Hardware
- Problem: Axis direction and control HOT 3
- Problem: I am unsuccessfull with setting up 6-pack with external DM556T drivers HOT 9
- Problem: Homing not working properly when triggered from FluidNC web interface HOT 15
- "check_security" function is broken on Linux HOT 3
- Problem: G2, G3 Arc commands skipped when doing full circle HOT 6
- Problem: Need support but can not get access to the Discord server HOT 29
- Problem: Limited speed (not reaching the required travel speed) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fluidnc.