In 2006 I preordered a robotics platform form a new and upcoming company WhiteBox Robotics. I became part of the “The gang of five” that received the first 5 robots off the line. My platform (SN #4) was lovingly dubbed 'Odin' and enjoyed for years.
This platform utilized the precursor to the modern robotics operating system (ROS) called Player/Stage.
My documentation and various parts were lost over the years and the WhiteBox Robotics web site hosting the majority of the information has long since been removed. I was able to locate some information on this website that was extremely helpful.
After reviewing the base platform I decided to attempt to restore and repurpose this robot. As an electrical engineer by trade and robotic hobbyist I decided to utilize a distributed set of low cost microcontrollers to perform all the basic functions and be controlled from a central, remote node. My goal was to avoid the complexity of an operating system and give reliable, low level control. (spoiler: I failed)
Continued research lead me to this project that was close to my goal. I was very excited and at first was bound to just replicate his approach. After disassembling the platform and replacing the SLA batteries I was ready to start controlling motors. That is when I went off the rails....
The M3 motor controller in the PCBOT is core to the original design and I just could not bring myself to removing it.
Custom USB device with DIO, AD's, high current outputs, IO expansion box, along with motor controllers made it a hard sell in my mind to remove and replicate. Locating the datasheet for the main motor controller IC's convinced me that I needed to find a way to reuse the M3 module.
Lots of time and effort was spent attempting to utilize a uP to connect to the M3. ESP32's, PICO 2W, etc were all attempted to be utilized with corresponding microROS utilities. I do believe it is possible using a uP with a USB host to connect but the uP's I selected did not support host mode in microROS and my skill in SW development was not up to the task. Combine that with the fact that custom baud rates are used to communicate with the MC3410 and I finally came to the conclusion that utilizing an OS may be prudent.
Additional research lead me to this documentation and repository. This is the mother load! This individual was able to archive the original Player/Stage driver for the M3 module.
what a beauty