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:31] RC Navy [How to use this debugging capabilities] |
digispark:tutorials:debugging [2013/05/05 08:30] RC Navy [Bi-directional Serial Debugging with a single I/O] |
||
|---|---|---|---|
| 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. | + | 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. |
| - | 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).\\ 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. |
| - | The external interface is composed of 2 resistors and a regular diode (See below). | + | |
| - | ==== 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 97: | 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 105: | Line 104: | ||
| SubD 9 pins | SubD 9 pins | ||
| Female | Female | ||
| - | */ | ||
| </code> | </code> | ||
| Line 113: | 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]] | ||