I have a MacBook Pro running MacOS 10.11. I wanted to use it to drive a Micro Maestro (6 channel) servo controller.
Being a somewhat odd duck I have the following constraints:
- I DO NOT have a Windows machine and I don’t want to buy one.
- I want to program in Java, not C/C++.
While I don’t have/want a Windows machine, I’ve had the need for Windows programs in that past and I use Parallels to run them. To do initial testing of the Maestro, I fired up Parallels and Windows 8.1. I followed the instructions in the User’s Guide to install the Control Center. The installation went exactly as described in the Guide. I hooked up a couple of servos to the Maestro using an independent power source for the servos, and then started driving them with the Control Center. Everything worked exactly as one would expect as if I was running on a true Windows machine. I suppose many would not be surprised, but I was. The ability to run the Control Center certainly makes an iterative development process easier.
The second constraint was more troublesome. I found this post Open Source Java for Pololu Maestro Servo Controllers. It sort of gave me the answers. I ran a test program (using Eclipse) and I could make the servos move from Java. Kudos to GregE!
I discovered during my testing that I could drive the Mastro from both Parallels and Java. There was no need to “kill” one to use the other. Yet another somewhat surprising fact, yet also extremely beneficial.
One thing I discovered while reverse engineering GregE’s code is that the protocol used to communicate with the Maestro via USB is different than the serial protocol documented in the User’s Guide. It does not matter whether the code is running in Windows or MacOS. The USB protocol can be deciphered by using the files …/usc/protocol.h, Usc_protocol.cs, an Usc.cs in the Pololu Maestro SDK.
I have created a simplified, and a bit extended, version of GregE’s code (in Java of course) that I hope to use in my project. No doubt it will evolve as I iterate the overall design. I will post it at some point when I feel it is mature enough.