Close
0%
0%

Mechaduino

Mechaduino is an affordable, open-source, industrial servo motor. Position, torque, velocity, and custom modes. Arduino compatible.

Similar projects worth following
Engineers use servo motors to achieve the precision motion required in applications such as robotics, automation, and CNC manufacturing. Like RC servos, industrial servos actively correct for external disturbances. Unlike RC servos, industrial servos can provide very accurate motion, and often support advanced motion control modes. Unfortunately the cost of industrial servos is prohibitive to the individual maker (thousands of dollars per motor).

We've been developing an affordable open-source industrial servo motor, opening the door to sophisticated mechatronics applications. Our design leverages the low cost of mass produced stepper motors. We are able to achieve very high resolution via 14b encoder feedback (after calibration routine!). For more information, including demos of our working prototypes, check out the external links (below to the left).

Kickstarter campaign successful!

Missed the Kickstarter? Mechaduino is available for pre-order here!

Goals: (in no particular order)

  • Position, velocity, torque loops
  • Step & direction inputs for drop-in compatibility with stepper motors / step stick
  • I2c, serial inputs
  • Customizable/open source with access to internal variables
  • Transparent and user-definable control algorithms (commercial servos often lack this)
  • Arduino compatible with easy to use interface
  • High resolution pointing (sub 0.1 degree)
  • Low cost (should not be a huge leap from stepper+stepstick cost)
  • Serial interfaces for inter-motor communication
  • On-board processor allows for stand alone for simple applications
  • Adjustable commutation profiles
  • PID auto tuning
  • Anti-cogging capable
  • Open to customization. Outside of our firmware, we see Mechaduino as a very useful hardware package. If you would like to use the stepper motor in open loop mode w/ encoder to verify location, you can do that.

We also see could see Mechaduino as an educational tool. Since all the hardware is on one board (sensor, processor, motor driver), set up time is very low, and students can focus on playing with the controller.

Mechaduino 0.1 Hackaday Prize Video:


Mechaduino 0.0 Prototype:


Strategy:

An industrial servo motor can be broken down into four main components (below). First we looked at each of these components and tried to piece together an affordable breadboard-level prototype. After some experimentation, we were able to distill out a working lineup of components. From there, we've been iterating on our design, working out all the kinks, and tuning the control loops. It's starting to come together!

...Back to those four main components:

1) The actual motor, usually of the brushless dc variety. When you look at industrial servo motors, a big chunk of the cost is the motor itself. They are often custom built, or at least built in limited quantities, which means $$$. Watt for watt, I'd guess that a mass produced NEMA 17 or NEMA 23 stepper motor is between a tenth and a hundredth the cost of the BDC motors used in industrial servos. Although their design is optimized for "stepping," stepper motors are really just 50-pole brushless dc motors. They can be controlled exactly like a more traditional 3 phase BDC motor with more poles. So that's the plan. It's working!

2) A sensor for feedback, usually an encoder. Optical encoders are pretty standard, but get quite pricey if you want high resolution and/or absolute position information. We were intrigued by some of the cheap, high resolution magnetic encoders offered by vendors like AMS. It turns out that although they claim 12 and 14 bit resolutions (that's 0.09 and 0.02 degrees respectively), they suffer from non-linearities on the order of a degree or so! However, we found that this non-linearity is very repeatable, and we were able to develop a quick, self contained (on motor) calibration routine that restores resolution to better than 0.1 degrees. (More on this later. This was a significant design effort and is worthy of its own build log!)

3) Drive circuitry/power electronics to excite the motor windings. Many industrial servos use discrete H bridges. Each phase requires it's own H bridge ( for a two phase motor... half bridges for each in a three phase motor), which consists of at least 4 if not 8 (...including freewheeling diodes) discrete switching devices. Throw in gate drive circuitry, and things start to get expensive. We hoped to find a single-chip, integrated solution that would allow for current feedback, and we found just that in the A4954 dual full bridge PWM driver.

