vault backup: 2026-07-11 16:59:05
This commit is contained in:
8
Projects/Electronics/AC Dimmer Switch.md
Normal file
8
Projects/Electronics/AC Dimmer Switch.md
Normal 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
|
||||
@@ -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
|
||||
19
Projects/Electronics/Digital Potentiometer.md
Normal file
19
Projects/Electronics/Digital Potentiometer.md
Normal 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 & 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)
|
||||
69
Projects/Electronics/Escape Gallery Rack Mounted Server.md
Normal file
69
Projects/Electronics/Escape Gallery Rack Mounted Server.md
Normal 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
|
||||
122
Projects/Electronics/GPIO Breakout Board v2.md
Normal file
122
Projects/Electronics/GPIO Breakout Board v2.md
Normal 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
|
||||
|
||||
.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)
|
||||
|
||||

|
||||
|
||||
| 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
|
||||
|
||||
.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
|
||||
|
||||
.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
|
||||
|
||||
.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
|
||||
|
||||
.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 |
|
||||
|
||||
122
Projects/Electronics/GPIO Breakout Board v3.md
Normal file
122
Projects/Electronics/GPIO Breakout Board v3.md
Normal 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
|
||||
|
||||
.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)
|
||||
|
||||

|
||||
|
||||
| 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
|
||||
|
||||
.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
|
||||
|
||||
.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
|
||||
|
||||
.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
|
||||
|
||||
.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 |
|
||||
|
||||
122
Projects/Electronics/GPIO Breakout Board v4.md
Normal file
122
Projects/Electronics/GPIO Breakout Board v4.md
Normal 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
|
||||
|
||||
.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)
|
||||
|
||||

|
||||
|
||||
| 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
|
||||
|
||||
.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
|
||||
|
||||
.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
|
||||
|
||||
.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
|
||||
|
||||
.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
|
||||
13
Projects/Electronics/Handheld RFID Reader.md
Normal file
13
Projects/Electronics/Handheld RFID Reader.md
Normal 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)
|
||||
|
||||
21
Projects/Electronics/MFRC522 RFID Reader I2C.md
Normal file
21
Projects/Electronics/MFRC522 RFID Reader I2C.md
Normal 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)
|
||||
97
Projects/Electronics/MFRC522 RFID Reader.md
Normal file
97
Projects/Electronics/MFRC522 RFID Reader.md
Normal 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 RFID’s 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 RFID’s 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
|
||||
|
||||

|
||||
|
||||
The RST pin of the RC522 RFID module is level triggered. Low powers down the board, high powers up and causes a board reset.
|
||||
|
||||
.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]]
|
||||
|
||||
21
Projects/Electronics/Next Gen Prop Controller Hardware.md
Normal file
21
Projects/Electronics/Next Gen Prop Controller Hardware.md
Normal 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
|
||||
|
||||
20
Projects/Electronics/PN532 NFC Reader.md
Normal file
20
Projects/Electronics/PN532 NFC Reader.md
Normal 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)
|
||||
8
Projects/Electronics/Plant Watering System.md
Normal file
8
Projects/Electronics/Plant Watering System.md
Normal 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.
|
||||
|
||||
9
Projects/Electronics/RPi Camera Streamer.md
Normal file
9
Projects/Electronics/RPi Camera Streamer.md
Normal 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)
|
||||
15
Projects/Electronics/RPi Zero and I2S Microphone.md
Normal file
15
Projects/Electronics/RPi Zero and I2S Microphone.md
Normal 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/
|
||||
42
Projects/Electronics/Ribbon Cable Tester.md
Normal file
42
Projects/Electronics/Ribbon Cable Tester.md
Normal 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.
|
||||
|
||||
18
Projects/Electronics/Touch Circuit Controller.md
Normal file
18
Projects/Electronics/Touch Circuit Controller.md
Normal 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
|
||||
|
||||
42
Projects/Odin/Odin - PWM Candles.md
Normal file
42
Projects/Odin/Odin - PWM Candles.md
Normal 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:
|
||||
33
Projects/Odin/Wyatt's Notes on Odin_Table Code.md
Normal file
33
Projects/Odin/Wyatt's Notes on Odin_Table Code.md
Normal 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:
|
||||
Reference in New Issue
Block a user