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