We found support for old control systems quite lacking. In our inventory we have IFI controllers all the way back to the Basic Stamp IIe versions up to 8slot, and 4slot cRIOs. This year we’ve decided to go a different direction and instead of getting those old controllers working (with almost no documentation) to roll our own with off the shelf components and no custom hardware. We looked at existing solutions and found what is lacking is the ability to source replacements into the future.
We have a ton of old victors, spike relays, and digital side cars laying around. Although the side car is a custom component with out a replacement that likely won’t be supported in the future, we can design our system to use something else when the time comes.
So far what we’re building is a dual Arduino mega controller. One for the robot side and one for the OI side. Bluetooth will be used to communicate between the two devices. We picked the HC-05 as the solution, it allows us to set one as master and the other as slave. On the side car side, many of the digital pins go straight to it, but there are 3 serial to parallel latching converters. Not much in the way of custom shields used these relays, however, there is tons of documentation on the internet on using the chips. Safety is important when using a custom control system. The Bluetooth modules supply an output that’s pulled down when the module is connected. We also use a second safety check on the serial data between the OI and the robot checking the last time a good packet was received. If any condition where there is no Bluetooth connection OR there hasn’t been a valid packet in more than 100ms, then the outputs are disabled.
When we get one of these set up, we’ll publish back here pictures and a code repository.
We went with an Arduino since it uses C++ and is easy to convert parts of the Java Code on the current robot. For example, this year or roller has a thru beam which detects a ball. We can plug-and-and play this functionality straight into the Arduino as it is a simple if… then statement.