The SSD1306 is a single-chip CMOS OLED/PLED driver with an integrated controller designed for organic or polymer light emitting diode dot-matrix displays. The display used here is a 128 × 64 pixel module consisting of 128 segments and 64 commons, designed for common cathode type OLED panels.
This OLED display communicates over I2C, which keeps wiring simple while still allowing full graphical control. The plan was to use the display to show available tracks, playback status, and possibly volume or system feedback information.
Since the display is graphical rather than character based, it allows flexible UI design such as track lists, icons, animations, and system diagnostics during development.
Servo motors are specialized motors that include an internal feedback mechanism allowing precise control of angular position, speed, and acceleration. A typical servo contains a small DC motor, a potentiometer for position sensing, and an internal control circuit.
The motor speed is proportional to the difference between the current position and the desired position. When the error is large, the motor moves quickly; as it approaches the target angle, movement slows down. This behavior is known as proportional control.
Servos are controlled using pulse width modulation (PWM). A control pulse is sent approximately every 20 ms, and the width of the pulse determines the angular position of the shaft.
Once commanded, the servo moves to the desired angle and actively holds that position. If an external force attempts to move it, the servo resists based on its torque rating. The position signal must continuously repeat; otherwise, the servo will stop maintaining position.
In this project, the servo motor is used to lift and lower the tonearm onto the vinyl record after the correct track position has been reached.
A stepper motor is a brushless DC motor that divides a full rotation into a large number of discrete steps. This makes it ideal for applications requiring precise positioning without needing complex feedback systems.
The motor consists of two main components: the stator, which contains electromagnetic coils, and the rotor, typically made from permanent magnets or soft magnetic material.
By energizing stator coils sequentially, magnetic fields are generated that pull the rotor from one step position to the next, producing controlled rotational motion.
The DRV8428PWPR driver is used to control the stepper motor. The driver handles coil sequencing, current regulation, and efficient switching, allowing the microcontroller to command precise step movements using simple control signals.
The stepper motor is responsible for moving the tonearm horizontally across the record to reach the correct groove location. Once positioned, the servo motor lowers the tonearm.
The A4953 is a compact motor driver capable of controlling DC motors and stepper motors. It operates across a wide voltage range from 4V to 40V and functions as an H-Bridge driver, allowing bidirectional motor control.
An H-Bridge allows current to flow through the motor in either direction. By controlling two input pins (IN1 and IN2), the motor can rotate forward or backward. Applying PWM signals enables speed control.
If both inputs are LOW, the motor free-runs and stops gradually. If both inputs are HIGH, the motor actively brakes. Proper passive components such as capacitors and resistors are required to ensure stable operation of the driver.
The board needed to support multiple output devices including a stepper motor, servo motor, and OLED display. This required handling different voltage domains, communication interfaces, and motor control circuitry on a single PCB.
The design includes:
The schematic design:
The stepper motor operates at 12V, while the ATtiny3226 microcontroller and logic circuitry operate at 5V. An external 12V supply is therefore stepped down using a voltage regulator to safely power the logic electronics.
If a voltage regulator is placed far from the power source, bypass capacitors are required to filter AC noise and ripple. These capacitors stabilize the input supply and ensure clean DC power for reliable microcontroller operation.
The double H-Bridge configuration allows independent control of the stepper motor windings, enabling accurate stepping motion required for tonearm positioning.
An electrolytic capacitor placed between 12V and ground acts as bulk storage and a decoupling filter. It smooths voltage fluctuations, absorbs switching noise, and supplies short bursts of current during motor load changes, preventing voltage dips.
The completed PCB integrates power regulation, motor drivers, display interface, and control inputs into a single board.
Larger track widths were used for the 12V and ground power lines. Higher voltage and motor currents require wider copper traces to reduce resistance and prevent overheating due to Joule heating.
Proper via sizes were configured in the design rules using predefined sizes.
Predefined via sizes were selected rather than using custom netclasses for this design.
The PCB was milled and all components were assembled and soldered.
Components collected alongside the milled board:
Completed soldered board: