KaitoBotz
Wheel Encoder On Opencm 9.04
I’m running ARC on Windows with a Robotis OpenCM 9.04-C over USB. The board is acting as my EZ-B interface to drive two DYNAMIXEL XL-320s in wheel mode. I’ve added single-channel Hall encoders (open-collector, pulled up to 3.3v) on each wheel and I’m trying to use the Wheel Encoder Counter robot skill so I can feed pose to NMS. The skill’s page references Arduino UNO firmware, but I’d really like to keep everything on the OpenCM if possible.
I ported the UNO sketch to OpenCM (Arduino IDE with OpenCM core), using attachInterrupt on two digital pins. Counts look correct in Serial Monitor. To test with the Wheel Encoder Counter skill, I pointed it at the OpenCM’s COM port and tried a few baud rates (9600/115200). With my current output format:
SerialUSB.print("L:"); SerialUSB.print(leftCount);
SerialUSB.print(",R:"); SerialUSB.println(rightCount);
the skill’s debug shows intermittent "timeout reading encoder values" and sometimes "invalid data frame". I also tried only responding when polled (listening for a single character like 'G' then printing counts), but I’m clearly not matching the protocol the skill expects.
A few concrete questions:
- What exact serial protocol does Wheel Encoder Counter expect (baud, request/response or streaming, delimiters, and field order)? A short example of a valid line would be great.
- Does the skill require the UNO firmware’s specific command set, or is it simply reading formatted text each poll interval?
- Can Wheel Encoder Counter share the same COM port that ARC uses to talk to the OpenCM for servos, or does it need a dedicated serial device?
If keeping it on one MCU is unrealistic, I can add a tiny Arduino just for encoders, but before I do that, is there a documented protocol I can implement on the OpenCM to satisfy the Wheel Encoder Counter skill?
Related Hardware (view all EZB hardware)
