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:
- USB Desktop Microphone (Recommended)
- Plug and play
- Good sensitivity
-
Examples: Fifine K669, Blue Snowball
-
USB Microphone Module
- Smaller footprint
- Lower quality but functional
-
Examples: Generic USB sound card + mic
-
Microphone Module with ADC
- Requires GPIO connection
- Better for custom installations
- Requires additional components
Speaker / Audio Output¶
Options:
- 3.5mm Jack Speaker
- Standard audio output
-
Powered speakers or headphones
-
USB Speaker
- No additional power needed
-
Plug and play
-
HDMI Audio
- If using monitor with speakers
- 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:
- Hardware SPI Pins (Fixed): Pins 19 (MOSI), 21 (MISO), and 23 (SCLK) cannot be changed
- CS Pin: Must use GPIO 22 (Pin 15), not the default GPIO 8
- SPI Interface: Must be enabled via
sudo raspi-config→ Interface Options → SPI - Permissions: Web server needs SPI/GPIO access:
sudo usermod -a -G spi,gpio www-data - 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:
Required System Permissions:
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
Recommended Additions (~$30-50)¶
- 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¶
- Power off Pi before wiring
- Double-check connections
- Use resistors with LEDs
- Avoid short circuits
- Keep away from water
- Supervise students
Assembly Notes¶
Breadboard Layout Tips¶
- Leave space between components
- Use color-coded wires
- Group by function
- Label connections
- 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¶
- GPIO Pin Assignments - Detailed pin mapping
- Wiring Diagrams - Step-by-step wiring instructions
- Developer Setup - Set up development environment