<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div>I've been getting frustrated lately trying to help users diagnose problems early-on in the GSM connection sequence. We've had problems with SIMs cards getting recognised (broken sim cards), with sim locks (PIN lock on), with general modem comms issues, and with lack of GSM signal - and all these show up as the same red flash, red solid, red flash, red-green-alternate indicators. Without getting out a USB-serial cable and laptop, it is real hard to diagnose.</div><div><br></div><div>Talking this through with Bennett, and others, I think we can do better, and I suggest the following changes:</div><div><br></div><div><ol class="MailOutline"><li>Take the LED control out of the individual code files and have them controlled by a central module with its own timer. This module would be told at a high level what to do with the LED (eg; make the green led flash 7 times) and would make it so.<br><br></li><li>Both LEDs off would indicate NO POWER.<br><br></li><li>On startup, animate both LEDs for a short time to demonstrate that they both work.<br><br></li><li>Change init code to (a) use AT to verify modem is connected, (b) check for SIM connected and readable, (c) check for SIM PIN lock, (d) initialize modem to our required settings, and (e) AT+COPS for cellular signal search. By splitting this up, to separate check states, we can individually alert on a failure at a particular state.<br><br></li><li>In general, use the green LED to show status, and the red LED to show the last error (cleared whenever a state is successful).<br><br></li><li>On startup, you would see the green led count up through each stage, and if it got stuck at a particular stage the blinks would tell you where it is. If there was an error at any stage, the red LED would indicate the error code.<br><br></li><li>For blinking, I suggest just off for a second, then rapidly blink the code, then off for a second, then rapidly blink the code, etc.<br><br></li><li>Once we reach a final GOOD state (either GSM with GPRS disabled, or GPRS connected to server), we would just turn both LEDs to a steady blinking pattern (perhaps on for a second, off for a second).</li></ol></div><div><br></div><div>As well as the obvious clarity to diagnostics that this brings, it would also be for general use to see at a glance if the module is working correctly and is connected to the server ok.</div><div><br></div><div>What do people think?</div><div><br></div><div>Regards, Mark.</div><div><br></div></body></html>