08/31/2017 at 21:33 •
The very first task to do on this project was to figure out the most important question:
How do you play a guitar with on hand?
Of course, there are two functions that your hands perform when playing a guitar; strumming and fretting. So which function do you replace?
I saw plenty of youtube videos under "robotic guitars," and even the best fretting concepts were bulky and limiting. I decided to design the system to replace the strumming hand, since performing the strumming seemed easier than trying to figure out how to emulate the seemingly infinite number of fretting possibilities without compromises that would limit improvisation and flexibility of voicing and solos.
So now that I knew I'd be trying to design a strumming device, the question became how to do the actuation. The first concept was to use a single arm with a pick at the end that would swing back and forth somehow to strum the strings, kinda like this:
It's a simple concept, but the thing I didn't like was that it didn't lend itself to selective picking, or picking of multiple strings simultaneously. Since this was a project for a maturing musician, I knew that she would quickly outgrow those limitations - I needed selective / simultaneous picking capability, and the single concept arm won't cut it. I need an independently actuated pick for each string.
Some more digging on the internet turned up a few projects that used individual hobby motors to pick the strings, like this one (which is more recent, but uses the same concepts in videos I saw when I was at this stage):
Next: how to control it? I actually started off thinking I would do computer control with a Wii-mote strapped to the foot or a foot pedal, but then I came across Force Sensitive Resistors (FSRs). If you're like me, and didn't know what an FSR was, check out Sparkfun's tutorial here:
I immediately came up with a concept controller, which consisted six FSRs adhered to a rigid base, and laid out in a way where the musician could kind of "strum" across the sensors with their foot like they would if the guitar were at their feet. I found FSRs and got to work. The first prototype only took me about 4 hours to make (once the FSRs arrived).
I milled a base out of acrylic with a recess for the wiring.
...then cut the FSRs to length, glued them in place, and wired them up:
I figured I'd want some way to feel the sensors with my foot, so I cut some balsa strips and adhered those with spray adhesive to the center of each sensor:
Lastly, I covered the whole thing in nice soft felt, and a quick layer of contact paper (remember covering books in school?) to give it a slippery surface for a stocking'd foot. I also put an adhesive rubber pad on the back to prevent it from slipping on the floor, and a cover for the wire area. Here's the very first prototype of the foot controller!
The last thing to do was test, and unfortunately I don't have any more pictures of that process. But it worked exactly as it was supposed to! Now that I knew I had a control concept that worked, it was time to figure out how to strum the guitar.
09/01/2017 at 17:41 •
The first concept of the Adaptive Guitar was actually a lot different from it's current form. The original idea was to rotate a (custom) "pick" ( made of a flexible piece of plastic on an axle ) over the string to make it sound. While I considered using hobby servos, they were way too slow and noisy, so I figured I'd go straight to a more tailored approach.
Each string got it's own pick, and the picks are held in place by what I call the Pick Bridge (since it bridges the sound hole). Each pick was to be driven by a small rotary motor, connected to the pick by flexible drive shafts and custom couplers. Power and control was external...we'll talk about that later.
Here's an early render. There are certain elements missing, but you get the picture: A motor turns, which rotates the corresponding pick, which strums the string. Each strum is one revolution of the motor. The shafts are braided steel cables, similar to bike brake cables, but lighter gauge. I couldn't use rigid shafts because the motors were wider than the string spacing and couldn't be perfectly aligned. I thought of U-joints, but didn't know where to find any that size at the time. Note I didn't have the supporting features designed yet - I was just trying to get the main parts of the concept laid out, so stuff is floating...
The concept seemed solid enough, so I set off building my first iteration of the pick bridge assembly. Here's a picture showing the first Pick Bridge (aluminum at the time) and the original pick prototypes. The first prototype picks were made of a split pin with a piece of milk jug plastic pinched into place. Later, tried having them 3D printed (shown in orange, in position in the Pick Bridge).
Here's the Pick Bridge, mid-fab, showing my first mount concept, which required holes drilled in the guitar to mount PEM-type bolts. Thumb nuts held the bridge in place, and the slots on the bridge ends allowed horizontal alignment of the whole thing over the strings. I did all of the machining myself.
Here's a test video. I'm not going to talk about the control box yet, so bare with me.
Two primary issues plagued this version; Most notably, the plastic parts of the picks quickly broke due to repeated bending after only short periods of use, and the sound was inconsistent and not very loud. The pick axles were a relatively loose fit in their holes on the Pick Bridge, so they made a lot of racket when they were turned or moved. Time to try something new!
09/01/2017 at 17:52 •
The first concept for the picks and Pick Bridge were more of a learning experience than anything (see my previous log post). I had two issues to overcome:
1) The picks would break easily after only a short period of use.
2) The pick axles were a loose fit in the Pick Bridge, and made a lot of clanking noises when the picks were turned quickly.
The solution to #1 was a new pick design concept, which I call the Spiral Pick, where spiral-shaped fingers protruded from the pick axle to make contact with the string when the pick was rotated. The spiral design reduced the strain on the pick features, and eliminated the breakage problem while still allowing the required flex of the pick when the string is strummed.
The solution for the noise issue was to move to a ball-bearing setup (obvious?). I also added set screw height adjustments for each pick, so that you could make the sound more consistent between strings. Here's the new design with half of the pick bridge set aside:
Here's the Pick Bridge assembly, completed.
The new picks worked beautifully! No more breakage, no more clanking noise from the pick axles slopping around, so now we can move on to the drive system.
09/01/2017 at 17:55 •
After landing on a successful iteration of the Picks and Pick Bridge assembly, it was time to construct the rest of the system; specifically, the part of the system I call the Motor Module.
In case you didn't see my first log entry, the concept for Gen1 was to use motors to rotate picks that are held in place over the strings at the sound hole. Here's an early render (which you may have already seen):
So now, I'll show you the innards of the Motor Module. The construction is pretty simple: A two-part housing, containing six brushed DC motors. Here's the Motor Module with the top half of the housing removed). The DC motors are from MicroMo, which were just set in place with some rubber isolation rings. The channel along the top was where I routed the motor power wires, which exited on the right side through a strain relief. As you can see, It's actually pretty small. The arc was diligently engineered so that the flexible shafts I used to drive the picks would fall into a natural bend.
.....AAAAAND.....here's the Gen1 system all together!
Now, what you haven't seen so far is the motor control box. The control box housed a custom PCB with an AVR MCU and six half-bridge motor drivers. The MCU took the analog inputs from the foot controller FSRs, and would control the half-bridges to rotate the motors/picks. This version used 12VDC power from a wall wart. A repurposed VGA connector was used to connect to the Motor Module, and an RJ45 connector (with blinky lights) was used to connect the foot pad.
A belt clip on the control box mounted nicely to the guitar strap while in use.
Here's a quick video demo of the first tests of the foot pad + controller box:
Unfortunately, I don't have video of this version of the system running, but it worked GREAT! It it had issues that eventually caused my friend to abandon it, though. The key issues were:
1) No encoders on the motors, so I was using time-based actuation (bad choice in retrospect). The picks naturally ended up wanting to stop touching the strings after their initial rotation, which caused an undesirable buzzing noise. Unintentional double-strumming was also an issue.
2) The flex shafts were too stiff and not balanced. the whole thing wanted to shake every time a motor spun as a result. Friction comes in many forms.
3) The picks were difficult to adjust to get the sound to be consistent. That's because as you fret a string, it gets pressed down and moves away from the pick bridge. This causes decreased strum intensity for strings that are fretted further down the fret board, and is really detrimental to making good music. After about 5-6 frets, the picks can't even contact the string.
4) She couldn't adjust or replace the pics herself without a lot of hassle, and this project was supposed to be liberating, not add more dependency on others.
Of course, I can't just abandon the project. On to Gen 2!
09/02/2017 at 16:36 •
After seeing the shortcomings of the Gen1 design, I decided to hit the drawing board again. The main thing I realized was that the picking action cannot come from above the string, due to the fact that the string heights change as they are fretted. The only other option is to hit the string from the side if I wanted a consistent sound. This presented a new challenge, since the picks were going to need to be designed to fit between the strings. I sat in my sister's apartment in California late one night, and came up with this concept for the pick:
The concept was a flexible piece of wire with a rubber coating on the end, fixed into the end of a vented screw. Vented screws have a hollow body to allow fluids / air through, but also happened to work nicely for holding a small piece of music wire (spring steel). Here's an animation of the new concept, which shows the pick bodies I designed, as well as the Pick Retainers that would align and hold the picks on a shaft over the strings.
The idea was to put linear / solenoid actuators somewhere behind the new pick bridge, and use push/pull cables similar to those used in model aircraft to rotate the new picks forward/backward between the strings.
I also came up with a new mounting system, designed to be non-intrusive. It was basically a telescoping rod with a spring that would hold 3D-printed mount bases to the walls of the sound hole, which provide mounting features to hold the new Pick Bridge in place. The photo below shows an early iteration. Eventually I got smart, and made the mount magnetic - but I don't have a great picture of just that.
I also very quickly iterated the pick design through multiple prototypes / trials. The original picks were too rigid, and were SUPER sensitive to their proximity to the string; I either got full volume, or hardly sound. So I switched to rubber cones whittled out of pencil erasers to pick the strings, and put some spring steel (music wire) between the main pick body and the pick heads to give some spring to the action. Here's one of the prototype picks, showing the small spring steel wire that held the two pieces of the pick together. The pick body and head had recesses cut in to receive the spring steel, which I cut and formed myself before epoxying in place.
And here is the prototype in action. GREAT sound, and I'm super happy with it. The addition of the spring steel to the pick body design really brought the concept together. All of the plastic parts were 3D printed. I also demonstrate the new magnetic mounting system, which I'm super proud of. It really satisfies the need for this thing to be able to be used by someone with only one hand.
Adding the spring steel to the design also helped because I found that the larger strings needed more gusto than the smaller strings to affect the same sound. Since music wire comes in a TON of different sizes, I was able to dial in the exact amount of pick stiffness required for each string to get a nice consistent sound. The next iteration also added a second spring steel piece to help keep the pick head from pivoting. Here's a render:
09/02/2017 at 17:51 •
So now that I had a solid picking concept prototyped and working, the next challenge was finding suitable actuators for the job. My desire was to have each string independently actuated to allow any number of strings to be strummed at any time. This means an actuator for each string, and there were a lot of constraints that came along with that.
The ideal actuator (aim for ideal, settle for reasonable, right?):
- Fast enough to repeatedly strum the string quickly (appx 10x/sec)
- Powerful enough to overcome the force required to strum the string
- Quiet enough to not be obtrusive to the music
- Small and lightweight as possible
First, we need to figure out what kind of forces I need to generate. Since I was dealing with a pick with rotational motion, it makes sense to spec that out in units of torque. I wish I had taken a picture for this to show you, but I didn't. What I did was place the Pick Bridge in place on the guitar, which was laying down flat on a table. I connected a string to my pick, and routed the string over the edge of the table via a small pulley wheel. I then hung weights to the string until the pick was able to pick the string.
The result was 62g, and the attachment to the pick arm was about 10mm from the axis of rotation. This means I needed ~600mN * 10mm = 6 mNm of torque (or the linear equivalent).
There were basically two options: rotary, or linear actuators. Rotary solutions were either too noisy or large, and the linear options were either too slow, too large, or had too short of a throw. I considered pneumatics, but that concept carried a requirement for a compressor....no go.
I considered bringing the actuators off of the guitar, but that meant having some sort of linkage or cable system going to the guitar, which would be likely unwieldy and require oversized actuators to overcome the additional friction forces. Call me an idealist.
So I did what any typical hacker would do, and figured I'd try my hand at designing my own linear actuator- how hard can a few magnets and coils really be?
Rotary actuators were scary to me at the time, so the concept is a permanent magnet linear solenoid. It had to be bi-directional, and there's only two ways to get bi-direction motion out of a linear solenoid actuator:
- With a spring, like the setup of a typical solenoid actuator, where the electromagnet provides the push, and the spring does the pull (or visa versa), or
- With two coils, one for push, one for pull
Since I planned to strum the string with EACH motion (forward and backward), a spring'd solution would require constant power to hold the plunger in one of the positions if the pick wasn't moving. Battery life and heat considerations quickly directed me at the dual-coil configuration.
The cut-section render below shows the first concept design. It looks like there's just a single coil, but it's two, side by side.
One of my ideal design constraints was that the center to center spacing between them be the same or close enough to the spacing of the strings so that I could position each actuator in line with its corresponding pick. Measurements and research into guitar string spacing led me to an ideal spacing (/actuator diameter) of 10mm.
I had my design criteria...time to design!
09/04/2017 at 03:08 •
In the last log, I determined the two basic requirements for my ideal actuator:
1) 10mm maximum width per actuator
2) Needs to apply ~6mNm of torque to the pick
The design process was lengthy, tedious, and detailed. It took me 3 weeks to arrive at an ideal design, and would probably take me two weeks that I don't have right now to write it all up. Sorry to disappoint, but I'll try to put it together in the future.
I performed my design analytics using a great free tool called FEMM (http://www.femm.info/wiki/HomePage), which performs analysis of magnetic systems. FEMM supports LUA scripting, so iterating through multiple designs was a (relative) breeze [read: took a lot of time, but it sure beats hand-calculations!]. I was able to see the force generated on the actuator along every position of my plunger magnet, as well as the fields surrounding the actuator.
First thing to do is make a prototype. I hacked together one actuator, and here's the result:
Looks good! Skipping WAY ahead:
The final design starts with a two-piece (clam-shell) machined aluminum block with a channel for each actuator. Here's one half. The holes are for mounting later...
**** If you noticed there are 7 actuator slots, it's because there are 7 actuators in the design. I'll explain this later, so do your best to not let it bother you.****
To prevent cross-interaction between plunger magnets, a 15mil layer of magnetic shielding material lines each channel. The shields were cut into rectangles with a sheer, shaped using an arbor press into a custom form and gauge pin, and then glued into place using thermally-conductive epoxy. Here's a flat piece of shield material getting ready to be pressed into shape:
Then we press:
Shaped shields, ready to install:
Shields placed into their channels on the two halves of the actuator block shells. A super thin layer of thermal epoxy went down first:
Gauge pins and clamps keep everything precisely in place while the epoxy cures:
Another layer of glue, and then we place the custom ball bearing races and coils in place. The coils were made by Custom Coils, and they did a killer job. The bearing races were designed by me, and fabricated by Small Parts CNC in California. The plunger will be installed later, and will ride on rubber ball bearings that move in LINEAR channels in the bearing races. Note the wire exit channels that are milled into the bearing races:
A cutaway render showing how the bearing design works:
The clamps come in again to make sure everything is held in place while the new epoxy sets.
Next the plungers are inserted. The plungers are custom aluminum rods with cylindrical permanent magnets glued in place at their centers, and o-rings + press-fit caps at the ends. All custom machined to perfection. Each plunger rides on 8 rubber ball bearings inside the races.
Check out how smooth and silent the motion is!:
The actuator block gets mounted directly to the control PCB (more on that later), and acts as a heatsink for the power electronics. Thermal paste (not epoxy) goes onto the power IC's first!
Actuator Block mounted to the control PCB, and all of the coils connected up:
A custom heatsink bolts to the aluminum block, and keeps things running cool. The fan rarely necessary, but is temperature activated and super quiet anyway.
Now we throw it in the enclosure:
The whole thing weighs 10.5oz.
Here's a quick video of the system initializing / demonstrating control. There was one small glitch in the firmware that caused odd motion on one actuator, but you get the idea:
09/04/2017 at 05:03 •
First, the schematics are published in the Files section of my project page, so if you want details, go there.
The control PCB is basically 8, dual full-bridge power controllers under control of an AVR Xmega MCU. Basically, I have 16 full-bridge circuits. I use 14 of them to control the actuators (2 per actuator x 7 actuators). I use one of the extra channels to run the heatsink fan, and the other goes to run a ball-screw linear actuator that is intended to give me dynamic control over the strumming (sorry - I'll have to get into this later, too).
Yes, I hand assembled those boards with my tweezers, a USB microscope, and an unmodified toaster oven.
The board is powered by an external battery or DC power source, and is unregulated to the h-bridges. The center chip is the main control IC, and there are 14 infrared reflection sensors along the two long edges of the boards. The reflection sensors detect the positions of the actuator plungers to close the control loop.
Here's the layout. It's a 4-layer board, but the power and ground layers are boring.
You may also notice at the top right is a chip antenna, which is for the Nordic NRF 2.4GHz transceiver just beneath it that gets it's commands from the latest version of the foot controller. The small IC just below that, by the FPC connector is an auxiliary MCU which runs the wireless link and relays decoded commands to the main control IC via SPI (since it's super busy otherwise).
There are a few other mystery parts on left side of the board, but they have to do with dynamics control, which isn't quite worth mentioning yet.
09/04/2017 at 05:27 •
So, here's a video of the first point in the Gen2 development where I get to fully demonstrate the system. I'm using an updated version of the foot controller, which is wired, and a slightly older version of the control PCB that takes wired control rather than wireless.
Nevertheless, it's the same concept, and it works!
09/04/2017 at 05:32 •
One of the goals of the project is to take it into full production. That means picks that can be precision-replicated, and easily replaceable.
The first versions of the picks were fully captive on the pick axle, which meant you had to slide everything off of the pick bridge to replace a single pick. The latest version snaps into place on the shaft. The outline below shows the main axle snap feature (bottom left), and the control rod snap feature (top left).
I also replaced the music wire springs with custom-designed, laser-cut leaf springs. They're made of spring-tempered bronze, and will be over-molded into the production picks.
Here's a line drawing, showing how the spring is placed in the pick body:
I designed multiple variants of the leaf springs, each with different stiffnesses. Heavier gauge guitar strings get stiffer leaf springs. This way, you're low E string volume sounds the same as your high E string. The leaf below is stiffer than the one above.
Here's the overall dimensions of a pick:
Of course, I had to try it out. I bought a desktop plastic injection molding machine from LNS technologies:
...had a mold made:
And here's the final product! These are as good as production-ready: