Software Issues

Hi,

I’m really new to smoothie board and I’m at the point where I just need to move my motors and they aren’t moving. There might be various reasons why but I want to start with how pronterface works. I’m not familiar with it. I’m sending in g-code commands and it doesnt seem to move the motors. I’m wondering how pronterface knows which Motor on the board I’m trying to interface with? (I’m using an external stepper driver) For instance: I have M1 hooked up to one motor, when I send in the command, does pronterface see M1 as the x-axis? I’m just a little confused at how pronterface actually interfaces with smoothie board.

Any help is appreciated. This is for my senior project.

External driver: microstep driver cw230
motor: SM57Ht51-3006A (from buildyourcnc.com)

Imported from wikidot

The smoothie configuration file specifies which pins are connected to which axis, but by default I think m1 is x.

Also you may need to send commands with an @ sign at the start of the line in pronterface, can’t recall (don’t have it to hand and don’t use it often).

For the @ sign, I thought that Gcode commands can be sent straight in but other commands needed the symbol? I just re-read what they had to say on using commands and its a little ambiguous:

//In addition to G-codes, Smoothie understands a set of commands.
You can find a list of useful commands here.
However, sending commands is not as trivial as sending G-codes.
Because Pronterface is used to G-codes, but not commands, it will ignore commands if you input those as-is.
So, you need to add a @ character before the command to send it.
For example, to send the version command, you need to actually send @version.

Pronterface requires that you prefix your commands with the @ character.
So for example if you want to use the help command, send :
@help
On other hosts you can use M1000 command//

Hey.

Pronterface just knows to tell your Smoothieboard to move “X”.
Then it’s Smoothieboard itself that knows ( from the configuration file ) that X is M1.

Are you sure your external drivers are getting power ? Are you sure the step/direction/enable lines are correctly wired ?

Cheers.

Thats my second guess as to why my motors aren’t turning, I might not be driving enough power to the external motors. Looking up the documentation, the driver is 5V logic and 10mA is required for signal current and looking at smoothieboard’s spec’s, its 3.3V logic and 4mA output current on each pin. I have a level shifter that brings the 3.3V up to 5V on each pin. I might not be supplying enough signal current to the external driver, do you have any recommendations how to bump up the 4mA to 10mA?

On the external driver I have the motor wired up correctly to the external driver. From the smoothieboard to the external driver, I have all the (-) pins tied to ground; EN to RES+; DIR to CW+; and STP to CP+.

Thank you for you help! I really appreciate it.

If you have a level shifter, you shouldn’t have any current or tension problem. That’s probably not it ( unless it’s not wired correctly ).

Maybe try disconnecting EN/RES+, and just hard-wiring to always-enabled.

Did you read http://smoothieware.org/general-appendixes#external-drivers ? Are you sure the pins are all configured correctly ?

I set the Enable pin to always on and had my RES+ pin on my external driver as floating because I don’t actually need it.
The only other pins are the Step and Dir pins which are indeed configured correctly.

I did verify the logic supply current on the board on the low side of the level shifter and the high side of the level shifter.
It seems like I’m getting ~3mA on both sides which is problem because the external driver requires 10mA.

I’m using the level shifter that smoothie actually recommends by spark fun (product# 12009 - Logic Level Converter - Bi-Directional) and it seems pretty straight forward. I’m putting in 3.3V on the low side and 5V on the high side. I have all my signals from the board going into the low side of the level shifter and outputting the high side of the level shifter to the external driver respective of each channel.

I have a DMM hooked up in series on the Direction signal line on the high side of the level shifter to the external driver and I’m sending in commands through pronterface and the current reads 0A to 3mA depending on which direction I’m sending in. So I think the problem is that the level shifter is actually making the current smaller. Is there a solution to making the current higher?

Again, thank you for all your help!

The transistors on that level converter board can do 0.22A, which is many many times enough for your external driver. You are probably measuring 3mA because that’s all the external driver really needs … So I don’t think that’s where the problem is ( and you most likely do not need the level converter ).

Do you have any way to try controlling the external driver another way ( an arduino uno with the blink sketch or something similar ? )

I think you’re right. I also tried wiring the board to the external driver via open-drain and changed the config file (alpha_step_pin 2.0o). I measured the current and it’s actually drawing 10mA this time which is what the spec sheet says for the MA860H Microstep driver and it still doesn’t work. I can see the current changing on the direction line when Im sending in the signals from pronterface. I still don’t know why its not moving.

The only other controller I have is the C32 Dual Port Multifunctioning CNC Board and the motors are able to move using this board.

I can’t see a reason why it wouldn’t work. The driver seems very common, these types of drivers are well known to work.
My guess would be something wrong with enabling the driver. Have you tried hardwiring it to enabled ? If so can you try hardwiring it to disabled too, just in case ?