How to Troubleshoot Board to Shield or Shield to Motor Connection Problems?

Hello folks!!

My father just recently purchased a second-hand Maslow v1 with Z-axis motor (something very similar to this kit: Complete Maslow full kit – EastBaySource). He spent over an hour at the seller’s shop getting a rundown of features/calibration and seeing a couple sample cuts: it all worked fine before disassembly, but now I’ve been tasked with getting it up and running in his shop.

The short version of this story is that the “Test Motors / Encoders” button does nothing despite having the newest Web Control installed and the firmware flashed from within it to the Arduino. The long version is below:

We installed Pop_OS 20.10 on an old laptop to dedicate to the Maslow.

We installed WebControl v0.94 from https://github.com/WebControlCNC/WebControl/releases. After launching, systemctl shows the service as active and the web interface shows up fine.

We reassembled the frame, mounted the Arduino and Shield, attached power (initially to the Arduino instead of the Shield), and plugged the motors in.

We installed the Arduino IDE and flashed https://github.com/MaslowCNC/Firmware -> [Green 'Code' Button] -> Download as Zip to the Arduino per the instructions on that page. This part took some digging as the Arduino was not write-accessible but we did eventually get it to flash from within the Arduino IDE.

We tried to connect WebControl to the Arduino to start hooking up chains, but got a connection error message. We then flashed the Arduino with stock firmware from within WebControl and it began connecting successfully.

After sending a few commands to see if the motors would turn (they didn’t), I realized we had power in the Arduino instead of the shield, so swapped that over. Pressing the move icons still doesn’t work. Using the Test Motors / Encoders feature does nothing: no motor spin, no electrical noise, nothing.

I’m creating this post a day later so some details are a little fuzzy, but at this point we have an orange blinky light on the Arduino and two solid green lights on the Shield and absolutely no response from the machine despite showing as “Connected” within WebControl.

We’ve tried moving the motor plugs between different ports on the Arduino, a different USB cord, a different USB port, Holey firmware from within WebControl, flashing stock firmware from the Arduino IDE again (this time there weren’t connection errors), reseating the Shield, and repowering everything a couple times, all while re-enabling write access on the Arduino each time (just in case this could’ve mattered; I have no idea.)

He didn’t let on but I could tell he was very disappointed that it may never work, so I’m here to see if anyone has some tips or ideas for me.

At the very least I’d like to figure out where this chain is broken so I can start narrowing down the issue. If the firmware is flashing and the connection is showing up in WebControl, then the Arduino should be fine, correct? Or is the status of “Connected” within WebControl very easy to achieve despite there still being some potential problem with the Arduino?

How can I confirm that messages are being sent properly from WebControl to the Arduino and that the Arduino is receiving them?

How can I confirm that messages are being sent properly from the Arduino to the Shield, and that the Shield is receiving them?

And if the messages are going to the Shield, how can I confirm that the Shield is outputting the right signals for motor control? I could put a multimeter on the pins but I wouldn’t know which ones to test.

If he hadn’t seen it working just last week I would tell him I thought the Shield was broken, but I don’t know how to confirm this. I’m really hoping that’s not the case, as $150 is a lot to spend for a new board, but if I can for sure confirm it will fix the problem then I’d be comfortable recommending it to him.

Unfortunately I am away from the machine now so can’t do a lot of in-person troubleshooting, but will be able to report back by the end of this weekend. Hopefully I can get half a dozen ideas to try and get it running. Thank you for any help or ideas you might be able to provide!

make sure the 12 power that runs the motors is plugged into the top motor control shield and not the arduino. the arduino gets power from the USB.

1 Like

Correct, that’s how it is set up right now.

1 Like

You mentioned Eastbay source. Do you have a version 1.5b board? If so, you need to get the source code from Eastbay, not from webcontrol because that board version is not supported in webcontrol (yet), though there is work being done on it.

Holey firmware for the 1.5b will be available soon, but not yet.

1 Like

Sorry for the confusion; I linked there because I wasn’t sure what the name/version/“model” that he bought was called and I didn’t want my incorrect terminology (V1?) to get anyone mixed up. The board version is 1.4b. This is 2nd-hand unit but there was a MakerMade flash drive included so it wouldn’t be an Eastbay version.

1 Like

you have a mega controller and a 1.4 version board. All webcontrol firmware versions should work with it.

ok, so you need to establish that you have communication first. Use minicom or the arduino ide serial monitor to verify you have communication to /dev/ttyACM0 at 57600 bps since you are using a linux system.

Once you can see characters from the arduino mega controller, then you can close the serial monitor or minicom and then start webcontrol. When you start webcontrol, start it from a terminal window and then interact with it from another machine so you can watch the terminal window communicate with the device. You open a web browser to the PC IP address at port 5000 (for example 192.168.1.??:5000). Your phone will work for testing as long as it is on the same wifi so you can watch the terminal. Alternatively, you can window the web page and the terminal side-by-side on the same machine to see what is happening.

Is webcontrol in FAKE SERVO mode? If so, no motor movement will occur and it will pretend to move things on the screen, but not actually run any motors. This is a simulation mode and must be turned off. It will indicate it in the upper right of your window.

1 Like

Yes, these are the kind of steps I’m talking about! :slight_smile:

I am getting the electronics tonight to begin trying stuff and will report back, thank you so much.

1 Like

Finally got it!

I absolutely know that I was on stock firmware for most of my testing, but running WebControl from the terminal reported back a good connection to a board with FW version of 51.xx (whatever Holey is). Thought this was very weird, and I installed the stock firmware. This time, however, I got actual confirmations that the firmware installed correctly, which I do not remember when flashing the Arduino the other half-a-dozen times or so, and the only variable that changed from then was that I was using my own definitely-working printer cable instead of something that just came out of a box of junk at my dad’s.

So I think that with my new cable, the firmware flashed correctly and everything seems to be fine now. I still can’t believe it was showing as connected to something that may have flashed incorrectly in the first place, but…shrug. To be fair, I guess it was showing connected to a device with firmware that was incompatible with it, so there is that. Just glad we can move on to the next step, thank you so much @Orob !

4 Likes

I’ve been in a similar battle with an original Maslow setup, so I feel your frustration. Glad to hear it’s working now!! It feels good when you finally have it running and make your first cut.

Something that kept messing my connection up was having the Arudino IDE ope while the WebControl terminal connection was running as well. It may not work this way, but as soon as I closed the IDE and had just WC running, no issues.

The IDE and WebControl don’t like sharing the connection to the Arduino. Neither does Ground Control. I usually have to shut down one or the other and just have on connection at a time. Its annoying but i haven’t found a way around it yet either

1 Like