Micro Maestro 6-Channel USB Servo Controller

Hi everybody.

im building a custom RC model with autopilot.
So, I need to operate my unit in 2 modes: with RC remote contol and automatically, using microcontroller.

Now im trying to figure out how to made learning mode - when microcontroller reads operator inputs and store them for future automatic replay.

It seems that Maestro can do all the job for me since it have a input mode. I’d like to have data of all 6 ch positions, that comes from rc-receiver.

To do this I need to modify firmware of the unit.
So, the questions are:

  1. is it correct approach to solve my problem
  2. where to get firmware (couldnt find it on pololu site)
  3. is the unit fast enough to handle all 6 channels ? (AFAIK in RC protocol T = 2ms)

Last but not the less question - can I use Maestro under WinCE ? It has only be a 2 com ports in devmanager. Y so much code ? (dlls etc)

R/C receivers use PWM signals, not the analog signals that the Maestro can receive. So there is no way to use a Maestro to learn the inputs from your controller.

To do what you want you should use a fully programmable controller such as the Baby Orangutan. We provide servo generation and pulse reading code with the Pololu AVR Library, so it should be straightforward to both record and play back R/C pulses on a Baby Orangutan. Storing 6 channels of data will use up the available memory on the Baby Orangutan very quickly, however - do you know how many different points or positions you will need to record?

We do not provide any support for WinCE. I do not understand the rest of your question…are you asking why we have several different DLL files included with the Maestro download? Some of these are for the installer, and some support the Maestro Control Center.


Hi Paul, and thanks for quick answer !

AFAIK theres no big difference for controller. It just need to determine hi and low levels of incoming “analog” signal (wich is PWM ofcause). Correct me if I wrong =)

I’d like to have 4th Maestro mode - “Servo input” =) I think i can do it myself if it is possible and firmware codes available.

Yes, that was my original idea, but when I read Maestro manual I come up with this idea. I even ordered BO among Maestor and many other things and now waiting for shipment delivery.

Logging positions i’m going to do on the PC side through USB. From BO i need signals to be converted to char or byte data and send it to PC with serial-usb adapter.

Yes, thanks mate. This is that I wanted to know. I need to run maestro under WinCE nevertheless u do not support WinCE =)) But now i C it quite possible, cuz there no need in drivers for com ports - only for control panel.

Yes, there is a big difference. To measure R/C pulses accurately enough to do anything useful, you will need at least 2 us precision on the width of the pulse, which means about 1 us precision on each transition. That is not possible with A/D readings, which take about 100 us, and doing anything with the results in a script or over USB would take even longer.

It would be nice to have a Servo Input mode, but it is hard enough to generate pulses with sub-microsecond precision - generating them while listening to incoming pulses is impossible, since handling either event takes at least a few microseconds, and the two types of events might happen simultaneously.

We are not releasing the firmware source code. Could you tell us what makes the Maestro more interesting than the Baby Orangutan to you if you would have to rewrite the code yourself anyway? Have you done PIC18 development before? (It is quite annoying compared to programming for the AVR!)

WinCE does not support WinUSB, which is what we use for the Maestro Control Center. If there is USB serial support (CDC ACM) included with WinCE, and if you know about windows .inf files, you might be able to add WinCE support for the virtual COM ports. We do not have WinCE over here for testing, but we would be interested to know if you get anything to work.


This gets us back to original question - about sampling rate this card can do. Thanks. THis is all i needed to know.

I’ve never suggested anything like that. =)) Idea was to put card in read mode and convert voltage change timing to string a then out it to PC. In this case signals are generated by RC receiver and is read by Maestro.
BUt if highest possible reading rate of the card is not enough I should consider to use Bayby-O for this task.

No, i don’t have an experience in writing any kind of firmwares so far =) I thought about using both controls - standard RC and maestro (with switch of cause). But when servos controlled by RC it would be great to sniff received PWMs with connected Maestro. But, I don’t C any problem to use baby-O for this.

I have studied some manuals about USB functioning (including Universal Serial Bus Class Definitions for Communication Devices u mentioned) and I think I can make Maestro visible to WinCE.

I have a card with similar function set
It works fine under WinCE with universal RS232toUSB driver installed for this card.
It appears as a simple COM port in Device manager.
But i think special INF file should be enough to get all this working.

Thanks again.

Okay, well, I suggest you try the Maestro drivers on WinCE and see whether they work for you. If not, maybe by comparing our .inf file to one you use for that Ke-USB24R board. By the way, as far as I can tell, they do not say anything about WinCE on the product page - do you use a special driver or just the KeUsb2Com.inf they provide?

By the way, with the Maestro in USB dual port mode, the second COM port can function as the USB-to-serial adapter for your Baby Orangutan. Not sure if this would be useful to do, but it would at least allow you to use the Maestro for the final servo control.


No, they do not provipe WinCE support too.
I just found the easiest way to use it with universal driver, so I didn’t mess up with INF files. But I’ll try my best =) And of cause I will share the results here.

Yes, I know, and I’m counting on it alot. Even more since I have to use BabyO for RC signal reading.
I WILL ask for more help when my package arrives =)

PS It’s pitty that we can’t use Maestro for RC read. The solution could be very good lookin’ this way =)

Could you explain what you mean by the “universal driver”? It would be interesting to see how to get any USB COM port working on WinCE. Otherwise, good luck and do let us know if you need more help once you have the actual devices.


I were waiting 4 this question =))))

Here’s the 1st useful link from Google
yetanotherhomepage.com/j7xx/ … river.html

I have this DLL compied for MIPS processors.

And i’m using it with Cowon Q9 as a host device (it has a USB host)

Again, It’s kind of a problem that WinCE devices can have a processor of various type (MIPS / ARM4 in most cases), so this DLL should be compiled specially for your device. I got luck to find this driver at all =)

Interesting! I hope it can work with a composite device. Please let us know what you find out when you get the Maestro. We can provide details about the device if you need help filling in those blanks.


Thanks, Paul. Im anxiously waiting for my package =))

Hi, Paul !
I finally got my package.

First of all I have to say, I was shocked how small parts are. It’s a GD tiny ! Amazing.

All I have tried ATM is to connect Maestro to WinCE device.

When connecting WinCE asks for driver 2 times which indicates that device is recognized as composite.
But when I took a look at device manager I found only one new device. =(
I’ve not checked if Maestro functioning or not under CE, but I will soon.

Now I’m going to check measuring unit first - it’s one of most interesting for me =)

I will update this post when I have any progress.
Thank you guys for great (at first look :slight_smile: ) product.

UPD: IMHO, You should FORCE people to buy jumper wires when they ordering 1st time !

Great, well please do let us know whether you can get it working on WinCE! Did you forget to get the jumper wires? I know what you mean - I have been using them for all of my projects since we first started stocking them, even when I only need a connector on one side and have to cut/strip/solder the other end as usual.


I don’t actually forgot it. :slight_smile:
In my project (UAV) at first I wanted all wires to be soldered or have a connectors with locks to increase reliability.
But now i recognize a size and weight of modules and I think connectors is too small to affect it.
(i was afraid it will fall apart because of vibration)
And of course you really need wires for testing. Good thing - I have a lot of flat wires and different kinds of connectors from old computer hardware. =)

I made a brief google for USB devices supporting WinCE and unfortunately I haven’t found any which need only inf file. All devices I found have an additional DLL (often called VirtualCom or *serialDrv etc.)
So, it seems WinCE doesn’t have a default driver for this class of CDC device or smth else is missing.

I’ve downloaded source code of driver I’ve talking about before, and going to parse it at weekend.