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