Cobra Interface Mark Grady CSE 237a Spring 2004
Project Goals Design a Palm Interface to download dive logs from a dive computer Convert log information to UDCF Adhere to Palm UI guidelines Mark Grady CSE237a SP04
Tools Suunto Cobra, interface cable, SDM Metrowerks Codewarrior (v.8 demo) PalmOS SDK, Emulator, Simulator Advanced Serial Port Monitor Osciloscope, multimeter, leds, etc. Mark Grady CSE237a SP04
Challenges Reverse engineer Suunto protocol Implement non-standard serial interface using Palm API Mimic Suunto protocol timing 5k max code size (Metrowerks demo) Mark Grady CSE237a SP04
RS232 Tutorial Active low (logical 1: -3v to -12v) Terminal (DTE) vs. Com Device (DCE) Standard DE-9 pinout: 1 DCD 2 RxD 3 TxD 4 DTR 5 SGND 6 DSR 7 RTS 8 CTS 9 RI Mark Grady CSE237a SP04
Suunto Protocol Half-Duplex, Master(PC)-Slave(DC) DTR powers cable RTS routes data active=DC inactive = PC Mark Grady CSE237a SP04
Suunto Protocol Master Packet: read memory Slave Packet: read memory 0x05, <addr_high>, <addr_low>, <num_bytes>, <CRC> Slave Packet: read memory 0x05, <addr_high>, <addr_low>, <num_bytes>,<payload>,CRC CRC is XOR of preceding bytes 1<=num_bytes<=32 Memory addressing from #0000-#1FFF Mark Grady CSE237a SP04
Demo Perform snazzy demo here Mark Grady CSE237a SP04
Results Design a Palm Interface to download dive logs from a dive computer Convert log information to UDCF Adhere to Palm UI guidelines Mark Grady CSE237a SP04
Remaining Work Validate incoming data Convert to UDCF and export Improve serial functionality Support write to DC? Mark Grady CSE237a SP04
Conclusions Using OTS product traded flexibility/power for convenience Read the documentation, but remember it is rarely 100% accurate Mark Grady CSE237a SP04