One problem with the fixturing is the inconvenience of adjusting the slides to move the motor to the next peg. To do this, the user must loosen a series of screws, slide the motor into position and re-tighten the screws. Using some type of fastener that does not require a tool to loosen or tighten, such as a wing bolt or a bolt with a cam or a handle on it would help decrease this hassle. Another inconvenience is the size of the slide, and the fact that you cannot hold the guitar while you tune it. A handheld drill-like version could alleviate these problems, but brings up questions of variability and accuracy which would then have to be resolved.
The code of the software was designed to be very simplistic. Our code uses polling so we did not want calculations and code bogging down the microprocessor. Also, a simple implmentation would be quicker and easier. However, we also had to give up some of the features we initially wanted. We cut down the number of notes the tuner could tune and recognize to exactly match standard 4-string bass tuning. This limited what we could display and tune. We also eliminated planned "safety" features to make sure a string couldn't be too far out of tune or to make sure the right string was plucked because these proved too complex at the time. We considered doing the note identification processing with math, but this was possible too slow. However, using math would make the code shorter, more elegant, and more adaptable. These lost features would have made the tuner more user friendly and adaptable.
We also could have used software to address some of our problem areas. Motor control could have been more precise by adding variable speeds. Also, under automatic tuning if the right frequency is found everything stops. A few extra checks after finding an "in tune" note would reduce premature stoppage. Checks for lack of signal or aberrant signals would also make the tuner more stable. Input frequency fluctuations could be filtered out using an algorithm to check the amount/speed of variation between consecutive frequency readings. Currently, the motor driving and frequency matching codes are indepedent. Synchronizing them would improve consistency and make the display more reliable. Using interrupts for certain parts of the code, like detecting an in tune note, may be a way to make the tuning more precise. Finally, the code could have been made shorter and possibly more efficient by breaking down the tasks into more subroutines. Many of these improvements would probably require different equipment though.