From 93c10851318eebf547f4a77f31a3029331520b14 Mon Sep 17 00:00:00 2001 From: "user@node5.net" Date: Sun, 3 Aug 2025 01:00:06 +0200 Subject: Flat structure, delete various half completed --- 64x64 HUB 75 LED Matrix/Chip 1.webp | Bin 0 -> 43662 bytes 64x64 HUB 75 LED Matrix/Chip 2.webp | Bin 0 -> 59138 bytes 64x64 HUB 75 LED Matrix/Chip 3.webp | Bin 0 -> 59630 bytes 64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp | Bin 0 -> 9622 bytes 64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp | Bin 0 -> 10506 bytes 64x64 HUB 75 LED Matrix/In left.webp | Bin 0 -> 11264 bytes 64x64 HUB 75 LED Matrix/In right.webp | Bin 0 -> 12206 bytes 64x64 HUB 75 LED Matrix/Main.webp | Bin 0 -> 64750 bytes 64x64 HUB 75 LED Matrix/Thumbnail.webp | Bin 0 -> 7930 bytes .../esp32_display_pcb_bottom.webp | Bin 0 -> 13686 bytes .../esp32_display_pcb_top_plugged_in.webp | Bin 0 -> 16930 bytes 64x64 HUB 75 LED Matrix/index.md | 136 +++++++++++++++++++++ Arts and crafts/Embroidery/Alderaan.jpg | Bin 822433 -> 0 bytes .../Embroidery/Copenhagen local trains.jpg | Bin 2201229 -> 0 bytes Arts and crafts/Embroidery/Death star Alderaan.jpg | Bin 950209 -> 0 bytes Arts and crafts/Embroidery/Death star sketch.jpg | Bin 704363 -> 0 bytes .../Embroidery/Skeleton bongo cat BMTH.jpg | Bin 251724 -> 0 bytes Arts and crafts/Embroidery/Thumbnail.jpg | Bin 13808 -> 0 bytes Arts and crafts/Embroidery/index.md | 15 --- .../Casio rainbowfilm nfc mod.jpg | Bin 0 -> 1449157 bytes Casio watch NFC rainbow film mod/Inside.jpg | Bin 0 -> 773514 bytes Casio watch NFC rainbow film mod/Thumbnail.jpg | Bin 0 -> 20399 bytes .../W59 modded front.png | Bin 0 -> 5407171 bytes Casio watch NFC rainbow film mod/index.md | 27 ++++ Cheat sheets/Commands.md | 51 -------- Cheat sheets/Git.md | 12 -- Cyberdeck/Thumbnail.jpg | Bin 0 -> 8281 bytes Cyberdeck/back.jpg | Bin 0 -> 575251 bytes Cyberdeck/index.md | 48 ++++++++ Cyberdeck/main.jpg | Bin 0 -> 602606 bytes Embroidery/Alderaan.jpg | Bin 0 -> 822433 bytes Embroidery/Copenhagen local trains.jpg | Bin 0 -> 2201229 bytes Embroidery/Death star Alderaan.jpg | Bin 0 -> 950209 bytes Embroidery/Death star sketch.jpg | Bin 0 -> 704363 bytes Embroidery/Skeleton bongo cat BMTH.jpg | Bin 0 -> 251724 bytes Embroidery/Thumbnail.jpg | Bin 0 -> 13808 bytes Embroidery/index.md | 15 +++ Envelope (mathematics) generator/Envelope.png | Bin 0 -> 80865 bytes Envelope (mathematics) generator/Thumbnail.png | Bin 0 -> 2297 bytes Envelope (mathematics) generator/index.md | 35 ++++++ How to - Custom handwired keyboard.md | 114 +++++++++++++++++ How-to/Custom handwired keyboard.md | 114 ----------------- .../Envelope (mathematics) generator/Envelope.png | Bin 80865 -> 0 bytes .../Envelope (mathematics) generator/Thumbnail.png | Bin 2297 -> 0 bytes .../Envelope (mathematics) generator/index.md | 35 ------ How-to/Python/Logging.md | 114 ----------------- How-to/Selfhost blog.md | 29 ----- .../Tablet screen filled.png | Bin 0 -> 9738386 bytes .../Thumbnail.png | Bin 0 -> 38571 bytes LCD writing tablet functional principal/index.md | 44 +++++++ Miscellaneous/64x64 HUB 75 LED Matrix/Chip 1.webp | Bin 43662 -> 0 bytes Miscellaneous/64x64 HUB 75 LED Matrix/Chip 2.webp | Bin 59138 -> 0 bytes Miscellaneous/64x64 HUB 75 LED Matrix/Chip 3.webp | Bin 59630 -> 0 bytes .../64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp | Bin 9622 -> 0 bytes .../64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp | Bin 10506 -> 0 bytes Miscellaneous/64x64 HUB 75 LED Matrix/In left.webp | Bin 11264 -> 0 bytes .../64x64 HUB 75 LED Matrix/In right.webp | Bin 12206 -> 0 bytes Miscellaneous/64x64 HUB 75 LED Matrix/Main.webp | Bin 64750 -> 0 bytes .../64x64 HUB 75 LED Matrix/Thumbnail.webp | Bin 7930 -> 0 bytes .../esp32_display_pcb_bottom.webp | Bin 13686 -> 0 bytes .../esp32_display_pcb_top_plugged_in.webp | Bin 16930 -> 0 bytes Miscellaneous/64x64 HUB 75 LED Matrix/index.md | 136 --------------------- .../Casio rainbowfilm nfc mod.jpg | Bin 1449157 -> 0 bytes .../Casio watch NFC rainbow film mod/Inside.jpg | Bin 773514 -> 0 bytes .../Casio watch NFC rainbow film mod/Thumbnail.jpg | Bin 20399 -> 0 bytes .../W59 modded front.png | Bin 5407171 -> 0 bytes .../Casio watch NFC rainbow film mod/index.md | 27 ---- Miscellaneous/Cyberdeck/Thumbnail.jpg | Bin 8281 -> 0 bytes Miscellaneous/Cyberdeck/back.jpg | Bin 575251 -> 0 bytes Miscellaneous/Cyberdeck/index.md | 48 -------- Miscellaneous/Cyberdeck/main.jpg | Bin 602606 -> 0 bytes Miscellaneous/Facet lantern/Initial idea.webp | Bin 37460 -> 0 bytes Miscellaneous/Facet lantern/Thumbnail.webp | Bin 56000 -> 0 bytes Miscellaneous/Facet lantern/index.md | 19 --- .../Tablet screen filled.png | Bin 9738386 -> 0 bytes .../Thumbnail.png | Bin 38571 -> 0 bytes .../index.md | 44 ------- Miscellaneous/Oscilloscope/Blocks 3D B.mp4 | Bin 15131637 -> 0 bytes .../Oscilloscope/Full frame display on.png | Bin 7586633 -> 0 bytes Miscellaneous/Oscilloscope/Green light.png | Bin 5695249 -> 0 bytes .../Hurder Mouse (drift face version).mp4 | Bin 7507377 -> 0 bytes Miscellaneous/Oscilloscope/Thumbnail.png | Bin 43035 -> 0 bytes .../Oscilloscope/Warm light streams diverging.png | Bin 8577279 -> 0 bytes Miscellaneous/Oscilloscope/index.md | 41 ------- Miscellaneous/Raspberry Pi cooling/Thumbnail.jpg | Bin 9446 -> 0 bytes Miscellaneous/Raspberry Pi cooling/case.jpg | Bin 430370 -> 0 bytes Miscellaneous/Raspberry Pi cooling/graph.png | Bin 291124 -> 0 bytes Miscellaneous/Raspberry Pi cooling/index.md | 12 -- Miscellaneous/Raspberry Pi cooling/main.jpg | Bin 379828 -> 0 bytes Miscellaneous/Sharp memory display/Holding jig.jpg | Bin 875991 -> 0 bytes Miscellaneous/Sharp memory display/Thumbnail.jpg | Bin 8481 -> 0 bytes Miscellaneous/Sharp memory display/index.md | 43 ------- Oscilloscope/Blocks 3D B.mp4 | Bin 0 -> 15131637 bytes Oscilloscope/Full frame display on.png | Bin 0 -> 7586633 bytes Oscilloscope/Green light.png | Bin 0 -> 5695249 bytes Oscilloscope/Hurder Mouse (drift face version).mp4 | Bin 0 -> 7507377 bytes Oscilloscope/Thumbnail.png | Bin 0 -> 43035 bytes Oscilloscope/Warm light streams diverging.png | Bin 0 -> 8577279 bytes Oscilloscope/index.md | 41 +++++++ Python logging.md | 114 +++++++++++++++++ Raspberry Pi cooling/Thumbnail.jpg | Bin 0 -> 9446 bytes Raspberry Pi cooling/case.jpg | Bin 0 -> 430370 bytes Raspberry Pi cooling/graph.png | Bin 0 -> 291124 bytes Raspberry Pi cooling/index.md | 12 ++ Raspberry Pi cooling/main.jpg | Bin 0 -> 379828 bytes Sharp memory display/Holding jig.jpg | Bin 0 -> 875991 bytes Sharp memory display/Thumbnail.jpg | Bin 0 -> 8481 bytes Sharp memory display/index.md | 43 +++++++ 108 files changed, 629 insertions(+), 740 deletions(-) create mode 100644 64x64 HUB 75 LED Matrix/Chip 1.webp create mode 100644 64x64 HUB 75 LED Matrix/Chip 2.webp create mode 100644 64x64 HUB 75 LED Matrix/Chip 3.webp create mode 100644 64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp create mode 100644 64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp create mode 100644 64x64 HUB 75 LED Matrix/In left.webp create mode 100644 64x64 HUB 75 LED Matrix/In right.webp create mode 100644 64x64 HUB 75 LED Matrix/Main.webp create mode 100644 64x64 HUB 75 LED Matrix/Thumbnail.webp create mode 100644 64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp create mode 100644 64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp create mode 100644 64x64 HUB 75 LED Matrix/index.md delete mode 100644 Arts and crafts/Embroidery/Alderaan.jpg delete mode 100644 Arts and crafts/Embroidery/Copenhagen local trains.jpg delete mode 100644 Arts and crafts/Embroidery/Death star Alderaan.jpg delete mode 100644 Arts and crafts/Embroidery/Death star sketch.jpg delete mode 100644 Arts and crafts/Embroidery/Skeleton bongo cat BMTH.jpg delete mode 100644 Arts and crafts/Embroidery/Thumbnail.jpg delete mode 100644 Arts and crafts/Embroidery/index.md create mode 100644 Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg create mode 100644 Casio watch NFC rainbow film mod/Inside.jpg create mode 100644 Casio watch NFC rainbow film mod/Thumbnail.jpg create mode 100644 Casio watch NFC rainbow film mod/W59 modded front.png create mode 100644 Casio watch NFC rainbow film mod/index.md delete mode 100644 Cheat sheets/Commands.md delete mode 100644 Cheat sheets/Git.md create mode 100644 Cyberdeck/Thumbnail.jpg create mode 100644 Cyberdeck/back.jpg create mode 100644 Cyberdeck/index.md create mode 100644 Cyberdeck/main.jpg create mode 100644 Embroidery/Alderaan.jpg create mode 100644 Embroidery/Copenhagen local trains.jpg create mode 100644 Embroidery/Death star Alderaan.jpg create mode 100644 Embroidery/Death star sketch.jpg create mode 100644 Embroidery/Skeleton bongo cat BMTH.jpg create mode 100644 Embroidery/Thumbnail.jpg create mode 100644 Embroidery/index.md create mode 100644 Envelope (mathematics) generator/Envelope.png create mode 100644 Envelope (mathematics) generator/Thumbnail.png create mode 100644 Envelope (mathematics) generator/index.md create mode 100644 How to - Custom handwired keyboard.md delete mode 100644 How-to/Custom handwired keyboard.md delete mode 100644 How-to/Python/Envelope (mathematics) generator/Envelope.png delete mode 100644 How-to/Python/Envelope (mathematics) generator/Thumbnail.png delete mode 100644 How-to/Python/Envelope (mathematics) generator/index.md delete mode 100644 How-to/Python/Logging.md delete mode 100644 How-to/Selfhost blog.md create mode 100644 LCD writing tablet functional principal/Tablet screen filled.png create mode 100644 LCD writing tablet functional principal/Thumbnail.png create mode 100644 LCD writing tablet functional principal/index.md delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/Chip 1.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/Chip 2.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/Chip 3.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/In left.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/In right.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/Main.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/Thumbnail.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp delete mode 100644 Miscellaneous/64x64 HUB 75 LED Matrix/index.md delete mode 100644 Miscellaneous/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg delete mode 100644 Miscellaneous/Casio watch NFC rainbow film mod/Inside.jpg delete mode 100644 Miscellaneous/Casio watch NFC rainbow film mod/Thumbnail.jpg delete mode 100644 Miscellaneous/Casio watch NFC rainbow film mod/W59 modded front.png delete mode 100644 Miscellaneous/Casio watch NFC rainbow film mod/index.md delete mode 100644 Miscellaneous/Cyberdeck/Thumbnail.jpg delete mode 100644 Miscellaneous/Cyberdeck/back.jpg delete mode 100644 Miscellaneous/Cyberdeck/index.md delete mode 100644 Miscellaneous/Cyberdeck/main.jpg delete mode 100644 Miscellaneous/Facet lantern/Initial idea.webp delete mode 100644 Miscellaneous/Facet lantern/Thumbnail.webp delete mode 100644 Miscellaneous/Facet lantern/index.md delete mode 100644 Miscellaneous/LCD writing tablet functional principal/Tablet screen filled.png delete mode 100644 Miscellaneous/LCD writing tablet functional principal/Thumbnail.png delete mode 100644 Miscellaneous/LCD writing tablet functional principal/index.md delete mode 100644 Miscellaneous/Oscilloscope/Blocks 3D B.mp4 delete mode 100644 Miscellaneous/Oscilloscope/Full frame display on.png delete mode 100644 Miscellaneous/Oscilloscope/Green light.png delete mode 100644 Miscellaneous/Oscilloscope/Hurder Mouse (drift face version).mp4 delete mode 100644 Miscellaneous/Oscilloscope/Thumbnail.png delete mode 100644 Miscellaneous/Oscilloscope/Warm light streams diverging.png delete mode 100644 Miscellaneous/Oscilloscope/index.md delete mode 100644 Miscellaneous/Raspberry Pi cooling/Thumbnail.jpg delete mode 100644 Miscellaneous/Raspberry Pi cooling/case.jpg delete mode 100644 Miscellaneous/Raspberry Pi cooling/graph.png delete mode 100644 Miscellaneous/Raspberry Pi cooling/index.md delete mode 100644 Miscellaneous/Raspberry Pi cooling/main.jpg delete mode 100644 Miscellaneous/Sharp memory display/Holding jig.jpg delete mode 100644 Miscellaneous/Sharp memory display/Thumbnail.jpg delete mode 100644 Miscellaneous/Sharp memory display/index.md create mode 100644 Oscilloscope/Blocks 3D B.mp4 create mode 100644 Oscilloscope/Full frame display on.png create mode 100644 Oscilloscope/Green light.png create mode 100644 Oscilloscope/Hurder Mouse (drift face version).mp4 create mode 100644 Oscilloscope/Thumbnail.png create mode 100644 Oscilloscope/Warm light streams diverging.png create mode 100644 Oscilloscope/index.md create mode 100644 Python logging.md create mode 100644 Raspberry Pi cooling/Thumbnail.jpg create mode 100644 Raspberry Pi cooling/case.jpg create mode 100644 Raspberry Pi cooling/graph.png create mode 100644 Raspberry Pi cooling/index.md create mode 100644 Raspberry Pi cooling/main.jpg create mode 100644 Sharp memory display/Holding jig.jpg create mode 100644 Sharp memory display/Thumbnail.jpg create mode 100644 Sharp memory display/index.md diff --git a/64x64 HUB 75 LED Matrix/Chip 1.webp b/64x64 HUB 75 LED Matrix/Chip 1.webp new file mode 100644 index 0000000..8ae480e Binary files /dev/null and b/64x64 HUB 75 LED Matrix/Chip 1.webp differ diff --git a/64x64 HUB 75 LED Matrix/Chip 2.webp b/64x64 HUB 75 LED Matrix/Chip 2.webp new file mode 100644 index 0000000..fc38e70 Binary files /dev/null and b/64x64 HUB 75 LED Matrix/Chip 2.webp differ diff --git a/64x64 HUB 75 LED Matrix/Chip 3.webp b/64x64 HUB 75 LED Matrix/Chip 3.webp new file mode 100644 index 0000000..9609ecd Binary files /dev/null and b/64x64 HUB 75 LED Matrix/Chip 3.webp differ diff --git a/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp b/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp new file mode 100644 index 0000000..0901ba0 Binary files /dev/null and b/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp differ diff --git a/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp b/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp new file mode 100644 index 0000000..7c87e6e Binary files /dev/null and b/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp differ diff --git a/64x64 HUB 75 LED Matrix/In left.webp b/64x64 HUB 75 LED Matrix/In left.webp new file mode 100644 index 0000000..cae1de2 Binary files /dev/null and b/64x64 HUB 75 LED Matrix/In left.webp differ diff --git a/64x64 HUB 75 LED Matrix/In right.webp b/64x64 HUB 75 LED Matrix/In right.webp new file mode 100644 index 0000000..ee4f64e Binary files /dev/null and b/64x64 HUB 75 LED Matrix/In right.webp differ diff --git a/64x64 HUB 75 LED Matrix/Main.webp b/64x64 HUB 75 LED Matrix/Main.webp new file mode 100644 index 0000000..39e456a Binary files /dev/null and b/64x64 HUB 75 LED Matrix/Main.webp differ diff --git a/64x64 HUB 75 LED Matrix/Thumbnail.webp b/64x64 HUB 75 LED Matrix/Thumbnail.webp new file mode 100644 index 0000000..f55842c Binary files /dev/null and b/64x64 HUB 75 LED Matrix/Thumbnail.webp differ diff --git a/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp b/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp new file mode 100644 index 0000000..a0a20e5 Binary files /dev/null and b/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp differ diff --git a/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp b/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp new file mode 100644 index 0000000..bfdecbd Binary files /dev/null and b/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp differ diff --git a/64x64 HUB 75 LED Matrix/index.md b/64x64 HUB 75 LED Matrix/index.md new file mode 100644 index 0000000..821a127 --- /dev/null +++ b/64x64 HUB 75 LED Matrix/index.md @@ -0,0 +1,136 @@ +--- +description: "Me documenting my 64x64 LED matrix display" +created: 2025-03-11 +--- + +![Main](Main.webp) + +## Display documentation + +### From Aliexpress seller + +[64x64 Indoor RGB HD P3 Led Module Video Wall High Quality P2.5 P4 P5 P6 P7.62 P8 P10 Panel Full Color Display - Aliexpress.com](https://www.aliexpress.com/item/32757647402.html) + +Key | Value +------------------------- | ----------------------------------- +Item | P3 +Chip | Epstar +Chip size | Red 9 mil, Green 12. Blue 12mil +Light type | SMD2121 +Pixel Pitch | 3mm +Module Size | 192mmX192mm +Module Resolution | 64 X 64 (dots) +Density of pixel | 111111dots/m2 +Pixel configuration | 1R1G1B +Red wavelength | 625±2nm +Green wavelength | 525±2nm +Blue wavelength | 470±2nm +Colors | 16777216 +Best viewing distance | ≥2m +viewing angle | 120°/90° +Maximum power consumption | 20W +Brightness | 1500cd/m2 +Gray scale | 14bits per color +Color temperature | 6500k +Control method | Synchronization or Asynchronization +Driving method | 1/32 scanning +Frame frequency | 60Hz +Refresh frequency | ≥600Hz +Working Voltage | DC5V +IP grade | IP54 +MTBF | More than 8000hours +Life Span | 80,000hours + + +### Chips + +1. CHIPONE `ICN74HC245TS` `A14276CA` +2. `MBI5124GP` `A3YN72CTHB` +3. `RUC7258` `8W913170` + +![Chip 1](Chip 1.webp) +![Chip 2](Chip 2.webp) +![Chip 3](Chip 3.webp) + +### Display IN connector + +![In left](In left.webp) +![In right](In right.webp) + +--- + +## Micro controller wiring + +I use an [ESP32 WEMOS LOLIN S2 Mini](https://docs.platformio.org/en/latest/boards/espressif32/lolin_s2_mini.html) +which has an ESP32-S2F chip on it + +![ESP32-S2F_chip](ESP32-S2F_chip.webp) + +Display in wiring + +``` + ┌────────┐ +R1 ┤ 1 40 ├ G1 +B1 ┤ 2 38 ├ N +R2 ┤ 4 36 ├ G2 +B2 ┤ 6 34 ├ LE +LA ┤ 8 21 ├ LB +LC ┤ 10 17 ├ LD +CLK ┤ 13 15 ├ LAT +OE ┤ 14 ⏚ ├ GND + └────────┘ +``` + +![ESP32 S2 Mini](ESP32 S2 Mini.webp) + +--- + +## PCB Connector board + +The screen glitches unless you have a solid connection. + +This PCB is a straight connection, except the gnd which is flipped with the adjacent pin. + +![esp32_display_pcb_top_plugged_in](esp32_display_pcb_top_plugged_in.webp) +![esp32_display_pcb_bottom](esp32_display_pcb_bottom.webp) + +Half the display glitched out, untill i added a 100pf capacitor between `lat pin` and `gnd` +as per: + + +--- + +## Software + + + +```c++ +#define R1_PIN 1 +#define G1_PIN 40 +#define B1_PIN 2 +#define R2_PIN 4 +#define G2_PIN 36 +#define B2_PIN 6 +#define A_PIN 8 +#define B_PIN 21 +#define C_PIN 10 +#define D_PIN 17 +#define E_PIN 34 // required for 1/32 scan panels, like 64x64px. Any available pin would do, i.e. IO32 +#define LAT_PIN 15 +#define OE_PIN 14 +#define CLK_PIN 13 + +HUB75_I2S_CFG::i2s_pins _pins={R1_PIN, G1_PIN, B1_PIN, R2_PIN, G2_PIN, B2_PIN, A_PIN, B_PIN, C_PIN, D_PIN, E_PIN, LAT_PIN, OE_PIN, CLK_PIN}; +HUB75_I2S_CFG mxconfig( + 64, // Module width + 64, // Module height + 1, // chain length + _pins, // pin mapping +); +dma_display = new MatrixPanel_I2S_DMA(mxconfig); +``` + +--- + +I'm still experiencing some glitching, especially on the lower half of the display, +albeit a better PSU made the problem go away for static sketches, plasma still struggles. diff --git a/Arts and crafts/Embroidery/Alderaan.jpg b/Arts and crafts/Embroidery/Alderaan.jpg deleted file mode 100644 index 7d3efef..0000000 Binary files a/Arts and crafts/Embroidery/Alderaan.jpg and /dev/null differ diff --git a/Arts and crafts/Embroidery/Copenhagen local trains.jpg b/Arts and crafts/Embroidery/Copenhagen local trains.jpg deleted file mode 100644 index aa9c6c6..0000000 Binary files a/Arts and crafts/Embroidery/Copenhagen local trains.jpg and /dev/null differ diff --git a/Arts and crafts/Embroidery/Death star Alderaan.jpg b/Arts and crafts/Embroidery/Death star Alderaan.jpg deleted file mode 100644 index 873aaf1..0000000 Binary files a/Arts and crafts/Embroidery/Death star Alderaan.jpg and /dev/null differ diff --git a/Arts and crafts/Embroidery/Death star sketch.jpg b/Arts and crafts/Embroidery/Death star sketch.jpg deleted file mode 100644 index 9183ff5..0000000 Binary files a/Arts and crafts/Embroidery/Death star sketch.jpg and /dev/null differ diff --git a/Arts and crafts/Embroidery/Skeleton bongo cat BMTH.jpg b/Arts and crafts/Embroidery/Skeleton bongo cat BMTH.jpg deleted file mode 100644 index 0dab59d..0000000 Binary files a/Arts and crafts/Embroidery/Skeleton bongo cat BMTH.jpg and /dev/null differ diff --git a/Arts and crafts/Embroidery/Thumbnail.jpg b/Arts and crafts/Embroidery/Thumbnail.jpg deleted file mode 100644 index 64b2e6a..0000000 Binary files a/Arts and crafts/Embroidery/Thumbnail.jpg and /dev/null differ diff --git a/Arts and crafts/Embroidery/index.md b/Arts and crafts/Embroidery/index.md deleted file mode 100644 index c587b3d..0000000 --- a/Arts and crafts/Embroidery/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -description: Embroidered T-Shirts -created: 2024-02-01 ---- - -![Skeleton bongo cat BMTH](Skeleton bongo cat BMTH.jpg) - -![copenhagen_local_trains](Copenhagen local trains.jpg) - -![Death star sketch](Death star sketch.jpg) -![Death star Alderaan](Death star Alderaan.jpg) -![Alderaan](Alderaan.jpg) - -I used what i had on hand to sketch namely potato starch flour in water with a brush, this worked surprisingly ok in a -pinch. diff --git a/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg b/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg new file mode 100644 index 0000000..31cf7f8 Binary files /dev/null and b/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg differ diff --git a/Casio watch NFC rainbow film mod/Inside.jpg b/Casio watch NFC rainbow film mod/Inside.jpg new file mode 100644 index 0000000..5871647 Binary files /dev/null and b/Casio watch NFC rainbow film mod/Inside.jpg differ diff --git a/Casio watch NFC rainbow film mod/Thumbnail.jpg b/Casio watch NFC rainbow film mod/Thumbnail.jpg new file mode 100644 index 0000000..5def80b Binary files /dev/null and b/Casio watch NFC rainbow film mod/Thumbnail.jpg differ diff --git a/Casio watch NFC rainbow film mod/W59 modded front.png b/Casio watch NFC rainbow film mod/W59 modded front.png new file mode 100644 index 0000000..6672e22 Binary files /dev/null and b/Casio watch NFC rainbow film mod/W59 modded front.png differ diff --git a/Casio watch NFC rainbow film mod/index.md b/Casio watch NFC rainbow film mod/index.md new file mode 100644 index 0000000..59e0675 --- /dev/null +++ b/Casio watch NFC rainbow film mod/index.md @@ -0,0 +1,27 @@ +--- +description: Modded casio wrist watch with NFC and colorful watch face +created: 2023-12-18 +--- + +![Casio rainbowfilm nfc mod](Casio rainbowfilm nfc mod.jpg) + +I modded a Casio W59 with Dichroic film rainbow film and a 2x1 cm NFC sticker, and some crunched up aluminum foil + +Parts: + +- Dichroic film + - [aliexpress.com - Holographic Clear Window Film](https://www.aliexpress.com/item/1005005620190266.html) + - [velken.shop - Rainbow color effect film, cold, transparent](https://www.velken.shop/p/rainbow-color-effect-film-cold-transparent/) +- [aliexpress.com - NFC Chip Ntag 213 Sticker 13.56MHz RFID Size 2*1cm](https://www.aliexpress.com/item/1005006220591444.html) +- [aliexpress.com - Adhesive polarizer](https://www.aliexpress.com/item/1005004269567641.html) note, it's important to get the sticky kind + +NFC sticker tutorial video tutorial: + +[youtube.com - CASIO F-91 NFC MOD - DIY F91W NFC Tag Implant ( Easy Modification )](https://www.youtube.com/watch?v=aGn2_zP8GI8) + +Inverted display video: + +[youtube.com - More Casio Watch Mods (Inverted and Translucent LCD) ](https://www.youtube.com/watch?v=EsO-i5nS1z0) + +![Inside](Inside.jpg) +![W59 modded front](W59 modded front.png) diff --git a/Cheat sheets/Commands.md b/Cheat sheets/Commands.md deleted file mode 100644 index a27bd8e..0000000 --- a/Cheat sheets/Commands.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -description: Handy commands i use on my Linux distro machines -created: 2024-01-01 ---- - - -## Convert markdown to HTML -e.g. to preview a markdown file -Reqires [python-markdown](https://python-markdown.github.io/install/) - -```bash -python3 -m markdown README.md > /tmp/README.html -``` - -To load extensions like code blocks: -```bash -python3 -m markdown -x fenced_code -x codehilite -x tables README.md > /tmp/README.html -``` - -## List packages -Arch -``` -pacman -Q -``` - -Debian -```bash -dpkg -l -``` - -## List package files -Arch -```bash -pacman -Ql cowsay -``` - -Debian -```bash -dpkg -L cowsay -``` - -## Check USB eject progress -The OS will lie, and tell you that it's done writing a file, while in reality it's not to flush this cache type: -```bash -sync -``` - -To monitor progress: -```bash -watch -n 0.5 grep 'Dirty' /proc/meminfo -``` \ No newline at end of file diff --git a/Cheat sheets/Git.md b/Cheat sheets/Git.md deleted file mode 100644 index 5297eda..0000000 --- a/Cheat sheets/Git.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -created: 2024-01-01 -description: Handy git commands ---- - -### See changes since last commit -```bash -git diff HEAD~0 -``` - -### Commit parts of a file -[filip-prochazka.com - Git: commit only parts of a file](https://filip-prochazka.com/blog/git-commit-only-parts-of-a-file) diff --git a/Cyberdeck/Thumbnail.jpg b/Cyberdeck/Thumbnail.jpg new file mode 100644 index 0000000..0bc55a6 Binary files /dev/null and b/Cyberdeck/Thumbnail.jpg differ diff --git a/Cyberdeck/back.jpg b/Cyberdeck/back.jpg new file mode 100644 index 0000000..ad0f554 Binary files /dev/null and b/Cyberdeck/back.jpg differ diff --git a/Cyberdeck/index.md b/Cyberdeck/index.md new file mode 100644 index 0000000..6c58669 --- /dev/null +++ b/Cyberdeck/index.md @@ -0,0 +1,48 @@ +--- +description: "Computer" +created: 2023-03-08 +--- + +I want to build a cyberdeck, but isn't that just a weird cumbersome laptop... yes, that's not the point, think of it more as a weird retro inspired electronic simi functional experimental piece of art. + +![Main](main.jpg) +![Back](back.jpg) + +Back will house all the electronics and when the screen is lifted it's shown, i'll add an acrylic plate, which will help guide airflow from the fan through the device. +Will start with a Raspberry Pi, since that's what i have on hand, might change it out to a different SBC with proper NVME support instead of booting of an SD card, or USB adapter. + +## Ideas: +- Screen: Ultra wide screen IPS, smaller e paper display. +- Keyboard: Custom split ergonomic mechanical keyboard with trackball in the middle. +- Pointing device: Rollerball mouse + thinkpad like 3 buttons. +- Modular, expandable, with standard mounting interfaces, and electrically with ports ex. i2c expansion. +- Internal temperature on i2c. +- Modern retro vibe with vent slits. +- All PCB's in the back mounted to an insert plate, to avoid having to re-print the case. + +## Inspiration / resources: +- [Cyberdeck cafe](https://cyberdeck.cafe/mix/what-is-a-cyberdeck) +- [keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/) +- [A Complete Guide to Building a Hand-Wired Keyboard](https://www.crackedthecode.co/a-complete-guide-to-building-a-hand-wired-keyboard/) +- [Power monitoring](https://www.youtube.com/watch?v=Qkx9M-AzznE) +- [OpenSCAD Keycap generator](https://www.thingiverse.com/thing:2783650/files) +### Cool cyberdecks: +- [Skeletal Cyberdeck](https://cyberdeck.cafe/mix/skeletal-cyberdeck) +- [TRL](https://cyberdeck.cafe/mix/trl-22121) +- [GRIZ](https://cyberdeck.cafe/mix/griz) +- [MSG](https://cyberdeck.cafe/mix/msg) +- [TTSD-3085](https://cyberdeck.cafe/mix/ttsd) +- [midknight8008](https://www.thingiverse.com/thing:4939019) + +## Parts: +- [Waveshare 10.4inch QLED Display 1600×720](https://www.waveshare.com/10.4hp-capqled.htm?sku=24646) +- [Waveshare 3S 5V 5A Output with i2c monitoring](https://www.waveshare.com/ups-module-3s.htm) +- [Trackball Breakout by Pimoroni](https://shop.pimoroni.com/products/trackball-breakout) +- [Flat HDMI cable](https://www.aliexpress.com/item/4000014554460.html) +- [1N4148 Diodes for keyboard switches](https://www.aliexpress.com/item/1005005435418695.html) +- [Adafruit KB2040 - RP2040 Kee Boar Driver](https://www.adafruit.com/product/5302) +- [Adafruit SHARP Memory Display Breakout - 2.7" 400x240 Monochrome](https://www.adafruit.com/product/4694) +- Keyboard switches +- Big ON/OFF switch +- External antenna + diff --git a/Cyberdeck/main.jpg b/Cyberdeck/main.jpg new file mode 100644 index 0000000..0dead12 Binary files /dev/null and b/Cyberdeck/main.jpg differ diff --git a/Embroidery/Alderaan.jpg b/Embroidery/Alderaan.jpg new file mode 100644 index 0000000..7d3efef Binary files /dev/null and b/Embroidery/Alderaan.jpg differ diff --git a/Embroidery/Copenhagen local trains.jpg b/Embroidery/Copenhagen local trains.jpg new file mode 100644 index 0000000..aa9c6c6 Binary files /dev/null and b/Embroidery/Copenhagen local trains.jpg differ diff --git a/Embroidery/Death star Alderaan.jpg b/Embroidery/Death star Alderaan.jpg new file mode 100644 index 0000000..873aaf1 Binary files /dev/null and b/Embroidery/Death star Alderaan.jpg differ diff --git a/Embroidery/Death star sketch.jpg b/Embroidery/Death star sketch.jpg new file mode 100644 index 0000000..9183ff5 Binary files /dev/null and b/Embroidery/Death star sketch.jpg differ diff --git a/Embroidery/Skeleton bongo cat BMTH.jpg b/Embroidery/Skeleton bongo cat BMTH.jpg new file mode 100644 index 0000000..0dab59d Binary files /dev/null and b/Embroidery/Skeleton bongo cat BMTH.jpg differ diff --git a/Embroidery/Thumbnail.jpg b/Embroidery/Thumbnail.jpg new file mode 100644 index 0000000..64b2e6a Binary files /dev/null and b/Embroidery/Thumbnail.jpg differ diff --git a/Embroidery/index.md b/Embroidery/index.md new file mode 100644 index 0000000..c587b3d --- /dev/null +++ b/Embroidery/index.md @@ -0,0 +1,15 @@ +--- +description: Embroidered T-Shirts +created: 2024-02-01 +--- + +![Skeleton bongo cat BMTH](Skeleton bongo cat BMTH.jpg) + +![copenhagen_local_trains](Copenhagen local trains.jpg) + +![Death star sketch](Death star sketch.jpg) +![Death star Alderaan](Death star Alderaan.jpg) +![Alderaan](Alderaan.jpg) + +I used what i had on hand to sketch namely potato starch flour in water with a brush, this worked surprisingly ok in a +pinch. diff --git a/Envelope (mathematics) generator/Envelope.png b/Envelope (mathematics) generator/Envelope.png new file mode 100644 index 0000000..f7cf72c Binary files /dev/null and b/Envelope (mathematics) generator/Envelope.png differ diff --git a/Envelope (mathematics) generator/Thumbnail.png b/Envelope (mathematics) generator/Thumbnail.png new file mode 100644 index 0000000..01eb49e Binary files /dev/null and b/Envelope (mathematics) generator/Thumbnail.png differ diff --git a/Envelope (mathematics) generator/index.md b/Envelope (mathematics) generator/index.md new file mode 100644 index 0000000..423d750 --- /dev/null +++ b/Envelope (mathematics) generator/index.md @@ -0,0 +1,35 @@ +--- +description: Generating geometric line art +created: 2024-05-12 +--- + +![Envelope](Envelope.png) + +Needed a clean picture of [Envelope (mathematics)](https://en.wikipedia.org/wiki/Envelope_%28mathematics%29), +for PCB silk screen art. +I used [Python Pillow](https://python-pillow.org/) +```sh +pip install pillow~=10.3 +``` + +```python +from PIL import Image, ImageDraw + +# https://en.wikipedia.org/wiki/Envelope_%28mathematics%29 + +dim = 200 # Image dimensions (pixels) +skip = 10 # Only draw a line every X pixels +width = 1 # Line width +color = "white" + +with Image.new(mode = "RGB", size = (dim, dim)) as im: # mode="RGBA" for transparent background + draw = ImageDraw.Draw(im) + + for i in range(dim): + if i % skip: + continue + rev = dim - i + draw.line([(0, i), (i, dim)], fill=color, width=width) + + im.show() # im.save("/tmp/Envelope.png") +``` diff --git a/How to - Custom handwired keyboard.md b/How to - Custom handwired keyboard.md new file mode 100644 index 0000000..b43ddcc --- /dev/null +++ b/How to - Custom handwired keyboard.md @@ -0,0 +1,114 @@ +--- +description: Process of how to create a custom designed hardwired keyboard +created: 2024-03-01 +--- + +TODO ROUGH PRICE + +## Plan +Start out by getting a rough plan of what you want to make, so you can order parts, as takes a while, if you wish to do +it cheaply. + +First of all you need to decide how big your keyboard needs to be, do you wish to make an 100%, macropad, ultra-compact, +split, do you want dedicated buttons for all 24 function keys? none of the above? + +You can play around with [keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/) to find a layout you like, +see different layout under "Preset" + +Massive repo of inspiration: [keebfolio.netlify.app](https://keebfolio.netlify.app/) + +### Switches +#### Design (Will affect keyboard design) +- Cherry MX design (classic, old, bulky, readily available, cloned into oblivion) +- Low profile? + - Kalih Choc (Expensive, different keycaps) + - Others + - [gateron.co - Gateron Low Profile 2.0 Mechanical Switch](https://www.gateron.co/products/gateron-low-profile-mechanical-switch-set) + - [keychron.com - Keychron Low Profile Mechanical Switch](https://www.keychron.com/products/keychron-low-profile-mechanical-switch) +Unsure, order a Switch tester or ask a friend to try their switches, to see what you like +#### Type +Generally there 3 types, originally made by cherry, I'd recommend none of them +- Clicky - Typically blue (obnoxious) +- Linear - Typically red (Did I press that button?) +- Tactile - Typically brown (Mushy) + +But do limit your scope enough, so you don't lose interest before completing the core project. +Be ready to test ideas feasibility and scrap them if infeasible. + +### Switch matrix +So what parts do you need? +You need to decide which method you wish to use, to wire up your switches +- Matrix with diodes (recommended method) + - Requires 1 diodes per switch, diodes are cheap + - Cable routing is more manageable +- Straight (1 wire per switch to microcontroller) + - Requires enough pins + +An I/O expander can be used to add additional pins to a microcontroller, it's also useful for split keyboards, +as it can require only 4 pins (I²C + power and ground) from the microcontroller + +## Order parts (Consumables) +### Checklist +#### Keyboard specific +- Switches +- Microcontroller, look at [QMK Compatible microcontrollers](https://docs.qmk.fm/#/compatible_microcontrollers), +i recommend a RP2040 based microcontroller +- Keycaps? Do you want to order these or [3D print them](#3d-printed-keycaps) +- Diodes [aliexpress.com - 1N4148](https://www.aliexpress.com/item/1005005435418695.html) +- Split keyboard parts + - I/O expander route + - I/O expander MCP23017 + - Connector [aliexpress.com - TRRS headphone jack](https://www.aliexpress.com/item/1005003146932723.html) + - Cable [aliexpress.com - TRRS headphone cable](https://www.aliexpress.com/item/1005001781279058.html) + +#### General maker +- 3D printed filament +- Solder tin +- Extra features? +Get wild, add an old [ThinkPad trackpoint](https://docs.qmk.fm/#/feature_ps2_mouse), +a [rollerball mouse](https://shop.pimoroni.com/products/trackball-breakout?variant=27672765038675), +rotary encoder, maybe LEDs. +- Heat shrink tube +- Magnet wire (can come in handy) + +### Tools - non consumables +- 3D printer +- Soldering iron +- Continuity tester (for debugging connections) +- + +## Waiting for parts +### Layout design finalisation +Staggered? +Ortholinear? +Something else entirely? + +[keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/) + +[keyboard-layout-editor.com - My layout](http://www.keyboard-layout-editor.com/##@_backcolor=%23000000%3B&@_c=%230096a7&t=%23ffffff%0A%0A%0A%23ff8616%3B&=Esc%0A%0A%0AFnLock&_c=%236d6d6d%3B&=F1%0A%0A%0A%3Ci%20class%2F='fa%20fa-volume-off'%3E%3C%2F%2Fi%3E&=F2%0A%0A%0A%3Ci%20class%2F='fa%20fa-volume-down'%3E%3C%2F%2Fi%3E&=F3%0A%0A%0A%3Ci%20class%2F='fa%20fa-volume-up'%3E%3C%2F%2Fi%3E&=F4%0A%0A%0A%3Ci%20class%2F='fa%20fa-microphone-slash'%3E%3C%2F%2Fi%3E&=F5%0A%0A%0A%3Ci%20class%2F='fa%20fa-sun-o'%3E%3C%2F%2Fi%3E-&_x:3%3B&=F6%0A%0A%0A%3Ci%20class%2F='fa%20fa-sun-o'%3E%3C%2F%2Fi%3E+&=F7%0A%0A%0A%3Ci%20class%2F='fa%20fa-caret-left'%3E%3C%2F%2Fi%3E%3Ci%20class%2F='fa%20fa-caret-left'%3E%3C%2F%2Fi%3E&=F8%0A%0A%0A%3Ci%20class%2F='fa%20fa-play'%3E%3C%2F%2Fi%3E%3Ci%20class%2F='fa%20fa-pause'%3E%3C%2F%2Fi%3E&=F9%0A%0A%0A%3Ci%20class%2F='fa%20fa-caret-right'%3E%3C%2F%2Fi%3E%3Ci%20class%2F='fa%20fa-caret-right'%3E%3C%2F%2Fi%3E&_t=%23ffffff%3B&=F10&=F11&=F12&=Delete%3B&@_c=%23262626%3B&=%60%0A~&=1%0A!&=2%0A%2F@&=3%0A%23&=4%0A$&=5%0A%25&_x:3%3B&=6%0A%5E&_t=%23ffffff%0A%0A%0A%23ff8616%3B&=7%0A%2F&%0A%0A7&=8%0A*%0A%0A8&=9%0A%28%0A%0A9&=0%0A%29%0A%0A+&_t=%23ffffff%3B&=-%0A%2F_&=%2F=%0A+&_c=%236d6d6d%3B&=BckSp%3B&@=Tab&_c=%23262626%3B&=Q&=W&=E&=R&=T&_x:3%3B&=Y&_t=%23ffffff%0A%0A%0A%23ff8616%3B&=U%0A%0A%0A4&=I%0A%0A%0A5&=O%0A%0A%0A6&=P%0A%0A%0A%C3%97&_t=%23ffffff%3B&=%7B%0A%5B&=%7D%0A%5D&=%7C%0A%5C%3B&@_c=%236d6d6d&t=%23ffffff%0A%0A%0A%23ff8616%3B&=Comp%0A%0A%0ACapsL&_c=%23262626&t=%23ffffff%3B&=A&=S&=D&_n:true%3B&=F&=G&_x:3%3B&=H&_t=%23ffffff%0A%0A%0A%23ff8616&n:true%3B&=J%0A%0A%0A1&=K%0A%0A%0A2&=L%0A%0A%0A3&=%2F:%0A%2F%3B%0A%0A-&_t=%23ffffff%3B&=%22%0A'&_c=%230096a7&w:2%3B&=Enter%3B&@_c=%236d6d6d%3B&=Shift&_c=%23262626%3B&=Z&=X&=C&=V&=B&_x:3%3B&=N&_t=%23ffffff%0A%0A%0A%23ff8616%3B&=M%0A%0A%0A0&=%3C%0A,%0A%0A,&=%3E%0A.%0A%0A.&=%3F%0A%2F%2F%0A%0A%2F%2F&_c=%236d6d6d&t=%23ffffff%3B&=PgUp&_c=%23c1c1c1&t=%23000000%3B&=%E2%86%91&_c=%236d6d6d&t=%23ffffff%3B&=PgDn%3B&@=Ctrl&=Super&=Alt&_t=%23ff8616%3B&=Fn&_c=%23262626&t=%23ffffff&a:7&w:2%3B&=&_x:2&c=%23c1c1c1&t=%23000000&a:4%3B&=mous1&=mous2&=mous3&_c=%236d6d6d&t=%23ffffff%0A%0A%0A%23ff8616%3B&=Menu%0A%0A%0AInsert&=Home%0A%0A%0APrtSc&_t=%23ffffff%3B&=End&_c=%23c1c1c1&t=%23000000%3B&=%E2%86%90&_n:true%3B&=%E2%86%93&=%E2%86%92) + +## Other great guides + + +## Switch plate generation +### Testing fit + +### 3D printing +#### 3D printed keycaps + + +### Wiring test 3x3 +The best way to eliminate unknowns and avoid wasting work, is by wiring up a small part, and testing this + +### Firmware setup + + +### No unknowns, home run, final stretch, grind + +### Extra firmware features +Inspire, show opportunities +grep QMK repo + +### Show off + +### Get ideas for your next version \ No newline at end of file diff --git a/How-to/Custom handwired keyboard.md b/How-to/Custom handwired keyboard.md deleted file mode 100644 index b43ddcc..0000000 --- a/How-to/Custom handwired keyboard.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -description: Process of how to create a custom designed hardwired keyboard -created: 2024-03-01 ---- - -TODO ROUGH PRICE - -## Plan -Start out by getting a rough plan of what you want to make, so you can order parts, as takes a while, if you wish to do -it cheaply. - -First of all you need to decide how big your keyboard needs to be, do you wish to make an 100%, macropad, ultra-compact, -split, do you want dedicated buttons for all 24 function keys? none of the above? - -You can play around with [keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/) to find a layout you like, -see different layout under "Preset" - -Massive repo of inspiration: [keebfolio.netlify.app](https://keebfolio.netlify.app/) - -### Switches -#### Design (Will affect keyboard design) -- Cherry MX design (classic, old, bulky, readily available, cloned into oblivion) -- Low profile? - - Kalih Choc (Expensive, different keycaps) - - Others - - [gateron.co - Gateron Low Profile 2.0 Mechanical Switch](https://www.gateron.co/products/gateron-low-profile-mechanical-switch-set) - - [keychron.com - Keychron Low Profile Mechanical Switch](https://www.keychron.com/products/keychron-low-profile-mechanical-switch) -Unsure, order a Switch tester or ask a friend to try their switches, to see what you like -#### Type -Generally there 3 types, originally made by cherry, I'd recommend none of them -- Clicky - Typically blue (obnoxious) -- Linear - Typically red (Did I press that button?) -- Tactile - Typically brown (Mushy) - -But do limit your scope enough, so you don't lose interest before completing the core project. -Be ready to test ideas feasibility and scrap them if infeasible. - -### Switch matrix -So what parts do you need? -You need to decide which method you wish to use, to wire up your switches -- Matrix with diodes (recommended method) - - Requires 1 diodes per switch, diodes are cheap - - Cable routing is more manageable -- Straight (1 wire per switch to microcontroller) - - Requires enough pins - -An I/O expander can be used to add additional pins to a microcontroller, it's also useful for split keyboards, -as it can require only 4 pins (I²C + power and ground) from the microcontroller - -## Order parts (Consumables) -### Checklist -#### Keyboard specific -- Switches -- Microcontroller, look at [QMK Compatible microcontrollers](https://docs.qmk.fm/#/compatible_microcontrollers), -i recommend a RP2040 based microcontroller -- Keycaps? Do you want to order these or [3D print them](#3d-printed-keycaps) -- Diodes [aliexpress.com - 1N4148](https://www.aliexpress.com/item/1005005435418695.html) -- Split keyboard parts - - I/O expander route - - I/O expander MCP23017 - - Connector [aliexpress.com - TRRS headphone jack](https://www.aliexpress.com/item/1005003146932723.html) - - Cable [aliexpress.com - TRRS headphone cable](https://www.aliexpress.com/item/1005001781279058.html) - -#### General maker -- 3D printed filament -- Solder tin -- Extra features? -Get wild, add an old [ThinkPad trackpoint](https://docs.qmk.fm/#/feature_ps2_mouse), -a [rollerball mouse](https://shop.pimoroni.com/products/trackball-breakout?variant=27672765038675), -rotary encoder, maybe LEDs. -- Heat shrink tube -- Magnet wire (can come in handy) - -### Tools - non consumables -- 3D printer -- Soldering iron -- Continuity tester (for debugging connections) -- - -## Waiting for parts -### Layout design finalisation -Staggered? -Ortholinear? -Something else entirely? - -[keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/) - -[keyboard-layout-editor.com - My layout](http://www.keyboard-layout-editor.com/##@_backcolor=%23000000%3B&@_c=%230096a7&t=%23ffffff%0A%0A%0A%23ff8616%3B&=Esc%0A%0A%0AFnLock&_c=%236d6d6d%3B&=F1%0A%0A%0A%3Ci%20class%2F='fa%20fa-volume-off'%3E%3C%2F%2Fi%3E&=F2%0A%0A%0A%3Ci%20class%2F='fa%20fa-volume-down'%3E%3C%2F%2Fi%3E&=F3%0A%0A%0A%3Ci%20class%2F='fa%20fa-volume-up'%3E%3C%2F%2Fi%3E&=F4%0A%0A%0A%3Ci%20class%2F='fa%20fa-microphone-slash'%3E%3C%2F%2Fi%3E&=F5%0A%0A%0A%3Ci%20class%2F='fa%20fa-sun-o'%3E%3C%2F%2Fi%3E-&_x:3%3B&=F6%0A%0A%0A%3Ci%20class%2F='fa%20fa-sun-o'%3E%3C%2F%2Fi%3E+&=F7%0A%0A%0A%3Ci%20class%2F='fa%20fa-caret-left'%3E%3C%2F%2Fi%3E%3Ci%20class%2F='fa%20fa-caret-left'%3E%3C%2F%2Fi%3E&=F8%0A%0A%0A%3Ci%20class%2F='fa%20fa-play'%3E%3C%2F%2Fi%3E%3Ci%20class%2F='fa%20fa-pause'%3E%3C%2F%2Fi%3E&=F9%0A%0A%0A%3Ci%20class%2F='fa%20fa-caret-right'%3E%3C%2F%2Fi%3E%3Ci%20class%2F='fa%20fa-caret-right'%3E%3C%2F%2Fi%3E&_t=%23ffffff%3B&=F10&=F11&=F12&=Delete%3B&@_c=%23262626%3B&=%60%0A~&=1%0A!&=2%0A%2F@&=3%0A%23&=4%0A$&=5%0A%25&_x:3%3B&=6%0A%5E&_t=%23ffffff%0A%0A%0A%23ff8616%3B&=7%0A%2F&%0A%0A7&=8%0A*%0A%0A8&=9%0A%28%0A%0A9&=0%0A%29%0A%0A+&_t=%23ffffff%3B&=-%0A%2F_&=%2F=%0A+&_c=%236d6d6d%3B&=BckSp%3B&@=Tab&_c=%23262626%3B&=Q&=W&=E&=R&=T&_x:3%3B&=Y&_t=%23ffffff%0A%0A%0A%23ff8616%3B&=U%0A%0A%0A4&=I%0A%0A%0A5&=O%0A%0A%0A6&=P%0A%0A%0A%C3%97&_t=%23ffffff%3B&=%7B%0A%5B&=%7D%0A%5D&=%7C%0A%5C%3B&@_c=%236d6d6d&t=%23ffffff%0A%0A%0A%23ff8616%3B&=Comp%0A%0A%0ACapsL&_c=%23262626&t=%23ffffff%3B&=A&=S&=D&_n:true%3B&=F&=G&_x:3%3B&=H&_t=%23ffffff%0A%0A%0A%23ff8616&n:true%3B&=J%0A%0A%0A1&=K%0A%0A%0A2&=L%0A%0A%0A3&=%2F:%0A%2F%3B%0A%0A-&_t=%23ffffff%3B&=%22%0A'&_c=%230096a7&w:2%3B&=Enter%3B&@_c=%236d6d6d%3B&=Shift&_c=%23262626%3B&=Z&=X&=C&=V&=B&_x:3%3B&=N&_t=%23ffffff%0A%0A%0A%23ff8616%3B&=M%0A%0A%0A0&=%3C%0A,%0A%0A,&=%3E%0A.%0A%0A.&=%3F%0A%2F%2F%0A%0A%2F%2F&_c=%236d6d6d&t=%23ffffff%3B&=PgUp&_c=%23c1c1c1&t=%23000000%3B&=%E2%86%91&_c=%236d6d6d&t=%23ffffff%3B&=PgDn%3B&@=Ctrl&=Super&=Alt&_t=%23ff8616%3B&=Fn&_c=%23262626&t=%23ffffff&a:7&w:2%3B&=&_x:2&c=%23c1c1c1&t=%23000000&a:4%3B&=mous1&=mous2&=mous3&_c=%236d6d6d&t=%23ffffff%0A%0A%0A%23ff8616%3B&=Menu%0A%0A%0AInsert&=Home%0A%0A%0APrtSc&_t=%23ffffff%3B&=End&_c=%23c1c1c1&t=%23000000%3B&=%E2%86%90&_n:true%3B&=%E2%86%93&=%E2%86%92) - -## Other great guides - - -## Switch plate generation -### Testing fit - -### 3D printing -#### 3D printed keycaps - - -### Wiring test 3x3 -The best way to eliminate unknowns and avoid wasting work, is by wiring up a small part, and testing this - -### Firmware setup - - -### No unknowns, home run, final stretch, grind - -### Extra firmware features -Inspire, show opportunities -grep QMK repo - -### Show off - -### Get ideas for your next version \ No newline at end of file diff --git a/How-to/Python/Envelope (mathematics) generator/Envelope.png b/How-to/Python/Envelope (mathematics) generator/Envelope.png deleted file mode 100644 index f7cf72c..0000000 Binary files a/How-to/Python/Envelope (mathematics) generator/Envelope.png and /dev/null differ diff --git a/How-to/Python/Envelope (mathematics) generator/Thumbnail.png b/How-to/Python/Envelope (mathematics) generator/Thumbnail.png deleted file mode 100644 index 01eb49e..0000000 Binary files a/How-to/Python/Envelope (mathematics) generator/Thumbnail.png and /dev/null differ diff --git a/How-to/Python/Envelope (mathematics) generator/index.md b/How-to/Python/Envelope (mathematics) generator/index.md deleted file mode 100644 index 79e92de..0000000 --- a/How-to/Python/Envelope (mathematics) generator/index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -description: Generating geometric line art -created: 2024-05-12 ---- - -![Envelope](Envelope.png) - -Needed a clean picture of [Envelope (mathematics)](https://en.wikipedia.org/wiki/Envelope_%28mathematics%29), -for PCB silk screen art. -I used [Python Pillow](https://python-pillow.org/) -``` -pip install pillow~=10.3 -``` - -```python -from PIL import Image, ImageDraw - -# https://en.wikipedia.org/wiki/Envelope_%28mathematics%29 - -dim = 200 # Image dimensions (pixels) -skip = 10 # Only draw a line every X pixels -width = 1 # Line width -color = "white" - -with Image.new(mode = "RGB", size = (dim, dim)) as im: # mode="RGBA" for transparent background - draw = ImageDraw.Draw(im) - - for i in range(dim): - if i % skip: - continue - rev = dim - i - draw.line([(0, i), (i, dim)], fill=color, width=width) - - im.show() # im.save("/tmp/Envelope.png") -``` \ No newline at end of file diff --git a/How-to/Python/Logging.md b/How-to/Python/Logging.md deleted file mode 100644 index 867dc20..0000000 --- a/How-to/Python/Logging.md +++ /dev/null @@ -1,114 +0,0 @@ ---- -created: 2024-03-17 -description: Python logging with ✨pretty colors🌸 ---- - -## Logging > print -Logging is useful, because all python code can use the same standard, allowing you to centrally control: - -- Which messages you wish to see - - Every debug message, for local development - - Disable debug messages, by changing 1 line e.g. for end user deployment -- How to format them - - Do you wish to see which module and line of code this message originated from -- Where they should end up - - Printed to [STDOUT](https://en.wikipedia.org/wiki/Standard_streams) (terminal) - - A log file - - A log server - - Maybe a notification should be triggered on CRITICAL errors - -> A python [*"module"*](https://docs.python.org/3/tutorial/modules.html) is simply just the name for a .py file. -> e.g. the file `database_handler.py` is a module called `database_handler` - -```py -import logging - - -class ColorFormatter(logging.Formatter): - grey = "\x1b[90;20m" - cyan = "\x1b[96;20m" - yellow = "\x1b[33;20m" - red = "\x1b[31;20m" - bold_red = "\x1b[31;1m" - reset = "\x1b[0m" - format = "%(asctime)s,%(msecs)03d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s" - - FORMATS = { - logging.DEBUG: grey + format + reset, - logging.INFO: cyan + format + reset, - logging.WARNING: yellow + format + reset, - logging.ERROR: red + format + reset, - logging.CRITICAL: bold_red + format + reset - } - - def format(self, record): - log_fmt = self.FORMATS.get(record.levelno) - formatter = logging.Formatter(log_fmt) - return formatter.format(record) - - -logger = logging.getLogger(__name__) # Instantiate a logger to be used in this module - -# Display every message Change this to INFO to see INFO and above (filter out DEBUG) -# See: https://docs.python.org/3/howto/logging.html#logging-levels -logger.root.setLevel(logging.DEBUG) - -stream_handler = logging.StreamHandler() # This catches and handles log messages on the root handler -stream_handler.setFormatter(ColorFormatter()) -logger.root.addHandler(stream_handler) - -logger.debug("debug message") -logger.info("info message") -logger.warning("warning message") -logger.error("error message") -logger.critical("critical message") -``` - -> Code snippet is modified, but based on: -> [stackoverflow.com - How can I color Python logging output?](https://stackoverflow.com/questions/384076/how-can-i-color-python-logging-output#answer-56944256). -> Used and credited as per [stackoverflow.com - CC BY-SA 4.0 content license](https://stackoverflow.com/help/licensing) - -
-$ python /tmp/1.py
-2024-03-17 14:09:06,411,411 DEBUG    [1.py:37] debug message
-2024-03-17 14:09:06,411,411 INFO     [1.py:38] info message
-2024-03-17 14:09:06,411,411 WARNING  [1.py:39] warning message
-2024-03-17 14:09:06,411,411 ERROR    [1.py:40] error message
-2024-03-17 14:09:06,411,411 CRITICAL [1.py:41] critical message
-
- - -In subsequent modules, do the following: -```py -import logging - -logger = logging.getLogger(__name__) # Set the logger name, to the name of the module - -logger.debug("debug message") -logger.info("info message") -logger.warning("warning message") -logger.error("error message") -logger.critical("critical message") -``` - -> Wish to change the colors? -> Color codes can be found here: [wikipedia.org - ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit) - -Okay, but why do we need to do it this way? - -Because logging is hieratical, these 2 loggers will be siblings under the root logger (see following tree structure). -Therefore we set a handler on the root logger which ensures all logging will hit our formatting code. - -
-$ root
-├──  main
-└──  module_a
-
- -You can set a breakpoint and inspect `logger.parent` to see this structure: -```pycon ->>> logger.parent - -``` - -Read more: [docs.python.org - Logging HOWTO](https://docs.python.org/3/howto/logging.html) diff --git a/How-to/Selfhost blog.md b/How-to/Selfhost blog.md deleted file mode 100644 index 0ad9e94..0000000 --- a/How-to/Selfhost blog.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -description: How to create, and self host a blog like this -created: 2024-03-01 ---- - -## Chose a static site generator -This is the tool that takes your [markdown](https://www.markdownguide.org/basic-syntax/) or other markup language, -and generates HTML files, these can then uploaded to a server to host. - -- [Hugo](https://gohugo.io/) -- [Pelican](https://getpelican.com/) -- [My custom one](https://git.node5.net/blog/blog-generator/about/) - -## Buy a domain -### Chose a TLD (Top Level Domain) -.net is pretty cool IMO - -## Hosting - -- Selfhost - - At home - - Requires static IP - - Router port forward - - Always having a machine online - - Exposes your home IP (This isn't super bad) -- VPS (cloud monthly payment) - - Not independent - -For the rest of this I refer to the awesome guides at [landchad.net](https://landchad.net/) diff --git a/LCD writing tablet functional principal/Tablet screen filled.png b/LCD writing tablet functional principal/Tablet screen filled.png new file mode 100644 index 0000000..2b5f607 Binary files /dev/null and b/LCD writing tablet functional principal/Tablet screen filled.png differ diff --git a/LCD writing tablet functional principal/Thumbnail.png b/LCD writing tablet functional principal/Thumbnail.png new file mode 100644 index 0000000..3a54e2e Binary files /dev/null and b/LCD writing tablet functional principal/Thumbnail.png differ diff --git a/LCD writing tablet functional principal/index.md b/LCD writing tablet functional principal/index.md new file mode 100644 index 0000000..c127c09 --- /dev/null +++ b/LCD writing tablet functional principal/index.md @@ -0,0 +1,44 @@ +--- +description: "Cholesteric liquid-crystal drawing tablet" +created: 2024-05-19 +--- + +![Tablet screen filled](Tablet screen filled.png) + +## Prelude + +I recently stumbled across drawing tablets seemingly works by the means of magic, +the search term is: `LCD writing tablet` +I have a thing for daylight viewable screens, so the allure was irresistible for me. + +After one quick trip to the local hardware store, and subsequently the local hacker space, +i was able to examine the technology first hand, and for low monetary cost too, i might add. + +## Properties + +The properties are as follows: + +- Daylight viewable +- Passive working principle (only requires power to clear the display) +- Pressure amount sensitivity (light pressure = thin line, hard pressure = thick line) + +## Layers + +The tablet consists of a sandwich of 3 layers: + +- A dark background +- A layer of cholesteric liquid-crystals +- A piece of translucent plastic + +## Functional principal + +The means of function of this device, is merely a property of how the cholesteric liquid-crystal work: + +[*"crystals flow at different rates, depending on the direction of pressure being applied"*](https://new.nsf.gov/news/how-liquid-crystal-displays-work-ewriter#:~:text=crystals%20flow%20at%20different%20rates%2C%20depending%20on%20the%20direction%20of%20pressure%20being%20applied) + +[*"anisotropic flow causes the molecules to order themselves to reflect light in those places where a stylus touches the plastic sheet."*](https://new.nsf.gov/news/how-liquid-crystal-displays-work-ewriter#:~:text=anisotropic%20flow%20causes%20the%20molecules%20to%20order%20themselves%20to%20reflect%20light%20in%20those%20places%20where%20a%20stylus%20touches%20the%20plastic%20sheet.) + +## Sources: +1. [How Liquid Crystal Displays Work in an eWriter - new.nsf.gov](https://new.nsf.gov/news/how-liquid-crystal-displays-work-ewriter#:~:text=The%20liquid%20crystals%20are%20surrounded,that%20they%20are%20less%20reflective.) +2. [Cholesteric liquid crystal - wikipedia.org](https://en.wikipedia.org/wiki/Cholesteric_liquid_crystal) +3. [Anisotropy - wikipedia.org](https://en.wikipedia.org/wiki/Anisotropy) \ No newline at end of file diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 1.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 1.webp deleted file mode 100644 index 8ae480e..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 1.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 2.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 2.webp deleted file mode 100644 index fc38e70..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 2.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 3.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 3.webp deleted file mode 100644 index 9609ecd..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/Chip 3.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp deleted file mode 100644 index 0901ba0..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp deleted file mode 100644 index 7c87e6e..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/In left.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/In left.webp deleted file mode 100644 index cae1de2..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/In left.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/In right.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/In right.webp deleted file mode 100644 index ee4f64e..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/In right.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/Main.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/Main.webp deleted file mode 100644 index 39e456a..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/Main.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/Thumbnail.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/Thumbnail.webp deleted file mode 100644 index f55842c..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/Thumbnail.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp deleted file mode 100644 index a0a20e5..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp b/Miscellaneous/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp deleted file mode 100644 index bfdecbd..0000000 Binary files a/Miscellaneous/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp and /dev/null differ diff --git a/Miscellaneous/64x64 HUB 75 LED Matrix/index.md b/Miscellaneous/64x64 HUB 75 LED Matrix/index.md deleted file mode 100644 index 821a127..0000000 --- a/Miscellaneous/64x64 HUB 75 LED Matrix/index.md +++ /dev/null @@ -1,136 +0,0 @@ ---- -description: "Me documenting my 64x64 LED matrix display" -created: 2025-03-11 ---- - -![Main](Main.webp) - -## Display documentation - -### From Aliexpress seller - -[64x64 Indoor RGB HD P3 Led Module Video Wall High Quality P2.5 P4 P5 P6 P7.62 P8 P10 Panel Full Color Display - Aliexpress.com](https://www.aliexpress.com/item/32757647402.html) - -Key | Value -------------------------- | ----------------------------------- -Item | P3 -Chip | Epstar -Chip size | Red 9 mil, Green 12. Blue 12mil -Light type | SMD2121 -Pixel Pitch | 3mm -Module Size | 192mmX192mm -Module Resolution | 64 X 64 (dots) -Density of pixel | 111111dots/m2 -Pixel configuration | 1R1G1B -Red wavelength | 625±2nm -Green wavelength | 525±2nm -Blue wavelength | 470±2nm -Colors | 16777216 -Best viewing distance | ≥2m -viewing angle | 120°/90° -Maximum power consumption | 20W -Brightness | 1500cd/m2 -Gray scale | 14bits per color -Color temperature | 6500k -Control method | Synchronization or Asynchronization -Driving method | 1/32 scanning -Frame frequency | 60Hz -Refresh frequency | ≥600Hz -Working Voltage | DC5V -IP grade | IP54 -MTBF | More than 8000hours -Life Span | 80,000hours - - -### Chips - -1. CHIPONE `ICN74HC245TS` `A14276CA` -2. `MBI5124GP` `A3YN72CTHB` -3. `RUC7258` `8W913170` - -![Chip 1](Chip 1.webp) -![Chip 2](Chip 2.webp) -![Chip 3](Chip 3.webp) - -### Display IN connector - -![In left](In left.webp) -![In right](In right.webp) - ---- - -## Micro controller wiring - -I use an [ESP32 WEMOS LOLIN S2 Mini](https://docs.platformio.org/en/latest/boards/espressif32/lolin_s2_mini.html) -which has an ESP32-S2F chip on it - -![ESP32-S2F_chip](ESP32-S2F_chip.webp) - -Display in wiring - -``` - ┌────────┐ -R1 ┤ 1 40 ├ G1 -B1 ┤ 2 38 ├ N -R2 ┤ 4 36 ├ G2 -B2 ┤ 6 34 ├ LE -LA ┤ 8 21 ├ LB -LC ┤ 10 17 ├ LD -CLK ┤ 13 15 ├ LAT -OE ┤ 14 ⏚ ├ GND - └────────┘ -``` - -![ESP32 S2 Mini](ESP32 S2 Mini.webp) - ---- - -## PCB Connector board - -The screen glitches unless you have a solid connection. - -This PCB is a straight connection, except the gnd which is flipped with the adjacent pin. - -![esp32_display_pcb_top_plugged_in](esp32_display_pcb_top_plugged_in.webp) -![esp32_display_pcb_bottom](esp32_display_pcb_bottom.webp) - -Half the display glitched out, untill i added a 100pf capacitor between `lat pin` and `gnd` -as per: - - ---- - -## Software - - - -```c++ -#define R1_PIN 1 -#define G1_PIN 40 -#define B1_PIN 2 -#define R2_PIN 4 -#define G2_PIN 36 -#define B2_PIN 6 -#define A_PIN 8 -#define B_PIN 21 -#define C_PIN 10 -#define D_PIN 17 -#define E_PIN 34 // required for 1/32 scan panels, like 64x64px. Any available pin would do, i.e. IO32 -#define LAT_PIN 15 -#define OE_PIN 14 -#define CLK_PIN 13 - -HUB75_I2S_CFG::i2s_pins _pins={R1_PIN, G1_PIN, B1_PIN, R2_PIN, G2_PIN, B2_PIN, A_PIN, B_PIN, C_PIN, D_PIN, E_PIN, LAT_PIN, OE_PIN, CLK_PIN}; -HUB75_I2S_CFG mxconfig( - 64, // Module width - 64, // Module height - 1, // chain length - _pins, // pin mapping -); -dma_display = new MatrixPanel_I2S_DMA(mxconfig); -``` - ---- - -I'm still experiencing some glitching, especially on the lower half of the display, -albeit a better PSU made the problem go away for static sketches, plasma still struggles. diff --git a/Miscellaneous/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg b/Miscellaneous/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg deleted file mode 100644 index 31cf7f8..0000000 Binary files a/Miscellaneous/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg and /dev/null differ diff --git a/Miscellaneous/Casio watch NFC rainbow film mod/Inside.jpg b/Miscellaneous/Casio watch NFC rainbow film mod/Inside.jpg deleted file mode 100644 index 5871647..0000000 Binary files a/Miscellaneous/Casio watch NFC rainbow film mod/Inside.jpg and /dev/null differ diff --git a/Miscellaneous/Casio watch NFC rainbow film mod/Thumbnail.jpg b/Miscellaneous/Casio watch NFC rainbow film mod/Thumbnail.jpg deleted file mode 100644 index 5def80b..0000000 Binary files a/Miscellaneous/Casio watch NFC rainbow film mod/Thumbnail.jpg and /dev/null differ diff --git a/Miscellaneous/Casio watch NFC rainbow film mod/W59 modded front.png b/Miscellaneous/Casio watch NFC rainbow film mod/W59 modded front.png deleted file mode 100644 index 6672e22..0000000 Binary files a/Miscellaneous/Casio watch NFC rainbow film mod/W59 modded front.png and /dev/null differ diff --git a/Miscellaneous/Casio watch NFC rainbow film mod/index.md b/Miscellaneous/Casio watch NFC rainbow film mod/index.md deleted file mode 100644 index 59e0675..0000000 --- a/Miscellaneous/Casio watch NFC rainbow film mod/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -description: Modded casio wrist watch with NFC and colorful watch face -created: 2023-12-18 ---- - -![Casio rainbowfilm nfc mod](Casio rainbowfilm nfc mod.jpg) - -I modded a Casio W59 with Dichroic film rainbow film and a 2x1 cm NFC sticker, and some crunched up aluminum foil - -Parts: - -- Dichroic film - - [aliexpress.com - Holographic Clear Window Film](https://www.aliexpress.com/item/1005005620190266.html) - - [velken.shop - Rainbow color effect film, cold, transparent](https://www.velken.shop/p/rainbow-color-effect-film-cold-transparent/) -- [aliexpress.com - NFC Chip Ntag 213 Sticker 13.56MHz RFID Size 2*1cm](https://www.aliexpress.com/item/1005006220591444.html) -- [aliexpress.com - Adhesive polarizer](https://www.aliexpress.com/item/1005004269567641.html) note, it's important to get the sticky kind - -NFC sticker tutorial video tutorial: - -[youtube.com - CASIO F-91 NFC MOD - DIY F91W NFC Tag Implant ( Easy Modification )](https://www.youtube.com/watch?v=aGn2_zP8GI8) - -Inverted display video: - -[youtube.com - More Casio Watch Mods (Inverted and Translucent LCD) ](https://www.youtube.com/watch?v=EsO-i5nS1z0) - -![Inside](Inside.jpg) -![W59 modded front](W59 modded front.png) diff --git a/Miscellaneous/Cyberdeck/Thumbnail.jpg b/Miscellaneous/Cyberdeck/Thumbnail.jpg deleted file mode 100644 index 0bc55a6..0000000 Binary files a/Miscellaneous/Cyberdeck/Thumbnail.jpg and /dev/null differ diff --git a/Miscellaneous/Cyberdeck/back.jpg b/Miscellaneous/Cyberdeck/back.jpg deleted file mode 100644 index ad0f554..0000000 Binary files a/Miscellaneous/Cyberdeck/back.jpg and /dev/null differ diff --git a/Miscellaneous/Cyberdeck/index.md b/Miscellaneous/Cyberdeck/index.md deleted file mode 100644 index 6c58669..0000000 --- a/Miscellaneous/Cyberdeck/index.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -description: "Computer" -created: 2023-03-08 ---- - -I want to build a cyberdeck, but isn't that just a weird cumbersome laptop... yes, that's not the point, think of it more as a weird retro inspired electronic simi functional experimental piece of art. - -![Main](main.jpg) -![Back](back.jpg) - -Back will house all the electronics and when the screen is lifted it's shown, i'll add an acrylic plate, which will help guide airflow from the fan through the device. -Will start with a Raspberry Pi, since that's what i have on hand, might change it out to a different SBC with proper NVME support instead of booting of an SD card, or USB adapter. - -## Ideas: -- Screen: Ultra wide screen IPS, smaller e paper display. -- Keyboard: Custom split ergonomic mechanical keyboard with trackball in the middle. -- Pointing device: Rollerball mouse + thinkpad like 3 buttons. -- Modular, expandable, with standard mounting interfaces, and electrically with ports ex. i2c expansion. -- Internal temperature on i2c. -- Modern retro vibe with vent slits. -- All PCB's in the back mounted to an insert plate, to avoid having to re-print the case. - -## Inspiration / resources: -- [Cyberdeck cafe](https://cyberdeck.cafe/mix/what-is-a-cyberdeck) -- [keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/) -- [A Complete Guide to Building a Hand-Wired Keyboard](https://www.crackedthecode.co/a-complete-guide-to-building-a-hand-wired-keyboard/) -- [Power monitoring](https://www.youtube.com/watch?v=Qkx9M-AzznE) -- [OpenSCAD Keycap generator](https://www.thingiverse.com/thing:2783650/files) -### Cool cyberdecks: -- [Skeletal Cyberdeck](https://cyberdeck.cafe/mix/skeletal-cyberdeck) -- [TRL](https://cyberdeck.cafe/mix/trl-22121) -- [GRIZ](https://cyberdeck.cafe/mix/griz) -- [MSG](https://cyberdeck.cafe/mix/msg) -- [TTSD-3085](https://cyberdeck.cafe/mix/ttsd) -- [midknight8008](https://www.thingiverse.com/thing:4939019) - -## Parts: -- [Waveshare 10.4inch QLED Display 1600×720](https://www.waveshare.com/10.4hp-capqled.htm?sku=24646) -- [Waveshare 3S 5V 5A Output with i2c monitoring](https://www.waveshare.com/ups-module-3s.htm) -- [Trackball Breakout by Pimoroni](https://shop.pimoroni.com/products/trackball-breakout) -- [Flat HDMI cable](https://www.aliexpress.com/item/4000014554460.html) -- [1N4148 Diodes for keyboard switches](https://www.aliexpress.com/item/1005005435418695.html) -- [Adafruit KB2040 - RP2040 Kee Boar Driver](https://www.adafruit.com/product/5302) -- [Adafruit SHARP Memory Display Breakout - 2.7" 400x240 Monochrome](https://www.adafruit.com/product/4694) -- Keyboard switches -- Big ON/OFF switch -- External antenna - diff --git a/Miscellaneous/Cyberdeck/main.jpg b/Miscellaneous/Cyberdeck/main.jpg deleted file mode 100644 index 0dead12..0000000 Binary files a/Miscellaneous/Cyberdeck/main.jpg and /dev/null differ diff --git a/Miscellaneous/Facet lantern/Initial idea.webp b/Miscellaneous/Facet lantern/Initial idea.webp deleted file mode 100644 index 9afef95..0000000 Binary files a/Miscellaneous/Facet lantern/Initial idea.webp and /dev/null differ diff --git a/Miscellaneous/Facet lantern/Thumbnail.webp b/Miscellaneous/Facet lantern/Thumbnail.webp deleted file mode 100644 index a01283d..0000000 Binary files a/Miscellaneous/Facet lantern/Thumbnail.webp and /dev/null differ diff --git a/Miscellaneous/Facet lantern/index.md b/Miscellaneous/Facet lantern/index.md deleted file mode 100644 index 968c8fc..0000000 --- a/Miscellaneous/Facet lantern/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -description: "Lantern featuring facets to reflect light" -created: 2025-03-02 ---- - -![Inspiration shell printing](Thumbnail.webp) - -Found this sick 3D model for a lamp shade, it would be nice to repurpose this idea in a latern for hacker camps. - -[Random Noise Lampshade - printables.com](https://www.printables.com/model/239379-random-noise-lampshade) -by [mjseabright - printables.com](https://www.printables.com/@mjseabright) - -![Initial idea](Initial idea.webp) - -So I've seen these [OHM Lights](https://wiki.tkkrlab.nl/tkkrlab.nl/wiki/OHM_LEDS.html) by [TkkrLab](https://tkkrlab.nl/) -at camps before, it would be nice to make something like this, but with a 3D printed diffuser. - -So full credit to these two projects! - diff --git a/Miscellaneous/LCD writing tablet functional principal/Tablet screen filled.png b/Miscellaneous/LCD writing tablet functional principal/Tablet screen filled.png deleted file mode 100644 index 2b5f607..0000000 Binary files a/Miscellaneous/LCD writing tablet functional principal/Tablet screen filled.png and /dev/null differ diff --git a/Miscellaneous/LCD writing tablet functional principal/Thumbnail.png b/Miscellaneous/LCD writing tablet functional principal/Thumbnail.png deleted file mode 100644 index 3a54e2e..0000000 Binary files a/Miscellaneous/LCD writing tablet functional principal/Thumbnail.png and /dev/null differ diff --git a/Miscellaneous/LCD writing tablet functional principal/index.md b/Miscellaneous/LCD writing tablet functional principal/index.md deleted file mode 100644 index c127c09..0000000 --- a/Miscellaneous/LCD writing tablet functional principal/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -description: "Cholesteric liquid-crystal drawing tablet" -created: 2024-05-19 ---- - -![Tablet screen filled](Tablet screen filled.png) - -## Prelude - -I recently stumbled across drawing tablets seemingly works by the means of magic, -the search term is: `LCD writing tablet` -I have a thing for daylight viewable screens, so the allure was irresistible for me. - -After one quick trip to the local hardware store, and subsequently the local hacker space, -i was able to examine the technology first hand, and for low monetary cost too, i might add. - -## Properties - -The properties are as follows: - -- Daylight viewable -- Passive working principle (only requires power to clear the display) -- Pressure amount sensitivity (light pressure = thin line, hard pressure = thick line) - -## Layers - -The tablet consists of a sandwich of 3 layers: - -- A dark background -- A layer of cholesteric liquid-crystals -- A piece of translucent plastic - -## Functional principal - -The means of function of this device, is merely a property of how the cholesteric liquid-crystal work: - -[*"crystals flow at different rates, depending on the direction of pressure being applied"*](https://new.nsf.gov/news/how-liquid-crystal-displays-work-ewriter#:~:text=crystals%20flow%20at%20different%20rates%2C%20depending%20on%20the%20direction%20of%20pressure%20being%20applied) - -[*"anisotropic flow causes the molecules to order themselves to reflect light in those places where a stylus touches the plastic sheet."*](https://new.nsf.gov/news/how-liquid-crystal-displays-work-ewriter#:~:text=anisotropic%20flow%20causes%20the%20molecules%20to%20order%20themselves%20to%20reflect%20light%20in%20those%20places%20where%20a%20stylus%20touches%20the%20plastic%20sheet.) - -## Sources: -1. [How Liquid Crystal Displays Work in an eWriter - new.nsf.gov](https://new.nsf.gov/news/how-liquid-crystal-displays-work-ewriter#:~:text=The%20liquid%20crystals%20are%20surrounded,that%20they%20are%20less%20reflective.) -2. [Cholesteric liquid crystal - wikipedia.org](https://en.wikipedia.org/wiki/Cholesteric_liquid_crystal) -3. [Anisotropy - wikipedia.org](https://en.wikipedia.org/wiki/Anisotropy) \ No newline at end of file diff --git a/Miscellaneous/Oscilloscope/Blocks 3D B.mp4 b/Miscellaneous/Oscilloscope/Blocks 3D B.mp4 deleted file mode 100644 index 70a3399..0000000 Binary files a/Miscellaneous/Oscilloscope/Blocks 3D B.mp4 and /dev/null differ diff --git a/Miscellaneous/Oscilloscope/Full frame display on.png b/Miscellaneous/Oscilloscope/Full frame display on.png deleted file mode 100644 index acba0bb..0000000 Binary files a/Miscellaneous/Oscilloscope/Full frame display on.png and /dev/null differ diff --git a/Miscellaneous/Oscilloscope/Green light.png b/Miscellaneous/Oscilloscope/Green light.png deleted file mode 100644 index f4c2eac..0000000 Binary files a/Miscellaneous/Oscilloscope/Green light.png and /dev/null differ diff --git a/Miscellaneous/Oscilloscope/Hurder Mouse (drift face version).mp4 b/Miscellaneous/Oscilloscope/Hurder Mouse (drift face version).mp4 deleted file mode 100644 index a6d1898..0000000 Binary files a/Miscellaneous/Oscilloscope/Hurder Mouse (drift face version).mp4 and /dev/null differ diff --git a/Miscellaneous/Oscilloscope/Thumbnail.png b/Miscellaneous/Oscilloscope/Thumbnail.png deleted file mode 100644 index 15a14bd..0000000 Binary files a/Miscellaneous/Oscilloscope/Thumbnail.png and /dev/null differ diff --git a/Miscellaneous/Oscilloscope/Warm light streams diverging.png b/Miscellaneous/Oscilloscope/Warm light streams diverging.png deleted file mode 100644 index 04770af..0000000 Binary files a/Miscellaneous/Oscilloscope/Warm light streams diverging.png and /dev/null differ diff --git a/Miscellaneous/Oscilloscope/index.md b/Miscellaneous/Oscilloscope/index.md deleted file mode 100644 index 0778b52..0000000 --- a/Miscellaneous/Oscilloscope/index.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -description: Old analog oscilloscope displaying 2D images through music -created: 2024-03-11 ---- - -![Full frame display on](Full frame display on.png) - -I bought an old oscilloscope some time ago, I love the monochrome analogue display, and the thoughtful dedicated input -methods. - -It does X-Y plotting, allowing it to display oscilloscope music. - -### Video showoff -**FULL DISCLOSURE** i did not create this music. If you think this is cool, go support the guys who made it, -by buying their tracks or software. -Checkout the awesome project at: -[oscilloscopemusic.com](https://oscilloscopemusic.com/) and -[youtube.com - Oscilloscope Music - (Drawing with Sound) - Smarter Every Day 224](https://www.youtube.com/watch?v=4gibcRfp4zA) -to find out more. - -I'm using the audio in a non-commercial use, in appliance with the -[Attribution-NonCommercial-ShareAlike 3.0 Unported](https://creativecommons.org/licenses/by-nc-sa/3.0/) license on their -[bandcamp releases](https://jerobeamfenderson.bandcamp.com/) - -### [Blocks 3D B](https://jerobeamfenderson.bandcamp.com/track/blocks-3d-b) - - - ---- - -### [Hurder Mouse (drift face version)](https://jerobeamfenderson.bandcamp.com/track/hurder-mouse-drift-face-version-2) - - -![Warm light streams diverging.png](Warm light streams diverging.png) -![Green light.png](Green light.png) diff --git a/Miscellaneous/Raspberry Pi cooling/Thumbnail.jpg b/Miscellaneous/Raspberry Pi cooling/Thumbnail.jpg deleted file mode 100644 index c1aa439..0000000 Binary files a/Miscellaneous/Raspberry Pi cooling/Thumbnail.jpg and /dev/null differ diff --git a/Miscellaneous/Raspberry Pi cooling/case.jpg b/Miscellaneous/Raspberry Pi cooling/case.jpg deleted file mode 100644 index ac00f48..0000000 Binary files a/Miscellaneous/Raspberry Pi cooling/case.jpg and /dev/null differ diff --git a/Miscellaneous/Raspberry Pi cooling/graph.png b/Miscellaneous/Raspberry Pi cooling/graph.png deleted file mode 100644 index 8efbf4c..0000000 Binary files a/Miscellaneous/Raspberry Pi cooling/graph.png and /dev/null differ diff --git a/Miscellaneous/Raspberry Pi cooling/index.md b/Miscellaneous/Raspberry Pi cooling/index.md deleted file mode 100644 index bc2b388..0000000 --- a/Miscellaneous/Raspberry Pi cooling/index.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -description: "Comparison of combos of stock, fan and heatsink" -created: 2022-11-10 ---- - -![Main](main.jpg) - -3D printed raspberry pi case with an undervolted fan, and heatsinks. - -![Main](case.jpg) -![Main](graph.png) - diff --git a/Miscellaneous/Raspberry Pi cooling/main.jpg b/Miscellaneous/Raspberry Pi cooling/main.jpg deleted file mode 100644 index c93bdae..0000000 Binary files a/Miscellaneous/Raspberry Pi cooling/main.jpg and /dev/null differ diff --git a/Miscellaneous/Sharp memory display/Holding jig.jpg b/Miscellaneous/Sharp memory display/Holding jig.jpg deleted file mode 100644 index 4fa7355..0000000 Binary files a/Miscellaneous/Sharp memory display/Holding jig.jpg and /dev/null differ diff --git a/Miscellaneous/Sharp memory display/Thumbnail.jpg b/Miscellaneous/Sharp memory display/Thumbnail.jpg deleted file mode 100644 index 0f2ccac..0000000 Binary files a/Miscellaneous/Sharp memory display/Thumbnail.jpg and /dev/null differ diff --git a/Miscellaneous/Sharp memory display/index.md b/Miscellaneous/Sharp memory display/index.md deleted file mode 100644 index 6a6a5de..0000000 --- a/Miscellaneous/Sharp memory display/index.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -description: LS012B7DH02 -created: 2024-01-19 ---- - -![Holding jig](Holding jig.jpg) - -Collection of information regarding the sharp memory display `LS012B7DH02` -For memorization and referring back to. - -## Summarization of the datasheet information - -### Precautions - - Don't excessively bend the connector. - - If displaying a static image for a prologed time, refresh every 2 hours to avoid burn in? - - It's made of glass - - Clean with isopropyl alcohol - - Don't glue it - - UV / Sunlight exposure bad :/ but how bad? time will test this assertion - - Static electricity might cause pixels to not be shown, update frequently to reconcile LCD coagulates at low temperatures, room temperature is optional - - Place controller driver near LCD due to impedance - -### Specs - - View port 1.20” - - 240x240 pixels - - [TFT LCD](https://en.wikipedia.org/wiki/TFT_LCD) - - Dot pitch 0.127mm - - Size: 35.78 (W) × 36.53 (H) × 1.605 (D) - - Hardness: 3H - -### Pinout -Terminal | Symbol | I/O | Configurations | Function | Remark --------- | ------ | ---- | -------------- | -------- | ------ -1 | SCLK | INPUT | NoPull | Serial clock signal | -2 | SI | INPUT | NoPull | Serial data input signal | -3 | SCS | INPUT | NoPull | Chip select signal ( Active of Hi ) | -4 | EXTCOMIN | INPUT | NoPull | External COM inversion signal input ( Square wave) | 【Note 4-2】 -5 | DISP | INPUT | NoPull | Display ON/OFF signal | 【Note 4-1】 -6 | VDDA | POWER | - | Power supply (Analog) | -7 | VDD | POWER | - | Power supply (Digital) | -8 | EXTMODE | INPUT | NoPull | Control mode of COM inversion is select terminal | 【Note 4-2】 -9 | VSS | GND | - | GND (Digital) | -10 | VSSA | GND | - | GND (Analog) | diff --git a/Oscilloscope/Blocks 3D B.mp4 b/Oscilloscope/Blocks 3D B.mp4 new file mode 100644 index 0000000..70a3399 Binary files /dev/null and b/Oscilloscope/Blocks 3D B.mp4 differ diff --git a/Oscilloscope/Full frame display on.png b/Oscilloscope/Full frame display on.png new file mode 100644 index 0000000..acba0bb Binary files /dev/null and b/Oscilloscope/Full frame display on.png differ diff --git a/Oscilloscope/Green light.png b/Oscilloscope/Green light.png new file mode 100644 index 0000000..f4c2eac Binary files /dev/null and b/Oscilloscope/Green light.png differ diff --git a/Oscilloscope/Hurder Mouse (drift face version).mp4 b/Oscilloscope/Hurder Mouse (drift face version).mp4 new file mode 100644 index 0000000..a6d1898 Binary files /dev/null and b/Oscilloscope/Hurder Mouse (drift face version).mp4 differ diff --git a/Oscilloscope/Thumbnail.png b/Oscilloscope/Thumbnail.png new file mode 100644 index 0000000..15a14bd Binary files /dev/null and b/Oscilloscope/Thumbnail.png differ diff --git a/Oscilloscope/Warm light streams diverging.png b/Oscilloscope/Warm light streams diverging.png new file mode 100644 index 0000000..04770af Binary files /dev/null and b/Oscilloscope/Warm light streams diverging.png differ diff --git a/Oscilloscope/index.md b/Oscilloscope/index.md new file mode 100644 index 0000000..0778b52 --- /dev/null +++ b/Oscilloscope/index.md @@ -0,0 +1,41 @@ +--- +description: Old analog oscilloscope displaying 2D images through music +created: 2024-03-11 +--- + +![Full frame display on](Full frame display on.png) + +I bought an old oscilloscope some time ago, I love the monochrome analogue display, and the thoughtful dedicated input +methods. + +It does X-Y plotting, allowing it to display oscilloscope music. + +### Video showoff +**FULL DISCLOSURE** i did not create this music. If you think this is cool, go support the guys who made it, +by buying their tracks or software. +Checkout the awesome project at: +[oscilloscopemusic.com](https://oscilloscopemusic.com/) and +[youtube.com - Oscilloscope Music - (Drawing with Sound) - Smarter Every Day 224](https://www.youtube.com/watch?v=4gibcRfp4zA) +to find out more. + +I'm using the audio in a non-commercial use, in appliance with the +[Attribution-NonCommercial-ShareAlike 3.0 Unported](https://creativecommons.org/licenses/by-nc-sa/3.0/) license on their +[bandcamp releases](https://jerobeamfenderson.bandcamp.com/) + +### [Blocks 3D B](https://jerobeamfenderson.bandcamp.com/track/blocks-3d-b) + + + +--- + +### [Hurder Mouse (drift face version)](https://jerobeamfenderson.bandcamp.com/track/hurder-mouse-drift-face-version-2) + + +![Warm light streams diverging.png](Warm light streams diverging.png) +![Green light.png](Green light.png) diff --git a/Python logging.md b/Python logging.md new file mode 100644 index 0000000..867dc20 --- /dev/null +++ b/Python logging.md @@ -0,0 +1,114 @@ +--- +created: 2024-03-17 +description: Python logging with ✨pretty colors🌸 +--- + +## Logging > print +Logging is useful, because all python code can use the same standard, allowing you to centrally control: + +- Which messages you wish to see + - Every debug message, for local development + - Disable debug messages, by changing 1 line e.g. for end user deployment +- How to format them + - Do you wish to see which module and line of code this message originated from +- Where they should end up + - Printed to [STDOUT](https://en.wikipedia.org/wiki/Standard_streams) (terminal) + - A log file + - A log server + - Maybe a notification should be triggered on CRITICAL errors + +> A python [*"module"*](https://docs.python.org/3/tutorial/modules.html) is simply just the name for a .py file. +> e.g. the file `database_handler.py` is a module called `database_handler` + +```py +import logging + + +class ColorFormatter(logging.Formatter): + grey = "\x1b[90;20m" + cyan = "\x1b[96;20m" + yellow = "\x1b[33;20m" + red = "\x1b[31;20m" + bold_red = "\x1b[31;1m" + reset = "\x1b[0m" + format = "%(asctime)s,%(msecs)03d %(levelname)-8s [%(filename)s:%(lineno)d] %(message)s" + + FORMATS = { + logging.DEBUG: grey + format + reset, + logging.INFO: cyan + format + reset, + logging.WARNING: yellow + format + reset, + logging.ERROR: red + format + reset, + logging.CRITICAL: bold_red + format + reset + } + + def format(self, record): + log_fmt = self.FORMATS.get(record.levelno) + formatter = logging.Formatter(log_fmt) + return formatter.format(record) + + +logger = logging.getLogger(__name__) # Instantiate a logger to be used in this module + +# Display every message Change this to INFO to see INFO and above (filter out DEBUG) +# See: https://docs.python.org/3/howto/logging.html#logging-levels +logger.root.setLevel(logging.DEBUG) + +stream_handler = logging.StreamHandler() # This catches and handles log messages on the root handler +stream_handler.setFormatter(ColorFormatter()) +logger.root.addHandler(stream_handler) + +logger.debug("debug message") +logger.info("info message") +logger.warning("warning message") +logger.error("error message") +logger.critical("critical message") +``` + +> Code snippet is modified, but based on: +> [stackoverflow.com - How can I color Python logging output?](https://stackoverflow.com/questions/384076/how-can-i-color-python-logging-output#answer-56944256). +> Used and credited as per [stackoverflow.com - CC BY-SA 4.0 content license](https://stackoverflow.com/help/licensing) + +
+$ python /tmp/1.py
+2024-03-17 14:09:06,411,411 DEBUG    [1.py:37] debug message
+2024-03-17 14:09:06,411,411 INFO     [1.py:38] info message
+2024-03-17 14:09:06,411,411 WARNING  [1.py:39] warning message
+2024-03-17 14:09:06,411,411 ERROR    [1.py:40] error message
+2024-03-17 14:09:06,411,411 CRITICAL [1.py:41] critical message
+
+ + +In subsequent modules, do the following: +```py +import logging + +logger = logging.getLogger(__name__) # Set the logger name, to the name of the module + +logger.debug("debug message") +logger.info("info message") +logger.warning("warning message") +logger.error("error message") +logger.critical("critical message") +``` + +> Wish to change the colors? +> Color codes can be found here: [wikipedia.org - ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#3-bit_and_4-bit) + +Okay, but why do we need to do it this way? + +Because logging is hieratical, these 2 loggers will be siblings under the root logger (see following tree structure). +Therefore we set a handler on the root logger which ensures all logging will hit our formatting code. + +
+$ root
+├──  main
+└──  module_a
+
+ +You can set a breakpoint and inspect `logger.parent` to see this structure: +```pycon +>>> logger.parent + +``` + +Read more: [docs.python.org - Logging HOWTO](https://docs.python.org/3/howto/logging.html) diff --git a/Raspberry Pi cooling/Thumbnail.jpg b/Raspberry Pi cooling/Thumbnail.jpg new file mode 100644 index 0000000..c1aa439 Binary files /dev/null and b/Raspberry Pi cooling/Thumbnail.jpg differ diff --git a/Raspberry Pi cooling/case.jpg b/Raspberry Pi cooling/case.jpg new file mode 100644 index 0000000..ac00f48 Binary files /dev/null and b/Raspberry Pi cooling/case.jpg differ diff --git a/Raspberry Pi cooling/graph.png b/Raspberry Pi cooling/graph.png new file mode 100644 index 0000000..8efbf4c Binary files /dev/null and b/Raspberry Pi cooling/graph.png differ diff --git a/Raspberry Pi cooling/index.md b/Raspberry Pi cooling/index.md new file mode 100644 index 0000000..bc2b388 --- /dev/null +++ b/Raspberry Pi cooling/index.md @@ -0,0 +1,12 @@ +--- +description: "Comparison of combos of stock, fan and heatsink" +created: 2022-11-10 +--- + +![Main](main.jpg) + +3D printed raspberry pi case with an undervolted fan, and heatsinks. + +![Main](case.jpg) +![Main](graph.png) + diff --git a/Raspberry Pi cooling/main.jpg b/Raspberry Pi cooling/main.jpg new file mode 100644 index 0000000..c93bdae Binary files /dev/null and b/Raspberry Pi cooling/main.jpg differ diff --git a/Sharp memory display/Holding jig.jpg b/Sharp memory display/Holding jig.jpg new file mode 100644 index 0000000..4fa7355 Binary files /dev/null and b/Sharp memory display/Holding jig.jpg differ diff --git a/Sharp memory display/Thumbnail.jpg b/Sharp memory display/Thumbnail.jpg new file mode 100644 index 0000000..0f2ccac Binary files /dev/null and b/Sharp memory display/Thumbnail.jpg differ diff --git a/Sharp memory display/index.md b/Sharp memory display/index.md new file mode 100644 index 0000000..6a6a5de --- /dev/null +++ b/Sharp memory display/index.md @@ -0,0 +1,43 @@ +--- +description: LS012B7DH02 +created: 2024-01-19 +--- + +![Holding jig](Holding jig.jpg) + +Collection of information regarding the sharp memory display `LS012B7DH02` +For memorization and referring back to. + +## Summarization of the datasheet information + +### Precautions + - Don't excessively bend the connector. + - If displaying a static image for a prologed time, refresh every 2 hours to avoid burn in? + - It's made of glass + - Clean with isopropyl alcohol + - Don't glue it + - UV / Sunlight exposure bad :/ but how bad? time will test this assertion + - Static electricity might cause pixels to not be shown, update frequently to reconcile LCD coagulates at low temperatures, room temperature is optional + - Place controller driver near LCD due to impedance + +### Specs + - View port 1.20” + - 240x240 pixels + - [TFT LCD](https://en.wikipedia.org/wiki/TFT_LCD) + - Dot pitch 0.127mm + - Size: 35.78 (W) × 36.53 (H) × 1.605 (D) + - Hardness: 3H + +### Pinout +Terminal | Symbol | I/O | Configurations | Function | Remark +-------- | ------ | ---- | -------------- | -------- | ------ +1 | SCLK | INPUT | NoPull | Serial clock signal | +2 | SI | INPUT | NoPull | Serial data input signal | +3 | SCS | INPUT | NoPull | Chip select signal ( Active of Hi ) | +4 | EXTCOMIN | INPUT | NoPull | External COM inversion signal input ( Square wave) | 【Note 4-2】 +5 | DISP | INPUT | NoPull | Display ON/OFF signal | 【Note 4-1】 +6 | VDDA | POWER | - | Power supply (Analog) | +7 | VDD | POWER | - | Power supply (Digital) | +8 | EXTMODE | INPUT | NoPull | Control mode of COM inversion is select terminal | 【Note 4-2】 +9 | VSS | GND | - | GND (Digital) | +10 | VSSA | GND | - | GND (Analog) | -- cgit 1.4.1