Very
soon, I had an insurmountable problem.
I quickly learned that the Arduino Uno I
bought to drive my Stevens winder simply wasn't up to the
job.
The problem was the Uno simply wasn't fast enough or had
enough available memory for my needs.
The problem showed up as soon as I tried to design a
control panel for the touchscreen I was using
in this photo. The interface from the touchscreen to the
Uno alone took up thirteen control wires, and
I was only allowed six analog wires (for speed control
knobs) and 14 digital wires total... with only six
output control wires to control both the motors. This
meant the only way I could get the Uno to drive the
Stevens by itself was to use my laptop as a monitor, which
to me was a total waste of an expensive laptop
I could be using for something else. Even worse... I was
only allowed 32K(!) total memory for my program,
and I had to use this amount of memory to not only collect
all the data on each pickup (like how many
winds it had 'right now' or the winding direction), but I
also had to use my precious RAM to write all the
data to the screen at the same time it was trying to run
both the motors! This meant if I tried to make
the Uno run the motors any faster than a crawl, everything
crashed.
The screen you see in the photo below was of the Uno
trying to count how many times the winder
turned and how far the traverse (wire feed) moved, as well
as write the info to the screen at the same
time... and I hadn't even written a control panel yet. The
program for just writing this information on the
screen alone had already gobbled up most of my memory, and
no matter how much I condensed the
program, the problems continued.

I was about to give up on the whole thing,
when I talked to a friend of mine who owned a 3D printer.
He said the Uno was good for many things, but for my
project I really needed an Arduino Mega 2560.
The Mega 2560 is much more powerful than the Uno, because
it's basically four Unos on one board.
It was originally designed for use with 3D printers, laser
cutters, or large robots with many motors.
The Mega has 16 analog lines (for control knobs) instead
of the Uno's six, 54 digital control lines
with 15 used for motor drives, 256K memory instead of the
Uno's 32K, and best of all four serial
ports (for things like SD card program memory "hard
drives" instead of the Uno's one. Best of all,
since the Mega uses the same basic shape and size as the
Uno and uses the same language as
the Uno I can reuse much of the same hardware board
'shields' and the program I already had
written for the Uno with no problems!

After a lot of research, I bought the Arduino above - a
DFRobot Bluno Mega 2560.
Why is this cool? Simple.
With this version I not only get all the processing power
and extra hardware lines of the normal
Arduino Mega 2560, but also Bluetooth 4.0 built in! This
means I could write a program to
monitor and control my winder in realtime from my desktop
across the room... cool!
Now, I have one more major problem to solve - how to write
a control panel program for
my touchscreen that will let me see what is going on as
well as change the pickup's
variables 'on the fly'... and hopefully save the finished
program so I don't have to rewrite
it every time I need to wind a pickup!
Before
anyone asks - I paid for all of the parts
you're reading about in this blog,
and I have not received any compensation of
any kind at all for mentioning them
in my pages. I mention them only because I'm
using them myself.
Back to Main Page