4) Control Electronics. Usually a microcontroller or FPGA. Early on, we decided that Arduino compatibility was a must in order to make the firmware as accessible as possible. We chose to use a SAMD21 ARM M0+ (Arduino Zero compatible) processor to balance cost and performance. Our breadboard prototype system verified that this processor was more than capable of executing the necessary algorithms....

Read more »

Adobe Portable Document Format - 1.51 MB - 01/02/2017 at 21:42

Preview
Download

Mechaduino01.sch

Eagle schematic

sch - 2.46 MB - 04/22/2016 at 19:35

Download

Mechaduino01.brd

Eagle board

brd - 858.11 kB - 04/22/2016 at 19:35

Download

Mechaduino_01_Schematic.png

schematic image

Portable Network Graphics (PNG) - 174.33 kB - 04/22/2016 at 19:35

Preview
Download

  • 1 × ATSAMD21G18 Arduino Zero compatible uC
  • 1 × AS5047 14bit absolute magnetic encoder
  • 1 × A4954 Dual full bridge PWM driver
  • 1 × Stepper motor NEMA 17 or other w/ adapter
  • 1 × Magnet: Diametrically Magnetized NdFeBr We are using a D42DIA from K&J Magnetics

View all 7 components

  • Hardware Available & New Firmware!

    jcchurch01/04/2019 at 19:48 1 comment

    After dealing with some parts shortages in 2018, We've finally completed another batch of Mechaduinos!

    Fully assembled Servos are now available here!  PCB kits are available here!

    We also released an update to the firmware!  The calibration table can now be stored in flash memory!  The Mechaduino Manual has also been updated (links below).

    Quick Links:

  • Mechaduino 0.2 PCBs Available

    jcchurch05/06/2017 at 06:55 1 comment

    The updated Mechaduino 0.2 PCB kit is now available for purchase here. A list of updates is available in the latest version of the Mechaduino Manual, and all source files are available on Github.

  • Update!

    jcchurch04/09/2017 at 22:44 0 comments

    We have another batch of Mechaduinos in production that will be available for purchase on our website in a few weeks. Sorry for the delay. We decided to add a couple of improvements to the boards which slowed things down a bit. We will be posting details about the improvements shortly in an updated version of the Mechaduino manual. We'll upload the updated source files to github as soon as we've polished them up.

    -Joe

  • Improved firmware released

    jcchurch11/25/2016 at 19:13 0 comments

    Hi all,

    We've uploaded a significantly improved version of the Mechaduino firmware. It is available here (master branch of our repo). Older versions of the firmware are still available here and here.

    Improvements include:

    -Menus now work!
    -Faster control loop (running 6kHz by default)
    -Ability to adjust PID gains from menu (does not use non-volatile memory yet, so you do have to update firmware for permanent changes, but this makes tuning a lot easier).
    -Generate sine/commutation table on startup, this makes it easy to experiment with different commutation profiles
    -Lots of documentation in code
    -Much cleaner code ( no more "magic" numbers, etc)

    We are almost ready to release a Mechaduino Manual that covers hardware, firmware, and example code. Please stay tuned!
    -Joe

  • CW & CCW Pins Example

    jcchurch11/22/2016 at 01:51 2 comments

    Here's a quick example showing one way to configure two digital IO pins to control the Mechaduino. Pull pin 2 low and the Mechaduino moves CW, pin 3 and it moves CCW:

    First, run the calibration routine and copy the lookup table in to parameters.cpp.

    Next, add the following code in the bottom of the setup function in Mechaduino.ino:

        pinMode(3,INPUT_PULLUP);  //pin for + direction
        pinMode(2,INPUT_PULLUP);  //pin for - direction 
        
        enableTCInterrupts();     //start in closed loop mode
        mode = 'x';

    ...and then enter this code in the loop:

    void loop()
    {
      if (digitalRead(2) & !digitalRead(3)){
        r+= 0.01;
      }
      else if (digitalRead(3) & !digitalRead(2)){
        r-= 0.01;
      }
      delayMicroseconds(5);
      //serialCheck();  
      //r=0.1125*step_count;
    }

    In this example we use the position mode 'x', and increment/decrement the setpoint based on the pin state. You could also use the velocity mode 'v' and set the setpoint to a velocity based on the pin state.

  • Position loop example: setting angle in code

    jcchurch10/25/2016 at 23:18 1 comment

    Here's a quick example demonstrating how to change the setpoint of the position control loop:

    This motion was implemented as shown below. "r" is our global setpoint variable. Since the control loop is implemented using interrupts, you don't really have to worry about it in your main loop once it is enabled!

  • Mechaduinos in the wild?!

    jcchurch10/09/2016 at 12:01 0 comments

    If you ordered Mechaduino hardware through our Kickstarter, you should receive your reward any day now (If you haven't already)! Sales from our website should start to appear next week! We've also heard from quite a number of folks who couldn't wait and built there own! If you would like to share your Mechaduino applications or design modifications, please feel free to post below in the comments!

  • Shipping Kickstarter Mechaduinos!

    jcchurch10/01/2016 at 05:29 0 comments

    We began shipping our Mechaduino Kickstarter rewards this week!

  • Step/Dir Interface Demo

    jcchurch09/15/2016 at 13:07 2 comments

    I've created a little video demonstrating one way to configure a Mechaduino to work with the popular RAMPS 1.4 3D printer shield. Check it out:


  • Automation!

    jcchurch08/21/2016 at 21:31 0 comments

    From the beginning, we have seen Mechaduino as a way to make motion control for automation accessible. Industrial motion control systems are pretty far outside of the budget of most makers and small businesses. By creating an open source servo motor that is affordable and programmable in the familiar Arduino environment, we hope to give makers a powerful tool to design their own automated systems.

    As a simple example, here's how we used a Mechaduino to help us automate the assembly of (you guessed it!) Mechaduinos! For each motor, we need to replace the stock screws with our custom screws/standoffs. This fixture helps to streamline the process. Though simple, we estimate that this fixture saves us about 10 seconds per motor... that adds up when you have to repeat a process 1000 times!


View all 26 project logs

  • 1
    Step 1

    OVERVIEW:

    Here are some preliminary instructions on how to get your Mechaduino up and running.

  • 2
    Step 2

    ASSEMBLY:You will need to mount the magnet to the back of the motor shaft. Note: the magnet must be diametrically magnetized, as opposed to axially magnetized. The magnet may naturally stick to the shaft, but we recommend a dab of epoxy or super glue to hold it in place. The magnet should be fairly centered, but the calibration routine will correct for minor misalignment.

    The Mechaduino PCB must be mounted so that the magnet is directly under the encoder chip (Very close but not touching. See the AS5047 datasheet for details). We replaced the standard motor hardware with M3 threaded rods and short standoffs to mount on our Mechaduinos, but there are other ways this could be done.

    When wiring your motor up to the Mechaduino board, please make sure that one phase is connected to ouputs 1&2, and the other phase is connected to phases 3&4.

  • 3
    Step 3

    BOOTLOADER:

    You will need to make sure your Mechaduino has the latest Arduino Zero bootloader. If you are getting a Mechaduino as a reward from our Kickstarter, it will already have this! Otherwise you will need an Atmel-ICE or similar SWD programmer...

View all 8 instructions

Enjoy this project?

Share

Discussions

adamfilip wrote 09/19/2016 at 20:21 point

i have a few usteppers hoping that I would be able to use them on my custom 3d printer with Marlin, so far that hasnt happened.. feeling optimistic about Mecharduino. the connection betwen the Mecharduino and a control board like a Rumba,  is a stepper driver still required on the Rumba? im not comfortable with soldering on a PCB so im hoping that a simple wiring guide would be available.

  Are you sure? yes | no

jcchurch wrote 09/21/2016 at 23:20 point

No external stepper driver is required.  See our "Step/Dir Interface Demo" build log for simple wiring instructions.

  Are you sure? yes | no

n_cristian wrote 09/08/2016 at 09:24 point
very interesting project - i hope to be able to have one of them as soon as sales start. 

in the mean time have you considering using a linear encoder? AS5311 with magnetic strip seems a good option, altough i did not read all the datasheet... a rotary encoder is good assuming the driving mechanism has a constant step but in real life thats hardly the case. measuring real travel distance seems a much better option.

  Are you sure? yes | no

Walker Eric wrote 09/01/2016 at 16:56 point

Hi, is it ready for drop in replacement for 3D printing ?

I'd like to add 2 PCB to my stepper axes X & Y on a prusa i3

  Are you sure? yes | no

Marcus J. wrote 08/17/2016 at 07:22 point

Hi:  

Love this project.  I am currently doing a group build of your board.  

I have built one board now and have a few questions about bringing it up with a boot loader and getting the firmware running. 

Is there a forum/google group where questions like this can be asked or information shared with other users? 

  Are you sure? yes | no

jcchurch wrote 08/17/2016 at 14:56 point

Hi Marcus,

That's awesome!  I've just created a google group for this purpose:

https://groups.google.com/forum/#!forum/mechaduino

We've posted some general getting started info in the readme file on our firmware repository:

https://github.com/jcchurch13/Mechaduino-Firmware

  Are you sure? yes | no

Steven Pickles wrote 07/23/2016 at 12:13 point

I've been talking about this project a lot but I managed to completely miss the kickstarter. Are there any options for slowpokes such as myself?

  Are you sure? yes | no

jcchurch wrote 07/24/2016 at 16:02 point

Hi Steven.  We plan to make them available on our website soon.  I'll post an update when they are available.

  Are you sure? yes | no

skrogh wrote 07/17/2016 at 00:23 point

I noticed that you mount the encoder magnet directly onto the metal shaft of the stepper motor. ASM specifically discourages this setup in their paper "Magnet Selection Guide" (http://ams.com/kor/content/view/download/327375), section: "2.7 Mounting the magnet" (p. 20)
as a magnetic shaft will weaken the field of the magnet and also distort it, leading to larger errors (in the form of a periodic offset). The proposed solution is a small plastic, copper or aluminium spacer.

I don't know if this is something you have had problems with, but in either case it's an easy fix.

  Are you sure? yes | no

jcchurch wrote 07/18/2016 at 04:19 point

Thanks Skrogh.  We experimented with and without a spacer and found no noticeable difference in encoder performance.  Any periodic offset would be mostly removed by our calibration routine as well.

  Are you sure? yes | no

skrogh wrote 07/18/2016 at 17:00 point

As I read that part of the paper, the periodic offset stemming from a metal shaft is not the main issue; rather the decreased flux intensity is. (As the return path through the shaft is shorter than the path through the air). This could lead to issues with the AGC amplifying too much noise.

It might not be an actual issue, it might not be readily visible - or maybe you just place the magnet close enough to the sensor that it doesn't matter.

In any case I am glad that you don't experience any issues with the mounting.
I have a bunch of PCBs coming my way, I am planning on writing my own code for the device without the Arduino overhead using standard Keil libraries (I totally understand why you went that way, but it's not for everyone ;) ) So hopefully I will get time to finish this.

On a side note: How do you perform torque sensing without any ways of measuring the current (at least I don't see it anywhere)? By deflection under known current set point, or did I miss something in the schematic?

  Are you sure? yes | no

Overdesign wrote 07/18/2016 at 07:54 point

The error that is shown in the graphs that required the creation of the calibration routine does look pretty periodic...that was the first thing I noticed about it -- a precision-centered holder could go a long way to fixing this. But you have plenty of memory to store the calibration table, I guess. Maybe something for the future to fit it all onto a faster microcontroller with less memory for the same price. Edit: Plastic, copper, or aluminum holder, that is. :-)

  Are you sure? yes | no

jcchurch wrote 07/16/2016 at 18:54 point

Those steppers are rated for 4.2 Amps per phase.  The Mechaduino can only produce 2A per phase peak.

  Are you sure? yes | no

Simon Merrett wrote 07/15/2016 at 19:47 point

Hi, this is a great idea! I'm curious as to how the commutating works. What was the issue with the atmega328p approach? Could a teensy cover it? Also been looking at a cheaper ams encoder, the AS5600-ASOT, which can do 12 bit, so based on an 18mm dia timing belt pulley, could do 13 micron linear travel resolution. Grateful for any thoughts. 

Ps, I've been reading HaD for years and this is the project which compelled me to register an account so I can follow/discuss! 

  Are you sure? yes | no

jcchurch wrote 07/16/2016 at 17:35 point

Hi Simon,

The Atmega328p proved to be a little too slow to execute all the calculations, and was a little too small to hold our lookup tables.  A teensy could probably handle it, but we liked the looks of the SAMD21 (Arduino zero compatible).  That encoder could work... we wanted slightly higher resolution though ;)  

Thanks!

  Are you sure? yes | no

Simon Merrett wrote 07/16/2016 at 23:07 point

Thanks for your reply! I've been looking at the samd21's and they're really cheap for what they do! Do you load the arduino bootloader using the method here: https://www.arduino.cc/en/Main/ArduinoBoardZero

? If not, how do you do it? I've been looking at more current and voltage capable motor drivers. Do you see an issue with using pwm driver control (as opposed to DAC current set for both bridges in current design)? L298n or DRV8844 both look promising to me with a compete layman's eye - thoughts? Thanks! 

  Are you sure? yes | no

Simon Merrett wrote 07/16/2016 at 23:07 point

Thanks for your reply! I've been looking at the samd21's and they're really cheap for what they do! Do you load the arduino bootloader using the method here: https://www.arduino.cc/en/Main/ArduinoBoardZero

? If not, how do you do it? I've been looking at more current and voltage capable motor drivers. Do you see an issue with using pwm driver control (as opposed to DAC current set for both bridges in current design)? L298n or DRV8844 both look promising to me with a compete layman's eye - thoughts? Thanks! 

  Are you sure? yes | no

julien wrote 07/12/2016 at 23:59 point

Big fan of this project! The community could really use a solid board for servo control. However I should warn against those magnetic encoders. I have tried them out and got some pretty big drift with temperature, Im assuming because of the magnet not the device. I'm excited to see how the calibration routine you have works. 

You have a larger motor featured in the image and I dont think the A4954 can drive that motor to its full potential at all. Sure the A4954 says 2 amps with low Rdson but really at 0.8 ohms at say 12v or 24v this board is going to be melting the solder off (maybe not literally, just a fun expression). Make sure you figure out the power limitations of this board and make them clear to your users, if you do ill be backing you. 

  Are you sure? yes | no

jcchurch wrote 07/13/2016 at 01:43 point

This is the larger motor:

http://www.omc-stepperonline.com/nema-23-cnc-stepper-motor-24nm340ozin-18a-23hs411804s-p-126.html

It's rated at 1.8A per phase.  We've had no problems running it at about 1.3 A continuous, 1.8A peak.  This is about what you can expect from a standard 3d printer stepper motor driver.  We have the added bonus of only providing the required current in closed loop position mode.  Open loop steppers constantly pull current, even to hold a fixed position.  This allows us to use significantly less power for a given application.   

If you really feel like pushing these drivers you can add a thermistor to monitor temperature or even mount a 40mm fan over the Mechaduino board, but we haven't had to do that yet!

  Are you sure? yes | no

julien wrote 07/13/2016 at 01:58 point

putting a fan on top won't do to much. And you can mount on the other side.

What voltage where you running at? Current without voltage doesn't mean much for power dissipation.  

  Are you sure? yes | no

Tony Lodad wrote 07/12/2016 at 23:01 point

What is the beefiest stepper I could put this on? Does it require a certain step resolution (1.8 deg vs .9) for better position control or is half/micro stepping possible?

  Are you sure? yes | no

jcchurch wrote 07/13/2016 at 01:31 point

 Here's the beefiest stepper we've used:
http://www.omc-stepperonline.com/nema-23-cnc-stepper-motor-24nm340ozin-18a-23hs411804s-p-126.html
We've been using 1.8 degree steppers, but 0.9 should work okay too with some
slight modifications to the code.  We aren't technically microstepping,
we are sinusoidally commutating (like on a bldc) which allows us to
position sub-step.

  Are you sure? yes | no

Tony Lodad wrote 07/13/2016 at 04:36 point

Beautiful, thanks for the reply. I've been browsing that same site for steppers to build my 3D printer and hoping Mechaduino could benefit my build in some way but then I started wondering how heavy of a thing I could move... very accurately...  inexpensively... for fun.

  Are you sure? yes | no

FrankenPC wrote 07/16/2016 at 16:55 point

Wow! $30 each!

  Are you sure? yes | no

edkirk1 wrote 07/12/2016 at 14:05 point

Congratulations with Kickstarter,  I'm in.

I have a request with firmware;

- an example using 2 torque sensing set points.  One to trigger a digital output with the possibility to use a potentiometer to adjust gain. and a second to stop the motor.  Outputs for LEDs to show their state would be a nice feature.

- Along with the use of step/direction to control the motor the ability to use a potentiometer to fine tune the position of the motor.  I want to have the ability to fine tune the Z axis on a 3d printer to adjust the first layer of material being laid down.  I do this mechanically and would like to clean up the hardware. 

Thanks, Ed

  Are you sure? yes | no

Tarjei Knapstad wrote 07/12/2016 at 10:43 point

What is the reason for using so many 0402 passives? Seems like there's plenty room for 0603 which would make this easier to solder for those of us who would like to manufacture our own boards.

  Are you sure? yes | no

jcchurch wrote 07/13/2016 at 01:48 point

Laying out the board within the dimensions of a NEMA 17 was fairly tricky so we moved to 0402.  If you can figure out a good way to lay it out with 0603, please share!

  Are you sure? yes | no

FrankenPC wrote 07/12/2016 at 02:31 point

"Also potentially of interest to you:  I just ordered some much bigger steppers to (340 in-oz) to demo with the Mechaduino board."

I have 500Oz setppers on my existing CNC machine.  It's a mid sized mill/lathe combo, 3 axis, 4 if you count the rotary table...I don't..yet because I need servo control on that part in particular.  I'm over compensating because I don't want a single lost step if I can avoid it.  This would be great.  So, what did you source for 340oz?  The form factor looks great.  What NEMA is that? 

  Are you sure? yes | no

FrankenPC wrote 07/13/2016 at 20:19 point

Nevermind...found qty 3 NEMA 23 motors with 425oz hold on Amazon of all places.  $150 for three.  Not bad.  The Mechaduino should work on this type of stepper with an adapter correct?

https://www.amazon.com/Stepper-Motor-4-wires-Shaft-Router/dp/B00QG32Y86?ie=UTF8&colid=7KY5UBUBE3R4&coliid=I23CJ3Y0JGNQ74&ref_=wl_it_dp_o_pC_nS_ttl

  Are you sure? yes | no

edkirk1 wrote 07/11/2016 at 15:41 point

Looking at the Mechaduino specs would it be possible to use its torque sensing capabilities to "feel" or "sense" contact with the bed? 

I was going to use 4 motors with lead screws to drive the Z axis, I think 3 would be sufficient.  One in the middle of the rear and two in the front corners. 

1.  Use the bed leveling function in the printer controller to perform the bed leveling routine. 

2.  Program the 3 Z axis Mechaduinos to sense hot end contact with bed plate and output a digital signal to the printer controller. 

3.  The three Mechaduinl digital outputs would be wired parallel so there would be a sequence of one input into the controller's Z axis endstop or bed leveling input.

Is this too simple or am I missing something? 

Thanks, Ed

PS.  I posted a project titled "CoreXY 3D Printer using servos" in hackaday.  I have a proven platform to apply this to.

  Are you sure? yes | no

edkirk1 wrote 07/11/2016 at 02:36 point

I am brand new to hackaday, was sent a link about Mechaduino and it has got my interest.  I have been searching for information about using servos (not rc) on 3D Printers, only one result and it was incomplete.  So I built my own using ClearPath servos from Teknic.  I was already using ClearPath servos on a CNC router I build, they're great!  Overkill for a 3D Printer but to prove a point, servos work great on 3D Printers, super smooth and silent, absolutely no vibration even at high speeds

I have been searching for something smaller then NEMA24 and less expensive.  Mechaduino appears to be perfect for the application.

I am already getting parts to build another 3D Printer specifically for the Mechaduino board.  It is a CoreXY like my current printer but I am going to use 4 motors to drive the bed with lead screws, one in each corner.  I am looking to use a trim pot to fine tune the Z axis for the first layer thickness, I currently do this mechanically.

  Are you sure? yes | no

psrowser wrote 07/08/2016 at 04:33 point

When using it for a 3d printer do you still need the stepper driver controller or just the controller board? Also did you purchase stepper motors with an exposed shaft or just cut a hole?

  Are you sure? yes | no

jcchurch wrote 07/08/2016 at 12:27 point

You will not need the stepper drivers, just the controller board. Mechaduino has a special on-board board driver. All you need to do is connect Mechaduino to power and step/dir signals. We will be posting wiring diagrams and example code soon.

We are using motors that come with an exposed shaft. If you have a milling machine and some patience, you could probably modify a motor with an un-exposed shaft though.

  Are you sure? yes | no

dandumit wrote 07/07/2016 at 13:33 point

Hi, I am retrofitting an old Zevatech pick and place machine. Has some stepper motors but with 5 phases.   Could this driver to be "extended" to drive 5 phase motors ?  Probably it's not much people interested. MAybe if you could give some hints on how to implement this for 3 phases I will try to extrapolate for 5 phases .

Thank you,

Daniel

  Are you sure? yes | no

caver.adam wrote 07/05/2016 at 14:22 point

I really like this project. I think its going to help a lot with one of my projects where an encoder is necessary. So much more elegant than just using a mechanical stop to determine position.

  Are you sure? yes | no

Jaedos wrote 07/04/2016 at 19:08 point

I have a Black Tooth laser cutter that uses NEMA 23 motors.  It uses standard stepper motor controllers. I've noticed when cutting acrylic I get a bit of a cogged edge.  Can these boards be used with the stepper controllers to smooth out the motion or would I bypass the controllers and wire directly to the AWC608 laser controller?  That would take some research as I'm not sure what signal comes out of the AWC608.  Thoughts?

  Are you sure? yes | no

jcchurch wrote 07/05/2016 at 01:03 point

You would want to bypass the controllers (they are no longer needed).  It looks like the stock controllers take step and direction inputs (CP+ and CW+), so you could wire these to the Mechaduinos.

  Are you sure? yes | no

Aerospacesmith wrote 07/05/2016 at 21:48 point

Looking through the AWC608 manual it appears that you can setup the Pulse (Step) and Direction settings in the System Settings menu under Manufacturer Parameters. Since the AWC608 is able to send out Step/Dir pulses, you would just wire the corresponding terminals from the AWC608 to the MechaDuino boards. You would also need to make sure your sending the correct High/Low signal for Step and Dir.

  Are you sure? yes | no

Alex wrote 07/03/2016 at 20:15 point

Hello,

nice project. I am really thinking about to rebuilt this myself or get one over the kickstarter campaign. I do have one question: On the probally older version (the green PCB) the encoder was also on the top side. Is there an reason you had placed it on the the bottom side later? Was it also working on the top side?

  Are you sure? yes | no

jcchurch wrote 07/03/2016 at 20:40 point

Good question!  On the old boards (Rev 0.0... the green or purple ones in the photos), the encoder appears to be mounted to the "top" of the pcb, but these boards were attached upside down (top side towards magnet/motor).  The newest boards (Rev 0.1 , Red) have the encoder on the bottom of the PCB and are mounted with the bottom side towards the magnet .  

So, in both cases, the encoder is mounted facing the magnet.

Hope that clears things up!

  Are you sure? yes | no

Alex wrote 07/03/2016 at 21:09 point

Thanks. I was hoping you got it also running with encoder not facing to the motor. But as far I read the datasheeet and other documentation from AMS, it should also working with the encoder on the top side. They do that also in their evaluation module. 


The background for this is: I played a little bit with you eagle files today. First I only want to change it a little bit to use some parts I do have in stock. But than I noticed I could also made a version with components only on the top (the non motor side). Which it at least for hand soldering much easier.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates