Arduino & PC Stepper Controller - Good, Bad, Eh Idea?

Home Model Engine Machinist Forum

Help Support Home Model Engine Machinist Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.


Well-Known Member
HMEM Supporting Member
Apr 21, 2013
Reaction score
Winnipeg, Canada
I'm currently working on a PC to Arduino to TB6600 2 stepper motor, coil winder. I'm doing this to lower the cost of making my ignitions. The coil winder will be a project available to the public. The winder will use 2 stepper motors working in synchronization to wind the coils. Right now I'm concentrating on making just single winding, multiple layer coils but, I'll modify the code so I can make multiple stepped coils (Transformers) for HV output including ignition coils. I'm still in the development stage and I'm at the point of which options I should include or to say what code should I embed but not use right now.

I know there are other stepper projects on here but, the ones I've seen so far use a keypad setup and with all the calculations being done on the Arduino. Which to me is ok but, my experience has shown me that as I add more features/fixes (code) I run out of memory. There is also the added hardware and lack of modifying, adaptability, and/or the usability of the project. For example I could easily adapter my setup to control a rotator, a grinder, or other controls.

So what my setup is doing is all the calculations and parameters are done on a Windows PC and then the parameters are transferred to the Arduino, Nano in my case. The Arduino looks after controlling the TB6600 drivers only and sends back it's progress.

Main Form.jpg

C# for the Windows program.
Arduino Nano or Uno 3.
AccelStepper for stepper driver control.
TB6600 for stepper driver, I got mine $10 each from China

This has several benefits:
-less overhead for the Arduino
-less memory used on the Arduino allowing more features.
-Easily control 1, 2, or 3 steppers at one time.
-Works with any 5v input stepper controller that has step/pulse, direction, enable inputs. DRV8825, A4988 ...........
-Allows for storing profiles on one's PC to quickly which jobs.
-Easily modify the code to have different uses such as travel to this point or rotate so many degrees in this direction.

In my case I have a winder motor and a carriage motor, either Nema 17's or smaller stacked motors and 10x32 rod for the carriage. The winder motor is a 1:1 drive. With the carriage motor and using 10x32 rod I should be able to get the following:
32 200 6400 0.0001562500"
32 400 12800 0.0000781250"
32 800 25600 0.0000390625"
32 1600 51200 0.0000195313"
32 3200 102400 0.0000097656"
32 6400 204800 0.0000048828"

Which is great for the 3 (2.5) axis CNC machine I'm making. I'll be using 3/8" or most likely 1/2"x20 rod for the lead screws.

The Downside:
When I say easily change the code I guess I mean me or someone that knows how to program the Arduino(C++) and C# for the Windows program. C# is a language that is a cross between the VB GUI and C++ code, mostly like C++ though. I could have used pretty much any language but, I wanted something modern, popular, free, very good online support, and has a good human interface. Mind you both the Arduino IDE and Microsoft Visual Studio can be lacking in help and explaining on how to do something and you end up searching the internet for help.

My main concerns were cheap and easy to use. Plug-n-Play as much as possible.
So is this a good idea, bad idea, or just a eh it's ok.
Looking for any feedback.