This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
digispark:tutorials:debugging [2013/05/05 02:37] RC Navy [Bi-directional Serial Debugging with a single I/O] |
digispark:tutorials:debugging [2016/06/09 12:03] (current) |
||
---|---|---|---|
Line 50: | Line 50: | ||
===== Bi-directional Serial Debugging with a single I/O ===== | ===== Bi-directional Serial Debugging with a single I/O ===== | ||
- | If you didn't plan to use DigiUSB in your final sketch, the following proposed alternative consumes less pin than USB and less program memory.\\ Since the last version of <SoftSerial> library (may 2013), <SoftSerial> is an alternative for debugging Digispark just using a single I/O.\\ By declaring a <SoftSerial> object with the __same__ pin for Tx and Rx: it's possible to use a half duplex (request/response) software serial port using a __single__ I/O. | + | If you didn't plan to use DigiUSB in your final sketch, the following proposed alternative consumes less pin and program memory than USB.\\ Since the last version of <SoftSerial> library (may 2013), <SoftSerial> is an alternative for debugging Digispark just using a single I/O.\\ By declaring a <SoftSerial> object with the __same__ pin for Tx and Rx: it's possible to use a half duplex (request/response) software serial port using a __single__ I/O. |
- | The external interface is composed of 2 resistors and a regular diode (See below).\\ Please, note this solution requires a native RS232 port or a RS232/USB adapter on the development PC. | + | The external interface is composed of 2 resistors and a regular diode (See below).\\ This approach allows to use the built-in Serial Monitor of the arduino IDE.\\ Please, note this solution requires a native RS232 port (rare today) or a RS232/USB adapter on the development PC. |
- | ==== How to use this debugging capabilities ==== | + | ==== How to use this debugging capabilities? ==== |
In your sketch, declare a <SoftSerial> object with the same pin for Tx and Rx as depicted below: | In your sketch, declare a <SoftSerial> object with the same pin for Tx and Rx as depicted below: | ||
Line 96: | Line 96: | ||
| | .--###--' | o4 | | | | .--###--' | o4 | | ||
| DEBUG | 4.7K | | 8o | | | DEBUG | 4.7K | | 8o | | ||
- | | TX_RX |-------------------###--+--|<|------o3 | ---> To regular RS232 SubD 9 pins Male of PC or RS232/USB adapter | + | | TX_RX |-------------------###--+--|<|------o3 | ---> To regular RS232 SubD 9 pins Male of PC |
- | | PIN | ^ | 1N4148 | 7o | | + | | PIN | ^ | 1N4148 | 7o | or to RS232/USB adapter |
| | | '-----------o2 | | | | | '-----------o2 | | ||
'--------' | | 6o | | '--------' | | 6o | | ||
Line 104: | Line 104: | ||
SubD 9 pins | SubD 9 pins | ||
Female | Female | ||
- | */ | ||
</code> | </code> | ||
Line 112: | Line 111: | ||
=== Built-in IDE Serial Monitor or external Terminal? === | === Built-in IDE Serial Monitor or external Terminal? === | ||
With this approach, the regular serial monitor of the arduino IDE can be used. In the IDE, just select the RS232 port through the Tools->Serial Port menu. Then, adjust data rate and line terminator (if any), you can use the serial console as usual. | With this approach, the regular serial monitor of the arduino IDE can be used. In the IDE, just select the RS232 port through the Tools->Serial Port menu. Then, adjust data rate and line terminator (if any), you can use the serial console as usual. | ||
- | In this case, you do not need any external Terminal. | + | In this case, you do not need any external Terminal.\\ If you prefer using an external Terminal, on the PC, open your favorite Terminal application at 38400,n,8,1: HyperTerminal, Teraterm (Windows) or Minicom, GtkTerm (Linux) and CoolTerm (MAC) does the trick. |
- | If you prefer using an external Terminal, on the PC, open your favorite Terminal application at 38400,n,8,1: HyperTerminal, Teraterm (Windows) or Minicom, GtkTerm (Linux) and CoolTerm (MAC) does the trick. | + | |
__Note__: | __Note__: | ||
* Trick to be less intrusive: use a "high" data rate (38400 is fine) -> less time wasted in ISR and for transmitting each character. | * Trick to be less intrusive: use a "high" data rate (38400 is fine) -> less time wasted in ISR and for transmitting each character. | ||
- | * you can still upload your sketch modifications through the USB interface whilst the additionnal serial port selected as Serial port in the IDE. | + | * You can still upload your sketch modifications through the USB interface whilst the additionnal serial port is selected as Serial port in the IDE. |
"Vintage" serial interfaces are not dead! :-) | "Vintage" serial interfaces are not dead! :-) | ||
+ | |||
+ | [[http://p.loussouarn.free.fr/partage/arduino/Libs4Digi_1io_Debug.zip|Download here the related libraries]] |