mirror of
https://github.com/RobCo-Industries/Pip-OS.git
synced 2026-08-24 02:24:20 -05:00
Co-authored-by: jbltx <1284323+jbltx@users.noreply.github.com>
8.8 KiB
8.8 KiB
PIP-OS Hardware Guide
Supported Configurations and Pin Assignments
Overview
PIP-OS supports three tiers of Pip-Boy hardware configurations, each targeting different Raspberry Pi models and feature sets.
Tier 1: Basic Pip-Boy (Raspberry Pi Zero/1)
Specifications
- SoC: BCM2835 (ARMv6)
- CPU: Single-core ARM1176JZF-S @ 700MHz
- RAM: 512MB
- Display: 320x240 SPI TFT (ILI9341 or ST7789)
- Input: 5 buttons + rotary encoder
- Audio: PWM through GPIO
- Sensors: RTC module (DS3231 via I2C)
- Power: 2x AA batteries or single 18650
GPIO Pin Assignment
Display (SPI0):
MOSI - GPIO 10
MISO - GPIO 9
SCLK - GPIO 11
CS - GPIO 8
DC - GPIO 24
RST - GPIO 25
Buttons:
UP - GPIO 17
DOWN - GPIO 27
LEFT - GPIO 22
RIGHT - GPIO 23
SELECT- GPIO 4
Rotary Encoder:
A - GPIO 5
B - GPIO 6
PRESS - GPIO 13
Audio (PWM):
OUT - GPIO 18 (PWM0)
I2C (RTC):
SDA - GPIO 2
SCL - GPIO 3
Power:
BATTERY_SENSE - GPIO 26 (ADC via voltage divider)
Display Connection
For ILI9341 320x240 TFT:
TFT Pin → Pi Pin
VCC → 3.3V
GND → GND
CS → GPIO 8
RESET → GPIO 25
DC/RS → GPIO 24
MOSI → GPIO 10
SCK → GPIO 11
LED → 3.3V (with 100Ω resistor)
MISO → GPIO 9 (optional)
Power Circuit
Battery (3-4.2V) → LDO 5V → Pi
↓
Voltage Divider → GPIO 26
(R1: 2kΩ, R2: 1kΩ)
Tier 2: Standard Pip-Boy (Raspberry Pi 2/3)
Specifications
- SoC: BCM2836 (Pi 2) or BCM2837 (Pi 3)
- CPU: Quad-core Cortex-A7 @ 900MHz (Pi 2) or Cortex-A53 @ 1.2GHz (Pi 3)
- RAM: 1GB
- Display: 480x320 SPI TFT or 640x480 HDMI
- Input: Full button set (10 buttons) + rotary encoder + optional touch
- Audio: I2S DAC (PCM5102A or similar)
- Sensors: RTC, GPS (UART), Accelerometer (I2C), Geiger counter
- Power: 18650 Li-Ion with charging circuit
GPIO Pin Assignment
Display (SPI0):
(Same as Tier 1)
Buttons:
UP - GPIO 17
DOWN - GPIO 27
LEFT - GPIO 22
RIGHT - GPIO 23
SELECT - GPIO 4
A - GPIO 16
B - GPIO 20
X - GPIO 21
Y - GPIO 12
START - GPIO 19
Rotary Encoder:
(Same as Tier 1)
Audio (I2S):
LRCLK - GPIO 19 (conflicts with START, use separate IC)
DIN - GPIO 21
BCK - GPIO 18
I2C (Sensors):
SDA - GPIO 2
SCL - GPIO 3
GPS (UART):
TX - GPIO 14
RX - GPIO 15
Geiger Counter:
PULSE - GPIO 7 (interrupt input)
Power Management:
BATTERY_SENSE - GPIO 26
CHARGE_STATUS - GPIO 24
POWER_GOOD - GPIO 25
I2S Audio Connection
For PCM5102A DAC:
DAC Pin → Pi Pin
VCC → 3.3V
GND → GND
BCK → GPIO 18
DIN → GPIO 21
LRCK → GPIO 19
SCK → Not connected
FLT → GND
DEMP → GND
XSMT → 3.3V
GPS Module Connection
For NEO-6M or similar:
GPS Pin → Pi Pin
VCC → 3.3V
GND → GND
TX → GPIO 15 (Pi RX)
RX → GPIO 14 (Pi TX)
Tier 3: Deluxe Pip-Boy (Raspberry Pi 4)
Specifications
- SoC: BCM2711
- CPU: Quad-core Cortex-A72 @ 1.5GHz
- RAM: 2-8GB
- Display: 800x480 HDMI touchscreen or large TFT
- Input: Capacitive touch + full button set + encoder
- Audio: High-quality I2S DAC + Bluetooth
- Sensors: Full sensor suite (RTC, GPS, IMU, Geiger, temp, heart rate)
- Power: Dual 18650 with advanced power management
Additional Features
- Bluetooth for wireless holotape sync
- Wi-Fi for online features (when available)
- USB-C charging with fast charge support
- RGB LED indicators
- Haptic feedback motor
Extended GPIO Assignment
Touch Controller (I2C):
SDA - GPIO 2
SCL - GPIO 3
INT - GPIO 27
IMU (I2C):
(Shared with touch)
Heart Rate Sensor (I2C):
(Shared with touch)
Haptic Motor (PWM):
CTRL - GPIO 13 (PWM1)
RGB LEDs (WS2812B):
DATA - GPIO 10
USB-C Power:
PD_INT - GPIO 26
Display Options
SPI TFT Displays
ILI9341 (320x240)
- Speed: Up to 40 MHz SPI
- Colors: 262K (18-bit)
- Touch: Optional resistive overlay
- Power: ~100mA @ 3.3V
ST7789 (240x240 / 320x240)
- Speed: Up to 62.5 MHz SPI
- Colors: 262K (18-bit)
- Touch: Optional capacitive
- Power: ~80mA @ 3.3V
HDMI Displays
480x320 DSI/HDMI
- Official 3.5" touchscreen
- Capacitive touch (10-point)
- Power via Pi
800x480 HDMI
- 7" HDMI display
- Capacitive or resistive touch
- External power recommended
Sensor Modules
RTC Module (DS3231)
Module → Pi
VCC → 3.3V
GND → GND
SDA → GPIO 2
SCL → GPIO 3
32K → Not connected
SQW → GPIO 4 (optional alarm)
- I2C Address: 0x68
- Battery backup: CR2032
- Accuracy: ±2ppm
GPS Module (NEO-6M)
- Update rate: 1-10 Hz
- Accuracy: 2.5m CEP
- Cold start: ~30s
- Warm start: ~1s
- UART: 9600 baud (default)
Accelerometer (MPU6050/LSM303)
- I2C Address: 0x68 or 0x19
- Range: ±2g to ±16g
- Update rate: Up to 1kHz
- Features: 3-axis accel + gyro
Geiger Counter Interface
Counter Pin → Pi Pin
VCC → 5V
GND → GND
PULSE → GPIO 7
- Pulse: Active high, ~100μs width
- Count pulses to calculate CPM
- Use interrupt for accurate counting
Power Management
Battery Configuration
Single 18650 (Tier 1/2)
18650 → Protection Board → Boost Converter (5V) → Pi
↓
Voltage Divider → GPIO 26 (monitor)
Dual 18650 (Tier 3)
2x 18650 (Series) → BMS → Buck Converter (5V) → Pi
↓
Fuel Gauge (I2C) → Monitor
Charging
For single-cell LiPo/18650:
USB-C → TP4056 Charge Controller → Battery
↓
CHRG/DONE → GPIO (status LEDs)
For dual-cell:
USB-C → BMS with charging → Batteries
↓
Status signals → I2C/GPIO
Power Consumption
| Mode | Tier 1 | Tier 2 | Tier 3 |
|---|---|---|---|
| Active | 400mA | 800mA | 1.2A |
| Idle | 250mA | 500mA | 800mA |
| Sleep | 100mA | 150mA | 200mA |
| Deep Sleep | 50mA | 50mA | 50mA |
Battery Life Estimates
With 3000mAh 18650:
- Tier 1 Active: ~7 hours
- Tier 2 Active: ~3.5 hours
- Tier 3 Active (dual): ~5 hours
Assembly Notes
Enclosure Considerations
- Waterproofing: IP54 recommended
- Button placement: Ergonomic for wrist mount
- Display viewing angle: 45° optimal
- Weight: <300g for wearability
Thermal Management
- Pi 3/4 may need heatsink
- Passive cooling preferred
- Vents for air circulation
- Keep away from battery
Mechanical
- Shock absorption for display
- Strain relief for wiring
- Mounting holes for PCB
- Easy access to SD card
Testing and Calibration
Display Calibration
- Check SPI clock speed
- Verify orientation
- Test touch accuracy (if applicable)
- Adjust brightness
Input Testing
# Test buttons
evtest /dev/input/event0
# Test rotary encoder
evtest /dev/input/event1
Sensor Calibration
- RTC: Set time, verify drift over 24h
- Accelerometer: Six-position calibration
- GPS: Wait for fix, check accuracy
- Battery: Calibrate voltage divider
Troubleshooting
Display Issues
- Black screen: Check power, SPI connections
- Scrambled display: Verify SPI speed, check wiring
- Touch not working: Test I2C, check driver
Input Issues
- Buttons not responding: Test with multimeter, check pull-ups
- Encoder not working: Verify both channels, check debouncing
- Ghost inputs: Add debouncing capacitors
Power Issues
- Won't boot: Check 5V rail, verify current capacity
- Random resets: Add decoupling capacitors
- Low battery voltage: Check voltage divider, calibrate ADC
Audio Issues
- No sound: Verify I2S/PWM config, check amplifier
- Distorted audio: Check sample rate, reduce volume
- Noise: Add filtering, improve power supply
Parts List
Tier 1 Basic Kit
- Raspberry Pi Zero W
- 320x240 SPI TFT
- 5x tactile buttons
- Rotary encoder with button
- DS3231 RTC module
- Passive buzzer
- 18650 battery holder
- TP4056 charger module
- 5V boost converter
- Resistors, capacitors, wire
Estimated cost: $60-80
Tier 2 Standard Kit
- Raspberry Pi 2 or 3
- 480x320 SPI TFT
- 10x tactile buttons
- Rotary encoder
- DS3231 RTC
- PCM5102A I2S DAC
- NEO-6M GPS
- MPU6050 IMU
- Geiger counter module (optional)
- 18650 battery + BMS
- Buck converter
- Enclosure
Estimated cost: $120-180
Tier 3 Deluxe Kit
- Raspberry Pi 4 (4GB)
- 800x480 HDMI touchscreen
- Touch controller
- 10x buttons + encoder
- Full sensor suite
- High-quality DAC
- 2x 18650 + BMS
- USB-C PD
- RGB LEDs
- Haptic motor
- Premium enclosure
Estimated cost: $250-350
Resources
RobCo Industries - Building the Future of Personal Computing