diff --git a/Arduino/ODriveArduino/examples/ODriveArduinoTest/ODriveArduinoTest.ino b/Arduino/ODriveArduino/examples/ODriveArduinoTest/ODriveArduinoTest.ino index c2cc8b77..eb1a4e73 100644 --- a/Arduino/ODriveArduino/examples/ODriveArduinoTest/ODriveArduinoTest.ino +++ b/Arduino/ODriveArduino/examples/ODriveArduinoTest/ODriveArduinoTest.ino @@ -1,14 +1,38 @@ - +// includes #include #include - -// Printing with stream operator +// Printing with stream operator helper functions template inline Print& operator <<(Print &obj, T arg) { obj.print(arg); return obj; } template<> inline Print& operator <<(Print &obj, float arg) { obj.print(arg, 4); return obj; } -// Serial to the ODrive -SoftwareSerial odrive_serial(8, 9); //RX (ODrive TX), TX (ODrive RX) -// Note: you must also connect GND on ODrive to GND on Arduino! + +//////////////////////////////// +// Set up serial pins to the ODrive +//////////////////////////////// + +// Below are some sample configurations. +// You can comment out the default Teensy one and uncomment the one you wish to use. +// You can of course use something different if you like +// Don't forget to also connect ODrive GND to Arduino GND. + +// Teensy 3 and 4 (all versions) - Serial1 +// pin 0: RX - connect to ODrive TX +// pin 1: TX - connect to ODrive RX +// See https://www.pjrc.com/teensy/td_uart.html for other options on Teensy +Stream& odrive_serial = Serial1; + +// Arduino Mega or Due - Serial1 +// pin 19: RX - connect to ODrive TX +// pin 18: TX - connect to ODrive RX +// See https://www.arduino.cc/reference/en/language/functions/communication/serial/ for other options +// Stream& odrive_serial = Serial1; + +// Arduino without spare serial ports (such as Arduino UNO) have to use software serial. +// Note that this is implemented poorly and can lead to wrong data sent or read. +// pin 8: RX - connect to ODrive TX +// pin 9: TX - connect to ODrive RX +// SoftwareSerial odrive_serial(8, 9); + // ODrive object ODriveArduino odrive(odrive_serial);