# set pin code from evnironment "$PINCODE"
opengt
 set com 115200n81
 set senddelay 0.05
 waitquiet 3 0.5
 flash 0.1

 let c=0
:start
 send "AT+CPIN?^m"
 waitfor 15 "SIM PUK","SIM PIN","READY","ERROR","ERR"
 if % = -1 goto timeout
 if % = 0 goto ready
 if % = 1 goto setpin
 if % = 2 goto ready
 if % = 3 goto checkrepeat
 if % = 4 goto checkrepeat

:checkrepeat
 inc c
 if c>3 goto pinerror
 waitquiet 12 0.5
 goto start

:timeout
 print "timeout checking for PIN."
 exit 1

:ready
 print "SIM ready\n"
 goto continue
 exit 0

:setpin
 # check if output was "SIM PIN2", that's ok.
 waitfor 1 "2"
 if % = 0 goto ready

 print "Trying to set PIN\n"
 send "AT+CPIN=\""
 send $env("PINCODE")
 send "\"^m"

 waitfor 20 "OK","ERR"
 if % = -1 goto pinerror
 if % = 0 goto continue
 if % = 1 goto pinerror

:pinerror
 print "Error setting PIN, check card manually\n"
 exit 1

:continue
 print "PIN set successfully\n"
 exit 0