Skip to content

Hardware Requirements

Complete list of hardware needed to build and run Tinko on a Raspberry Pi.

Required Hardware

Core Components

Component Quantity Specifications
Raspberry Pi 1 Pi 4 (2GB+ RAM) or Pi 3B+
MicroSD Card 1 32GB+ (Class 10 recommended)
Power Supply 1 2.5A for Pi 4, 2A for Pi 3
USB Microphone 1 Or microphone module with ADC
Speaker 1 3.5mm jack or USB audio
Breadboard 1 Half-size or full-size
Jumper Wires 1 pack Male-to-male, various colors

Component Breakdown

Raspberry Pi

Recommended: Raspberry Pi 4 (2GB or 4GB)

  • 2GB RAM: Minimum for running Tinko
  • 4GB RAM: Better performance with multiple plugins
  • USB-C power (5V/3A)

Alternative: Raspberry Pi 3B+

  • Slower but functional
  • 1GB RAM
  • Micro-USB power (5V/2.5A)

MicroSD Card

Requirements:

  • Capacity: 32GB minimum
  • Speed: Class 10 or UHS-I
  • Type: MicroSDHC or MicroSDXC
  • Reliability: Use quality brands (SanDisk, Samsung, Kingston)

Tinko requires space for:

  • Operating system (~5GB)
  • Application code (~500MB)
  • Database and media files (~5GB)
  • Logs and temporary files

USB Microphone

Options:

  1. USB Desktop Microphone (Recommended)
  2. Plug and play
  3. Good sensitivity
  4. Examples: Fifine K669, Blue Snowball

  5. USB Microphone Module

  6. Smaller footprint
  7. Lower quality but functional
  8. Examples: Generic USB sound card + mic

  9. Microphone Module with ADC

  10. Requires GPIO connection
  11. Better for custom installations
  12. Requires additional components

Speaker / Audio Output

Options:

  1. 3.5mm Jack Speaker
  2. Standard audio output
  3. Powered speakers or headphones

  4. USB Speaker

  5. No additional power needed
  6. Plug and play

  7. HDMI Audio

  8. If using monitor with speakers
  9. Configure in system settings

Electronic Components

Component Quantity Notes
RGB LED 3 Common cathode, 5mm or 10mm
Resistors (220Ω) 10 For LED current limiting
Resistors (10kΩ) 6 For pull-up circuits
Resistors (1kΩ) 2 For general use
Breadboard 1 Half-size or full-size
Jumper Wires 40+ Various colors

RGB LEDs

Required: 3 RGB LEDs (Common Cathode)

  • Activity Timer: 1 RGB LED
  • Noise Monitor: 2 RGB LEDs (1 instant, 1 session)

Specifications:

  • Type: Common cathode (not common anode)
  • Size: 5mm or 10mm diameter
  • Colors: Red, Green, Blue combined
  • Forward voltage: ~2V per color
  • Current: 20mA typical

Important

Use common cathode LEDs, not common anode. Wiring differs between types.

Resistors

220Ω Resistors (Pack of 10)

Used for: - RGB LED current limiting - Protection circuits

Calculation for LEDs: - GPIO voltage: 3.3V - LED voltage drop: 2V - Desired current: 15mA - R = (3.3V - 2V) / 0.015A = 87Ω - Standard value: 220Ω (safer, longer LED life)

10kΩ Resistors (Pack of 6)

Used for: - Touch Piano pull-up circuits - Input protection - Signal conditioning

1kΩ Resistors (Pack of 2)

Used for: - General purpose - Additional circuits

Optional Hardware

Enhanced Components

Component Purpose Benefit
Capacitive Touch Sensors (TTP223) Touch Piano More reliable touch detection
Buzzer Module Activity Timer Audio alerts
LED Strip (WS2812B) Activity Timer Better visual feedback
Temperature/Humidity Sensor (DHT22) Future sensor Environmental monitoring
USB Wireless Presenter Routines plugin Wireless control
Mini LCD Screen (2.8") Display Local display on Pi
3D Printed Case Housing Professional look

Capacitive Touch Sensors

TTP223 Modules (6 for Touch Piano)

Advantages over bare wires: - More reliable touch detection - Built-in debouncing - LED indicator - Adjustable sensitivity

Wiring: - VCC → 3.3V - GND → Ground - I/O → GPIO pin

Buzzer Module

For Activity Timer completion alerts:

  • Active Buzzer: Generates tone when powered
  • Passive Buzzer: Requires PWM signal
  • Piezo Buzzer: Recommended (5V, active)

Wiring: - VCC → GPIO pin - GND → Ground

LED Strip (WS2812B)

For advanced Activity Timer:

  • Individually addressable LEDs
  • Rich visual effects
  • Longer progress bars

Requires: - 5V power supply - Level shifter (3.3V to 5V) - Additional power capacity

USB Wireless Presenter

For Routines plugin control:

  • Logitech R400/R800
  • Kensington Wireless Presenter
  • Any standard USB HID presenter

Features: - Next/Previous buttons - Play/Pause button - Stop button - Plug and play on Linux

TFT LCD Display (2.8")

For local display on the Pi showing the robot's face and status:

  • 2.8" TFT LCD (320x240 resolution)
  • Driver: ILI9341 (very common and well-supported)
  • Interface: SPI (4-wire: MOSI, SCLK, CS, DC)
  • Touch: Optional (not used in Tinko)
  • Backlight: Controlled via GPIO 18 (PWM) for brightness control
  • Animation: Shows mood-based animated faces (:), :D, :|, :(, :D, etc.)

Working Wiring Configuration (Verified):

LCD Pin RPi Physical Pin RPi GPIO Function
VCC Pin 1 or 17 - 3.3V Power
GND Pin 6 or 9 - Ground
CS Pin 15 GPIO 22 SPI Chip Select (custom)
RST Pin 16 GPIO 23 Reset signal
DC Pin 18 GPIO 24 Data/Command
MOSI Pin 19 GPIO 10 SPI Data In (hardware - fixed)
SCK Pin 23 GPIO 11 SPI Clock (hardware - fixed)
LED/BL Pin 12 GPIO 18 Backlight (PWM capable)
MISO Pin 21 GPIO 9 SPI Data Out (optional, read-only)

CRITICAL: CS Pin Change

The CS pin must be moved from the default GPIO 8 (Pin 24) to GPIO 22 (Pin 15). This is required for the Adafruit libraries to work correctly with this display.

Important Notes:

  1. Hardware SPI Pins (Fixed): Pins 19 (MOSI), 21 (MISO), and 23 (SCLK) cannot be changed
  2. CS Pin: Must use GPIO 22 (Pin 15), not the default GPIO 8
  3. SPI Interface: Must be enabled via sudo raspi-config → Interface Options → SPI
  4. Permissions: Web server needs SPI/GPIO access: sudo usermod -a -G spi,gpio www-data
  5. Libraries: Uses Adafruit CircuitPython libraries (not luma)

Pin Conflicts: - Touch Piano: Shares SPI pins - disable Touch Piano when using LCD - Activity Timer: Buzzer moved to GPIO 3 (Pin 5) to avoid conflicts - Noise Monitor: No conflicts with LCD pins

Required Dependencies:

uv add adafruit-circuitpython-rgb-display adafruit-blinka

Required System Permissions:

# Add user to groups
sudo usermod -a -G gpio,spi $USER
sudo usermod -a -G gpio,spi www-data

Features: - Animated robot faces with 6 moods (Happy, Neutral, Sad, Angry, Laughing, Concentrated) - Each mood has 2 face variations (5s + 2s animation cycle) - Web interface mood controls - Brightness control via PWM - Auto-initializes on startup with Happy mood

Where to Buy: - Optimus Digital (RO) - eMAG (RO) - Any ILI9341-based 2.8" SPI display will work

GPIO Components Summary

By Plugin

Activity Timer

  • 1x RGB LED (pins 17, 27, 22)
  • 1x Buzzer (pin 5 / GPIO 3) - Optional

Noise Monitor

  • 2x RGB LED (pins 5, 6, 13 and 19, 26, 16)
  • 1x USB Microphone

Routines

  • 1x Speaker/Headphones (3.5mm jack)
  • 1x USB Presenter - Optional

Touch Piano

  • 6x Touch inputs (pins 7, 26, 38, 40, 32, 3 / GPIO 4, 7, 20, 21, 12, 2)
  • 1x Speaker/Headphones

LCD Display

  • 1x 2.8" TFT LCD with ILI9341 driver (320x240, SPI interface)
  • Pins: 16, 22, 24 (GPIO 23, 25, 8) + Hardware SPI (GPIO 9, 10, 11) + Backlight (GPIO 18)
  • Shows smiling face on startup with simple eyes and mouth

Shopping List

Essential (~$50-80)

  • Raspberry Pi 4 (2GB) × 1
  • MicroSD Card (32GB) × 1
  • Power Supply (USB-C) × 1
  • USB Microphone × 1
  • Basic Speaker × 1
  • RGB LED (Common Cathode) × 3
  • Resistor Kit (220Ω, 1kΩ, 10kΩ) × 1
  • Breadboard + Jumper Wires × 1
  • TTP223 Touch Sensors × 6
  • Active Buzzer × 1
  • Mini LCD Screen (2.8") × 1
  • USB Wireless Presenter × 1
  • Enclosure/Case × 1

Total Estimated Cost

  • Basic Setup: $50-80
  • Complete Setup: $100-150
  • Premium Setup: $150-200

Power Requirements

Raspberry Pi Power

Pi 4 (2GB) - Input: 5V/3A USB-C - Typical: 5V/1.5A - Max: 5V/2.5A

Pi 3B+ - Input: 5V/2.5A Micro-USB - Typical: 5V/1.2A - Max: 5V/2A

LED Power

Each RGB LED: - Max: 60mA (all colors full brightness) - Typical: 20mA (single color) - PWM dimming reduces average current

Total LED power (3 LEDs at 60mA): - 3 × 60mA × 3.3V = 0.6W - Well within Pi GPIO capabilities

External Power

For additional components:

  • LED Strips: External 5V power supply
  • Sensors: Usually powered from Pi
  • Motors: Always use external power

Safety Considerations

Voltage Levels

  • GPIO Pins: 3.3V only
  • Power Pins: 5V (for sensors, LEDs)
  • Never exceed 3.3V on GPIO pins

Current Limits

  • Per GPIO pin: 16mA max
  • All GPIO pins total: 50mA max (3.3V rail)
  • 5V pin: 1A max from Pi

Best Practices

  1. Power off Pi before wiring
  2. Double-check connections
  3. Use resistors with LEDs
  4. Avoid short circuits
  5. Keep away from water
  6. Supervise students

Assembly Notes

Breadboard Layout Tips

  1. Leave space between components
  2. Use color-coded wires
  3. Group by function
  4. Label connections
  5. Keep high-frequency signals short

Wire Management

  • Use different colors for different signals
  • Red: Power (3.3V or 5V)
  • Black: Ground
  • Yellow/Orange: Data/Signal
  • Keep wires organized

Next Steps