Complete instructions for the 16-node geometric computer
Download Raspberry Pi Imager and flash Raspberry Pi OS Lite (64-bit) to each SD card.
During setup, enable SSH and set hostname to the node name:
Node naming convention: - nw1, nw2, nw3 (NW triad) - ne1, ne2, ne3 (NE triad) - sw1, sw2, sw3 (SW triad) - se1, se2, se3 (SE triad) - c1, c2, c3, c4 (Center dipyramid)
Insert SD card, connect ethernet, power on. SSH in:
ssh pi@nw1.local
Update the system:
sudo apt update && sudo apt upgrade -y
sudo apt install python3-pip python3-numpy -y pip3 install dataclasses-json
Copy the epoch_node.py to each Pi:
scp epoch_node.py pi@nw1.local:~/
Test locally:
python3 epoch_node.py --test
Edit /etc/dhcpcd.conf on each Pi:
# NW Triad nw1: 192.168.1.11 nw2: 192.168.1.12 nw3: 192.168.1.13 # NE Triad ne1: 192.168.1.21 ne2: 192.168.1.22 ne3: 192.168.1.23 # SW Triad sw1: 192.168.1.31 sw2: 192.168.1.32 sw3: 192.168.1.33 # SE Triad se1: 192.168.1.41 se2: 192.168.1.42 se3: 192.168.1.43 # Center Dipyramid c1: 192.168.1.101 c2: 192.168.1.102 c3: 192.168.1.103 c4: 192.168.1.104
Connect all Pis to the 24-port switch. The logical topology:
PHYSICAL: All nodes to switch (star topology)
LOGICAL: Geometric tension lines
NW ════════════════════════════════ NE
║ ╲ ╱ ║
║ ╲ ╱ ║
║ ╲ ╱ ║
║ ╲ ┌────────┐ ╱ ║
║ ╲ │ CENTER │ ╱ ║
║ ════ │ ◈◈◈◈ │ ════ ║
║ ╱ │ │ ╲ ║
║ ╱ └────────┘ ╲ ║
║ ╱ ╲ ║
║ ╱ ╲ ║
║ ╱ ╲ ║
SW ════════════════════════════════ SE
Software routes messages along these logical paths.
Create cluster_config.json on each node:
{
"node_id": "nw1",
"role": "triad",
"triad": "NW",
"position": 1,
"neighbors": ["nw2", "nw3"],
"center_nodes": ["c1", "c2", "c3", "c4"],
"ip_map": {
"nw1": "192.168.1.11",
"nw2": "192.168.1.12",
...
}
}
On each node, create a systemd service:
sudo nano /etc/systemd/system/epoch-node.service
[Unit] Description=Epoch Node Service After=network.target [Service] ExecStart=/usr/bin/python3 /home/pi/epoch_node.py WorkingDirectory=/home/pi Restart=always User=pi [Install] WantedBy=multi-user.target
sudo systemctl enable epoch-node sudo systemctl start epoch-node
From the master node (c1), run:
python3 verify_cluster.py
Expected output:
Cluster Verification ==================== Nodes online: 16/16 Balance Law Test: τ₁ (NW) = +5.000000 τ₂ (NE) = -3.000000 τ₃ (SW) = +2.000000 τ₄ (CENTER) = -4.000000 SUM = 0.000000 BALANCE LAW: VERIFIED ✓
Inject a problem and verify resolution:
python3 resolve_test.py --input 60
Resolution Test =============== Input: 60 Iterations: 0 Resolved: 60.000000 Time: 15.3μs RESOLUTION: VERIFIED ✓
Wire pulse sensor to nw1 GPIO:
Pulse Sensor → Raspberry Pi VCC → 3.3V (Pin 1) GND → Ground (Pin 6) Signal → GPIO 18 (Pin 12)
Install pulse sensor library:
pip3 install pulsesensor
Configure sensor mapping in bio_feed_config.json:
{
"sensors": {
"hrv": {
"node": "nw1",
"gpio": 18,
"torsion": "tau1",
"scale": {
"min_hrv_ms": 500,
"max_hrv_ms": 1500,
"min_torsion": -10,
"max_torsion": 10
}
}
}
}
Node not responding:
ping 192.168.1.XX ssh pi@nodeXX.local sudo systemctl status epoch-node
Balance Law failing:
# Check individual node torsions python3 debug_node.py --node nw1 # Verify network timing python3 sync_test.py
Sensor not reading:
# Test GPIO python3 test_gpio.py --pin 18 # Check sensor power # Verify wiring