vault backup: 2026-07-11 16:48:59

This commit is contained in:
John Lyon-Smith
2026-07-11 16:48:59 -07:00
parent 09fa251c39
commit b0318f13ae
18 changed files with 1400 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
---
active: true
tags: project
created: 2026-03-29 11:13
---
## Goal
Build a game show room.
## Tasks
- [x] Tape out the room 2026-03-29 ✅ 2026-03-29
- [x] Build a 3d model of the room in Fusion 2026-03-29 ✅ 2026-04-11
- [x] Decide on building approach 2026-03-29 ✅ 2026-05-22
- [x] Insulate the walls 2026-03-29 ✅ 2026-05-22
- [x] Cover the lower walls with plywood 2026-03-29 ✅ 2026-05-22
- [ ] Hang up the exit signs again 2026-05-22
- [ ] Put down the plastic and floor boards 2026-05-22
- [ ] Build the stage 2026-03-29
- [ ] Build the podiums 2026-03-29
- [ ] Install podium floor receptacles 2026-03-29
- [ ] Put 4x 24V power supplies in the cupboard 2026-03-29
- [ ] Install a plugs for the projector, TV and lights 2026-03-29
## References

View File

@@ -0,0 +1,236 @@
---
active: false
tags:
- project
- eg
created: 2024-11-01
---
## Goal
Rewire Poulsbo location with:
- Lighting zones
- Wall and ceiling outlets
- One breaker for each room
- Conduit for future kitchen
- Control boxes for all rooms
Set up escape room network hardware & software.
- 8 ethernet cables for cameras (8W each = 64W)
- 3 for WiFi AP's (21W each = 63W)
- 5 ethernet cables for room controllers
- 5 ethernet cables for GM stations
- 1 ethernet for cable modem
## To Do
- [x] Take USB switcher, HDMI cable, keyboard and mouse to the EG and hook up laptop 2025-04-06 ✅ 2025-04-06
- [x] Install and configure new modem 2024-07-13 ✅ 2025-04-25
- [x] Put track down wall for network and coax cable 2024-12-09 ✅ 2025-03-21
- [x] Wire up AP's 2024-07-13 ✅ 2025-03-27
- [x] Install WiFi AP's 2024-07-13 ✅ 2025-03-27
- [x] Install and configure UniFi Gateway 2024-07-13 ✅ 2025-03-27
- [x] Install the UPS 2025-03-02 ✅ 2025-03-27
- [x] Run ethernet cable for cameras 2025-03-02 ✅ 2025-03-16
- [x] Run ethernet cable to each of the control boxes 2025-03-02 ✅ 2025-03-16
- [x] Run ethernet cable to each of the WiFi AP's 2025-03-02 ✅ 2025-03-16
- [x] Cut out pieces for remaining 4 boxes 2025-03-02 ✅ 2025-03-04
- [x] Pre-drill screw holes for screws in 4 boxes 2025-03-02 ✅ 2025-03-04
- [x] Build server rack 2024-09-23 ✅ 2025-03-16
- [x] Drill green light to remaining 4 boxes 2025-03-02 ✅ 2025-03-16
- [x] Cut conduit, vent and fan holes in remaining 4 boxes 2025-03-02 ✅ 2025-03-16
- [x] Attach plugs and 3/8" flex conduit to 4 boxes 2025-03-02 ✅ 2025-03-16
- [x] Attach vents to 4 boxes 2025-03-02 ✅ 2025-03-16
- [x] Attach fans to 4 boxes 2025-03-02 ✅ 2025-03-16
- [x] Remove wall for in room #1 2025-03-02 ✅ 2025-03-16
- [x] Install box #1 2025-03-02 ✅ 2025-03-16
- [x] Install box #1 plug & switch boxes 2025-03-02 ✅ 2025-03-16
- [x] Wire box #1 2025-03-02 ✅ 2025-03-16
- [x] Replace wall in room #1 2025-03-02 ✅ 2025-03-16
- [x] Install box #3 2025-03-02 ✅ 2025-03-16
- [x] Install box #3 plug & switch boxes 2025-03-02 ✅ 2025-03-16
- [x] Wire box #3 2025-03-02 ✅ 2025-03-16
- [x] Install box #4 2025-03-02 ✅ 2025-03-16
- [x] Install box #4 plug & switch boxes 2025-03-02 ✅ 2025-03-16
- [x] Wire box #4 2025-03-02 ✅ 2025-03-16
- [x] Remove wall in room #5 2025-03-02 ✅ 2025-03-16
- [x] Install box #5 2025-03-02 ✅ 2025-03-16
- [x] Install box #5 plug & switch boxes 2025-03-02 ✅ 2025-03-16
- [x] Wire box #5 2025-03-02 ✅ 2025-03-16
- [x] Replace wall in room #5 2025-03-02 ✅ 2025-03-16
- [x] Install wire racks in ceiling of Odin's Dilemma 2025-02-11 ✅ 2025-03-02
- [x] Configure RingCentral 2025-02-13 ✅ 2025-02-13
- [x] Order cable modem ⏫ 2024-11-03 ✅ 2024-12-01
- [x] Order WiFi AP's ⏫ 2024-07-13 ✅ 2024-12-01
- [x] Order router micro PC machine ⏫ 2024-07-13 ✅ 2024-12-01
- [x] Order a battery backup device ⏫ 2024-07-13 ✅ 2024-12-01
- [x] Order a network hub 2024-12-01 ✅ 2025-02-11
- [x] Install plug in control box 2025-02-23 ✅ 2025-03-02
- [x] Install green light in control box 2025-02-28 ✅ 2025-03-02
- [x] Install power switch 2025-02-28 ✅ 2025-03-02
- [x] Install light switch 2025-02-28 ✅ 2025-03-02
- [x] Attach control box to the wall 2025-02-23 ✅ 2025-03-02
- [x] Mark exit signs with broken lights 2025-02-11 ✅ 2025-02-16
- [x] Put all exit signs back up 2025-02-11 ✅ 2025-02-16
- [x] Install switch to both ends of the control room 2025-01-14 ✅ 2025-01-31
- [x] Install switch at the end of room 5 for meeting room lights 2025-01-14 ✅ 2025-01-31
- [x] Install plug on room 5 outer wall ✅ 2025-01-31
- [x] Install room 1 exit signs 2024-12-11 ✅ 2025-01-31
- [x] Install room 2 exit signs 2024-12-11 ✅ 2025-02-11
- [x] Install room 3 exit signs 2024-12-11 ✅ 2025-02-11
- [x] Install room 4 exit signs 2024-12-11 ✅ 2025-02-11
- [x] Install room 5 exit signs 2024-12-11 ✅ 2025-02-11
- [x] Install front door exit sign 2025-01-14 ✅ 2025-01-31
- [x] Install back door exit sign 2025-01-14 ✅ 2025-01-31
- [x] Install back hallway exit sign 2025-01-14 ✅ 2025-01-31
- [x] Install middle hallway exit sign 2025-01-14 ✅ 2025-01-31
- [x] Install front hallway exit sign 2025-01-14 ✅ 2025-01-31
- [x] Install control room front exit sign 2025-01-14 ✅ 2025-01-31
- [x] Install control room back exit sign 2025-01-14 ✅ 2025-01-31
- [x] Electrical inspection 2025-01-17 ✅ 2025-01-31
- [x] Install kitchen conduit 2024-12-11 ✅ 2025-01-14
- [x] Install room 1 conduit 2024-12-11 ✅ 2025-01-14
- [x] Install room 1 wiring 2024-12-11 ✅ 2025-01-14
- [x] Install room 1 lights 2024-12-11 ✅ 2025-01-14
- [x] Install room 2 conduit 2024-12-11 ✅ 2025-01-14
- [x] Install room 2 wiring 2024-12-11 ✅ 2025-01-14
- [x] Install room 2 lights 2024-12-11 ✅ 2025-01-14
- [x] Install room 3 conduit 2024-12-11 ✅ 2025-01-14
- [x] Install room 3 wiring 2024-12-11 ✅ 2025-01-14
- [x] Install room 3 lights 2024-12-11 ✅ 2025-01-14
- [x] Install room 4 conduit 2024-12-11 ✅ 2025-01-14
- [x] Install room 4 wiring 2024-12-11 ✅ 2025-01-14
- [x] Install room 4 lights 2024-12-11 ✅ 2025-01-14
- [x] Install room 5 conduit 2024-12-11 ✅ 2025-01-14
- [x] Install room 5 wiring 2024-12-11 ✅ 2025-01-14
- [x] Install room 5 lights 2024-12-11 ✅ 2025-01-14
- [x] Bend the back light conduit to go over back lights/power conduit 2024-12-16 ✅ 2024-12-29
- [x] Install back hall/power wiring 2024-12-11 ✅ 2024-12-29
- [x] Install back hall lights 2024-12-20 ✅ 2024-12-29
- [x] Install toilet conduit 2024-12-20 ✅ 2024-12-29
- [x] Install toilet light/switch/fan/plug 2024-12-20 ✅ 2024-12-29
- [x] Install utility room conduit 2024-12-20 ✅ 2024-12-29
- [x] Install utility light/switch 2024-12-20 ✅ 2024-12-29
- [x] Install meeting conduit 2024-12-11 ✅ 2024-12-29
- [x] Install meeting wiring 2024-12-11 ✅ 2024-12-29
- [x] Install meeting lights 2024-12-20 ✅ 2024-12-29
- [x] Install escape room conduit to breaker 2024-12-11 ✅ 2024-12-29
- [x] Install kitchen conduit to breaker 2024-12-11 ✅ 2024-12-29
- [x] Install kitchen conduit 2024-12-11 ✅ 2024-12-29
- [x] Install control room lights ✅ 2024-12-14
- [x] Install front/front hallway/middle hallway lights 2024-12-11 ✅ 2024-12-14
- [x] Install back conduit to breaker 2024-12-11 ✅ 2024-12-14
- [x] Add back lighting/meeting area lighting circuit artboard 2024-12-09 ✅ 2024-12-20
- [x] Add back power circuit artboard 2024-12-09 ✅ 2024-12-20
- [x] Add meeting area power artboard 2024-12-09 ✅ 2024-12-20
- [x] Buy more collars, black/white 12 AWG wire, pack of screw drivers, deWalt driver bits 2024-12-14 ✅ 2024-12-20
- [x] Return 4" boxes and covers to Silverdale 2024-11-23 ✅ 2024-12-20
- [x] Install back hall lighting/power conduit 2024-12-11 ✅ 2024-12-20
- [x] Move the heating circuit up and above the rafters 2024-11-26 ✅ 2024-12-09
- [x] Get a big printout of the wiring diagram 2024-11-26 ✅ 2024-12-09
- [x] Move the outside light circuit up above the rafters 2024-11-26 ✅ 2024-12-09
- [x] Remove the conduit around the lighting circuits 2024-11-26 ✅ 2024-12-09
- [x] More 4" boxes with earth connectors 2024-12-02 ✅ 2024-12-09
- [x] Flat nailing plates 2024-11-23 ✅ 2024-12-02
- [x] Get a large printout of the electrical plan 2024-11-22 📅 2024-11-25 ✅ 2024-12-02
- [x] 22 4" boxes with earth nub 2024-11-23 ✅ 2024-12-02
- [x] Tool belt for Carmen 2024-11-23 ✅ 2024-12-02
- [x] Count how many big light fixtures are in the space now 2024-11-01 ✅ 2024-11-02
- [x] How far apart or the roof joists and how many? 2024-11-01 ✅ 2024-11-02
- [x] What is power draw of the light fixtures? 2024-11-01 ✅ 2024-11-02
- [x] How many big lights on each circuit right now? 2024-11-01 ✅ 2024-11-02
- [x] What is the power draw of the small can light fixtures? 2024-11-01 ✅ 2024-11-02
- [x] Order cameras 🔺 2024-09-23 ✅ 2024-10-30
- [x] Watch videos on how to bend EMT conduit 🔺 2024-11-06 ✅ 2024-11-22
- [x] Apply for the L&I permit for the space and display 🔺 2024-11-06 ✅ 2024-11-22
- [x] Remove the light switch circuit from beside he breaker box. ✅ 2024-11-22
- [x] Open breaker box and remove all the stuff on the left side of the box ✅ 2024-11-23
- [x] Add water heater to drawing 2024-11-01 ✅ 2024-11-22
- [x] Add all control room outlets to the drawing 2024-11-01 ✅ 2024-11-22
- [x] Add all lighting conduit and junction box runs to the drawing 2024-11-01 ✅ 2024-11-22
- [x] Add circuits for each puzzle room to the drawing 2024-11-01 ✅ 2024-11-22
- [x] Add meeting area, reception and back hall outlets to the drawing 2024-11-01 ✅ 2024-11-22
- [x] Add location of cameras to the drawing 2024-11-01 ✅ 2024-11-22
- [-] Add location of existing conduit runs to the drawing 2024-11-01 ❌ 2024-11-22
- [x] Add location of the exit signs to the drawing 2024-11-01 ✅ 2024-11-22
- [x] Order concrete screws 2024-11-03 ✅ 2024-11-22
## Notes
Always power to switch first.
Every switch & plug must have a neutral wire in the box.
OK to use conduit as ground.
Lights and plugs on separate circuits
Every power line from a breaker must have a matching neutral line.
Exit signs must be fed by the lighting circuits, ahead of any switching.
30 joists, 32" on center.
Power draw of lights is between 50W and 65W each.
There are 54 big light fixtures and 8 small light fixtures. There are currently 46 big light fixtures currently. Kitchen will require at least 6 circuits all 20A with 12/2 NM and GFCI/AFCI:
- Fridge
- Dishwasher
- Garbage Disposal
- Microwave Oven
- Small Appliance #1
- Small Appliance #2
A cook top requires:
- 220V/50A 6/3 NM cable
Separate circuit for the alarm and camera system.
16 exit sign lights.
![[Breaker Labels.pdf]]
## References
- [Multiwire Branch Circuit - Electrical 101](https://www.electrical101.com/multiwire-branch-circuit.html)
- [National Electrical Code - Multiwire Branch Circuit - Transworld Electric](https://twielectric.com/national-electrical-code-multiwire-branch-circuit)
- https://learnmetrics.com/how-many-outlets-on-a-15-amp-20-amp-30-amp-circuit-nec/
- https://www.indeed.com/career-advice/finding-a-job/religious-degree-jobs
- https://www.amazon.com/Sunco-Selectable-Temperature-Dimmable-Dustproof/dp/B0BWLH379Z
- [How Many Outlets On A 15 Amp, 20 Amp, 30 Amp Circuit? (NEC 210.21)](https://learnmetrics.com/how-many-outlets-on-a-15-amp-20-amp-30-amp-circuit-nec)
- [Electrical Circuit Requirements for Kitchens](https://www.thespruce.com/kitchen-wiring-circuits-1152911)
- https://www.bradyid.com/resources/wiring-color-codes
- https://lni.wa.gov/licensing-permits/electrical/electrical-permits-fees-and-inspections/purchase-permits-request-inspections
- https://www.lni.wa.gov/forms-publications/F500-109-000.pdf
- https://www.wikihow.com/Install-Electrical-Conduits
- https://www.nema.org/docs/default-source/technical-document-library/steel-conduit-and-emt-proven-to-meet-the-nec-reg.pdf
- https://diy.stackexchange.com/questions/74977/is-an-explicit-ground-wire-required-through-steel-conduit
- https://www.homedepot.com/p/Southwire-500-ft-14-Gauge-White-Solid-CU-THHN-Wire-11580858/203401597
### NFPA 70 NEC 2023 Extracts
#### Connectors
250.8 Connection of Grounding and Bonding Equipment.
(A) Permitted Methods. Equipment grounding conductors,
grounding electrode conductors, and bonding jumpers shall be
connected by one or more of the following means:
(1) Listed pressure connectors
(2) Terminal bars
(3) Pressure connectors listed ao; grounding and bonding
equipment
(4) Exothermic welding processes;
(5) Machine screw-type fasteners that engage not Jcs. o; than
two thrcado; or arc secured "ith a nut
(6) Thread-forming machine screws dtal engage not lcs. o; than
two threads; in dlc enclosure
(7) Connections that arc part of a listed a"l.o;cmbly
(8) Othcr listed means
(B) Methods Not Permitted. Connection devices or fittings
that depend solely on solder shall not be used.
### Control Boxes
- https://www.amazon.com/Nilight-90014E-Rocker-Toggle-Warranty/dp/B07QKFD7Z7
- https://www.amazon.com/DaierTek-125VAC-Waterproof-Automotive-Aircraft/dp/B07T6YNRZS
### WiFi
- Escape Gallery WiFi password - `Berserker!`
- [Packet Sender - Free utility to for sending / receiving of network packets. TCP, UDP, SSL.](https://packetsender.com/)
- [ARRIS Surfboard S33 DOCSIS 3.1 Multi-Gigabit Cable Modem](https://www.amazon.com/gp/product/B08FMSC5WZ)
- [Manage your APC battery backup system with this Linux command](https://opensource.com/article/21/12/linux-apcupsd)

View File

@@ -0,0 +1,120 @@
---
active: true
tags:
- project
- eg
created: 2025-01-13 10:59
---
## Goal
Create a simulator with:
- Puzzle controller RPi
- Push button puzzle
- Locked box using solenoid with internal lights
- Sounds
- Firewall
- NATS
- 24VDC power supply with power take-off for testing external puzzles
- Room controller RPi
- Server software
- Web UI
- Ethernet hub between controller and puzzles
## Active Tasks
- [ ] Re-wire the 5V/12V power to the PWM board 2026-01-11
- [ ] Add another light to the top of the board with a MOSFET 2026-02-07
- [ ] Finish merging control code from `odin` back to the simulator 2025-12-28
- [ ] Finish creating a simple puzzle code using buttons 2025-04-03
- [ ] Check all logging and and ensure consistency 2026-01-04
- [ ] Make a latch for the box 2026-01-26
- [ ] Install lip and LED lights in locked box 2025-02-22
- [ ] Add MOSFET switch for the latch 2025-12-07
- [ ] Rewire 12V power to a MOSFET switch 2025-12-07
- [ ] Add sound effects that can be played 2025-12-08
- [ ] Install handles on the box 2025-05-30
- [ ] Install servo latch in box 2025-04-29
- [ ] Create simple puzzle using RFID readers 2025-05-31
## Future Tasks
- [ ] Install an ADC with a touch puzzle 2026-01-11
- [ ] Design a case for the LED panel 2025-12-28
- [ ] Design a case for the LEDs 2025-12-28
- [ ] Rewire the power to the I2C PWM module 2025-12-07
- [ ] Add optical sensor to the simulator 2025-11-06
- [ ] Add sound sensor to the simulator 2025-12-08
## Archived Tasks
- [x] Install the switch/plug box on the simulator 2026-02-04 ✅ 2026-02-06
- [x] Re-install a power supply for `sim-ctrl` 2026-01-11 ✅ 2026-02-04
- [x] Create Flutter app to monitor puzzle 2025-04-03 ✅ 2025-12-07
- [x] Install RFID readers next to buttons 2025-03-31 ✅ 2025-12-07
- [x] Install colored LEDs above the buttons with resin 2025-04-18 ✅ 2025-12-07
- [x] Create puzzle controller setup scripts and check in to source control 2025-05-21 ✅ 2025-06-03
- [x] Setup RPi development system 2025-05-14 ✅ 2025-06-03
- [x] Create model for holding the NVRAM SSD for the development RPi 4 2025-05-29 ✅ 2025-05-31
- [x] Solder a new GPIO v3 board 2025-05-30 ✅ 2025-06-02
- [x] Create an RFID reader box 2025-03-31 ✅ 2025-05-30
- [x] Install false bottom in lock box 2025-04-29 ✅ 2025-05-30
- [x] Design and print 12VDC power supply end cover 2025-01-13 ✅ 2025-05-04
- [x] Reflash the RPi with new WiFi password 2025-04-29 ✅ 2025-05-04
- [x] Install some buttons 2025-01-13 ✅ 2025-04-29
- [-] Route a channel for LED light lip in box 2025-01-16 ❌ 2025-04-29
- [x] Figure out which 12VDC relay to use with RPi 2025-01-31 ✅ 2025-04-29
- [x] Design box for 12VDC relay 2025-01-17 ✅ 2025-04-29
- [x] Configure `nftables` for `sim-ctrl` 2025-03-31 ✅ 2025-04-03
- [x] Disable WiFi connection on `sim-ctrl` 2025-03-30 ✅ 2025-04-03
- [x] Test `ssh` tunneling through to `sim-puz1` 2025-02-22 ✅ 2025-04-03
- [x] Install NATs server on `sim-ctrl` 2025-04-03 ✅ 2025-04-03
- [x] Test pub/sub from puzzle machine 2025-04-03 ✅ 2025-04-03
- [x] Configure `dnsmasq` on `sim-ctrl` and configure DHCP and DNS 2025-02-22 ✅ 2025-03-30
- [x] Install mag lock box to simulator 2025-01-13 ✅ 2025-03-16
- [x] Install Ubuntu on `sim-room` controller 2025-02-22 ✅ 2025-02-24
- [x] Rename system to `sim-room` 2025-02-24 ✅ 2025-02-24
- [x] Configure `sim-room` WiFi for `Valhalla` 2025-02-22 ✅ 2025-02-24
- [x] Configure static IP on `eth0` 2025-02-24 ✅ 2025-03-16
- [x] Install Raspian on `sim-puzzle-1` controller 2025-02-22 ✅ 2025-03-16
- [x] Design and print 12VDC mounting brackets 2025-01-13 ✅ 2025-01-13
- [x] Design and print mounting bracket for RPi units 2025-01-13 ✅ 2025-01-13
- [x] Install 12VDC power supply 2025-01-13 ✅ 2025-01-14
- [x] Design and print network switch holder 2025-01-14 ✅ 2025-01-14
- [x] Install outlet with 12VAC plug 2025-01-13 ✅ 2025-01-16
- [x] Install controller RPi 2025-01-13 ✅ 2025-01-16
- [x] Install ethernet switch 2025-01-13 ✅ 2025-01-16
- [x] Design better box for buck converters 2025-01-13 ✅ 2025-01-17
- [x] Design better box for puzzle RPi breakout board 2025-01-17 ✅ 2025-01-31
- [x] Install 12VDC bus bars 2025-01-17 ✅ 2025-01-31
- [x] Install puzzle RPi 2025-01-13 ✅ 2025-01-31
- [x] Install breakout board for puzzle RPi 2025-01-13 ✅ 2025-01-31
- [x] Install buck converter for 5VDC power for puzzle RPi 2025-01-13 ✅ 2025-01-31
- [x] Install a buck converter for 5VDC power to controller RPi 2025-01-13 ✅ 2025-01-31
- [x] Make a network cable from hub to controller RPi 2025-01-31 ✅ 2025-02-06
- [x] Make a network cable from hub to puzzle RPi 2025-01-31 ✅ 2025-02-06
- [x] Set two buck boards at 5VDC for 12VDC input 2025-01-31 ✅ 2025-02-06
- [x] Make a cable from power bar to controller RPi buck board 2025-01-31 ✅ 2025-02-06
- [x] Make a cable from power bar to puzzle RPi 2025-01-31 ✅ 2025-02-06
- [x] Build the mag lock box 2025-01-13 ✅ 2025-02-11
- [x] Fix icon for UI 2025-12-07 ✅ 2025-12-07
- [x] Push to `git.mozayik.net` 2025-12-07 ✅ 2025-12-07
- [x] Install `sim-puz` 2025-12-07 ✅ 2025-12-07
- [x] Install `sim-ctrl` 2025-12-07 ✅ 2025-12-07
- [x] Get System tab working 2025-12-07 ✅ 2025-12-07
- [x] Get Lighting tab working 2025-12-07 ✅ 2025-12-07
- [x] Test out Rhai scripting to see how to pass structures in and out 2025-12-10 ✅ 2025-12-13
- [x] Finish the first button puzzle sequence 2025-12-13 ✅ 2025-12-13
- [x] Timeout the success and failure buttons 2025-12-13 ✅ 2025-12-13
- [x] Support unknown state when button sequence starts 2025-12-13 ✅ 2025-12-13
- [x] Now send completed or failed status back in state 2025-12-13 ✅ 2025-12-13
### Button Puzzle States
```mermaid
stateDiagram-v2
NotRunning --> Waiting
Waiting --> Error : timeout
Waiting --> Error : wrong button
Waiting --> Completed : last right button
Waiting --> Waiting : right button
Error --> NotRunning
Completed --> NotRunning
```

101
Projects/Game Show Room.md Normal file
View File

@@ -0,0 +1,101 @@
---
active: false
tags: project
created: 2026-02-21 12:57
---
## Goal
- Jeopardy like game
- Family Feud like game
- $100,000 Pyramid like game
Jeopardy is the core game.
https://docs.google.com/presentation/d/11GSoVesazdhYPqDCpVx_RwUaK4nrfr4gqpAxccWkvQw/edit?usp=sharing
### Jeopardy
Jeopardy! is a quiz game featuring ==three rounds (Jeopardy!, Double Jeopardy!, Final Jeopardy!) where clues are presented as answers, requiring responses in the form of a question (e.g., "Who is...?", "What is...?"). It uses a board of 6 categories with 5 clues each, increasing in dollar value/difficulty==
AI Overview
Jeopardy! is a quiz game featuring ==three rounds (Jeopardy!, Double Jeopardy!, Final Jeopardy!) where clues are presented as answers, requiring responses in the form of a question (e.g., "Who is...?", "What is...?"). It uses a board of 6 categories with 5 clues each, increasing in dollar value/difficulty==. 
This video shows how to set up and play a Jeopardy-style game in PowerPoint:
Your Learning Career
Jeopardy! primarily uses the font ==**[ITC Korinna](https://www.google.com/search?client=firefox-b-1-d&q=ITC+Korinna&mstk=AUtExfDJODEm5wJsSy8HBO4UOOOfSK7e4io8CFscCtgvwxJT1ks_RavWaW0rbLMcyblmvlDtHkmQkm_Yyz1Lvt-2f0UWdn9_2efPOab6owCkiUd7HchqZ9pJH6aq47XFx9Lyx1JGRSon2wn2BF2DqVItdrcmXEF1y_DnsEFibjv8m3RC2X0&csui=3&ved=2ahUKEwj65Pypi-uSAxUGkGoFHaXLC2QQgK4QegQIARAD)**== (specifically Bold and Weighted variants) for its clue text, a tradition that has continued since the daily syndicated show began in 1984. The, category titles and dollar amounts on the game board often use a different font, such as **Swiss 921 BT** or similar compressed sans-serif fonts. 
https://font.download/font/itc-korinna-std
**Key Details About_
Jeopardy!
_Fonts:** 
- **Clue Font:** ITC Korinna.
- **Board/Category Font:** Swiss 921 BT (often used for, headings and dollar amounts).
- **Style Tips:** To replicate the _Jeopardy!_ look, use white, all-caps text with a, subtle drop shadow, centered both horizontally and vertically.
- **Alternatives:** If you cannot access Korinna, alternatives like **Cheltenham** are sometimes suggested, although Korinna is the standard.
**Key Components and Rules**
- **The Format:** The host provides a clue (answer), and the contestant must respond with the correct question.
- **Game Board:** Features 6 categories, each with 5 clues ranging from $200 to $1000.
- **Rounds:**
- **Jeopardy!:** First round, standard values.
- **Double Jeopardy!:** Second round, clue values are doubled.
- **Final Jeopardy!:** A final clue where contestants wager their accumulated winnings before seeing the clue.
- **Gameplay:** A contestant selects a category and value. The first to buzz in gets to respond. Correct answers add to their total and allow them to pick the next clue. Incorrect answers deduct the value.
- **Daily Double:** Hidden clues in the board that allow the contestant to wager up to their current total (or up to the maximum clue value in that round). 
**Common Uses**
- **Classroom/Training:** Used for educational review,, allowing for customized topics, images, and sounds.
- **Virtual/Team Building:** Played using virtual boards (e.g., [Figma](https://www.figma.com/templates/jeopardy-template/), [Miro](https://miro.com/templates/jeopardy-game-board/)) with 2-3 teams and a moderator.
- **Tools:** Common, free templates are available for [PowerPoint](https://www.youtube.com/watch?v=l6Y3aCRLEgE), [Google Slides](https://www.youtube.com/watch?v=5yczlWqUI6I), and [JeopardyLabs](https://jeopardylabs.com/).
### $100,000 Pyramid
The Pyramid game show features two teams, each with a contestant and a celebrity, playing a word-association game against a timer.
Players choose categories, and one partner gives clues for seven items within 30 seconds. The team with the highest score advances to the "$100,000" Winner's Circle, where they must get six categories in 60 seconds.
**Main Game Rules**
- **Gameplay:** Six categories are displayed in a pyramid. Teams take turns choosing a category, often phrased as a pun (e.g., "Things that are blue").
- **Clue Giving:** One player provides clues, while the other guesses. You cannot say the word itself, rhyme with it, use gestures, or use prepositions.
- **Scoring:** 1 point for each correct answer out of 7, with 30 seconds on the clock.
- **Passing:** Teams can "pass" on a word but cannot return to it once passed.
- **Winning the Main Game:** The team with the highest score after all rounds wins and advances to the winner's circle.
### Family Feud
AI Overview
[
Family Feud
](https://www.google.com/search?client=firefox-b-1-d&q=Family+Feud&mstk=AUtExfAg9fYykXgj6MlwFL8HC0Eqo1XG_g3SJ45RRxSLaA2QrteNMQWR7c5QeYdAByBWPHYDTsvklYg5Ih-Tw1NVxt_2FM15YgeSink1a8WrFVM8IXuw9_CcBznI6h_qrflgn68&csui=3&ved=2ahUKEwitguTFheuSAxXDnCYFHWV0DRIQgK4QegQIARAB)is a game where ==two teams of five compete to guess the most popular answers to survey questions asked of 100 people==. The goal is to reach 300 points by winning rounds, which feature face-offs, strikes for wrong answers, potential steals, and doubled/tripled point values in later rounds. The winning team plays "[Fast Money](https://www.google.com/search?client=firefox-b-1-d&q=Fast+Money&mstk=AUtExfAg9fYykXgj6MlwFL8HC0Eqo1XG_g3SJ45RRxSLaA2QrteNMQWR7c5QeYdAByBWPHYDTsvklYg5Ih-Tw1NVxt_2FM15YgeSink1a8WrFVM8IXuw9_CcBznI6h_qrflgn68&csui=3&ved=2ahUKEwitguTFheuSAxXDnCYFHWV0DRIQgK4QegQIARAD)" for a cash prize. 
**Core Game Rules**
- **The Face-Off:** One member from each team approaches the podium for a question. The first to buzz in with a correct answer (or the higher-ranked answer) wins control for their team.
- **Playing or Passing:** The winning team chooses to either "play" the question or "pass" it to the other team.
- **Playing the Board:** The team in control tries to guess all remaining answers on the board. Each team member offers one answer, usually in order.
- **Strikes and Steals:** If a team gives an answer not on the board, they get a strike (maximum of 3). If they get three strikes, the opposing team gets one chance to "steal" the points by guessing any remaining answer.
- **Points:** Points correspond to the number of survey participants who gave that answer (e.g., 40 people = 40 points).
- **Round Progression:** Points are doubled in round 3 and tripled in round 4.
- **Winning the Game:** The first team to reach 300 points wins the game. 
**Fast Money Rules**
- The winning team picks two members to play Fast Money.
- The first player has 20 seconds to answer 5 questions.
- The second player has 25 seconds to answer the same 5 questions, but cannot repeat the first player's answers.
- If the combined score is 200 points or more, they win the grand prize.
## Tasks
## References

View File

@@ -0,0 +1,27 @@
---
active: true
tags: project
created: 2026-03-02 10:07
---
## Goal
Configuring Mosyle software.
- Be able to do remote OS update on the Mac Mini's
- Guest login on the iPads
## Tasks
- [x] Upgrade the Mac Mini's to latests macOS 2026-01-18 ✅ 2026-04-13
- [x] Basic config of Mosyle software 2026-01-18 ✅ 2026-04-13
- [x] Figure out how to create and sign `.pkg` files 2026-04-13 ✅ 2026-04-13
- [x] Sign up for Mosyle Business 2026-04-15 ✅ 2026-04-15
- [x] Add Brioche to Escape Gallery device management 2026-04-13 ✅ 2026-05-22
- [x] Add my two iPads to ABM and configure guest account 2026-04-13 ✅ 2026-05-22
- [x] Configure Brioche Xcode with Escape Gallery provisioning certificates 2026-04-13 ✅ 2026-05-22
- [ ] Create script to load and serve `.pkg` files from URL 2026-04-13
- [ ] Switch to using the Escape Gallery profile and certificates 2026-04-13
- [ ] Add Apple accounts for Eva and Cindi and check they can access 2026-04-13
- [ ] Add Mosyle accounts for Eva and Cindi and check they can access 2026-01-18
## References

View File

@@ -0,0 +1,35 @@
---
active: true
tags:
- project
- eg
created: 2025-08-31 17:27
---
## Goal
Configure ZoneMinder and run the security camera system from there.
## Tasks
- [ ] Install the [ZoneMinder](https://zoneminder.com/) software 2025-08-31
- [ ] Configure all the cameras 2025-08-31
- [ ] Outside Back
- [ ] Bathroom
- [ ] Lobby
- [ ] Outside Front Left
- [ ] Outside Front Right
- [ ] Control
- [ ] Meeting
- [ ] Back Hall
- [ ] Create accounts for everyone 2025-08-31
- [ ] Cindi
- [ ] Eva
- [ ] Carmen
- [ ] Bret (with just outside cameras)
- [ ] Configure zmNinja app
## References
We have Reolink RLC-520A security cameras around the building and in the rooms.
- [ZoneMinder](https://zoneminder.com/)
- [Mount units with Systemd](https://zoneminder.blogspot.com/p/blog-page.html)
- [zmNinja](https://zmninja.zoneminder.com/)

View File

@@ -0,0 +1,67 @@
---
active: false
tags:
- project
- eg
---
## Goal
Find and install audio system for Odin's Dilemma. Includes speakers in both rooms, including sub-woofers. Microphones in both rooms that enable the GM to easily hear the room audio. Make sure background noises and music don't interfere with the microphones.
![[amp_wiring_diagram_lg.gif]]
## Notes
| Camera Name | MAC | IPv4 | `eg-1` Control Port | `eg-1` UDP Port | Standard Port |
| ----------- | ------------------- | ------------- | ------------------- | --------------- | ------------- |
| `odin-av1` | `2c:cf:67:20:35:e9` | `10.10.0.83` | 14100 | 14101 | 1234 |
| `odin-av2` | `88:a2:9e:38:74:37` | `10.10.0.178` | 14200 | 14201 | 1234 |
# To Do
- [x] Order equipment ✅ 2025-06-11
- [-] Sub-woofers ❌ 2025-06-27
- [-] Sub-woofer amplifier ❌ 2025-06-27
- [x] 4x Speakers ✅ 2025-06-11
- [x] 4 channel amplifier ✅ 2025-06-11
- [-] Capacitor ❌ 2025-06-11
- [-] Power block ❌ 2025-06-11
- [x] Fuse ✅ 2025-06-11
- [x] Power wire ✅ 2025-06-11
- [x] Speaker wire ✅ 2025-06-11
- [x] Speaker connectors (for speaker boxes) ✅ 2025-06-11
- [x] Make speaker cabinets 2025-06-23 ✅ 2025-06-23
- [x] Install speaker terminals 2025-06-23 ✅ 2025-06-27
- [x] Install speakers on the walls with mounts 2025-06-23 ✅ 2025-07-21
- [x] Wire up speakers to the control box 2025-06-23 ✅ 2025-07-21
- [x] Install amplifier in control box 2025-06-23 ✅ 2025-07-21
- [x] Instell `odin-av` in the control box 2025-06-23 ✅ 2025-07-21
- [x] Wire up speakers to `odin-av` 2025-06-23 ✅ 2025-07-21
- [x] Wire up microphone to `odin-av` 2025-06-23 ✅ 2025-07-21
- [x] Configure the A/V hat on `odin-av` 2025-07-21 ✅ 2025-08-31
- [x] Check all four speakers are working 2025-11-28 ✅ 2025-11-30
- [x] Test sending to `odin-av1` speakers from Macbook 2025-07-21 ✅ 2025-11-30
- [x] Test sending to `odin-av2` speakers from Macbook 2025-07-21 ✅ 2025-11-30
- [x] Test receiving from `odin-av` microphone from Macbook 2025-07-21 ✅ 2025-11-30
- [x] Install service on `odin-av1` 2025-11-30 ✅ 2025-11-30
- [x] Install service on `odin-av2` 2025-11-30 ✅ 2025-11-30
- [x] Figure out how to play music into the room 2025-11-30 ✅ 2025-11-30
- [x] Test configuring audio to go through a filter for Memir 2025-11-30 ✅ 2025-12-26
- [x] Check if the room microphone is configured properly 2025-11-30 ✅ 2026-01-22
- [x] Make room microphone louder 2025-11-30 ✅ 2026-01-22
- [x] Set room speaker levels 2025-12-26 ✅ 2026-01-22
## References
- [Using USB Microphones](https://www.tecnohub.org/2021/05/make-usb-microphone-using-raspberry-pi.html)
- [How to configure a InnoMaker RPi HiFi DAC Hat](https://howtohifi.com/how-to-innomaker-rpi-hifi-dac-hat-headless-raspberry-pi).
- [PlexAmp](https://www.plex.tv/plexamp)
- [RPi Audio Streaming](https://github.com/fkoester/raspberrypi-audio-streaming)
- [`mpg123`](https://www.mpg123.de/)
- [How to play MP3 on RPi](https://raspberrypi.stackexchange.com/questions/106734/how-do-you-open-a-mp3-file-from-the-raspberry-pi-terminal)
- [Sound configuration on Raspberry Pi with ALSA](https://blog.scphillips.com/posts/2013/01/sound-configuration-on-raspberry-pi-with-alsa)
- [Amazon.com: InnoMaker HiFi DAC HAT for Raspberry Pi 5/4/3B+/Zero | PCM5122 384kHz/32bit DAC Audio Card Expansion Board](https://www.amazon.com/Inno-Maker-Raspberry-PCM5122-Audio-Expansion/dp/B07D13QWV9)
- [Amazon.com: BOSS Audio Systems R1100M Monoblock Car Amplifier - 1100 High Output, 2-8 Ohm Stable, Low/High Level Inputs](https://www.amazon.com/Watts-Mosfet-Monoblock-Amplifier-R1100M/dp/B004S4XNEO)
- [How to set up InnoMaker RPI HIFI DAC hat for your Headless Raspberry Pi | How To Hi-Fi](https://howtohifi.com/how-to-innomaker-rpi-hifi-dac-hat-headless-raspberry-pi)
- [Amazon.com: MTX TNP212D2 1200W Dual Loaded Car Subwoofer Audio w/ Sub Box and Amplifier : Electronics](https://www.amazon.com/MTX-Terminator-TNE212D-200-Watt-Enclosure/dp/B003E35XGQ)
- [cpal - Rust](https://docs.rs/cpal/0.16.0/cpal/index.html)

View File

@@ -0,0 +1,17 @@
---
active: false
tags: project
created: 2026-05-28 13:06
---
## Goal
Create a better puzzle with the knocker
## Tasks
- [ ] Build knocker puzzle on the simulator 2026-05-28
## References
- [YouTube - Using machine learning for Morse code recognition](https://www.youtube.com/watch?v=B6wWs8IRY0E&t=15s)
- [Morse Code](https://www.bbc.co.uk/bitesize/articles/z4bm9ty#z9gxkhv)
-

View File

@@ -0,0 +1,35 @@
---
active: false
tags:
- project
- eg
created: 2025-07-21 14:08
completed: 2025-08-30
---
## Goal
Build a human chain puzzle between the Berserker heads.
## Tasks
- [x] Test Berserker helmet resistance 2025-07-21 ✅ 2025-08-02
- [x] Create a case for the ADC board 2025-07-21 ✅ 2025-08-02
- [x] Design the resistor ladder circuit 2025-07-21 ✅ 2025-08-02
- [x] Attach wires to the underside of the Berserker helmets 2025-07-21 ✅ 2025-08-02
- [x] Install heads with plugs onto shelves 2025-07-21 ✅ 2025-08-02
- [x] Create the resistor ladder circuit 2025-08-02 ✅ 2025-08-04
- [x] Wire up an ADC board with Dupont pins 2025-07-21 ✅ 2025-08-30
- [x] Test out the ADC/resistor circuit with the heads 2025-07-21 ✅ 2025-08-30
- [x] Test that we can use the ADC board with the PWM board 2025-07-21 ✅ 2025-08-30
- [x] Calibrate the resistance and the ADC 2025-07-21 ✅ 2025-08-30
- [x] Install ADC board onto Tree of Life control board 2025-07-21 ✅ 2025-08-30
## References
- [[ADS1115 ADC Module]]
- https://www.instructables.com/How-to-Use-ADS1115-With-the-Raspberry-Pi-Part-1
- https://forum.arduino.cc/t/human-chain-body-conductivity/634793/5
- https://www.youtube.com/watch?v=m5PfKb8p1YI&t=667s
- https://www.patreon.com/c/playfultech/posts
![[Pasted image 20250721140847.png]]
![[Pasted image 20250721145033.png]]

View File

@@ -0,0 +1,184 @@
---
active: false
tags:
- project
created: 2025-02-16 14:51
---
## Goal
Finish the Odin's Dilemma Room.
- Design an axe puzzle
- Design compass puzzle
## Tasks
### Control Box
- [x] Put a 24V power supply on a board with cable 2025-04-30 ✅ 2025-05-14
- [x] Install a 24V distribution block 2025-05-13 ✅ 2025-05-15
- [x] Install second rack 2025-05-13 ✅ 2025-05-15
- [x] Install the TPLink switch and remove the Ubiquiti one 2025-05-19 ✅ 2025-05-30
- [x] Install RPi in the server rack and connect to switch 2025-05-19 ✅ 2025-05-30
- [x] Drill extra holes in rack mounting plate 2025-05-30 ✅ 2025-05-31
- [x] Mount the RPi 4 onto the mounting plate with zip ties 2025-05-30 ✅ 2025-05-31
- [x] Flash controller RPi SD card 2025-05-13 ✅ 2025-05-31
- [x] Install 5V power for R1 RPi 2025-05-13 ✅ 2025-05-31
- [x] Install RPi 4 in rack 2025-05-14 ✅ 2025-05-31
- [-] Make map of the room and figure out how many RPi's, GPIO, buck boards, etc. and create a spreadsheet 2025-04-30 ❌ 2025-06-23
- [x] Design a rack panel for 5 RPi 4s to mount onto 2025-05-30 ✅ 2026-02-04
- [x] Send rack panel design to [SentCutSend](https://sendcutsend.com/) 2025-05-29 ✅ 2026-02-04
- [x] Install `nftables` and configure 2025-05-30 ✅ 2026-02-04
- [x] Install `dnsmasq` and configure 2025-05-30 ✅ 2026-02-04
- [x] Create setup script 2025-05-30 ✅ 2026-02-04
- [x] Install NATS and configure 2025-05-15 ✅ 2026-02-04
### Timers
- [x] Install RPi Zero for the ship control LED's 2025-06-02 ✅ 2026-02-04
- [x] Add resistor to LED legs 2025-06-02 ✅ 2026-02-04
- [x] Wire up LED's to the GPIO board 2025-06-02 ✅ 2026-02-04
- [x] Make 5V torches from the flicker lights 2025-05-15 ✅ 2026-02-04
- [x] Install torches around the room 2025-05-15 ✅ 2026-02-04
- [x] Wire up and install torch controller 2025-05-15 ✅ 2026-02-04
### Viking Ship Puzzle
- [x] Solder GPIO breakout board 2025-04-25 ✅ 2025-05-19
- [x] Wire up 5V power 2025-04-21 ✅ 2025-05-19
- [x] Flash SD card for `odin-ship` 2025-05-19 ✅ 2025-05-19
- [x] Create repo for `odin-ship` 2025-05-19 ✅ 2025-05-31
- [x] Test that GPIO board pins are reading correctly 2025-05-19 ✅ 2025-05-31
- [x] Wire up the magnetic switches to the GPIO board 2025-05-19 ✅ 2025-05-31
- [x] Solder board for the 12V solenoid and LED power 2025-05-19 ✅ 2025-05-31
- [x] Install MOSFET for the 12V power to solenoid 2025-05-19 ✅ 2025-05-31
- [x] Install MOSFET for the 12V power to LED's 2025-05-19 ✅ 2025-05-31
- [x] Connect power plug for solenoid and LED's ✅ 2025-05-31
- [x] Configure DHCP and DNS & disable WiFi 2025-05-19 ✅ 2026-02-04
- [x] Write control service for `odin-ship` 2025-05-19 ✅ 2026-02-04
- [x] Remove and install latches in the hidden cupboards and test manual opening 2025-04-21 ✅ 2026-02-04
### Axe Puzzle
- [x] Configure network to use DHCP and DNS and disable WiFi 2025-06-23 ✅ 2026-02-04
- [x] Code service for the axe puzzle connected to NATS server 2025-04-29 ✅ 2026-02-04
- [x] Power up puzzle and test on the wall 2025-05-13 ✅ 2025-05-15
- [x] Solder GPIO breakout board 2025-03-06 ✅ 2025-05-02
- [x] Install LED's 2024-06-01 ✅ 2025-05-02
- [x] Install power and switches 2025-04-25 ✅ 2025-05-02
- [x] Install metal plate 2025-04-25 ✅ 2025-05-02
### Horse Puzzle
- [x] Screw carvings to piece of live edge 2025-05-13 ✅ 2026-02-04
- [x] Attach to the wall with screws 2025-05-13 ✅ 2025-06-23
- [x] Hide screws 2025-05-13 ✅ 2025-06-23
### Bird Puzzle
- [x] Screw carvings to piece of live edge 2025-05-13 ✅ 2026-02-04
- [x] Attach to the wall with screws 2025-05-13 ✅ 2026-02-04
- [x] Hide screws 2025-05-13 ✅ 2026-02-04
### Bear Puzzle
- [x] Screw carvings to piece of live edge 2025-05-13 ✅ 2026-02-04
- [x] Attach to the wall with screws 2025-05-13 ✅ 2026-02-04
- [x] Hide screws 2025-05-13 ✅ 2026-02-04
### Fish Puzzle
- [x] Screw to piece of live edge 2025-05-13 ✅ 2026-02-04
- [x] Attach to the wall with screws 2025-05-13 ✅ 2026-02-04
- [x] Hide screws 2025-05-13 ✅ 2026-02-04
### Throne Room Puzzle
- [x] Install chain in wolf head shield 2025-04-21 ✅ 2025-05-13
- [x] Install wolf head 2025-04-22 ✅ 2025-05-13
- [x] Cut out eyes 2025-05-13 ✅ 2026-02-04
- [x] Make molds for eyes 2025-05-13 ✅ 2026-02-04
- [x] Put elastic in the chain to help it open more softly 2025-05-15 ✅ 2026-02-04
- [x] Make epoxy eyes with LED's in 2025-05-13 ✅ 2026-02-04
- [x] Install latch to make door open 2025-05-15 ✅ 2026-02-04
- [x] Wire up LED's and latch 2025-05-13 ✅ 2026-02-04
### Shields Decoration
- [x] Create wedges to angle the shields 2025-05-15 ✅ 2026-02-04
- [x] Use existing center screw slots to attach shield to wedge and beam 2025-05-15 ✅ 2026-02-04
### Table Puzzle
- [x] Attach to sub-floor with screws 2025-05-15 ✅ 2026-02-04
### Oar Barrel
- [x] Attach to sub-floor with screws 2025-05-15 ✅ 2026-02-04
### Chests
- [x] Attach to sub-floor with screws 2025-05-15 ✅ 2026-02-04
### Game Barrel
- [x] Attach to sub-floor with screws 2025-05-15 ✅ 2026-02-04
### Maze Bucket
- [x] Attach to sub-floor with screws 2025-05-15 ✅ 2026-02-04
### Horn Barrel
- [x] Attach to sub-floor with screws 2025-05-15 ✅ 2026-02-04
### Antlers
- [x] Pre-mount skulls on a piece of live edge 2025-05-15 ✅ 2025-05-15
- [x] Attach live edge to the wall 2025-05-15 ✅ 2025-05-15
### Chandelier
- [x] Hang from the ceiling on cross brace 2025-05-15 ✅ 2026-02-04
- [x] Install wire for knife reward 2025-05-15 ✅ 2026-02-04
- [x] Install latch for knife reward 2025-05-15 ✅ 2026-02-04
### Nets and Ropes
- [x] Screw anchor points to wall and attach 2025-05-15 ✅ 2026-02-04
- [x] Hide screws 2025-05-15 ✅ 2026-02-04
### Mímir Clue System
- [x] Mount on rope 2025-05-19 ✅ 2026-02-04
- [x] Hang from a hook on the wall 2025-05-19 ✅ 2026-02-04
- [x] Run wires through rope 2025-05-19 ✅ 2026-02-04
- [x] Light up eye with multi-color LED 2025-05-19 ✅ 2026-02-04
- [x] Install speaker in head 2025-05-19 ✅ 2026-02-04
### Dragon Heads
- [x] Install green LED's in eyes in dragon heads 2024-06-01 ✅ 2025-10-25
- [x] Bolt to the head to the beam, or the wall above it 2025-05-15 ✅ 2026-02-04
- [x] Install RFID readers with resin in dragons heads 2024-06-01 ✅ 2025-10-25
- [x] Install latch on spear cabinet 2025-05-15 ✅ 2026-02-04
- [x] Make the spear cabinet 2025-04-06 ✅ 2025-04-12
- [x] Install spear cabinet with latch and wire 2025-04-12 ✅ 2025-04-25
### Helm Puzzle
- [x] Create shelves for Berserker heads 2025-05-19 ✅ 2026-02-04
- [x] Install electronics and controller for the heads 2025-05-15 ✅ 2026-02-04
- [x] Screw the heads from the underside to the pedestal 2025-05-15 ✅ 2026-02-04
- [x] Create control software 2025-05-19 ✅ 2026-02-04
### Hammer Puzzle
- [x] 3D print a larger hand 2025-05-15 ✅ 2026-02-04
- [x] Screw to live edge board and mount 2025-05-15 ✅ 2026-02-04
- [x] Install electronics for the hand 2025-05-15 ✅ 2026-02-04
### Drum Puzzle
- [x] Make a frame around the drums 2025-05-19 ✅ 2026-02-04
- [x] Drill holes for foliage 2025-05-19 ✅ 2026-02-04
- [x] Screw drums to the floor 2025-05-15\ ✅ 2026-02-04
- [x] Wire the tree of life with LED's 2025-05-19 ✅ 2026-02-04
- [x] Wire up and install drum controller 2025-05-15 ✅ 2026-02-04
- [x] Run wires to the tree to power LED's 2025-05-19 ✅ 2026-02-04
- [x] Make LED's in tree flash in pattern 2025-05-19 ✅ 2026-02-04
- [x] Screw solid frame of the picture to the wall 2025-05-15 ✅ 2026-02-04
- [x] Install LED's in the back of the tree 2025-05-15 ✅ 2026-02-04
- [x] Put a blue sky image on the back of the tree 2025-05-15 ✅ 2026-02-04
### Knocker Puzzle
- [x] Make false wall with a panel in it 2025-05-15 ✅ 2025-05-15
- [x] Install latch in the door 2025-05-15 ✅ 2026-02-04
- [x] Install spring mechanism to open the door 2025-05-19 ✅ 2026-02-04
- [x] Install in the wall 2025-05-19 ✅ 2026-02-04
- [x] Run wires to the puzzle controller 2025-05-19 ✅ 2026-02-04
## References
- Axe paint is Krylon Fusion All-in-One - Hammered Dark Bronze.
- [Homemade fake camp fire stage prop - Nicky kaboom - YouTube](https://www.youtube.com/watch?v=yeBWB6u29MU)
- [Incredible Fake Fire Prop DIY for Halloween](https://www.youtube.com/watch?v=hawEoJhNd-o)
- [How to build a faux fire - YouTube](https://www.youtube.com/watch?v=UrzWXmegdbY)
- https://www.amazon.com/SKYSEN-Hardware-Material-Combination-Install/dp/B0BCF2W6PQ
- ![[hidden-fireplace-door.jpg]]

View File

@@ -0,0 +1,38 @@
---
active: false
tags:
- project
- eg
created: 2025-05-30
completed: 2025-08-22
---
## Goal
Create a fireplace that cranks open, but has a burning fire that crackles.
## Tasks
- [x] Order parts for the crank and pegboard cogs 2025-05-30 ✅ 2025-05-30
- [x] Purchase or find the 12V lighter connectors 2025-05-30 ✅ 2025-06-23
- [x] Design the 12V lighter holder for the female side 2025-07-22 ✅ 2025-08-23
- [x] Design the 12V lighter holder for the male side 2025-07-22 ✅ 2025-08-23
- [x] Design the two cogs 2025-05-30 ✅ 2025-08-23
- [x] Order metal for the shafts 2025-05-30 ✅ 2025-08-23
- [x] Pick-up metal for the shafts 2025-05-30 ✅ 2025-08-23
- [x] Weld and shape the end of the crank shaft for the handle 2025-05-30 ✅ 2025-08-23
- [x] Print the cogs on the 3D printer 2025-05-30 ✅ 2025-08-23
- [x] Install cogs on the shafts 2025-05-30 ✅ 2025-08-23
- [x] Create the crank shaft and wall brackets 2025-05-30 ✅ 2025-08-23
- [x] Drill a straight through hole in the wall 2025-05-30 ✅ 2025-08-23
- [x] Install crank shaft in wall 2025-05-30 ✅ 2025-08-23
- [x] Install ratchet 2025-05-30 ✅ 2025-08-23
- [x] Install a powered lock on the fireplace to prevent it being opened too soon 2025-05-30 ✅ 2025-08-23
- [x] Design a mounting bracket for the 12V connectors 2025-05-30 ✅ 2025-08-23
- [x] Wire up the fire from the 12V connectors 2025-05-30 ✅ 2025-08-23
- [x] Find crackling fireplace audio loop 2025-05-30 ✅ 2025-08-23
## References
- [Skill Set: How To Make Pinwheel Gear Patterns - Make:](https://makezine.com/article/workshop/skill-set-how-to-make-pinwheel-gear-patterns)
- [Two Methods for Making Pinwheels Patterns - Dug's Tips 3 - Cabaret Mechanical Theatre](https://cabaret.co.uk/two-methods-for-making-pinwheels-patterns-dugs-tips-3)
- [Wooden Circles for Your Automata Projects - Dug's Tips 2 - Cabaret Mechanical Theatre](https://cabaret.co.uk/wooden-circles-for-your-automata-projects-dugs-tips-2)
- https://www.onlinemetals.com/en/seattle
- [Making wooden gears out of plywood](https://woodgears.ca/gear_cutting/template.html)

35
Projects/Servo Latches.md Normal file
View File

@@ -0,0 +1,35 @@
---
active: false
tags:
- project
created: 2025-05-30
completed: 2025-06-21
---
## Goal
Create door latches that use servos with more torque so that the latch will open under side pressure.
- Must be able to open with side force of up to 30 Pa (kg/m2)
- Must be able to lock automatically on closing
- Must support access port to unlock manually from outside of otherwise sealed box
- Must only use power when unlocking
- Must be quiet in operation, no more than 20 dB
- Must be not cost more than $25 per lock
- Duty cycle of 20 opens/closes per day
- Must be made from readily available parts (just in time delivery)
- Can be level, edge or PWM triggered with a 5VDC signal
- Power can be supplied separately up to 24VDC
- Must be no more than 100mm x 50mm x 50mm in size
- Latch throw must be at least 10mm
## Tasks
- [x] Order servos 2025-05-30 ✅ 2025-05-30
- [x] Order springs 2025-05-30 ✅ 2025-05-30
- [x] Create a circuit to test the latch using PWM pins on the RPi 2025-05-30 ✅ 2025-06-03
- [x] Test that the servo can open under side pressure 2025-05-30 ✅ 2025-06-03
- [-] Create `SoftPwm` class and use it to drive the servo 2025-06-04 ❌ 2025-06-18
- [-] Design a housing for the latch that the servo can attach too 2025-05-30 ❌ 2025-06-18
## References
- [MG-90S Micro Servo Datasheet](https://www.electronicoscaldas.com/datasheet/MG90S_Tower-Pro.pdf)

View File

@@ -0,0 +1,24 @@
---
active: true
tags: project
created: 2026-03-14 16:35
---
## Goal
Create general purpose camera software. Must be able to:
- Show four cameras at once
- Change the streaming image quality
- Mute and unmute a single camera
- Bring one camera to the foreground
- Work on macOS and iPad
## Tasks
- [x] Fix bug with the audio stopping and not being able to restart 2026-03-14 ✅ 2026-03-23
- [x] Change the code so that we can change the image quality 2026-03-14 ✅ 2026-04-13
- [x] Add versioning to the project 2026-03-14 ✅ 2026-04-13
- [x] Create a `.dmg` 2026-03-14 ✅ 2026-04-13
- [ ] Revert to the other camera streaming library and ensure that it does not crash in release mode 2026-04-13
- [ ] Create a signed and notarized `.pkg` 2026-04-13
## References

View File

@@ -0,0 +1,341 @@
---
active: true
tags:
- project
- eg
---
## Goal
Create escape room control software. Each Raspberry Pi (RPi) controls some number of wired props in the room. The room and props are referred to as the game. The game is made up of a number of game elements which can be puzzles, lights, sound, etc.. Each element can utilize one or more props, wired and/or non-wired.
## System Diagram
![[EG-Controllers.png]]
## Tasks
- [x] Add horse nicker as a sound effect 2026-05-11 ✅ 2026-05-11
- [x] Set horse to only trigger in auto pilot if ship and axe puzzle are solved, otherwise nicker and reset after 10 seconds 2026-05-10 ✅ 2026-05-12
- [x] Set helmets to only trigger in auto pilot if knocker is solved, otherwise grunt and reset after 10 seconds 2026-05-10 ✅ 2026-05-12
- [x] Display the version number in the DMG title (use `version.json5`) 2026-04-21 ✅ 2026-05-14
- [x] Collect and display the prop controller version numbers and display in the user interface 2026-05-11 ✅ 2026-05-14
- [x] Change the drum sequence and the number of lights that illuminate 2026-05-15 ✅ 2026-05-20
- [x] Add the lock combinations to the user interface 2026-04-23 ✅ 2026-05-20
- [x] Put all locks on one tab 2026-05-22 ✅ 2026-05-30
- [ ] Add drum puzzle sequence to the UI 2026-05-22
- [ ] Add axe puzzle order to the UI 2026-05-22
- [ ] Add the table puzzle order to the UI 2026-05-22
- [ ] Move all lock combinations onto one tab 2026-05-21
- [ ] Add Postgres user for the control software 2026-05-22
- [ ] Add tables for the Memir phrases 2026-05-22
- [ ] Collect and display the game controller version number in the user interface 2026-05-14
- [ ] Change the knocker sequence to match the tapping 2026-05-15
## Archived Tasks
- [x] Change each prop controller to send the time to the next ping in seconds along with it's name 2026-04-21 ✅ 2026-05-09
- [x] Ensure prop controllers send a ping when they start 2026-04-22 ✅ 2026-05-09
- [x] Add `.pkg` generation to the `odin_ui/Justfile` with version number in file name 2026-03-20 ✅ 2026-05-09
- [x] Rename `sys_ping_interval_secs` in the server to be `initial_sys_poll_time_secs` 2026-04-21 ✅ 2026-05-09
- [x] Keep track of all next contact Instant 2026-04-21 ✅ 2026-05-10
- [x] Switch iOS build of Odin to Escape Gallery profile 2026-04-16 ✅ 2026-05-10
- [x] Add support for pre-defined messages for Memir in the user interface 2026-03-05 ✅ 2026-05-06
- [x] Create a separate stopwatch task with it's own commands; start, stop, reset 2026-02-06 ✅ 2026-02-11
- [x] Incorporate new stopwatch into auto pilot and UI 2026-02-09 ✅ 2026-03-17
- [x] Fix timer to be visible everywhere 2026-02-07 ✅ 2026-03-17
- [x] Add faster feedback when press speak button 2026-02-07 ✅ 2026-03-17
- [x] Move Memir up in the UI 2026-02-07 ✅ 2026-04-16
- [x] Update the [[Escape Gallery Control Software]] with Geno structures 2026-03-23 ✅ 2026-04-16
- [x] Swap in Geno for all messages and use MessagePack in Dart 2026-03-03 ✅ 2026-04-16
- [x] Test out using MessagePack in Dart with Geno and Rust 2026-03-03 ✅ 2026-04-16
- [x] Add `release` to the `Justfile` to build macOS package and iOS app 2026-04-16 ✅ 2026-04-21
- [x] Fix running the app in release mode on MacOS 2026-03-08 ✅ 2026-04-21
- [x] Create a tool to generate the `update` methods that copy from game command to game state where the name matches 2026-04-22 ✅ 2026-04-23
- [x] Sync up all the game command message field with corresponding state message fields 2026-04-22 ✅ 2026-04-23
- [x] Finish the `odin_game_test` service that just responds to commands by changing state 2026-04-21 ✅ 2026-04-23
- [x] Add a script to start the NATS service and the test game controller 2026-04-23 ✅ 2026-04-23
- [x] Move all `getFullState` calls into the services after connection 2026-04-23 ✅ 2026-04-26
- [x] All UI latch toggles are broken 2026-04-23 ✅ 2026-04-26
- [x] Change UI to toggle buttons to solve/unsolve puzzles 2026-04-23 ✅ 2026-04-26
- [x] Fix the bug with leaving the bellows in the fishes mouth 2026-03-05 ✅ 2026-04-26
- [x] Add the two iOS devices to the provisioning profile for Escape Gallery 2026-04-16 ✅ 2026-04-27
- [x] Create a tool to generate the `update` from prop state to prop state 2026-04-22 ✅ 2026-05-01
- [x] Fix iOS app to reconnect to the NATS service after resume 2026-04-22 ✅ 2026-05-04
- [x] Add `ClueServer` to `odin-ctrl` 2026-02-04 ✅ 2026-02-04
- [x] Move Piper TTS code over to `odin-av2` and cut volume 2026-02-04 ✅ 2026-02-04
- [x] Add Memir text to speech UI 2026-01-16 ✅ 2026-02-04
- [x] Debug Memir end-to-end 2026-02-04 ✅ 2026-02-06
- [x] Ensure time with seconds shows when in finished state 2026-01-28 ✅ 2026-02-06
- [x] Increase power supply timer for `odin-drum` and screw down the lid 2026-01-26 ✅ 2026-02-06
- [x] Remove and drill out the holes for the knocker 2026-02-04 ✅ 2026-02-06
- [x] Ensure `odin-ctrl` restarts always (fix `.conf` file) 2026-01-28 ✅ 2026-02-06
- [x] Write test program for `odin-av2` to test TTS 2026-01-14 ✅ 2026-02-04
- [x] Fix `odin-av2` build problem 2026-01-18 ✅ 2026-01-25
- [x] Design and print caps for the knocker switches 2026-01-18 ✅ 2026-01-25
- [x] Fix the electronics in the horses head 2026-01-11 ✅ 2026-01-25
- [x] Add continuous re-start logic to all servers 2026-01-22 ✅ 2026-01-25
- [x] Fix the knocker detection algorithm 2026-01-14 ✅ 2026-01-26
- [x] Merge new knocker code into `odin-drum` 2026-01-26 ✅ 2026-01-27
- [x] Add the code to gradually turn off the sconces 2026-01-19 ✅ 2026-01-28
- [x] Wolf snarl starts to quickly after last animal head solved 2026-01-19 ✅ 2026-01-19
- [x] End sequence starts to quickly after hammer or dragon is solved 2026-01-19 ✅ 2026-01-19
- [x] Tree of life lights turn off when the helm lights are turned on or off 2026-01-19 ✅ 2026-01-19
- [x] Turn on the other light when going through the fireplace 2026-01-19 ✅ 2026-01-19
- [x] Fireplace latch extra toggles need to be faster 2026-01-19 ✅ 2026-01-19
- [x] Reduce sound effect volume 2026-01-19 ✅ 2026-01-19
- [x] Switch eyes on the berserker heads in the prop controller 2026-01-18 ✅ 2026-01-19
- [x] Change all prop controller `main.rs` and `config_file.rs` to require a config file 2026-01-18 ✅ 2026-01-19
- [x] Reduce number of times required to turn crank and make configurable 2026-01-19 ✅ 2026-01-19
- [x] Put `degrees_to_duty_cycle` in `odin_prop_util` 2026-01-19 ✅ 2026-01-19
- [x] Dragons triggered with only one half of the spear 2026-01-19 ✅ 2026-01-19
- [x] Turn off barrel puzzle after 5 minutes 2026-01-19 ✅ 2026-01-19
- [x] Make Memir's eye pulse when on 2026-01-19 ✅ 2026-01-19
- [x] Make sconces flicker 2025-08-13 ✅ 2026-01-19
- [x] Make chandelier flicker 2025-12-23 ✅ 2026-01-19
- [x] Make fireplace flicker 2025-12-23 ✅ 2026-01-19
- [x] `Off` condition must turn off cupboards lights, dragon eyes, helm eyes, hammer box light 2026-01-19 ✅ 2026-01-19
- [x] Check the `Running` room condition sets all the game states 2026-01-19 ✅ 2026-01-19
- [x] Implement the `Ready` room condition 2026-01-17 ✅ 2026-01-19
- [x] Implement the `Resetting` room condition 2026-01-17 ✅ 2026-01-19
- [x] Implement the `Finished` room condition 2026-01-17 ✅ 2026-01-19
- [x] Turn on warriors eyes when helm puzzle solved 2026-01-19 ✅ 2026-01-19
- [x] Check tree lights turn on when the fireplace opens 2026-01-19 ✅ 2026-01-19
- [x] Add sound effects into the auto-pilot; eagle, horse, bear, fish, hammer, dragons, 2026-01-18 ✅ 2026-01-19
- [x] Grand finale lightning sequence with flashing lights 2026-01-18 ✅ 2026-01-19
- [x] Add a timer to the auto-pilot tab 2026-01-19 ✅ 2026-01-19
- [x] Hook up auto-pilot logic to update the time and sconces based on the time elapsed 2026-01-19 ✅ 2026-01-19
- [x] Have fire place latch cycle 3 times in the prop controller 2026-01-19 ✅ 2026-01-19
- [x] Replace the barrel audio 2026-01-13 ✅ 2026-01-14
- [x] Test out the microphones and make sure we can hear everything 2026-01-13 ✅ 2026-01-14
- [x] Refactor to remove the timer in the controller in prep for moving timing to the auto-pilot 2026-01-14 ✅ 2026-01-14
- [x] Add margin to the LabelIconButtons 2026-01-16 ✅ 2026-01-16
- [x] Make a LabelButton widget with a fix width 2026-01-14 ✅ 2026-01-16
- [x] Switch to using `publish_json` and `publish_rmp` in `odin_ctrl` 2026-01-15 ✅ 2026-01-16
- [x] Get [piper-rs](https://github.com/thewh1teagle/piper-rs) building in container 2026-01-14 ✅ 2026-01-16
- [x] Go through all `cmd_loop`'s and move `Some(cmd) =>` logic inside the `match` 2026-01-04 ✅ 2026-01-16
- [x] Rename dragon to mantle puzzle 2026-01-11 \7 u ✅ 2026-01-16
- [x] Create new helm electronics for testing with simulator 2026-01-10 ✅ 2026-01-17
- [x] Repair electronics for the helms in `odin-tree` 2026-01-11 ✅ 2026-01-17
- [x] Implement end game and room off commands for auto-pilot 2026-01-16 ✅ 2026-01-17
- [x] Remove "Auto Pilot" toggle and add buttons for "Room Ready", "Start Game", "End Game", and "Room Off" 2026-01-14 ✅ 2026-01-17
- [x] Process, add to `assets` and upload all sound effects to `odin-av1` 2026-01-15 ✅ 2026-01-17
- [x] Write test program to set background audio volume 2026-01-15 ✅ 2026-01-18
- [x] Play sound effects and duck background audio 2026-01-11 ✅ 2026-01-18
- [x] Change color of buttons when value like radio button (add a flag to `LabelIconButton`) 2026-01-11 ✅ 2026-01-18
- [x] Hook up Ui for sound effects 2026-01-15 ✅ 2026-01-18
- [x] Implement the `Off` room condition 2026-01-17 ✅ 2026-01-18
- [x] Install new software on iPad 2026-01-18 ✅ 2026-01-19
- [x] Commit all `odin_test` to Gitea 2026-01-11 ✅ 2026-01-11
- [x] Create test program for the drum sequence 2026-01-11 ✅ 2026-01-11
- [x] Finish the coding for the drum sequence 2026-01-04 ✅ 2026-01-11
- [x] Fix sequence and write the tree on/off prop code 2025-12-29 ✅ 2026-01-11
- [x] Install new piezo drum vibration sensors 2025-08-17 ✅ 2026-01-11
- [x] Write code for `odin-drum` to detect drumming pattern 2025-12-23 ✅ 2026-01-11
- [x] Hook up knocker to auto-pilot 2025-12-26 ✅ 2026-01-11
- [x] Hook up drums to auto-pilot 2025-12-26 ✅ 2026-01-11
- [x] Hook up hammer hand to auto-pilot 2026-01-11 ✅ 2026-01-11
- [x] Hook up dragons to auto-pilot 2026-01-11 ✅ 2026-01-11
- [x] Add the timer to the auto-pilot 2025-12-23 ✅ 2026-01-13
- [x] Add UI to start background music 2025-12-23 ✅ 2026-01-11
- [x] Add UI for drums 2025-12-23 ✅ 2026-01-11
- [x] Design the case for the combined power and buck board 2025-12-23 ✅ 2026-01-11
- [x] Print cases and assemble and program the first one taking notes 2025-12-23 ✅ 2026-01-11
- [x] Add code to read the Berserker heads in `odin_tree` 2025-11-06 ✅ 2026-01-11
- [x] Add UI for Berserker heads 2025-11-12 ✅ 2026-01-11
- [x] Make the barrel puzzle audio play forever 2026-01-04 ✅ 2026-01-10
- [x] Add a switch in UI to turn on tree lights 2025-11-12 ✅ 2026-01-10
- [x] Write the helms prop code 2025-12-29 ✅ 2026-01-10
- [x] Finish the dragon prop code (reset is not working) 2026-01-03 ✅ 2026-01-10
- [x] Finish the coding for the detection of the knocker sequence 2026-01-04 ✅ 2026-01-10
- [x] Add `av1` and `av2` into System tab 2025-12-13 ✅ 2025-12-13
- [x] Create prop control software for `odin-av1` 2025-12-13 ✅ 2025-12-13
- [x] Create prop control software for `odin-av2` 2025-12-13 ✅ 2025-12-13
- [x] RFID reader for spear do not register RFID tag reliably. Wall is likely too thick, there are metal nails or screws in the wood, RFID tags buried too deep 2025-11-08 ✅ 2025-11-13
- [x] Dagger no longer registers reliably. RFID in wrong position or too deep. Also, knife can be reversed so not sure which side RFID tag is on 2025-11-08 ✅ 2025-11-13
- [x] Horses right eye no longer registers light/dark - need to dismantle and debug 2025-11-08 ✅ 2025-11-13
- [x] Divide up the controllers equally between the power supplies and see if that fixes the power on problem 2025-11-08 ✅ 2025-11-13
- [x] Add horse head eye sensor code code in `odin_middle` 2025-11-04 ✅ 2025-11-06
- [x] Add short door latch opener code to `odin_left` 2025-11-05 ✅ 2025-11-06
- [x] Add long door latch opener code to `odin_left` 2025-11-05 ✅ 2025-11-06
- [x] Create `deploy-all` script 2025-11-05 ✅ 2025-11-06
- [x] Add reset UI 2025-11-08 ✅ 2025-11-08
- [x] Get fish RFID reader working with reset on `odin_left` 2025-11-04 ✅ 2025-11-08
- [x] Get bear RFID reader working with reset `odin_left` 2025-11-04 ✅ 2025-11-08
- [x] Get bird RFID reader working `odin_middle` 2025-11-04 ✅ 2025-11-08
- [x] Get horse eye light sensors working `odin_middle` 2025-11-04 ✅ 2025-11-08
- [x] Change `PROP_SYSTEM_STATE_SUBJECT` to `prop.system.state` and re-deploy all prop controllers 2025-11-04 ✅ 2025-11-08
- [x] Fix the broken sensors on the barrel puzzle 2025-11-04 ✅ 2025-11-08
- [x] Add UI for the knocker puzzle; knocker, long door 2025-11-08 ✅ 2025-11-08
- [x] Get knocker door opener working 2025-11-08 ✅ 2025-11-08
- [x] Add UI for drum puzzle; tree, sensors, short door 2025-11-08 ✅ 2025-11-08
- [x] Get the drum door opener working 2025-11-08 ✅ 2025-11-08
- [x] Add UI for the helm puzzle; helmets, hammer chest 2025-11-08 ✅ 2025-11-08
- [x] Get helm puzzle chest opening 2025-11-08 ✅ 2025-11-08
- [x] Add UI for `berserker_puzzle.` 2025-11-06 ✅ 2025-11-09
- [x] Rename `odin_prop` to `odin_prop_msg` 2025-11-08 ✅ 2025-11-09
- [x] Create a new `odin_prop_util` for `helpers.rs` contents and remove all helpers.rs files 2025-11-08 ✅ 2025-11-09
- [x] Tidy up dragon puzzle UI 2025-11-11 ✅ 2025-11-11
- [x] Get spear hooked up to UI 2025-11-11 ✅ 2025-11-11
- [x] Create a generic to `fn` for receiving `Cmd` messages and do a `debug!` in prop controllers like in `odin_ctrl` 2025-11-08 ✅ 2025-11-12
- [x] Generate a Dart file for `SvgPicture` in a service and register 2025-11-05 ✅ 2025-11-12
- [x] Get hammer UI working; hand 2025-11-08 ✅ 2025-11-12
- [x] Get table puzzle UI coded 2025-10-18 ✅ 2025-10-31
- [x] Get ship puzzle UI coded 2025-10-26 ✅ 2025-10-31
- [x] Change timer UI to be a slider 2025-10-25 ✅ 2025-10-31
- [x] Add a [Slider](https://api.flutter.dev/flutter/material/Slider-class.html) with discrete values and allow setting 2025-10-26 ✅ 2025-10-31
- [x] Get fireplace puzzle UI coded 2025-10-26 ✅ 2025-10-31
- [x] Get barrel puzzle UI coded 2025-10-31 ✅ 2025-10-31
- [x] Configure laptop so I can build and install control software on iPad 2025-10-31 ✅ 2025-11-01
- [x] Figure out how to set macOS menu and window to **Odin** 2025-10-31 ✅ 2025-11-01
- [x] Hook lighting up end-to-end 2025-10-31 ✅ 2025-11-01
- [x] Create a `label_switch` widget with a ✅ 2025-11-01
- [x] Use `label_switch` everywhere for consistent sizing of label plus switch 2025-11-01 ✅ 2025-11-01
- [x] Debug the axe puzzle 2025-11-01 ✅ 2025-11-01
- [x] Create a `PositionedAxe` widget with a `bool?` for the state 2025-11-01 ✅ 2025-11-01
- [x] Refactor `odin-ctrl` to pass discrete `bool?` back to UI for axes from controller 2025-11-01 ✅ 2025-11-02
- [x] Split lighting into throne and feast rooms 2025-10-31 ✅ 2025-11-02
- [x] Refactor controller to use `include!` to avoid extra module 2025-11-02 ✅ 2025-11-02
- [x] Hook table puzzle up end-to-end 2025-11-01 ✅ 2025-11-02
- [x] Hook ship puzzle up end-to-end 2025-10-31 ✅ 2025-11-02
- [x] Make `NavigationRail` scrollable 2025-11-04 ✅ 2025-11-04
- [x] Hook up the barrel puzzle end-to-end 2025-11-02 ✅ 2025-11-04
- [x] Put the `Stack` elements in a container that is sized from the biggest SVG 2025-11-04 ✅ 2025-11-04
- [x] Remove the numbers from the `axeFrame` 2025-11-04 ✅ 2025-11-04
- [x] Fix the system status code in the controller. 2025-11-04 ✅ 2025-11-04
- [x] Add fireplace latch pin code 2025-11-04 ✅ 2025-11-04
- [x] Get bird RFID reader working 2025-11-04 ✅ 2025-11-05
- [x] Add chest latch opener code 2025-11-05 ✅ 2025-11-05
- [x] Break the messages to/from the prop controllers into a separate library 2025-09-28 ✅ 2025-09-28
- [x] Switch to using `MessagePacker` cr for message transmission 2025-09-28 ✅ 2025-09-28
- [x] Just add the message format header 2025-09-28 ✅ 2025-09-28
- [x] Test the new `odin_axe` code 2025-09-28 ✅ 2025-09-28
- [x] Merge changes back into `rust_prop_quickstart` 2025-09-28 ✅ 2025-09-28
- [x] Add `odin_prop` to `odin_ctrl` 2025-09-28 ✅ 2025-10-03
- [x] Create `AxePuzzle` object and hold onto the handle in the `Server` object 2025-09-28 ✅ 2025-10-03
- [x] Create a new new Flutter app for control 2025-04-21 ✅ 2025-10-03
- [x] Add `dummy` state into `odin_prop` to support `rust_prop_quickstart` 2025-09-28 ✅ 2025-10-03
- [x] Add command to force full state to be sent to controller 2025-10-03 ✅ 2025-10-03
- [x] Send full state command when controller starts 2025-10-03 ✅ 2025-10-03
- [x] Request full state when the UI starts up or when the puzzle button is clicked on left 2025-10-03 ✅ 2025-10-04
- [x] Whiteboard the control software design 2024-11-26 ✅ 2025-04-25
- [x] Finish Sketch from a plan view of the room 2025-02-16 ✅ 2025-08-13
- [x] Configure static IP for `eg-1` on `rm-1.escapegallery.net` ✅ 2025-09-08
- [x] Configure DHCP & DNS via `dnsmasq` on `eg-1` 2025-08-06 ✅ 2025-09-08
- [x] Configure wired connection for `odin-axe` 2025-08-13 ✅ 2025-09-08
- [x] Configure `/etc/hosts` on `eg-1` to add `eg-1.rm-1.escapegallery.net` 2025-09-08 ✅ 2025-09-09
- [x] Ensure that we can `ssh` over the `10.10.0.0/24` network 2025-09-08 ✅ 2025-09-09
- [x] Configure `nftables` for the `rm-1` network to NAT packets 2025-09-08 ✅ 2025-09-09
- [x] Temporarily take down `odin-axe` WiFi and check that updates work 2025-09-09 ✅ 2025-09-09
- [x] Set timeouts for DHCP on `odin-axe` and reboot 2025-09-09 ✅ 2025-09-09
- [x] Disable the WiFi permanently on RPi for `odin-axe` and test reboot 2025-09-08 ✅ 2025-09-09
- [x] Add `env_logger` to `odin_axe` and remove existing logger 2025-09-11 ✅ 2025-09-11
- [x] Add a command line to indicated the name of the NATS server 2025-09-11 ✅ 2025-09-11
- [x] Add Ctrl+C handling 2025-09-11 ✅ 2025-09-12
- [x] Add a `select` loop that listens on a `flume` channel for messages from the monitor thread 2025-09-11 ✅ 2025-09-12
- [x] Add the thread to monitor the state of the readers 2025-09-11 ✅ 2025-09-12
- [x] Add `flume` and send a message when axe state changes to main loop 2025-09-11 ✅ 2025-09-12
- [x] Remove the checks for correctness just record the UID from the RFID chips 2025-09-11 ✅ 2025-09-12
- [x] Add `serde` and `serde_json` to the project 2025-09-11 ✅ 2025-09-12
- [x] Kill the GPIO thread when Ctrl+C is hit 2025-09-12 ✅ 2025-09-12
- [x] Add a `HashMap<String, Value>` to track prop state 2025-09-11 ✅ 2025-09-12
- [x] If the value has change, update the `HashMap` 2025-09-12 ✅ 2025-09-12
- [x] Publish nats message when state changes 2025-09-12 ✅ 2025-09-12
- [x] Run setup scripts on `odin-throne` and `odin-feast` 2025-09-13 ✅ 2025-09-13
- [x] Reverse `odin-throne` and `odin-feast` host names 2025-09-13 ✅ 2025-09-13
- [x] Add `odin` account to `/etc/nats-server.conf` on `eg-1` 2025-09-13 ✅ 2025-09-13
- [x] Install and configure [`lld` linker and test](https://users.rust-lang.org/t/linking-taking-an-inordinately-long-time/39253/4) 2025-09-13 ✅ 2025-09-14
- [x] Fix `odin-drum` ethernet connection 2025-09-15 ✅ 2025-09-19
- [x] Set up quick-start to cross compile on mac and then copy to specific machine using `Justfile` 2025-09-13 ✅ 2025-09-19
- [x] Put new SD card in `odin-ship` 2025-09-15 ✅ 2025-09-25
- [x] Configure SD card in `odin-ship` 2025-09-25 ✅ 2025-09-25
- [x] Take `odin-ship` off of WiFi 2025-09-25 ✅ 2025-09-26
- [x] Create a service file template for prop controllers 2025-09-13 ✅ 2025-09-26
- [x] Make `cmd` messages set the `prop` state and publish 2025-09-13 ✅ 2025-09-26
- [x] Update the `HashMap` when the state of the axes changes 2025-09-11 ✅ 2025-09-26
- [x] Create script to turrn off WiFi for a prop controller 2025-09-08 ✅ 2025-09-26
- [x] Refactor code to put stuff into `self` methods 2025-09-26 ✅ 2025-09-26
- [x] Ensure prop servers output version number when starting 2025-09-25 ✅ 2025-09-26
- [x] Increment patch number when doing deployments 2025-09-25 ✅ 2025-09-26
- [x] Write out name of controller from the `clap` information as first log message 2025-09-13 ✅ 2025-09-26
- [x] Add code to reset the latch after configurable amount of time (1 sec default) 2025-09-26 ✅ 2025-09-26
- [x] Debug why the `single_instance` code is not working! 2025-09-25 ✅ 2025-09-26
- [x] Merge common changes into `rust_prop_quickstart` 2025-09-26 ✅ 2025-09-26
- [x] Create the `odin-ctrl` project 2025-09-14 ✅ 2025-09-27
- [x] Install `odin-ctrl` on `eg-1` and setup to build it there 2025-09-14 ✅ 2025-09-27
- [x] `odin-axe` ✅ 2025-10-05
- [x] Fix `dnsmasq` issue on `eg-1` 2025-10-05 ✅ 2025-10-05
- [x] Install [Caddy]() on `eg-1` 2025-10-05 ✅ 2025-10-05
- [x] Create feast room lighting page 2025-10-05 ✅ 2025-10-23
- [x] Take `odin-av` off of WiFi 2025-09-15 ✅ 2025-10-23
- [x] Test that `rust-analyzer` in VS Code works with just the `settings.json` value set 2025-10-23 ✅ 2025-10-23
- [x] Remove all `config.toml` files 2025-10-23 ✅ 2025-10-23
- [x] Set `RUSTFLAGS` environment variable for builds in the Justfile and test 2025-10-23 ✅ 2025-10-23
- [x] Fix prop control install scripts 2025-10-23 ✅ 2025-10-23
- [x] Move `odin-ctrl` install and deploy scripts to `Justfile` 2025-10-23 ✅ 2025-10-23
- [x] Ensure all prop controllers send actual state after initialization 2025-10-19 ✅ 2025-10-23
- [x] Add icons for macOS and web 2025-10-19 ✅ 2025-10-24
- [x] Make sure each dashboard tab requests state when it loads 2025-10-23 ✅ 2025-10-24
- [x] Get `odin-axe` controller ping working end-to-end 2025-10-18 ✅ 2025-10-25
- [x] Send the system state on a timer from `odin-ctrl` instead of as it comes in 2025-10-25 ✅ 2025-10-25
- [x] Make prop controller status update time a config setting 2025-10-25 ✅ 2025-10-25
- [x] Add prop controller status for all other prop controllers 2025-10-24 ✅ 2025-10-26
- [x] Ensure `odin-ctrl` requests full state from all prop controllers 3 seconds after it starts 2025-10-18 ✅ 2025-10-26
- [x] Label the unused switch that now lights the table 2025-10-26 ✅ 2025-10-26
- [x] Put a `GridView` in the lighting tab 2025-10-26 ✅ 2025-10-29
- [x] Remove the arrays from the Lighting controller messages and use named fields 2025-10-29 ✅ 2025-10-30
- [x] Remove the chandelier solenoid out of the lighting tab 2025-10-20 ✅ 2025-10-30
- [x] Add unique nav bar icons for all the puzzles 2025-11-02 ✅ 2025-11-13
- [x] Create `AsyncAwaiter` widget centered [`flutter_spinkit`](https://pub.dev/packages/flutter_spinkit) spinner and message 2025-10-30 ✅ 2025-11-13
- [x] Position the drums 2025-11-13 ✅ 2025-11-13
- [x] Add code to drive tree lights in `odin_tree` 2025-11-06 ✅ 2025-11-13
- [x] Move code into the `odin_prop_util` from `odin_prop_msg` 2025-12-09 ✅ 2025-12-09
- [x] Fix the `Justfile` to label builds correctly 2025-12-09 ✅ 2025-12-09
- [x] Configure scripting on `odin-ctrl` 2025-12-09 ✅ 2025-12-09
- [x] Add code to receive commands from script and forward 2025-12-09 ✅ 2025-12-13
- [x] Update prop and game controllers 2025-12-13 ✅ 2025-12-13
- [x] Copy auto pilot code over from the simulator 2025-12-14 ✅ 2025-12-23
- [x] Get auto pilot UI in the app 2025-12-13 ✅ 2025-12-23
- [x] Get auto pilot triggering the axe puzzle 2025-12-14 ✅ 2025-12-23
- [x] Get auto pilot triggering the table puzzle 2025-12-14 ✅ 2025-12-23
- [x] Get auto pilot triggering the ship puzzle 2025-12-14 ✅ 2025-12-23
- [x] Get auto pilot triggering the bird puzzle 2025-12-14 ✅ 2025-12-23
- [x] Get auto pilot triggering the horse puzzle 2025-12-14 ✅ 2025-12-23
- [x] Get auto pilot triggering the bear puzzle 2025-12-14 ✅ 2025-12-23
- [x] Get auto pilot triggering the fish puzzle 2025-12-14 ✅ 2025-12-23
- [x] Get auto pilot triggering the fireplace 2025-12-14 ✅ 2025-12-23
- [x] Test EG room cameras 2025-07-06 ✅ 2025-12-23
- [x] Test EG speakers with `audio-forwarder` 2025-09-15 ✅ 2025-12-23
- [x] Test Memir speakers with `audio-forwarder` 2025-10-23 ✅ 2025-12-23
- [x] Test EG microphone with `audio-forwarder` 2025-09-15 ✅ 2025-12-23
- [x] Get crank count code working on `odin_right` 2025-11-05 ✅ 2025-12-23
- [x] Add the crank count to the fireplace UI 2025-10-31 ✅ 2025-12-23
- [x] Add `room_on` state to the `game.controller.state` message and set when all prop controllers are alive 2025-10-20 ✅ 2025-12-23
- [x] Update UI based on `room_on` state 2025-10-20 ✅ 2025-12-23
- [x] Re-install the knocker in the wall 2025-12-26 ✅ 2025-12-26
## Notes
Debug msgpack encoded messages on NATS using:
```sh
nats sub --translate 'mpk --to-json' prop.<prop-host>.state
```
You can also create a debug build of the the prop controller that uses [`to_vec_named`](https://docs.rs/rmp-serde/1.3.0/rmp_serde/encode/fn.to_vec_named.html) to add field names to the structure.
## References
![[odin_left_middle_right.png.jpeg]]
- [NATS](https://github.com/nats-io/nats.ws)
- [[Prop and Game Controller Raspberry Pi Configuration]]
- [Use Rhai for Scripting in Rust](https://crates.io/crates/rhai)
- [`msgpack-cli`](https://crates.io/crates/msgpack-cli)
- [Flutter Drawer](https://docs.flutter.dev/cookbook/design/drawer)
- [flutter_svg](https://pub.dev/packages/flutter_svg)
## System Ping
- The room is expected to be started in the following order - game controller then prop controllers and user interface.
- When a prop controller starts it will connect to the NATS server, and once successful will immediately send a system state message, updating the game controllers alive/dead state for that prop controller.
- The prop controller system state ping interval defaults to 60 seconds.
- The system service on the game controller will send a request for full state to all prop controllers when it starts. This is to handle situations where the room is running and the game controller needs to be restarted.
- The system service keeps a list of the last contact time for each of prop controllers. This time is updated each time a prop controller sends a system state message.
- Every 60 seconds (by default) the system service goes through the contact times and checks to see if the last contact time from any prop controller is greater than twice that, i.e. 120 seconds. If so it marks the prop controller as dead.
- The system server will only send out changes to the alive/dead status of systems if anything changes to avoid unnecessary network traffic.

View File

@@ -0,0 +1,17 @@
---
created: 2024-12-13
tags:
- project
- eg
active: false
---
## Goal
Create a [Nextcloud](https://nextcloud.com/) instance for Escape Gallery
## To Do
- [x] Create and configure a `proxy-2` machine 2024-06-02 ✅ 2026-05-20
- [x] Install [Caddy](https://caddyserver.com/) on `proxy-2` 2024-06-02 ✅ 2026-05-20
- [-] Install [Nextcloud](https://github.com/nextcloud/all-in-one) with Docker 2024-05-20 ❌ 2025-10-25
- [-] Create a real VM machine to run Docker 2024-05-10 ❌ 2025-10-25

View File

@@ -0,0 +1,40 @@
## Goal
Escape buddy is a web site that lets you find “buddies” to do Escape rooms with.
## Notes
- Register as a user
- Cities that you can play in
- Preferred size of group
- Male/female/mixed
- List of Escape Rooms completed
- Implies a list of Escape rooms?
- Escape rooms interested in
- Ratings from other players
- Are these public & hidden?
- Maybe just written feedback?
- Can create an escape team
- Can request to join a team
- Could you vet who joins?
- Team name
- Escape rooms interested in, or specific one?
- Can create an event
- Suggest dates & times for the game
- Sign up for the game
- Split the cost among team members
- Post a review of the escape room
- Post pictures
## Requirements
- Authentication
- Database
- Image/file storage
- Web site
- App
## Examples
[Spark Golf](https://www.spark.golf/)

44
Projects/Time Clock.md Normal file
View File

@@ -0,0 +1,44 @@
---
active: true
tags: project
created: 2026-06-08 19:27
---
## Goal
Build a time clock with:
- Hangs on the wall
- LCD backlit clock
- Fingerprint reader
- Keypad for PIN and UI
- Simple clock-in/clock-out interface
- Way to generate a help request
- System connects to a backend database that stores the timecard data
- PoE for power
- Built in speaker for sound effects
## Tasks
- [x] Order parts 2026-06-08 ✅ 2026-07-11
- [x] Print two halves of the case (rev 1) 2026-07-09 ✅ 2026-07-09
- [x] Adjust case halves 2026-07-09 ✅ 2026-07-09
- [x] Print rev 2 of cases 2026-07-09 ✅ 2026-07-09
- [x] Install inserts into the case halves 2026-07-09 ✅ 2026-07-10
## Notes
The FPM10A (or DY50) is a highly popular optical fingerprint sensor that communicates over a TTL serial interface. It features an internal DSP chip that handles rendering, calculation, and feature-finding, making it exceptionally easy to use with an Arduino for smart locks and access control projects.
### Wiring Connections
The FPM10A usually comes with a 6-pin connector, but you only need to use the 4 pins designated for power and serial communication.
- **Red Wire (VCC)**: Connect to Arduino **5V**
- **Black/Green Wire (GND)**: Connect to Arduino **GND**
- **Green Wire (TXD)**: Connect to Arduino Digital Pin **2**
- **White/Yellow Wire (RXD)**: Connect to Arduino Digital Pin **3**
## References
- [FPM10A Fingerprint Sensor](https://doc.grablo.co/en/docs/user-manuals/i-o-device/as608-fpm10a-fingerprint-sensor/#3.)
- [`rppal uart`](https://docs.rs/rppal/latest/rppal/uart/index.html)
- [`Grow-r502-a_fingerprint_sensor`](https://crates.io/crates/Grow-r502-a_fingerprint_sensor)
- [`bell ding 1.wav`](freesound.org/people/5ro4/sounds/611113/)

View File

@@ -0,0 +1,15 @@
---
active: false
tags: project
created: 2025-05-13 08:56
---
## Goal
Create a walking quest puzzle for Viking Fest 2025
## Tasks
- [ ] Create the Viking Quest puzzle 2025-05-13
- [ ] Test the Viking Quest puzzle with Toby & Cindi 2025-05-13
- [ ] Send the Viking Quest puzzle to Eva 2025-05-13
## References