Skip to the content
2 layers52.6 × 25.9 mmPreampV3, the printed circuit board in 3D

Robot project for the Embedded Software Project [521275A] and Software Project [521479S]

Size
52.6 × 25.9 mm
Copper layers
2
Thickness
1.6 mm
Parts
18
Nets
15
Pads
45
Tracks, vias
67, 0
Pours
1
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
14 Jan 2020
Updated
4 Nov 2026

Overview

PreampV3 is an open-source printed circuit board by ouspg, from the ouspg/SOP-Robot repository on GitHub. It is a 2-layer board of 52.6 × 25.9 mm with 18 parts on 15 nets, routed with 67 tracks and 0 vias.

It is built around the NE5534D. Its parts include 7 capacitors, 4 resistors, 2 ICs, 2 connectors and 2 inductors. It belongs with the robots and motor control boards of this library.

Main components

1

README

README.md

Getting started

The robot uses ROS2 (Robot Operating System 2). Read the ROS2 wiki!. Tutorials and how-to guides are worth to check.

Read also controller documentation to understand why certain controllers are needed and how they control the motion. Here are ros2 control demo repositories and more documentation about controllers.

Quick start

SOP-Robot uses Pixi to install ROS 2 Humble, Python packages, and build tools into a local .pixi/ environment.

console
sudo apt update
sudo apt install -y git curl espeak
curl -fsSL https://pixi.sh/install.sh | bash
git clone --recurse-submodules https://github.com/ouspg/SOP-Robot.git
cd SOP-Robot
pixi run setup-runtime
pixi run build
pixi run robot-fake

Setting up Lehmus AI api key:

console
cp .env.example .env.local
code
LLM_API_KEY=your lehmus ai api key goes here

For real Dynamixel hardware, install the U2D2 udev rule once:

console
pixi run setup-udev

The launch tasks source install/local_setup.bash for you. If you enter pixi shell for manual ROS commands, source the overlay first:

console
source install/local_setup.bash

Launch the complete demo from one terminal with pixi run robot-demo-fake for simulation or pixi run robot-demo-real for real hardware. Press Ctrl+C in that terminal to stop the stack. See Robot bring-up for individual components and logging options.

The Robot

The robot uses dynamixel servos. Servos are controlled via the robot_hardware ROS node, which implements the hardware interface for ros2_control. robot package contains the servo controller configurations for the robot. See robot.yaml, for example. The head supports joint_trajectory_controller. When using this controller, joints can be controlled by sending action messages to the trajectory controller. See bring up for an example of action message.

Joint -> Servo mappings are defined in two files. Configuration file connects servo ID with certain joint. dynamixel_arm.yaml is for servos of robot arm and dynamixel_head.yaml for servos of head.

Project structure

  • client - contains client to send actions for robot hand
  • config - dynamixel servo configuration
  • src - all packages
    • src/face_tracker - tracks the faces using camera feed and calculates locations and distances of faces and detects mouth movement.
    • src/inmoov_description - robot files, which define the robot geometry and configuration for simulation (URDF, SRDF & rviz configuration)
    • src/robot - robot launch files & servo controller configurations
    • src/robot_hardware - hardware interface for ros2_controller, communicates with U2D2 via dynamixel workbench
    • src/tts_package - Text-to-speech package for finnish speech synthesis
    • src/sst_package - Speech-to-text package for finnish speech recognition
    • src/llm_package - OpenAI client package used for using llm model with Lehmus AI API
    • src/unified_arms- unified node for controlling arms thought serial and hands with topics
    • src/full_demo - Main control node for the robot

While the robot is idle, full_demo_node selects an arm action every 120 seconds by default: a randomized arm-and-hand action 70% of the time, or one of wave, rock, rotate, and swingarms 30% of the time. The random action is implemented by unified_arms_node and runs for 40-60 seconds using the original randomized joint ranges. It does not command the head. The interval can be changed with the random_gesture_interval parameter on full_demo_node.

Servo Table

Note: Servos can be configured using Dynamixel Wizard 2.0

Baud rate: 57600, Voltage: 7.5

Note: You can use Dynamixel Wizard 2.0 to check that servos have enough voltage to operate normally.

Servo IDModelJoint nameDescription
1XL430head_tilt_right_jointHead tilt right-side
2XL430head_tilt_vertical_jointHead tilt up/down
3XL430head_tilt_left_jointHead tilt left-side
4XL430head_pan_jointHead turn left/right
9XL320eyes_shift_horizontal_jointEyes shift left/right
11XL320eyes_shift_vertical_jointEyes shift up/down
12XL320head_jaw_jointOpen/close jaw
31XL320r_thumb_jointOpen/close thumb
34XL320r_index1_jointOpen/close index
37XL320r_middle1_jointOpen/close middle
40XL320r_ring_jointOpen/close ring
44XL320r_pinky_jointOpen/close pinky
47XL320unnamed jointRotate wrist

