Hello all,
I know the following debug output will be mostly meaningless to most of you, but the interesting bit is the line where it says I2C library returned error number: 5, and the fact that the arduino continues to operate past the I2C error. If you're familiar with the Wire library, there is no error 5, that's the new timeout error code!
Background on what is going on on the I2C bus to cause the freeze:
Some device is continuously holding the I2C data line low, and some other device(s) are constantly clocking the clock line. In this snippet of debug output the arduino is trying to become master and send an I2C command to a slave device. When using the standard wire library, the arduino freezes here every time in one of the Wire library while loops.
The arduino would normally just stay frozen after the comment about I2C Packet Length, until you reboot it manually. Not even the watchdog timer would save it, (I tried it) because the wire library was disabling interrupts that the watchdog timer uses.
Here's the debug output:
TiCk-t 1:18:06:34 !
SAT-D 1:18:06:41 Unsolicited response: SBDRING
CC-D 1:18:06:41 Iridium Satellite Modem is ringing
SAT-I 1:18:06:41 Initiating Iridium Short Burst Data Session...
Sat-D 1:18:06:46 Got good +SBDIX respponse
Sat-D 1:18:06:46 messageOutboundXfer_status: 0, messageInboundXfer_status: 1, msgInb_len: 5, msgs_queuedAtGroundStation: 1
MessageContent from Iridium 9602 Modem ==--> 3a 5 f1 0 0
CONTENT IS UPLINK COMMAND. Command not for comm controller, route to I2C Bus!
I2C Packet length: 5
I2CTXERR
I2CTXERR
I2CTXERR
I2CTXERR
I2CTXERR
I2CTXERR
I2CTXERR
I2CTXERR
I2CTXERR
I2C Library returned error number: 5
TiCk-t 1:18:08:07 !
SAT-D 1:18:08:07 Unsolicited response: 0
SAT-D 1:18:08:07 Unsolicited response: OK
SAT-D 1:18:08:07 Unsolicited response: +CIEV:0,3
Thanks,
Dan