At one point an Arduino was in the mix. We were also looking at building our own microcontroller based on an ARM chip. The ClearCore was a bit of a no-brainer for us, in part because three of our motors are made by Teknic and are essentially plug and play with this controller. The four large connectors in the middle are specifically for their ClearPath motors. We’re using one for feed, one for takeup, and one for the capstan drive. Adding additional I/O is easy - just plug in a CCIO-8 board ($45), and connect it with a short ethernet cable, to get additional ports.
Programming the ClearCore is done in C++. There are two ways to do it - using the Microsemi Studio (formerly Atmel Studio) IDE, or the Arduino IDE. There’s a layer you can use that lets you program the ClearCore like an Arduino. However, I don’t know if that’s more limited. We hired an embedded systems engineer to code the firmware for us and he’s using the Teknic API. Looking at what needs to be done, and the sample code provided by Teknic on their site, I’m pretty confident I could have done it myself, but …you know, time.
For non-Teknic motors, you’d use some of the smaller connectors around the outside of the box, and those work a lot like the Arduino. I never got into dealing with encoders with the Arduino, but my understanding is that you need to work with that at the interrupt level, and part of the issue with Arduinos is that they use cheap, relatively slow, chips, which can make things challenging if you need to react quickly. Again, I haven’t done this, but was dissuaded from using it by people who know, who said it’d be a huge hassle to get interrupts to work with encoders on the Arduino.
While the ClearPath motors are a bit expensive, one nice feature is that they have integrated drivers. The MPVC motors (note the P in the model name), have positioning capabilities, because they’re closed loop motors. This lets you accurately count your position. We’re using one of these for the capstan drive, and MCVC motors for feed and takeup, just to keep the tension on the film.
We’re also using Schneider Mdrive steppers for the camera and lens positioning motors, and those are also self-driving, closed loop motors. It may be worth looking into using something like that, where you can tell the motor “go X steps” or “go to X position” and just be confident it’s doing it.