No data returned after serial Get Script Status

I have a project to control two parts of a large scale model railway with two Maestro servo controllers. Part one has al the inputs for control of points in the terminal area using the first Maestro and is working perfectly. The second Maestro has four subroutines on it for control of a return loop. These are run by a serial command from the first Maestro, operating points from input by the passing train and then they quit. I am trying to get the two Maestro’s talking to each other across serial lines. First Maestro is the master, 24 channel and is set to number 12 and UART 9600 fixed baud rate. Second, slave, is 18 channel and is set to 13 and 9600 fixed baud rate. TX on first connected to RX on second and vice versa plus a GND to both units. All programming is being done on the scripts in the Pololu Maestro Control Center connected via USB as I know nothing of C !. I have successfully sent set target and restart script at subroutine serial commands from both Maestro’s to the other. As I need to know when a script on one Maestro has finished so the other can carry on I need to get the script status. I send a 170 12 46 or 170 13 46 command from the relevant Maestro but nothing shows up on the Control Center stack. When I try to process any return I get a stack overflow. I have since tried a get position command and again I get no return data. Using the Serial Transmitter for each unit does show a return thoough !. Is it possible to do this using the Maestro Control Centre software or am I doing some thing wrong some where ?. Any help for a newbie to all this in steering me to an answer would help.
Dougie Leaver

Hello, dougie.

Maestros are not really designed to talk to each other across serial lines. The Maestro can receive commands on its RX line, but there is no mechanism that would allow the script to read arbitrary bytes received on the RX line.

To work around this, I would try to just have one script running. The master Maestro would run the script and control the other Maestro by sending Set Target serial commands to it whenever it wants to move a servo.

If you really want to have one script send a simple signal to another script, you could connect an Output channel of one Maestro to an Input channel of another Maestro.

It sounds like you are doing a cool project and you have made a lot of progress so far, so please let us know how it goes!


thanks for the prompt reply. I had thought it would be the answer. I had obviously read to much into the user manual where it talks about being able to wait till a script has stopped on one Maestro before progressing on another. Perhaps a missed opportunity for the Maestro that would have increased its usefullness.
The 24 channel Maestro that runs the terminus is all but used up. Once all the inputs and servo’s have been attached there is no spare capacity so the setting of one of these to announce the end of a script is out. Also another Maestro was going to run some signals and a linear actuator for a sector plate. This would mean its settings would have to be read by the first Maestro to know what settings had alredy been done and to spot conflicting routes. It would seem I need to have another think and possibly consider another level of control above the Maestro’s. These will be kept as they offer superior control over servo’s.
Many thanks for the reply again David, its much appreciated as I can now stop going down that line. (Pun intended !)
Dougie Leaver