Cautions

Note: head tilt range of motion is poor

Note: wrist joint seems to overload very easily

  • Reason for this detected during inspection of the mechanical assembly. The hand is installed wrong way to the wrist.

Note: servo angle limits are not configured

Note: Be careful not to move joints too much, limits are not set yet

Next steps

  1. See Development
  2. See Robot bring-up

Parts

18
QtyValueFootprintReferences
20.1uFfab:C_1206C3, C4
2100uFfab:C_1206C2, C7
22.2uFfab:C_1206C5, C6
222uHInductor_SMD:L_Wuerth_HCI-7030L1, L2
110kfab:R_1206R3
115kfab:R_1206R4
11kfab:R_1206R2
15V inputfab:PinHeader_1x02_P2.54mm_Horizontal_SMDJ3
16.8kfab:R_1206R1
1Microphone connectorfab:PinHeader_1x03_P2.54mm_Horizontal_SMDJ4
1NE5534opamp:DIP794W45P254L959H508Q8U2
1NMA0505SCConverter_DCDC:Converter_DCDC_Murata_NMAxxxxSC_THTU1
1Sound outputfab:PinHeader_1x01_P2.54mm_Horizontal_SMDmic_out2
1lowpassfab:C_1206C1

More from ouspg/SOP-Robot

1
  • 2 layers14.5 × 11.9 mmMic board, the printed circuit board in 3D

    Mic board

    ouspg/SOP-Robot

    Robot project for the Embedded Software Project [521275A] and Software Project [521479S]

    4 parts5

Similar boards

  • 2 layers85.1 × 62.2 mmMic extension board, the printed circuit board in 3D

    Mic extension board

    StoneRose35/cortexguitarfx

    guitar effects processor implemented on various arm cortex platforms

    75 parts146
  • 4 layers121.6 × 79.8 mmUsbSound, the printed circuit board in 3D

    UsbSound

    SteveSyfuhs/UsbSound

    A custom-made USB sound card for Balanced Audio

    91 parts12MIT
  • 2 layers74.2 × 87.1 mmNc1, the printed circuit board in 3D

    Nc1

    nietamten/VoltageConverterForSolar

    NCP1034 buck with regulated output voltage, output current, minimum input voltage

    76 parts4
  • 2 layers70 × 54.5 mm9v preamp, the printed circuit board in 3D

    9v preamp

    Supermagnum/piezo-9v

    A small PCB for pizoelectric amplifier, runs on 9V

    36 parts4CC0-1.0
  • 2 layers51 × 31 mmAudioAmplifierPCB, the printed circuit board in 3D

    AudioAmplifierPCB

    ODARI-CHARLES1/AudioAmplifierPCB-NE5532

    Audio Amplifier using NE5532 OP. AMP in KICAD

    16 parts2
  • 2 layers100 × 100 mmTRX RA3XDH, the printed circuit board in 3D

    TRX RA3XDH

    ra3xdh/TRX_RA3XDH_v2

    My HF transceiver project, PCBs and schematics

    264 parts2
  • 2 layers94.5 × 55.6 mmAudioFilter, the printed circuit board in 3D

    AudioFilter

    Acramonics/AudioFilter

    High-/Band-/Low-pass filter based on Jake Rothman's Audio Out, Practical Electronics May 2026

    60 parts
  • 2 layers143.9 × 85.1 mmPreamp RIAA, the printed circuit board in 3D

    Preamp RIAA

    Acramonics/HiFiPreamp

    A high quality modular HiFi Preamp based on designs by Douglas Self

    135 parts

Questions

How big is the PreampV3 PCB?

It measures 52.6 × 25.9 mm and has 2 copper layers, 1.6 mm thick.

What parts does the PreampV3 use?

18 parts, built around the NE5534D. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the PreampV3 KiCad files?

From the ouspg/SOP-Robot repository on GitHub, at the commit this page was made from: the board is 3d_models/microphone_and_preamp/CAD_files/preampV3/preampV3.kicad_pcb and its schematic 3d_models/microphone_and_preamp/CAD_files/mic_board/mic_board.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the PreampV3 design in my own project?

Its repository states no licence, so its author keeps all rights: ask ouspg before reusing the design.