User Tools

Site Tools


digispark:tutorials:debugging

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
digispark:tutorials:debugging [2013/05/05 02:36]
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. +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).\\ Please, note this solution requires a native RS232 port 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 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]]
digispark/tutorials/debugging.1367746607.txt.gz · Last modified: 2013/05/05 02:36 by RC Navy