Go Down

Topic: (Arduino Yun) MQTT to control multiple motors and IO (Read 638 times) previous topic - next topic


So I have a project that involves multiple IO points and an XY table plus 2 other motors to control. I am currently using MQTT to send messages across a network to control the different functions. I have a desktop application that is sending these messages which are then interpreted by an Arduino Yun.  I have 48 points of IO to control and so I am using a Mayhew Labs MUX Shield II. I also have 4 Pololu DRV8825 stepper controllers. I have 2 issues.

1. My MQTT keeps timing out when I send coordinates to the controller. Its hit or miss when the Keep Alive Ping request will actually go through, which I am unsure of whether I am overloading my MQTT server or if my Yun is just not hitting the loop. After a lot of troubleshooting I can watch through the serial window each iteration of moving the motors to different coordinates and the loop for the Keep Alive running. It seems to lock up at different instances. Sometimes it works perfectly fine when it is sent 500 different points to travel to. Other times it struggles to hit 20. The MQTT server only shows that the timeout was exceeded. Each point is sent from a loop on the desktop program that sends a message every 50 milliseconds. My interrupts to control the motors run every 100 microseconds.

2. This is more directed at the Mux Shield. I'm using the second row of pins to control the step and directions lines of the motor controllers. I'm not sure if it related to the speed at which I'm trying to change the outputs or what, but it seems like writing to the first pin in the second row controls the entire row. I can control the outputs to the third row of pins just fine. I can also read inputs just fine on the first row. I am posting this question on Mayhew's site as well but figured if you guys had any input that'd be cool too.

Go Up