You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
These motors work with 1 Mbps serial connection. My library is based on the original Arbotix library, and has a custom ISR (RX_VECT) handler, ie not using HardwareSerial.cpp.
On boards with multiple UARTs (such as Mega2560, etc.), it would be good to use 1 UART for the Dynamixel motors, and the remaining UARTs with Arduino Serial library. But this is not possible, because HardwareSerial.cpp appropriates all the 4 UARTs ISRs, even if only one serial port is actually used.
It would be nice that HardwareSerial.cpp will declare the ISR only for the ports that have been initialized with Serial.begin (), or that Serial objects were not pre-instantiated, or whatever else that allows to declare an ISR (RX_VECT) for a UART that is not in use by the library, and then use it to control Dynamixel motors.
The text was updated successfully, but these errors were encountered:
this would also help for libraries that creates DMX.
on devices like 1284 or 2560 it makes sens to just instantiate the Serial Class for the ports you need it..
so you can mix the build In Serial with other libs that use the Hardware USARTs
My pullrequest #1711 achieves exactly this, the commit "Put each HardwareSerial instance in its own .cpp file" prevents ISRs for a UART from being included in the final program if the corresponding HardwareSerial object is not used in any way.
Years ago I developed a library for Dynmamixel motors (AX12, AX18, RX24F, MX28, etc. http://www.pablogindel.com/2010/01/biblioteca-de-arduino-para-ax-12 ).
These motors work with 1 Mbps serial connection. My library is based on the original Arbotix library, and has a custom ISR (RX_VECT) handler, ie not using HardwareSerial.cpp.
On boards with multiple UARTs (such as Mega2560, etc.), it would be good to use 1 UART for the Dynamixel motors, and the remaining UARTs with Arduino Serial library. But this is not possible, because HardwareSerial.cpp appropriates all the 4 UARTs ISRs, even if only one serial port is actually used.
It would be nice that HardwareSerial.cpp will declare the ISR only for the ports that have been initialized with Serial.begin (), or that Serial objects were not pre-instantiated, or whatever else that allows to declare an ISR (RX_VECT) for a UART that is not in use by the library, and then use it to control Dynamixel motors.
The text was updated successfully, but these errors were encountered: