Quick-links:
Not all TellyMates can transmit serial data back to the host. TellyMate Shields sold from the 9th June 2009 onwards are transmit-capable. The only schematic difference from earlier versions is the addition of a trace from the TellyMate's IC pin 3 directly to the Arduino D0 pin.
Firmware from version 1.0.9 onwards (9th June 2009) has the transmit capability.
Before the TellyMate can transmit data, its transmit pin must be enabled by sending the transmit-enable control sequence (<ESC>~~~~) to the TellyMate. Once enabled, the Send-character control sequence(<ESC>|) can be used to transmit the character under the cursor back to the Arduino.
When the TellyMate Shield is transmit-enabled, it takes control of the D0 (RX) line, causing it to idle at 5v. This will obviously interfere with any other serial data being sent to the Arduino.
Arduino users should take care to ensure that the transmit-enable control sequence isn't included in the compiled sketch that is uploaded to the Arduino. This is because during the verification stage of the upload process, the Arduino serially transmits the whole sketch back to the PC (as a double-check). The TellyMate will be listening to this data. If it sees the transmit-enable sequence, it will take control of the Arduino's RX line, preventing any further communication from the PC to the Arduino, stalling the verification process.
To avoid the transmit-enable control sequence appearing in a sketch, yet still allowing that sketch to send the transmit-enable sequence, the code sample below should be used:
Serial.write( CHAR_ESC ); for ( byte i = 0 ; i < 4 ; i++ ){ Serial.write( '~' ) ; }
This code sends the '~' characters of the transmit-enable sequence via a small for-next loop, rather than from a string literal.