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

This commit is contained in:
John Lyon-Smith
2026-07-11 16:59:05 -07:00
parent b0318f13ae
commit ecb462a16b
82 changed files with 1970 additions and 0 deletions

View File

@@ -0,0 +1,8 @@
## Goal
Create a light switch with a dimmer that can control 110 VAC or 220 VAC loads.
## References
- [Arduino Controlled Light Dimmer : 16 Steps - Instructables](https://www.instructables.com/Arduino-controlled-light-dimmer-The-circuit)
- https://www.aliexpress.us/item/2251832615710334.html

View File

@@ -0,0 +1,91 @@
---
active: false
tags: project
created: 2026-05-28 15:23
---
## Summary
Building an I2C temperature controller involves reading temperature from an I2C sensor (like an MCP9808 or DHT12) and using an Arduino to trigger a relay (for heaters/coolers) or adjust a fan. Use the standard `<Wire.h>` library for communication and control relays based on your temperature thresholds. 
Here is a straightforward guide to get your project running.
🛠️ Hardware Requirements
- **Microcontroller:** Arduino Uno or Nano
- **I2C Temperature Sensor:** MCP9808 (High precision) or DHT12
- **I2C Display (Optional):** 16x2 LCD with I2C backpack (PCF8574)
- **Control Element:** 5V Relay module (to switch a fan or heater)
- **Misc:** Breadboard, jumper wires, and 4.7kΩ pull-up resistors (if not built into your sensor modules) 
🔌 Wiring the Components
Connect your I2C devices to the Arduino's I2C bus. You will share these lines between the sensor and the display.
- **VCC**  Arduino 
- **GND**  Arduino 
- **SDA** Arduino Analog Pin (or the dedicated pin on newer boards)
- **SCL** Arduino Analog Pin (or the dedicated pin on newer boards)
- **Relay Signal Pin** Arduino Digital Pin 
Before running this code, ensure you have installed the **Adafruit MCP9808 Library** and the **LiquidCrystal_I2C Library** via the Arduino IDE Library Manager (`Sketch > Include Library > Manage Libraries`).
```
#include <Wire.h>
#include <Adafruit_MCP9808.h>
#include <LiquidCrystal_I2C.h>
// Create sensor and display objects
Adafruit_MCP9808 tempsensor = Adafruit_MCP9808();
LiquidCrystal_I2C lcd(0x27, 16, 2); // Set the LCD address to 0x27 for a 16 chars and 2 line display
const int RELAY_PIN = 7;
const float TARGET_TEMP = 25.0; // Target temperature in Celsius
const float HYSTERESIS = 0.5; // Prevents relay rapid switching (chattering)
void setup() {
Serial.begin(9600);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, HIGH); // Default to OFF (Relays are often active LOW)
// Initialize I2C LCD
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("I2C Temp Ctrl");
// Initialize sensor
if (!tempsensor.begin(0x18)) { // Default I2C address for MCP9808
Serial.println("Couldn't find MCP9808!");
while (1);
}
tempsensor.setResolution(3); // Set resolution to 0.0625°C
}
void loop() {
tempsensor.wake(); // Wake up sensor
float tempC = tempsensor.readTempC();
tempsensor.shutdown(); // Shutdown to save power/reduce self-heating
// Update Display
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(tempC);
lcd.print("C");
// Temperature Control Logic
if (tempC > (TARGET_TEMP + HYSTERESIS)) {
digitalWrite(RELAY_PIN, LOW); // Turn ON cooling/heating
}
else if (tempC < (TARGET_TEMP - HYSTERESIS)) {
digitalWrite(RELAY_PIN, HIGH); // Turn OFF cooling/heating
}
delay(1000); // Read temperature every second
}
```
## Tasks
## References

View File

@@ -0,0 +1,19 @@
---
active: false
tags: project
created: 2025-02-11 18:57
---
## Goal
Create digitally controlled potentiometer.
## Tasks
- [x] Research 2025-02-11 ✅ 2025-02-11
- [ ] Order parts 2025-02-11
- [ ] Breadboard a circuit 2025-02-11
- [ ] Test with 12V LED 2025-02-11
## References
- [Arduino With MCP4131 Digitally Controlled Potentiometer (DCP) : 8 Steps - Instructables](https://www.instructables.com/Arduino-With-MCP4131-Digitally-Controlled-Potentio)
- [Digital Variable Resistor using NE555 &amp; CD4017 IC](https://www.circuits-diy.com/digital-variable-resistor-using-ne555-cd4017-ic)
- [Arduino and MCP4131 digitally controlled potentiometer (DCP) - Hackster.io](https://www.hackster.io/umpheki/arduino-and-mcp4131-digitally-controlled-potentiometer-dcp-d35997)

View File

@@ -0,0 +1,69 @@
---
active: false
tags:
- project
- eg
created: 2025-08-08
completed: 2025-09-09
---
## Goal
Install a rack mounted server for Escape Gallery.
## To Do
- [x] Order used Dell R640 2025-08-22 ✅ 2025-08-22
- [x] Install in rack 2025-08-22 ✅ 2025-08-22
- [x] Adjust and fix-up the rack 2025-08-22 ✅ 2025-08-23
- [x] Create network cables 2025-08-31 ✅ 2025-08-31
- [x] Install network cables 2025-08-23 ✅ 2025-09-09
- [x] Install power cables 2025-08-23 ✅ 2025-09-09
- [x] Install and tidy all cables on rack 2025-08-22 ✅ 2025-09-09
- [x] Cut new top for the rack 2025-08-22 ✅ 2025-09-09
- [x] Configure the system RAID 2025-08-22 ✅ 2025-09-09
- [x] Test iDRAC interface 2025-08-23 ✅ 2025-09-09
- [x] Install Ubuntu on system 2025-08-22 ✅ 2025-09-09
## Notes
IPMI (==Intelligent Platform Management Interface==) is a standardized computer interface used for out-of-band management of computer systems. It allows for remote monitoring and management of servers, even when the main system is powered off or unresponsive. This is primarily achieved through a [Baseboard Management Controller (BMC)](https://www.google.com/search?client=firefox-b-1-d&cs=1&sca_esv=84a972cf9bb6250a&sxsrf=AE3TifMH8StQqpwwT6qFSJ0vmem-ifnEbQ%3A1754588176034&q=Baseboard+Management+Controller+%28BMC%29&sa=X&ved=2ahUKEwiZ2aWnnvmOAxXfOjQIHSSoNYgQxccNegQIBRAB&mstk=AUtExfAn7NkltD9c2Hl5f6c-b9QH-ZpnCOXseq62sbJvz26_opwj0re3BrR9XDlNuWBQY2n5PFxfdUOL8VPQuivWzkrXk3cfNfkGms5gLG_kGE7BeKi1KPct3LfwpawO6WsHvnk-QT8mr8X-VFW9wDDdvudTF73-JRryoUTis3_D_6DtirJxmzGkXtSL4YnvFzl6VIC5WoGdXbSh5kOvvOAfdBSaYvoANDpR8zz6Zt6VfM2q836KDAllYu-Y7F9gXoSl_ihkxOU2nkVBD74ot82vSDsk&csui=3), which acts as a separate, dedicated computer on the server's motherboard.
To install `ipmitool` on Ubuntu 24.04, follow these steps: Update package lists.
Code
```
sudo apt update
```
install ipmitool.
Code
```
sudo apt install ipmitool
```
- Install `openipmi` (optional, but recommended for full functionality):
Code
```
sudo apt install openipmi
```
Start the openipmi service (if installed).
Code
```
sudo systemctl start openipmi
```
After these steps, `ipmitool` will be installed and ready for use. You can verify the installation by running `ipmitool -V` to check its version.
## References
- [Dell R630 Fan Speeds | TrueNAS Community](https://www.truenas.com/community/threads/dell-r630-fan-speeds.95897)
- [Silence Your Dell PowerEdge Server](https://www.spxlabs.com/blog/2019/3/16/silence-your-dell-poweredge-server)
- [Dell PowerEdge R630 Owner's Manual](https://dl.dell.com/content/manual18909488-dell-poweredge-r630-owner-s-manual.pdf?language=en-us)
- [Dell iDRAC8 Manual](https://dl.dell.com/content/manual29462169-integrated-dell-remote-access-controller-8-version-2-75-75-75-user-s-guide.pdf?language=en-us)
- https://www.youtube.com/watch?v=3k-Bl3jJ8g8&t=192s

View File

@@ -0,0 +1,122 @@
---
active: false
created: 2024-06-01
tags:
- eg
- project
---
## Goal
Create an RPi puzzle breakout board that makes it easier to plug in different switches, RFID readers and I2C components.
![[Pasted image 20240618071431.png]]
Pin 1 on GPIO connector goes to Pin 1 on the breakout board.
## J9
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(3).png)
![[Ribbon_Cable_Orientation.png.png]]
## U1 Chip Output
We use a [CD4051B](https://www.ti.com/lit/ds/symlink/cd4051b.pdf) multiplexer chip to turn 3 GPIO lines (17, 27, 22) into 8 output control lines. The chip's INH (disable pin) is pulled low. GPIO20 provides the X input value (high or low depending the use case)
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image.png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | -------------------------------------- |
| X | 3 | 20 | 38 | Master enable switch (0 = off, 1 = on) |
| A | 11 | 17 | 11 | Refer to selector table |
| B | 10 | 27 | 13 | -"- |
| C | 9 | 22 | 15 | -"- |
### Selector table U1
| Reset | A (GPIO 17) | B (GPIO 27) | C (GPIO 22) |
| ----- | ----------- | ----------- | ----------- |
| J1 | 0 | 0 | 0 |
| J2 | 1 | 0 | 0 |
| J3 | 0 | 1 | 0 |
| J4 | 1 | 1 | 0 |
| J5 | 0 | 0 | 1 |
| J6 | 1 | 0 | 1 |
| J7 | 0 | 1 | 1 |
| J8 | 1 | 1 | 1 |
## J1 to J8
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(2).png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ------------- |
| Jn | 1 | 8 | 24 | SDA/SPI0/CE0 |
| | 2 | 11 | 23 | SCK |
| | 3 | 10 | 19 | MOSI |
| | 4 | 9 | 21 | MISO |
| | 5 | | | Not connected |
| | 6 | | 25 | Ground |
| J2 | 7 | | | See U1 table |
| J3 | 7 | | | See U1 table |
| J4 | 7 | | | See U1 table |
| J5 | 7 | | | See U1 table |
| J6 | 7 | | | See U1 table |
| J7 | 7 | | | See U1 table |
| J8 | 7 | | | See U1 table |
| Jn | 8 | | 17 | 3V3 |
## J17 to J22
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(6).png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ------ |
| J22 | 1 | 25 | 22 | I/O |
| | 2 | | 9 | Ground |
| J21 | 1 | 18 | 12 | I/O |
| | 2 | | 9 | Ground |
| J20 | 1 | 23 | 16 | I/O |
| | 2 | | 9 | Ground |
| J19 | 1 | 24 | 18 | I/O |
| | 2 | | 9 | Ground |
| J18 | 1 | 12 | 32 | I/O |
| | 2 | | 9 | Ground |
| J17 | 1 | 16 | 36 | I/O |
| | 2 | | 9 | Ground |
## J10 to J15
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(4).png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ------ |
| J10 | 1 | 5 | 29 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J11 | 1 | 6 | 31 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J12 | 1 | 13 | 33 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J13 | 1 | 19 | 35 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J14 | 1 | 26 | 37 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J15 | 1 | 21 | 40 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
## J16
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(5).png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ---------- |
| J16 | 1 | 2 | 3 | SDA1 / I2C |
| | 2 | 3 | 5 | SDL1 / I2C |
| | 3 | | 9 | Ground |
| | 4 | | 17 | 3V3 |

View File

@@ -0,0 +1,122 @@
---
active: false
created: 2025-04-29 08:16
tags:
- eg
- project
---
S## Goal
Create an RPi puzzle breakout board that makes it easier to plug in different switches, RFID readers and I2C components with connector pins holes aligned with red/yellow/black wires on commonly available leads.
![[Pasted image 20240618071431.png]]
Pin 1 on GPIO connector goes to Pin 1 on the breakout board.
![[GPIO_Board_v3.jpg]]
## J9
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(3).png)
![[Ribbon_Cable_Orientation.png.png]]
## U1 Chip Output
We use a [CD4051B](https://www.ti.com/lit/ds/symlink/cd4051b.pdf) multiplexer chip to turn 3 GPIO lines (17, 27, 22) into 8 output control lines. The chip's INH (disable pin) is permanently held low. GPIO 20 provides the X input value (high or low depending the use case)
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image.png)
| Socket | Socket Pin | BCM | Pin | Action |
| ------ | ---------- | --- | --- | -------------------------------------- |
| X | 3 | 20 | 38 | Master enable switch (0 = off, 1 = on) |
| A | 11 | 17 | 11 | Refer to selector table |
| B | 10 | 27 | 13 | Refer to selector table |
| C | 9 | 22 | 15 | Refer to selector table |
### Selector table U1
| Reset | RSTn | A (BCM 17) | B (BCM 27) | C (BCM 22) |
| ----- | ---- | ---------- | ---------- | ---------- |
| J1 | 0 | 0 | 0 | 0 |
| J2 | 1 | 1 | 0 | 0 |
| J3 | 2 | 0 | 1 | 0 |
| J4 | 3 | 1 | 1 | 0 |
| J5 | 4 | 0 | 0 | 1 |
| J6 | 5 | 1 | 0 | 1 |
| J7 | 6 | 0 | 1 | 1 |
| J8 | 7 | 1 | 1 | 1 |
## J1 to J8
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(2).png)
| Socket | Socket Pin | BCM | Pin | Action |
| ------ | ---------- | --- | --- | ------------- |
| Jn | 1 | 8 | 24 | SDA/SPI0/CE0 |
| | 2 | 11 | 23 | SCK |
| | 3 | 10 | 19 | MOSI |
| | 4 | 9 | 21 | MISO |
| | 5 | | | Not connected |
| | 6 | | 25 | Ground |
| J2 | 7 | | | See U1 table |
| J3 | 7 | | | See U1 table |
| J4 | 7 | | | See U1 table |
| J5 | 7 | | | See U1 table |
| J6 | 7 | | | See U1 table |
| J7 | 7 | | | See U1 table |
| J8 | 7 | | | See U1 table |
| Jn | 8 | | 17 | 3V3 |
## J17 to J22
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(6).png)
| Socket | Socket Pin | BCM | Pin | Action | Position |
| ------ | ---------- | --- | --- | ----------- | -------- |
| J22 | 1 | | 9 | Ground | |
| | 2 | 25 | 22 | I/O | |
| J21 | 1 | | 9 | Ground | |
| | 2 | 18 | 12 | I/O<br>PWM0 | |
| J20 | 1 | | 9 | Ground | |
| | 2 | 23 | 16 | I/O | |
| J19 | 1 | | 9 | Ground | |
| | 2 | 24 | 18 | I/O | |
| J18 | 1 | | 9 | Ground | |
| | 2 | 12 | 32 | I/O<br>PWM0 | |
| J17 | 1 | | 9 | Ground | |
| | 2 | 16 | 36 | I/O | |
## J10 to J15
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(4).png)
| Socket | Socket Pin | BCM | Pin | Action |
| ------ | ---------- | --- | --- | ----------- |
| J10 | 1 | 5 | 29 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J11 | 1 | 6 | 31 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J12 | 1 | 13 | 33 | I/O<br>PWM1 |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J13 | 1 | 19 | 35 | I/O<br>PWM1 |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J14 | 1 | 26 | 37 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J15 | 1 | 21 | 40 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
## J16
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(5).png)
| Socket | Socket Pin | BCM | Pin | Action | Wire Color |
| ------ | ---------- | --- | --- | ---------- | ---------- |
| J16 | 1 | | 9 | Ground | Black |
| | 2 | | 1 | 3V3 | Red |
| | 3 | 3 | 5 | SCL1 / I2C | White |
| | 4 | 2 | 3 | SDA1 / I2C | Yellow |

View File

@@ -0,0 +1,122 @@
---
active: false
created: 2025-05-03
tags:
- eg
- project
---
## Goal
Create an RPi puzzle breakout board that makes it easier to plug in different switches, RFID readers and I2C components. Must allow IRQ to be used on SPI interfaces.
![[Pasted image 20240618071431.png]]
Pin 1 on GPIO connector goes to Pin 1 on the breakout board.
[Protect digital inputs][1] externally to avoid blowing out RPi's
## J9
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(3).png)
![[Ribbon_Cable_Orientation.png.png]]
## U1 Chip Output
We use a [CD4051B](https://www.ti.com/lit/ds/symlink/cd4051b.pdf) multiplexer chip to turn 3 GPIO lines (17, 27, 22) into 8 output control lines. The chip's INH (disable pin) is permanently held low. GPIO 20 provides the X input value (high or low depending the use case)
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image.png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ----------------------------- |
| RST | 3 | 20 | 38 | RST (0 = disable, 1 = enable) |
| A | 11 | 17 | 11 | Refer to selector table below |
| B | 10 | 27 | 13 | -"- |
| C | 9 | 22 | 15 | -"- |
### Selector table for U1
RST pins are pulled low to disable the reader. Use address pins A, B, C to target J1 thru J8 with RST on GPIO20 and pull it high to restart the reader.
| Reset | A (GPIO 17) | B (GPIO 27) | C (GPIO 22) |
| ----- | ----------- | ----------- | ----------- |
| J1 | 0 | 0 | 0 |
| J2 | 1 | 0 | 0 |
| J3 | 0 | 1 | 0 |
| J4 | 1 | 1 | 0 |
| J5 | 0 | 0 | 1 |
| J6 | 1 | 0 | 1 |
| J7 | 0 | 1 | 1 |
| J8 | 1 | 1 | 1 |
## J1 to J8
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(2).png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ------------------------------------- |
| Jn | 1 | 8 | 24 | SDA/SPI0/CE0 |
| | 2 | 11 | 23 | SCK |
| | 3 | 10 | 19 | MOSI |
| | 4 | 9 | 21 | MISO |
| | 5 | 4 | 7 | IRQ |
| | 6 | | 25 | Ground |
| | 7 | 20 | 38 | RST (See U1 table above for selector) |
| | 8 | | 17 | 3V3 |
## J17 to J22
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(6).png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ------ |
| J22 | 1 | | 9 | Ground |
| | 2 | 25 | 22 | I/O |
| J21 | 1 | | 9 | Ground |
| | 2 | 18 | 12 | I/O |
| J20 | 1 | | 9 | Ground |
| | 2 | 23 | 16 | I/O |
| J19 | 1 | | 9 | Ground |
| | 2 | 24 | 18 | I/O |
| J18 | 1 | | 9 | Ground |
| | 2 | 12 | 32 | I/O |
| J17 | 1 | | 9 | Ground |
| | 2 | 16 | 36 | I/O |
## J10 to J15
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(4).png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ------ |
| J10 | 1 | 5 | 29 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J11 | 1 | 6 | 31 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J12 | 1 | 13 | 33 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J13 | 1 | 19 | 35 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J14 | 1 | 26 | 37 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
| J15 | 1 | 21 | 40 | I/O |
| | 2 | | 39 | Ground |
| | 3 | | 1 | 3V3 |
## J16
![Image.png](Attachments/Puzzle%20Breakout%20Board.assets/Image%20(5).png)
| Socket | Socket Pin | GPIO BCM | GPIO Pin | Action |
| ------ | ---------- | -------- | -------- | ---------- |
| J16 | 1 | | 9 | Ground |
| | 2 | | 1 | 3V3 |
| | 3 | 3 | 5 | SDL1 / I2C |
| | 4 | 2 | 3 | SDA1 / I2C |
## References
[1]: https://www.digikey.com/en/articles/protecting-inputs-in-digital-electronics

View File

@@ -0,0 +1,13 @@
## Goal
Create a handheld RFID reader.
## To Do
- [x] Connect LCD screen and get working 2024-06-02 ✅ 2024-06-02
- [x] Connect RFID reader and get working 2024-06-02 ✅ 2024-06-02
- [x] Connect RFID reader and LCD screen 2024-06-02 ✅ 2024-06-02
## References
- [LCD Display](https://pimylifeup.com/raspberry-pi-lcd-16x2/)
- [2 mfrc522 in one arduino](https://forum.arduino.cc/t/2-mfrc522-in-one-arduino-solved/416925/3)
- [Arduino - LCD I2C | Arduino Tutorial](https://arduinogetstarted.com/tutorials/arduino-lcd-i2c)

View File

@@ -0,0 +1,21 @@
---
active: false
tags: project
created: 2026-03-08 20:25
---
## Goal
Build an I2C based MFRC522 reader.
- Use RJ45 connectors
- Use DIP switches to set address
## Tasks
- [ ] Clone the SPI based board 2026-03-08
- [ ] Redesign the SPI based board to be I2C 2026-03-08
## References
- [DIP Switches for Setting I2C address](https://www.ctscorp.com/Files/DataSheets/Switches/DIP-Switches/CTS-Switches-DIP-219-Series-Datasheet.pdf)
- [DigiKey DIP switches](https://www.digikey.com/en/products/detail/cts-electrocomponents/219-5MST/223200)
- [MFRC522 Data Sheet](https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf)
- [I2C Specification](https://www.nxp.com/docs/en/user-guide/UM10204.pdf)

View File

@@ -0,0 +1,97 @@
---
tags:
- project
- eg
active: false
created: 2024-02-06
---
## Goal
Reverse engineer MFRC522 RFID reader, create circuit design, add a ribbon cable connector, have RST pin be pulled low.
## To Do
- [x] Test MFRC522 in Rust crate 2024-09-29 ✅ 2025-05-02
- [x] Test the small picofarad capacitors to see what the values are 2024-10-28 ✅ 2025-03-02
- [x] Check that MFRC522 chips can be ordered on 2024-09-29 ✅ 2024-10-28
- [x] Decide on asymmetry of TX1/TX2 2024-10-03 ✅ 2024-10-28
- [x] See which side of TX the RX/VMID connects to on the actual board 2024-10-03 ✅ 2024-10-08
- [x] Add ribbon cable connector 2024-06-20 ✅ 2024-10-03
- [x] Give all capacitors and resistors their values in circuit 2024-09-29 ✅ 2024-10-03
- [x] Connect crystal 2024-09-29 ✅ 2024-10-03
- [x] Connect LED 2024-09-29 ✅ 2024-10-03
- [x] Connect antenna 2024-09-29 ✅ 2024-10-03
- [x] Ensure pull up resistor to disable board 2024-09-29 ✅ 2024-10-03
- [x] Pull capacitors off of a working board to figure out what values they are 2024-06-25 ✅ 2024-09-29
## Notes
MF522-AN chip is based on the original Philips MFRC522 chip. Every RFID chip has a unique ID. Additionally you can store encrypted data on many RFIDs as well.
- https://arduino.stackexchange.com/questions/54119/mfrc522-firmware-unknown - getting version 0xB2 for clone boards
- Holding the RST pin low disables the board. Board is reset by a positive edge and enabled when held high.
- [Instructables article on how to interface RPi to RC522](https://www.instructables.com/How-to-Interface-RFID-RC522-With-Raspberry-Pi/)
- [Donskytech article about using RPi with MFRC522 reader](https://www.donskytech.com/raspberry-pi-mfrc522-rfid-reader-spi/)
- [Tutorial that shows how to voltage regulate the 5V signals to 3.3V](https://arduinogetstarted.com/tutorials/arduino-rfid-nfc) and how to read on an Arduino. *Voltage regulation is not required - see note below*
- [Article about RC522 RFID modules](https://components101.com/wireless/rc522-rfid-module). Explains that the communication pins of the board are 5V tolerant so no need to voltage regulate as other articles describe
- [Enabling SPI interface on Raspberry Pi](https://learn.sparkfun.com/tutorials/raspberry-pi-spi-and-i2c-tutorial/all)
- [Another interesting RC522 / Arduino tutorial](https://www.instructables.com/How-to-Use-the-RFID-RC522-Module-With-Arduino/)
- [How to use an RFID RC522 with a Raspberry Pi](http://wiki.sunfounder.cc/index.php?title=How_to_Use_an_RFID_RC522_on_Raspberry_Pi)
- [And another that talks about tag memory and how it is organized](https://peppe8o.com/rfid-and-raspberry-pi-rc522-wiring-and-code-with-python/)
- This chap on StackExchange explains [how to attach multiple RC522 readers to one RPi by cycling the RST pins and multiplexing the SPI](https://raspberrypi.stackexchange.com/questions/31773/raspberry-pi-multiple-nfc-readers/137491#137491).
- [Full MFRC522 Specification](https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf)
- [All the different types of RFID tags and the different standards for each country](https://blogs.bu.edu/llisa/everything-you-need-to-know-about-rfid-tags/)
- [Rust MFRC522 driver](https://gitlab.com/jspngh/rfid-rs) for RFID chip reading
- [SPI - Serial Peripheral Interface pinout for Raspberry Pi](https://pinout.xyz/pinout/spi)
- [DIY Smart Lock](https://www.makeuseof.com/tag/diy-smart-lock-arduino-rfid/)
- [Read two RFIDs from same SPID using OR gate](https://forum.arduino.cc/t/2-mfrc522-in-one-arduino-solved/416925/3)
- [MFRC522 Circuit Diagram](https://easyeda.com/editor#id=!b4aaa5775d8340e8a0fc626cdb0c1cbe)
- https://easyeda.com/editor#id=!488e1b7a8f9544599a7f8e41d1d6ccb9
- [Optimizing Read Range in RFID Systems](https://ww1.microchip.com/downloads/en/market_communication/optedn_ps.pdf)
- http://miniradiosolutions.com/wp-content/uploads/2015/09/NFC-Reader-Design-II-Antenna-design-considerations-Public.pdf
- https://5.imimg.com/data5/SELLER/Doc/2022/1/NB/OG/UX/1833510/rc522-reader-writer-module.pdf
![Image.png](Resources/Electronics/RFID%20and%20NFC.assets/Image.png)
The RST pin of the RC522 RFID module is level triggered. Low powers down the board, high powers up and causes a board reset.
![Image.png](Resources/Electronics/RFID%20and%20NFC.assets/Image%20(2).png)
![[RFID-Module-RC522-Kits-13-56-Mhz-6cm-With-Tags-SPI-Write-Read-for-Arduino-back.png]]
![[RFID-Module-RC522-Kits-13-56-Mhz-6cm-With-Tags-SPI-Write-Read-for-Arduino.jpg_.png]]
![[PICA0008.jpg]]
![[MFRC522-Back-Screen.jpeg]]
![[MFRC522-Front-Screen.jpeg]]
![[MFRC522-Back-Copper.jpeg]]
![[MFRC522-Front-Copper.jpeg]]
## References
- [RFID RC522 Schematic Resources](https://easyeda.com/modules/RFID-RC522-Schematic_488e1b7a8f9544599a7f8e41d1d6ccb9)
- https://easyeda.com/editor#id=!488e1b7a8f9544599a7f8e41d1d6ccb9
- https://easyeda.com/editor#id=!b4aaa5775d8340e8a0fc626cdb0c1cbe
- [How to Set Up a Raspberry Pi RFID RC522 Chip - Pi My Life Up](https://pimylifeup.com/raspberry-pi-rfid-rc522)
- [MFRC522 footprint and symbol by NXP USA Inc.](https://www.snapeda.com/parts/MFRC522/NXP%20USA/view-part/?ref=search&t=MFRC522)
- [mfrc522 - Rust](https://docs.rs/mfrc522/latest/mfrc522)
- [Resistor Sizes and Packages | Resistor Standards and Codes | Resistor Guide](https://eepower.com/resistor-guide/resistor-standards-and-codes/resistor-sizes-and-packages)
- [Learn by Example—Using an Impedance Smith Chart - Technical Articles](https://www.allaboutcircuits.com/technical-articles/learn-to-use-the-impedance-smith-chart-through-examples)
- [Review of R, X, and Z (Resistance, Reactance and Impedance) | Reactance and Impedance—R, L, And C | Electronics Textbook](https://www.allaboutcircuits.com/textbook/alternating-current/chpt-5/review-of-r-x-and-z)
- [Standard Inductor Values - RF Cafe](https://www.rfcafe.com/references/electrical/inductor-values.htm)
- [What is an SMD capacitor? Common capacitor values - SM Tech](https://somanytech.com/smd-capacitor-surface-mount-capacitor)
- [How to Calculate the Frequency of the Upper Sideband?](https://www.gauthmath.com/knowledge/How-to-calculate-the-frequency-of-the-upper-sideband--7389682134987374604)
![[RFID-Module-Circuit-Fixed.png]]
![[MFRC522.png]]
![[Design of Adaptive RFID Reader based on DDS and RC522 1.pdf]]
![[MFRC522 Antenna Design.pdf]]

View File

@@ -0,0 +1,21 @@
---
active: false
tags: project
created: 2026-03-02 10:03
---
## Goal
Create next generation prop controller hardware.
- Have RPi bolt onto the board
- Have 10 MOSFETS with 2 wire Molex connectors
- I2C with RJ45 connector
- Power LED
- 3.3VDC / 5VDC / 12VDC / 24VDC available to MOSFETs
## Tasks
- [x] Try importing a part from https://www.ultralibrarian.com/ into Fusion 2026-02-06 ✅ 2026-03-03
- [x] Figure out how to re-associate 3D models in imported Fusion projects ✅ 2026-03-03
## References

View File

@@ -0,0 +1,20 @@
---
created: 2025-08-17
tags:
- eg
- project
active: false
---
## Goal
Test PN532 boards alternative option to the RF522 boards.
## To Do
- [ ] Breadboard a circuit to tests the board 2024-06-25
- [ ] Order an I2C multiplexer board 2024-06-25
## References
- [PN532 NFC RFID Module — A Quick Introduction - ElectroSchematics.com](https://www.electroschematics.com/nfc-rfid-module-pn532)
- [Amazon.com: Haldzemo PN532 Reader Writer Module V3 IC Card with S50 White Blank Card compatible Arduino Raspberry Pi (2 Sets Kit) : Electronics](https://www.amazon.com/dp/B0BPR4DM19)
- [`pn532` crate](https://docs.rs/pn532/latest/pn532)

View File

@@ -0,0 +1,8 @@
## Goal
Create an automatic plant watering system
## References
- [Automatic Plant Watering System Using a Micro:bit](https://www.instructables.com/Automatic-Plant-Watering-System-Using-a-Microbit/)
- [Arduino Plant Watering System](https://www.instructables.com/Arduino-Plant-Watering-System/) This one looks the simplest.

View File

@@ -0,0 +1,9 @@
## Goal
Create a Flutter app that streams from a CS mounted Arducam RPi camera.
## References
- https://www.amazon.com/gp/product/B012ETE75I
- [libcamera](https://libcamera.org/index.html)
- [OctoPrint.org - A new camera stack for OctoPi](https://octoprint.org/blog/2023/05/24/a-new-camera-stack-for-octopi)
- [GitHub - ayufan/camera-streamer: High-performance low-latency camera streamer for Raspberry Pi's](https://github.com/ayufan/camera-streamer)

View File

@@ -0,0 +1,15 @@
---
active: false
tags: project
created: 2026-03-05 20:31
---
## Goal
Create a small microphone that streams over WiFi.
## Tasks
## References
- https://medium.com/@martin.hodges/setting-up-a-mems-i2s-microphone-on-a-raspberry-pi-306248961043
- https://www.instructables.com/Make-Your-Own-Spy-Bug-Arduino-Voice-Recorder/

View File

@@ -0,0 +1,42 @@
## Goal
Build a handheld device that can be used to test the 8 strand ribbon cables that connect the MRFC522 readers to the RPi breakout board.
## To Do
- [x] Design & print ribbon cable tester case bottom half 🔼 2024-05-15 ✅ 2024-06-07
- [x] Design & print ribbon cable tester case top half 🔼 2024-05-15 ✅ 2024-06-08
- [x] Design & print ribbon cable tester battery door 🔼 2024-06-08 ✅ 2024-06-08
- [x] Assembly the unit 2024-06-10 ✅ 2024-06-10
## Parts List
| **Part Code** | **Type** | **Value** | **Mfg Code** |
| ------------- | ------------------ | ----------- | ---------------------------------- |
| R1 | Resistor | 68 to 75 KΩ | |
| R2 | Resistor | 1 KΩ | |
| R3 | Resistor | 1 KΩ | |
| R4 | Resistor | 1 KΩ | |
| R5 | Resistor | 10 KΩ | |
| R6 | Resistor | 100 Ω | The ratio of R6:R7 is 1:3.3 (0.30) |
| R7 | Resistor | 330 Ω | |
| C1 | Ceramic Capacitor | 0.01 µF | 104 |
| C2 | Ceramic Capacitor | 10 µF | 106 |
| RV1 | Potentiometer | 100 KΩ | 104 |
| U1 | Integrated Circuit | LM555 | |
| U2 | Integrated Circuit | CD4017 | |
| D1 - D8 | 5mm LED | Red | |
| D9 - D16 | 5mm LED | Green | |
| D17 | 5mm LED | White | |
| J1 - J2 | IDC Socket | 8 pin | |
| | | | |
## Build Notes
- Overall current draw is 0.03 A so power is ~0.27W
## References
- [This is a good tutorial](https://www.nutsvolts.com/magazine/article/led-chaser-sequencer-circuits), but there is no capacitor to pin 5 of the LM555 as in all the other articles, which seems wrong.
- [LM555 datasheet](https://www.ti.com/lit/ds/symlink/lm555.pdf?ts=1715218052822&ref_url=https%253A%252F%252Fwww.google.com%252F)
- [4017B datasheet](https://www.ti.com/lit/ds/symlink/cd4017b.pdf?ts=1715285377632&ref_url=https%253A%252F%252Fwww.google.com%252F)
- The best [LM555 tutorial](https://www.nutsvolts.com/magazine/article/using-the-555-timer-ic-in-special-or-unusual-circuits). It actually works.

View File

@@ -0,0 +1,18 @@
---
active: true
tags: project
created: 2026-03-02 10:03
---
## Goal
Create a board for the touch circuit. Must have:
- ADC
- I2C
- Voltage divider
## Tasks
- [ ] Create a circuit diagram for the helm puzzle 2026-01-24
- [ ] Reverse engineer the ADC converter (with I2C) and add to touch circuit 2026-01-26
## References

View File

@@ -0,0 +1,42 @@
---
created: 2026-06-07
Index: "[[Odin]]"
tags:
- software
- electrical
- table-candles
source:
active: false
completed: 2026-07-01
---
# Goal
Create good looking PWM based candles that are mounted to the table in Odin's Dilemma. This will remove the need to replace batteries in the candles, saving money and simplifying the room reset.
## Tasks
- [ ] Buy caps 2026-07-11
- [ ] Install wooden caps over screws 2026-07-11
- [x] Create good looking candles
- [x] Wax dripping down
- [x] Base: screw holes for mounting, secured in candles
- [x] Wires go out
- [x] Create LED s with resistors
- [x] Resistors wired directly to LEDs (for 12 v) so it is clean
- [ ] Place LED s in candles
- [x] Wire 3 mosfet boards
- [x] Test mosfet boards with LED s on test rig
- [x] Create path for wires from mosfet/raspberry pi
- [x] Route wires to candle locations
- [x] Mount candles to table ✅ 2026-07-11
- [x] Wooden/3d printed base to hold candles together? ✅ 2026-07-11
- [x] Wire candles ✅ 2026-07-11
- [x] Software ✅ 2026-07-11
- [x] PWM control for the 2 mosfet boards
- [x] Integrate into the escape room control ✅ 2026-07-11
## PWM Candles Software
1. User inputs the desired LED pins (via mosfets) to program
2. Program sets them as output
3. Program flickers each pin simultaniously, but with different flicker rates.
## References:

View File

@@ -0,0 +1,33 @@
---
created: 2026-06-11T23:23:00
Index: "[[Odin]]"
tags:
- software
- odin
source: https://git.mozayik.net/john/odin/src/branch/main/odin_table
---
# Wyatt's Notes on Odin Code
---
## config_file.rs
### Outline
- Imports
- ConfigFile struct
- nats stuff
- log level
- ping interval
- solved cup order 1
- solved cup order 2
- Impl ConfigFile
- [ ] This has to do with loading and 'understanding' the path to the config file?
- Impl Default for ConfigFile
- Sets all of the values defaults to: None
### Purpose
- As far as I can tell: setting up configuration for other files, mainly by setting up structs and implementations, set to `pub` for the use inside of other files
## server.js
### Outline
-
---
## References: