BassBot: Self-Playing Bass Guitar
Project Overview
BassBot investigates the ability to incorporate modern robotics into the creative and technical space of making live music. This senior capstone project demonstrates a fully autonomous system capable of playing complex bass guitar pieces with precision and musicality.
How to Play Bass Guitar
Playing the bass guitar requires three fundamental actions:
Fretting Notes - Pressing strings against the fretboard to change pitch
Plucking Strings - Using fingers or a pick to vibrate the strings
Damping Strings - Stopping string vibration with either the plucking or fretting hand
Design Requirements
Our system was designed to meet specific performance metrics:
| Requirement | Target Value |
|---|---|
| Notes Per Second | > 5 notes |
| Force to Pluck String | > 4.5N |
| Force to Press Fret | > 70N |
| Force to Damp String | > 4.5N |
| Number of Notes | 20 notes |
| Total Cost | < $500 |
System Architecture
Flow Diagram
The system operates through a web-based interface that communicates with a Raspberry Pi controller via WiFi. The Pi coordinates servo motors for picking and solenoids for fretting, ultimately producing music through a bass amplifier.
Mechanical Design
Bass Clamp System
The bass clamp serves as the foundation for all components:
- Custom-fitted to bass body contours using 3D scanning
- Provides mounting points for picking system
- Attaches to 80/20 aluminum rail structure
- Non-destructive and fully removable
Picking System
Four servo motors independently control picking for each string:
- Adjustability: Slotted holes allow left/right positioning over strings
- Height Control: Gray bracket is vertically adjustable for precise picking action
- Integrated Damping: Screw-in pick slides through slot for vertical motion
- Foam Dampers: Damp strings when pick reaches maximum angle
Fretting System
Eight solenoids (two per fret) press capo rubber across all four strings:
- Four Frets: Provides access to 20 distinct notes
- Parallel Operation: Two solenoids ensure even pressure distribution
- Angled Design: Rubber precisely angled to fret all strings effectively
- 80/20 Integration: Brackets attach directly to aluminum rail
Electrical System
System Diagram
Key Components:
- Raspberry Pi 4: Central controller running Python control code
- Custom Servo Interface Board: Manages PWM signals for four servo motors
- Relay Unit: Controls high-current solenoid switching
- Custom Solenoid Interface Board: Distributes power to eight solenoids
- Adjustable Voltage Sources: 9V for servos, variable voltage for solenoids
Circuit Board Design
Custom PCBs were designed to integrate cleanly with the mechanical system and provide reliable power distribution and signal routing.
Software Architecture
Control Flow
The software system processes MusicXML files and translates them into precise motor commands:
- MusicXML Parsing: Upload sheet music in standard format
- Note Extraction: Parse pitch, duration, and timing information
- Command Generation: Convert musical notes to servo/solenoid commands
- Hardware Control: Send PWM signals via GPIO pins on Raspberry Pi
Graphical User Interface
Technology Stack:
- Backend: Python Flask for HTTP request handling
- Frontend: HTML5, CSS3, JavaScript for interactive interface
- 3D Visualization: Three.js for real-time bass guitar model
- Communication: WiFi connection to Raspberry Pi
Configuration Interface
Users can calibrate servo positions, solenoid timing, and damping behavior through an intuitive web interface.
Blockly Scratch Pad
For users without programming experience, we integrated Google Blockly to enable visual programming of custom bass sequences.
Design Iteration Process
The project required extensive iteration to achieve reliable performance:
Key Iterations:
- 10+ picking mechanism designs to optimize string engagement
- 8+ damping attachments to achieve reliable muting
- Custom circuit board revisions for power management
- Servo bracket adjustments for precise positioning
Materials & Fabrication
3D Printed Components (PLA)
- Bass clamp
- Fretting brackets
- Servo brackets and damping system
- Raspberry Pi and circuit board holders
Purchased Components
- 80/20 aluminum extrusion rail
- High-torque servo motors (picking)
- Push-pull solenoids (fretting)
- Relay board and fasteners
- Bass guitar stand
Custom Fabrication
- Circuit boards designed and soldered
- Wooden table for display
- Cable management system
- Power distribution
Results
Performance Metrics
Our final system exceeded all design requirements:
✓ Cost: $584.47 (slightly over budget, but justified by performance)
✓ Speed: >5 notes/second (achieved 6+ notes/second in testing)
✓ Notes: 20 distinct pitches across four frets and four strings
✓ Removable: Non-destructive clamp system allows easy bass removal
Chromatic Scale Demonstration
The system successfully played a full chromatic scale demonstrating precise pitch control across all 20 available notes.
GUI Usability Testing
We conducted user testing with 10 participants to measure interface simplicity:
Results:
- Average time to play 1 song: 9.43 seconds
- Average number of steps: 2.5 steps
- Success rate: 100% (all users successfully played a song)
Both metrics met our requirements:
- ✓ Steps < 5
- ✓ Time < 2 minutes
Showcase Display
For the final presentation, we designed a portable display platform:
Components:
- Rolling platform with locking wheels
- Custom wooden table
- Fender Rumble 100 bass amplifier
- Integrated power strip
- Bass guitar stand
- ¾” pipe clamps for cable management
Future Improvements
Hardware Enhancements
Higher-Performance Servos
- Current servos occasionally miss fast note sequences
- Encoders would provide position feedback
- More powerful motors would reduce electrical noise
Improved Fretting Mechanism
- Current design works but requires calibration
- Ctrl+Alt+Delete: Consider complete redesign with different actuation method
Software Enhancements
Real-time Audio Analysis
- Microphone input to verify correct notes
- Automatic tuning adjustment
- Performance quality metrics
Video Demonstration
BassBot performing a complete song with chromatic passages and rhythmic variety
Team
Carter Mann
Will Lamm
Amy Drelicharz