update all docs: Orange Pi 3B 8GB purchased (89)

- docs/sbc-selection.md: full rewrite for OPi 3B specs (RK3566, 8GB, 256GB eMMC, built-in WiFi)
- README.md: SBC description, checklist, components table, quick ref, cost estimate
- docs/parts-list.md: SBC marked purchased, eMMC/controller/WiFi changes
- docs/design-decisions.md: WiFi exclusion reason, native eDP, power input
- docs/salvage-analysis.md: WiFi card not needed, cooling fan, summary tables
- docs/storage-architecture.md: rewritten for 256GB eMMC primary boot
- docs/usb-expansion.md: 2x USB3 native, port allocation, power budget
- docs/port-layout.md: OPi3B port differences (eDP, power-only USB-C, built-in WiFi)
- docs/power-system.md: lower power draw context
This commit is contained in:
BarnacleBoy 2026-05-24 06:51:26 +00:00
parent ef9a7f40a8
commit 3c11190822
9 changed files with 330 additions and 347 deletions

View file

@ -1,128 +1,133 @@
# Storage Architecture
**Strategy:** SD card for boot/root, USB for data
**Strategy:** 256GB onboard eMMC for boot/root/data. SD card and M.2 for expansion.
---
## Design Principles
1. **Simplicity:** SD card boots out of the box, no U-Boot complexity
2. **Reliability:** Endurance-rated SD cards last longer
3. **Flexibility:** USB storage can be swapped/upgraded easily
4. **Cost:** Minimal investment, repurpose existing drives
1. **Simplicity:** eMMC boots out of the box, faster and more reliable than SD
2. **Speed:** eMMC ~300 MB/s read — comparable to a SATA SSD
3. **Capacity:** 256GB onboard is plenty for OS + apps + projects + media
4. **Flexibility:** MicroSD and M.2 slots available for expansion
5. **Cost:** Included with SBC — no separate purchase needed
---
## Layer 1: Boot/Root (MicroSD)
## Layer 1: Boot/Root (eMMC)
### Card Selection
The Orange Pi 3B boots from its onboard 256GB eMMC by default. This is the primary storage:
| Attribute | Recommendation |
|-----------|----------------|
| Capacity | 64GB minimum, 128 GB preferred |
| Type | Endurance-rated or Industrial |
| Brands | SanDisk Endurance, Samsung PRO Endurance |
### eMMC Performance
**Why endurance cards:**
| Attribute | Value |
|-----------|-------|
| Capacity | 256GB |
| Interface | eMMC 5.1 |
| Sequential read | ~300 MB/s |
| Sequential write | ~200 MB/s |
| Reliability | Significantly better than SD cards |
Consumer SD cards are rated for bursts of writes (camera use). OS usage is constant logging, updates, cache writes. Endurance cards are rated for:
### Partition Layout (Suggested)
- 5000+ hours of continuous recording
- 1000+ write cycles per sector
- 5-10× longer lifespan than consumer cards
```
/dev/mmcblk1 (eMMC, 256GB)
├── /dev/mmcblk1p1 → /boot (fat32, ~500MB)
├── /dev/mmcblk1p2 → / (ext4, ~80GB)
├── /dev/mmcblk1p3 → /home (ext4, ~170GB)
└── (remaining for swap or data)
```
**Cost:**$10-15 for 64GB
Or simpler:
```
/dev/mmcblk1p1 → /boot (fat32, ~500MB)
/dev/mmcblk1p2 → / (ext4, all remaining)
/home → subdirectory, not separate partition
```
256GB is large enough that separate partitions are optional. A single root partition with everything under it works fine.
### Boot Configuration
Default Orange Pi 5 boots from SD:
```
/dev/mmcblk0 (SD card)
├── /dev/mmcblk0p1 → /boot (fat32, ~200MB)
├── /dev/mmcblk0p2 → / (ext4, ~60GB)
└── /dev/mmcblk0p3 → /home (ext4, remaining)
```
Or single partition with separate mount points:
```
/dev/mmcblk0p2 → / (ext4, all space)
/home → bind mount or subdirectory
```
### Root-on-USB (Optional)
For faster I/O, copy root to USB SSD:
1. Boot from SD, insert USB SSD
2. `sudo rsync -ax / /mnt/usb/`
3. Edit `/boot/extlinux/extlinux.conf`:
```
append root=/dev/sda1
```
4. Boot from USB, SD only handles bootloader
**Tradeoff:** More complexity, faster app loading.
Default OPi3B boots from eMMC when populated. No configuration needed.
---
## Layer 2: Data Storage (USB)
## Layer 2: Expansion (MicroSD + M.2)
### MicroSD
| Attribute | Value |
|-----------|-------|
| Slot | Standard push-push |
| Max capacity | Up to 512GB |
| Use | Backup, media library, test OS images |
No need for endurance-rated card — the SD slot is now secondary storage, not primary boot.
### M.2 M-key
| Interface | Speed | Notes |
|-----------|-------|-------|
| PCIe 2.0 x1 | ~300 MB/s | Slightly slower than eMMC |
| SATA III | ~550 MB/s | Faster than eMMC (if SATA SSD) |
Can add NVMe or SATA SSD for bulk storage if 256GB eMMC fills up. M.2 slot shares bandwidth with USB 3.0 — both use the same PCIe controller.
---
## Layer 3: Data Storage (USB)
Optional external storage for:
- Large media libraries
- Project archives
- System backups
### Options
| Option | Speed | Cost | Notes |
|--------|-------|------|-------|
| USB flash drive | 100-150 MB/s | $12-20 | Cheap, limited endurance |
| USB 3.0 SATA enclosure | ~400 MB/s | $10-15 + drive | Reuse 2.5" drives |
| USB 3.0 NVMe enclosure | ~400 MB/s | $8-15 + drive | Compact, fast |
| USD 3.0 flash drive (fast) | 200-400 MB/s | $20-40 | Kingston DataTraveler, Samsung BAR |
### Recommendation
**USB 3.0 SATA enclosure with salvaged 2.5" SSD.**
If you have a spare 2.5" SATA SSD from another build/upgrade:
- Enclosure cost: $10-15
- Speed: ~400 MB/s (SATAIII limit over USB 3.0)
- Capacity: whatever the drive is
If no spare drive:
- USB 3.0 flash drive (128GB): $15-25
- Or NVMe enclosure ($10) + budget NVMe drive ($20-30)
| USB 3.0 SATA enclosure | ~400 MB/s | $10-15 | Reuse 2.5" drives |
| USB 3.0 NVMe enclosure | ~400 MB/s | $8-15 | Compact |
| USB flash drive (fast) | 200-400 MB/s | $15-25 | Kingston, Samsung BAR |
### Mount Strategy
```bash
# /etc/fstab
UUID=<ssd-uuid>/mnt/data ext4 defaults,noatime 0 2
# /etc/fstab (optional USB storage)
UUID=<ssd-uuid> /mnt/data ext4 defaults,noatime 0 2
/mnt/data/projects /home/jez/projects none bind 0 0
/mnt/data/media /home/jez/media none bind 0 0
```
Mount on-demand or at boot, depending on use case.
---
## Storage Layout
```
┌─────────────────────────────────────┐
MicroSD Card (/dev/mmcblk0)
SanDisk Endurance 64GB
│ ├── /boot (fat32, 200MB)
│ ├── / (ext4, 25GB)
│ └── /home (ext4, 38GB)
Basic config, small files
eMMC (/dev/mmcblk1)
256GB onboard
│ ├── /boot (fat32, 500MB)
│ ├── / (ext4, ~80GB)
│ └── /home (ext4, ~175GB)
OS + apps + projects + media
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ USB SSD (/dev/sda) │
│ SATA or NVMe in USB 3.0 enclosure │
│ MicroSD (/dev/mmcblk0) │
│ Optional expansion │
│ ├── OS images / boot tests │
│ └── Media library / backups │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ USB SSD (/dev/sda) │
│ Optional — only if eMMC fills up │
│ ├── /mnt/data/projects │
│ ├── /mnt/data/media │
│ └── /mnt/data/backup │
│ Mounted on-demand │
└─────────────────────────────────────┘
```
@ -130,18 +135,16 @@ Mount on-demand or at boot, depending on use case.
## Backup Strategy
### SD Card Imaging
### eMMC Imaging
```bash
# Backup
sudo dd if=/dev/mmcblk0 of=cyberdeck-sd-backup.img bs=4M status=progress
# Backup entire eMMC to USB drive
sudo dd if=/dev/mmcblk1 of=/mnt/data/cyberdeck-emmc-backup.img bs=4M status=progress
# Restore
sudo dd if=cyberdeck-sd-backup.img of=/dev/mmcblk0 bs=4M status=progress
sudo dd if=/mnt/data/cyberdeck-emmc-backup.img of=/dev/mmcblk1 bs=4M status=progress
```
Or use **Pi Imager** / **BalenaEtcher** for GUI imaging.
### Data Backup
- Timeshift for system snapshots
@ -152,31 +155,22 @@ Or use **Pi Imager** / **BalenaEtcher** for GUI imaging.
## Performance Expectations
| Operation | SD Card | USB SSD |
|-----------|---------|---------|
| Boot time | 8-12s | 5-8s (root-on-USB) |
| App launch | 1-3s | 0.5-1s |
| File read (1GB) | 40-90s | 3-5s |
| File write (1GB) | 60-120s | 3-5s |
| Random I/O | Slow | Fast |
| Operation | eMMC | MicroSD | USB SSD |
|-----------|------|---------|---------|
| Boot time | ~5-8s | ~10-15s | ~5-8s |
| App launch | 0.5-1s | 1-3s | 0.5-1s |
| File read (1GB) | ~3-4s | ~40-90s | ~3-5s |
| Reliability | Excellent | Poor (wear) | Good |
**SD card is fine forOS and light use. USB SSD for anything I/O intensive.**
eMMC is the clear winner for boot and everyday use. SD card and USB storage are optional extras.
---
## Cost Summary
| Item | Low | High |
|------|-----|------|
| MicroSD 64GB Endurance | $10 | $15 |
| USB 3.0 SATA enclosure | $10 | $15 |
| (Assume spare SSD) | $0 | $0 |
| **Total** | **$20** | **$30** |
If no spare SSD:
| Item | Low | High |
|------|-----|------|
| MicroSD 64GB Endurance | $10 | $15 |
| USB 3.0 flash drive 128GB | $15 | $25 |
| **Total** | **$25** | **$40** |
| Item | Low | High | Status |
|------|-----|------|--------|
| 256GB eMMC | $0 | $0 | **Included with SBC** |
| MicroSD (optional) | $0 | $15 | Only if needed |
| USB enclosure (optional) | $0 | $15 | Only if eMMC fills up |
| **Total** | **$0** | **$30** | |