mikalhart / IridiumSBD

Arduino library for RockBLOCK Iridium satellite modem (http://rock7mobile.com)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ESP32 + RockBLOCK

vangalvin opened this issue · comments

Has anyone managed to get the RockBLOCK working on an ESP32?
Have tried several variants of the ESP32 and all seem to crash.

I seem to be getting the following error.
Guru Meditation Error: Core 1 panic'ed (Interrupt wdt timeout on CPU1)

Just as the setup hits this line.
// Setup the Iridium modem
modem.setPowerProfile(IridiumSBD::USB_POWER_PROFILE);

Here is the full error I am getting, I have checked to make sure the unit is working and all seems to be OK. however when using the library I am now getting this.

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:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:9232
load:0x40080400,len:6400
entry 0x400806a8
Guru Meditation Error: Core 1 panic'ed (InstrFetchProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x00000000 PS : 0x00060f30 A0 : 0x800d11ce A1 : 0x3ffb1ef0
A2 : 0x3ffbfcf8 A3 : 0x3f401044 A4 : 0x3ffb8630 A5 : 0x00000001
A6 : 0x00000000 A7 : 0x00000000 A8 : 0x800d0e74 A9 : 0x3ffb1e90
A10 : 0x3ffbfcf8 A11 : 0x00000043 A12 : 0x3ffb8408 A13 : 0x00000000
A14 : 0x00000000 A15 : 0x00000000 SAR : 0x0000000f EXCCAUSE: 0x00000014
EXCVADDR: 0x00000000 LBEG : 0x00000000 LEND : 0x00000000 LCOUNT : 0x00000000

Backtrace: 0x00000000:0x3ffb1ef0 0x400d11cb:0x3ffb1f10 0x400d13ae:0x3ffb1f50 0x400d0d41:0x3ffb1f70 0x400d225f:0x3ffb1fb0 0x40089fb9:0x3ffb1fd0

Rebooting...

Please try new release 2.0.0 and see if this is resolved. There was some misunderstanding about how the "weak" attribute works, and this has been fixed.

Hey @mikalhart, I gave 2.0.0 a try and have the same issue. the addition of this in to the example fixed the problem.

#if DIAGNOSTICS void ISBDConsoleCallback(IridiumSBD *device, char c){ Serial.write(c); } void ISBDDiagsCallback(IridiumSBD *device, char c){ Serial.write(c); } #else void ISBDConsoleCallback(IridiumSBD *device, char c){ // do nothing } void ISBDDiagsCallback(IridiumSBD *device, char c){ // do Nothing } #endif

any update ?