SD card data logging with maestro servo controller

Has anyone tried to log data by interfacing a maestro servo controller with a SD card?
I’d appreciate any experience you have had in this regard. Thanks.
I’ve been looking at how it has been done with the arduino, and certainly the hardware end is simple enough.
Even raw writing is probably sufficient, and I’m exploring the specifications, but if someone has done it already, that would be great.

I’ll likely use openlog, from the research I’ve been doing.
I certainly could write directly to the card, but openlog will give me FAT on the card rather than raw data, and that is certainly worth something in terms of user friendliness to the end customer. OpenLog:
I expect I can use the TX line from the maestro to output to openlog.


I do not think anyone has tried it, but you should be able to communicate with the OpenLog using the Maestro’s TX line and the SEND_BYTE script command. Note that sending Ctrl-Z (character 26) one or three times (depending on where in the docs you look) will put OpenLog into a different mode, so you will have to get around this limitation somehow if you want to save binary data. What are you planning to log?


I’m logging the duration of the two timed pulses I’m measuring ( the data is stored as servo pulse widths, but there are no servos ) .

I’m also logging 2 servo pulse widths - one that is being set by a computer through the usb port ( again, just a way of storing the data from the computer - there is no servo here ), and another that is being set by a script that integrates the data from the two measured pulse widths and the computer data to set the position of an actual servo.

Normally I’m logging this information in the computer connected to the usb port - but there are times when I will have multiple devices connected together.

The master is on the usb port and its data is logged on the computer ( the servo settings are read, which is storing the 4 pieces of data) .

The slaves will all do their own thing, but for one piece of data, which is the one piece from the computer which will go out to all the controllers by the TX line of the master - RX line of the slaves - which is just a command to set a servo ( the one that is not really connected to a servo ).

These slaves will then log their data using their TX lines to the OpenLog device so that each controller, which is measuring its own set of pulses, and integrating them with the set-servo that came down the RX line from the master, will be logged to the SD card.

I don’t think the Ctrl-Z character will be a limitation - the pulse widths don’t get that small - I don’t remember right off what the minimum settable pulse width is on the maestro, but I offset that to represent the 90ms minimum pulse width that I need to measure.

The other two servos I’m defining using the 8 bit protocol, so I could have two 026’s in a row, but never a third. I’ll probably send a record separation character between frames.
This is configurable anyway on OpenLog and you can change the character, and define how many in a row are required - so I can bump it up to 5 and the frame separator will make sure that the log is not closed accidentally.

Well, it sounds like you know how to make the OpenLog work, so I will not bother you about that. But are you saying that the master and each slave will each have its own OpenLog? That seems like an incredible pain to manage; if I were you I would just log everything on the computer. The Pololu protocol allows bidirectional communication with a chain of Maestros, so it could just poll them for data once in a while.


the data on each device belongs to a user - they will put in their own sd card, log their own data and take it with them when they leave… an application which analyzes the data would be on their own computers at home.

Okay. It sounds complicated, but I think you know what you need to do. Good luck, and please let us know how it goes!