summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to 'misc')
-rw-r--r--misc/64x64 HUB 75 LED Matrix/Chip 1.webpbin0 -> 43662 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/Chip 2.webpbin0 -> 59138 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/Chip 3.webpbin0 -> 59630 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webpbin0 -> 9622 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webpbin0 -> 10506 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/In left.webpbin0 -> 11264 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/In right.webpbin0 -> 12206 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/Main.webpbin0 -> 64750 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/Thumbnail.webpbin0 -> 7930 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webpbin0 -> 13686 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webpbin0 -> 16930 bytes
-rw-r--r--misc/64x64 HUB 75 LED Matrix/index.md138
-rw-r--r--misc/Blog meta.md37
-rw-r--r--misc/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpgbin0 -> 1449157 bytes
-rw-r--r--misc/Casio watch NFC rainbow film mod/Inside.jpgbin0 -> 773514 bytes
-rw-r--r--misc/Casio watch NFC rainbow film mod/Thumbnail.jpgbin0 -> 20399 bytes
-rw-r--r--misc/Casio watch NFC rainbow film mod/W59 modded front.pngbin0 -> 5407171 bytes
-rw-r--r--misc/Casio watch NFC rainbow film mod/index.md27
-rw-r--r--misc/Coded portable games/Thumbnail.jpgbin0 -> 16132 bytes
-rw-r--r--misc/Coded portable games/Watchy 2048 BH 2022 badge tetris.jpgbin0 -> 1291583 bytes
-rw-r--r--misc/Coded portable games/index.md14
-rw-r--r--misc/Cyberdeck/Thumbnail.jpgbin0 -> 8281 bytes
-rw-r--r--misc/Cyberdeck/back.jpgbin0 -> 575251 bytes
-rw-r--r--misc/Cyberdeck/index.md50
-rw-r--r--misc/Cyberdeck/main.jpgbin0 -> 602606 bytes
-rw-r--r--misc/Embroidery/Alderaan.jpgbin0 -> 822433 bytes
-rw-r--r--misc/Embroidery/Copenhagen local trains.jpgbin0 -> 2201229 bytes
-rw-r--r--misc/Embroidery/Death star Alderaan.jpgbin0 -> 950209 bytes
-rw-r--r--misc/Embroidery/Death star sketch.jpgbin0 -> 704363 bytes
-rw-r--r--misc/Embroidery/Skeleton bongo cat BMTH.jpgbin0 -> 251724 bytes
-rw-r--r--misc/Embroidery/Thumbnail.jpgbin0 -> 13808 bytes
-rw-r--r--misc/Embroidery/index.md15
-rw-r--r--misc/Envelope (mathematics) generator/Envelope.pngbin0 -> 80865 bytes
-rw-r--r--misc/Envelope (mathematics) generator/Thumbnail.pngbin0 -> 2297 bytes
-rw-r--r--misc/Envelope (mathematics) generator/index.md35
-rw-r--r--misc/How to - Custom handwired keyboard.md116
-rw-r--r--misc/LCD writing tablet functional principal/Tablet screen filled.pngbin0 -> 9738386 bytes
-rw-r--r--misc/LCD writing tablet functional principal/Thumbnail.pngbin0 -> 38571 bytes
-rw-r--r--misc/LCD writing tablet functional principal/index.md46
-rw-r--r--misc/Oscilloscope/Blocks 3D B.mp4bin0 -> 15131637 bytes
-rw-r--r--misc/Oscilloscope/Full frame display on.pngbin0 -> 7586633 bytes
-rw-r--r--misc/Oscilloscope/Green light.pngbin0 -> 5695249 bytes
-rw-r--r--misc/Oscilloscope/Hurder Mouse (drift face version).mp4bin0 -> 7507377 bytes
-rw-r--r--misc/Oscilloscope/Thumbnail.pngbin0 -> 43035 bytes
-rw-r--r--misc/Oscilloscope/Warm light streams diverging.pngbin0 -> 8577279 bytes
-rw-r--r--misc/Oscilloscope/index.md41
-rw-r--r--misc/Python logging/Thumbnail.webpbin0 -> 37606 bytes
-rw-r--r--misc/Python logging/index.md114
-rw-r--r--misc/QMK firmware keychron c1/Firmware colemak switch.pngbin0 -> 45266 bytes
-rw-r--r--misc/QMK firmware keychron c1/Thumbnail.jpgbin0 -> 15109 bytes
-rw-r--r--misc/QMK firmware keychron c1/index.md111
-rw-r--r--misc/QMK firmware keychron c1/main.jpgbin0 -> 2256985 bytes
-rw-r--r--misc/Raspberry Pi cooling/Thumbnail.jpgbin0 -> 9446 bytes
-rw-r--r--misc/Raspberry Pi cooling/case.jpgbin0 -> 430370 bytes
-rw-r--r--misc/Raspberry Pi cooling/graph.pngbin0 -> 291124 bytes
-rw-r--r--misc/Raspberry Pi cooling/index.md12
-rw-r--r--misc/Raspberry Pi cooling/main.jpgbin0 -> 379828 bytes
-rw-r--r--misc/Sharp memory display/Holding jig.jpgbin0 -> 875991 bytes
-rw-r--r--misc/Sharp memory display/Thumbnail.jpgbin0 -> 8481 bytes
-rw-r--r--misc/Sharp memory display/index.md43
-rw-r--r--misc/lightsabers/Thumbnail_.webpbin0 -> 4242 bytes
-rw-r--r--misc/lightsabers/emitter.webpbin0 -> 139624 bytes
-rw-r--r--misc/lightsabers/index.md8
-rw-r--r--misc/lightsabers/lightsabers.webpbin0 -> 203886 bytes
-rw-r--r--misc/lightsabers/rust.webpbin0 -> 38738 bytes
65 files changed, 807 insertions, 0 deletions
diff --git a/misc/64x64 HUB 75 LED Matrix/Chip 1.webp b/misc/64x64 HUB 75 LED Matrix/Chip 1.webp
new file mode 100644
index 0000000..8ae480e
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/Chip 1.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/Chip 2.webp b/misc/64x64 HUB 75 LED Matrix/Chip 2.webp
new file mode 100644
index 0000000..fc38e70
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/Chip 2.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/Chip 3.webp b/misc/64x64 HUB 75 LED Matrix/Chip 3.webp
new file mode 100644
index 0000000..9609ecd
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/Chip 3.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp b/misc/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp
new file mode 100644
index 0000000..0901ba0
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/ESP32 S2 Mini.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp b/misc/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp
new file mode 100644
index 0000000..7c87e6e
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/ESP32-S2F_chip.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/In left.webp b/misc/64x64 HUB 75 LED Matrix/In left.webp
new file mode 100644
index 0000000..cae1de2
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/In left.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/In right.webp b/misc/64x64 HUB 75 LED Matrix/In right.webp
new file mode 100644
index 0000000..ee4f64e
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/In right.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/Main.webp b/misc/64x64 HUB 75 LED Matrix/Main.webp
new file mode 100644
index 0000000..39e456a
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/Main.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/Thumbnail.webp b/misc/64x64 HUB 75 LED Matrix/Thumbnail.webp
new file mode 100644
index 0000000..f55842c
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/Thumbnail.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp b/misc/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp
new file mode 100644
index 0000000..a0a20e5
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/esp32_display_pcb_bottom.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp b/misc/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp
new file mode 100644
index 0000000..bfdecbd
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/esp32_display_pcb_top_plugged_in.webp
Binary files differ
diff --git a/misc/64x64 HUB 75 LED Matrix/index.md b/misc/64x64 HUB 75 LED Matrix/index.md
new file mode 100644
index 0000000..36da87e
--- /dev/null
+++ b/misc/64x64 HUB 75 LED Matrix/index.md
@@ -0,0 +1,138 @@
+---
+description: "Me documenting my 64x64 LED matrix display"
+created: 2025-03-11
+---
+
+![Main](Main.webp)
+
+[TOC]
+
+## 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:
+<https://github.com/mrcodetastic/ESP32-HUB75-MatrixPanel-DMA/issues/130#issuecomment-867116753>
+
+---
+
+## Software
+
+<https://github.com/mrcodetastic/ESP32-HUB75-MatrixPanel-DMA>
+
+```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/misc/Blog meta.md b/misc/Blog meta.md
new file mode 100644
index 0000000..2893758
--- /dev/null
+++ b/misc/Blog meta.md
@@ -0,0 +1,37 @@
+---
+description: Information about this blog itself
+created: 2023-12-21
+---
+
+This blog is running on a self made backend:
+[flask backend git repo](https://git.node5.net/blog/blog.node5.net_flask/about/)
+
+The article source markdown and other files are tracked in a separate repo:
+[article git repo](https://git.node5.net/blog/articles/)
+
+To see the history for a given article, click the modified date to go to the git repo log example for this article:
+[Blog meta - git repo - history](https://git.node5.net/blog/articles/log/Blog%20meta.md)
+
+This blog used to be a statically generated site derived from markdown files, first using
+[jekyll](https://jekyllrb.com/).
+Then later using:
+[self made blog generator git repo](https://git.node5.net/blog/blog-generator/about)
+
+This blog has gone through design revisions, try visiting [/old](https://blog.node5.net/old) to see the old design.
+
+The blog is designed so there's minimal distractions, your attention span only has to follow one line down the page.
+
+The web is generally pretty annoying to use nowadays, since most pages are mini applications that you download, their
+performance is sluggish and generally just employ "features" that get in the way of obtaining the desired information,
+requiring cognitive overhead.
+
+I've made this blog to document my projects, aiding my own information retention, future reference for myself,
+and showing off to others
+
+The blog is available as a tor hidden service visit [tor.node5.net](https://node5.net) or
+[node5net2j2kvsepjjlbnovz6wwpcclur3ecuadmo36cikjriqxaucid.onion](http://node5net2j2kvsepjjlbnovz6wwpcclur3ecuadmo36cikjriqxaucid.onion)
+directly
+
+### Attributions:
+- Font: [github.com - RobotoMono](https://github.com/googlefonts/RobotoMono)
+- Dev icons: [vorillaz.github.io - devicons](vorillaz.github.io/devicons/) \ No newline at end of file
diff --git a/misc/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg b/misc/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg
new file mode 100644
index 0000000..31cf7f8
--- /dev/null
+++ b/misc/Casio watch NFC rainbow film mod/Casio rainbowfilm nfc mod.jpg
Binary files differ
diff --git a/misc/Casio watch NFC rainbow film mod/Inside.jpg b/misc/Casio watch NFC rainbow film mod/Inside.jpg
new file mode 100644
index 0000000..5871647
--- /dev/null
+++ b/misc/Casio watch NFC rainbow film mod/Inside.jpg
Binary files differ
diff --git a/misc/Casio watch NFC rainbow film mod/Thumbnail.jpg b/misc/Casio watch NFC rainbow film mod/Thumbnail.jpg
new file mode 100644
index 0000000..5def80b
--- /dev/null
+++ b/misc/Casio watch NFC rainbow film mod/Thumbnail.jpg
Binary files differ
diff --git a/misc/Casio watch NFC rainbow film mod/W59 modded front.png b/misc/Casio watch NFC rainbow film mod/W59 modded front.png
new file mode 100644
index 0000000..6672e22
--- /dev/null
+++ b/misc/Casio watch NFC rainbow film mod/W59 modded front.png
Binary files differ
diff --git a/misc/Casio watch NFC rainbow film mod/index.md b/misc/Casio watch NFC rainbow film mod/index.md
new file mode 100644
index 0000000..59e0675
--- /dev/null
+++ b/misc/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&#32;rainbowfilm&#32;nfc&#32;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&#32;modded&#32;front.png)
diff --git a/misc/Coded portable games/Thumbnail.jpg b/misc/Coded portable games/Thumbnail.jpg
new file mode 100644
index 0000000..c114a8c
--- /dev/null
+++ b/misc/Coded portable games/Thumbnail.jpg
Binary files differ
diff --git a/misc/Coded portable games/Watchy 2048 BH 2022 badge tetris.jpg b/misc/Coded portable games/Watchy 2048 BH 2022 badge tetris.jpg
new file mode 100644
index 0000000..e140d29
--- /dev/null
+++ b/misc/Coded portable games/Watchy 2048 BH 2022 badge tetris.jpg
Binary files differ
diff --git a/misc/Coded portable games/index.md b/misc/Coded portable games/index.md
new file mode 100644
index 0000000..f619848
--- /dev/null
+++ b/misc/Coded portable games/index.md
@@ -0,0 +1,14 @@
+---
+description: "Coded 2048 for Watchy, and tetris for BornHack badge 2022"
+created: 2024-04-09
+---
+
+![Watchy 2048 BH 2022 badge tetris](Watchy&#32;2048&#32;BH&#32;2022&#32;badge&#32;tetris.jpg)
+
+I was quite fascinated with these devices and decided to do a weekend project for each of them (2 weekends total)
+
+Checkout the awesome [Bornhack 2022 badge](https://github.com/bornhack/badge2022)
+
+and the awesome E-Paper watch: [Watchy](https://watchy.sqfmi.com/)
+
+[Tetris code](https://git.node5.net/firmware/tetris-bornhack-badge-2022/tree/code.py) \ No newline at end of file
diff --git a/misc/Cyberdeck/Thumbnail.jpg b/misc/Cyberdeck/Thumbnail.jpg
new file mode 100644
index 0000000..0bc55a6
--- /dev/null
+++ b/misc/Cyberdeck/Thumbnail.jpg
Binary files differ
diff --git a/misc/Cyberdeck/back.jpg b/misc/Cyberdeck/back.jpg
new file mode 100644
index 0000000..ad0f554
--- /dev/null
+++ b/misc/Cyberdeck/back.jpg
Binary files differ
diff --git a/misc/Cyberdeck/index.md b/misc/Cyberdeck/index.md
new file mode 100644
index 0000000..5e0a09a
--- /dev/null
+++ b/misc/Cyberdeck/index.md
@@ -0,0 +1,50 @@
+---
+description: "Computer"
+created: 2023-03-08
+---
+
+[TOC]
+
+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/misc/Cyberdeck/main.jpg b/misc/Cyberdeck/main.jpg
new file mode 100644
index 0000000..0dead12
--- /dev/null
+++ b/misc/Cyberdeck/main.jpg
Binary files differ
diff --git a/misc/Embroidery/Alderaan.jpg b/misc/Embroidery/Alderaan.jpg
new file mode 100644
index 0000000..7d3efef
--- /dev/null
+++ b/misc/Embroidery/Alderaan.jpg
Binary files differ
diff --git a/misc/Embroidery/Copenhagen local trains.jpg b/misc/Embroidery/Copenhagen local trains.jpg
new file mode 100644
index 0000000..aa9c6c6
--- /dev/null
+++ b/misc/Embroidery/Copenhagen local trains.jpg
Binary files differ
diff --git a/misc/Embroidery/Death star Alderaan.jpg b/misc/Embroidery/Death star Alderaan.jpg
new file mode 100644
index 0000000..873aaf1
--- /dev/null
+++ b/misc/Embroidery/Death star Alderaan.jpg
Binary files differ
diff --git a/misc/Embroidery/Death star sketch.jpg b/misc/Embroidery/Death star sketch.jpg
new file mode 100644
index 0000000..9183ff5
--- /dev/null
+++ b/misc/Embroidery/Death star sketch.jpg
Binary files differ
diff --git a/misc/Embroidery/Skeleton bongo cat BMTH.jpg b/misc/Embroidery/Skeleton bongo cat BMTH.jpg
new file mode 100644
index 0000000..0dab59d
--- /dev/null
+++ b/misc/Embroidery/Skeleton bongo cat BMTH.jpg
Binary files differ
diff --git a/misc/Embroidery/Thumbnail.jpg b/misc/Embroidery/Thumbnail.jpg
new file mode 100644
index 0000000..64b2e6a
--- /dev/null
+++ b/misc/Embroidery/Thumbnail.jpg
Binary files differ
diff --git a/misc/Embroidery/index.md b/misc/Embroidery/index.md
new file mode 100644
index 0000000..c587b3d
--- /dev/null
+++ b/misc/Embroidery/index.md
@@ -0,0 +1,15 @@
+---
+description: Embroidered T-Shirts
+created: 2024-02-01
+---
+
+![Skeleton bongo cat BMTH](Skeleton&#32;bongo&#32;cat&#32;BMTH.jpg)
+
+![copenhagen_local_trains](Copenhagen&#32;local&#32;trains.jpg)
+
+![Death star sketch](Death&#32;star&#32;sketch.jpg)
+![Death star Alderaan](Death&#32;star&#32;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/misc/Envelope (mathematics) generator/Envelope.png b/misc/Envelope (mathematics) generator/Envelope.png
new file mode 100644
index 0000000..f7cf72c
--- /dev/null
+++ b/misc/Envelope (mathematics) generator/Envelope.png
Binary files differ
diff --git a/misc/Envelope (mathematics) generator/Thumbnail.png b/misc/Envelope (mathematics) generator/Thumbnail.png
new file mode 100644
index 0000000..01eb49e
--- /dev/null
+++ b/misc/Envelope (mathematics) generator/Thumbnail.png
Binary files differ
diff --git a/misc/Envelope (mathematics) generator/index.md b/misc/Envelope (mathematics) generator/index.md
new file mode 100644
index 0000000..423d750
--- /dev/null
+++ b/misc/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/misc/How to - Custom handwired keyboard.md b/misc/How to - Custom handwired keyboard.md
new file mode 100644
index 0000000..67d4f9e
--- /dev/null
+++ b/misc/How to - Custom handwired keyboard.md
@@ -0,0 +1,116 @@
+---
+description: Process of how to create a custom designed hardwired keyboard
+created: 2024-03-01
+---
+
+[TOC]
+
+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
diff --git a/misc/LCD writing tablet functional principal/Tablet screen filled.png b/misc/LCD writing tablet functional principal/Tablet screen filled.png
new file mode 100644
index 0000000..2b5f607
--- /dev/null
+++ b/misc/LCD writing tablet functional principal/Tablet screen filled.png
Binary files differ
diff --git a/misc/LCD writing tablet functional principal/Thumbnail.png b/misc/LCD writing tablet functional principal/Thumbnail.png
new file mode 100644
index 0000000..3a54e2e
--- /dev/null
+++ b/misc/LCD writing tablet functional principal/Thumbnail.png
Binary files differ
diff --git a/misc/LCD writing tablet functional principal/index.md b/misc/LCD writing tablet functional principal/index.md
new file mode 100644
index 0000000..bccac9f
--- /dev/null
+++ b/misc/LCD writing tablet functional principal/index.md
@@ -0,0 +1,46 @@
+---
+description: "Cholesteric liquid-crystal drawing tablet"
+created: 2024-05-19
+---
+
+[TOC]
+
+![Tablet screen filled](Tablet&#32;screen&#32;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)
diff --git a/misc/Oscilloscope/Blocks 3D B.mp4 b/misc/Oscilloscope/Blocks 3D B.mp4
new file mode 100644
index 0000000..70a3399
--- /dev/null
+++ b/misc/Oscilloscope/Blocks 3D B.mp4
Binary files differ
diff --git a/misc/Oscilloscope/Full frame display on.png b/misc/Oscilloscope/Full frame display on.png
new file mode 100644
index 0000000..acba0bb
--- /dev/null
+++ b/misc/Oscilloscope/Full frame display on.png
Binary files differ
diff --git a/misc/Oscilloscope/Green light.png b/misc/Oscilloscope/Green light.png
new file mode 100644
index 0000000..f4c2eac
--- /dev/null
+++ b/misc/Oscilloscope/Green light.png
Binary files differ
diff --git a/misc/Oscilloscope/Hurder Mouse (drift face version).mp4 b/misc/Oscilloscope/Hurder Mouse (drift face version).mp4
new file mode 100644
index 0000000..a6d1898
--- /dev/null
+++ b/misc/Oscilloscope/Hurder Mouse (drift face version).mp4
Binary files differ
diff --git a/misc/Oscilloscope/Thumbnail.png b/misc/Oscilloscope/Thumbnail.png
new file mode 100644
index 0000000..15a14bd
--- /dev/null
+++ b/misc/Oscilloscope/Thumbnail.png
Binary files differ
diff --git a/misc/Oscilloscope/Warm light streams diverging.png b/misc/Oscilloscope/Warm light streams diverging.png
new file mode 100644
index 0000000..04770af
--- /dev/null
+++ b/misc/Oscilloscope/Warm light streams diverging.png
Binary files differ
diff --git a/misc/Oscilloscope/index.md b/misc/Oscilloscope/index.md
new file mode 100644
index 0000000..0778b52
--- /dev/null
+++ b/misc/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&#32;frame&#32;display&#32;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)
+
+<video controls style="width: 100%">
+ <source src="Blocks 3D B.mp4" type="video/mp4">
+ Your browser does not support the video tag.
+</video>
+
+---
+
+### [Hurder Mouse (drift face version)](https://jerobeamfenderson.bandcamp.com/track/hurder-mouse-drift-face-version-2)
+<video controls style="width: 100%">
+ <source src="Hurder Mouse (drift face version).mp4" type="video/mp4">
+ Your browser does not support the video tag.
+</video>
+
+![Warm light streams diverging.png](Warm&#32;light&#32;streams&#32;diverging.png)
+![Green light.png](Green&#32;light.png)
diff --git a/misc/Python logging/Thumbnail.webp b/misc/Python logging/Thumbnail.webp
new file mode 100644
index 0000000..04ee667
--- /dev/null
+++ b/misc/Python logging/Thumbnail.webp
Binary files differ
diff --git a/misc/Python logging/index.md b/misc/Python logging/index.md
new file mode 100644
index 0000000..867dc20
--- /dev/null
+++ b/misc/Python logging/index.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)
+
+<pre>
+$ python /tmp/1.py
+<span style="color:grey">2024-03-17 14:09:06,411,411 DEBUG [1.py:37] debug message</span>
+<span style="color:var(--main-color)">2024-03-17 14:09:06,411,411 INFO [1.py:38] info message</span>
+<span style="color:yellow">2024-03-17 14:09:06,411,411 WARNING [1.py:39] warning message</span>
+<span style="color:red">2024-03-17 14:09:06,411,411 ERROR [1.py:40] error message</span>
+<span style="font-weight: bold; color:red">2024-03-17 14:09:06,411,411 CRITICAL [1.py:41] critical message</span>
+</pre>
+
+
+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.
+
+<pre>
+$ root
+├── <span class="devicons devicons-python"></span> main
+└── <span class="devicons devicons-python"></span> module_a
+</pre>
+
+You can set a breakpoint and inspect `logger.parent` to see this structure:
+```pycon
+>>> logger.parent
+<RootLogger root (DEBUG)>
+```
+
+Read more: [docs.python.org - Logging HOWTO](https://docs.python.org/3/howto/logging.html)
diff --git a/misc/QMK firmware keychron c1/Firmware colemak switch.png b/misc/QMK firmware keychron c1/Firmware colemak switch.png
new file mode 100644
index 0000000..f025f96
--- /dev/null
+++ b/misc/QMK firmware keychron c1/Firmware colemak switch.png
Binary files differ
diff --git a/misc/QMK firmware keychron c1/Thumbnail.jpg b/misc/QMK firmware keychron c1/Thumbnail.jpg
new file mode 100644
index 0000000..29d7d4d
--- /dev/null
+++ b/misc/QMK firmware keychron c1/Thumbnail.jpg
Binary files differ
diff --git a/misc/QMK firmware keychron c1/index.md b/misc/QMK firmware keychron c1/index.md
new file mode 100644
index 0000000..b03a27d
--- /dev/null
+++ b/misc/QMK firmware keychron c1/index.md
@@ -0,0 +1,111 @@
+---
+description: "Flashing Sonix QMK on Keychron C1 plain mechanical keyboard"
+created: 2023-10-21
+---
+
+![QMK firmware](main.jpg)
+
+[TOC]
+
+Base instructions: [Sonix QMK sn32_master Keychron C1 plain](https://github.com/SonixQMK/qmk_firmware/tree/sn32_master/keyboards/keychron/c1/plain)
+
+## Keyboard hardware model variants
+- [Keychron C1 plain (No LEDs)](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard?variant=39767302078553)
+and
+- [Keychron C1 white (White LEDs)](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard?variant=32321246953561)
+use the same board.
+- [Keychron C1 RGB (RGB LEDs)](https://www.keychron.com/products/keychron-c1-wired-mechanical-keyboard?variant=32321247051865)
+uses a different board
+
+This tutorial / collection of info applies to Keychron C1 plain
+
+## Building QMK firmware
+
+The correct [Sonix QMK](https://sonixqmk.github.io/SonixDocs/)
+branch to use for this is
+[sn32_master_stable](https://github.com/SonixQMK/qmk_firmware/tree/sn32_master)
+source: Found a comment on the discord server, generally digging through the
+[discord server](https://discord.gg/8XqzfBknfC) reveals the correct way of
+doing something
+```bash
+qmk clone SonixQMK/qmk_firmware -b sn32_master_stable
+```
+
+
+When making the firmware with the QMK command,
+specify `via` as the layout
+```bash
+qmk compile --keyboard keychron/c1/plain --keymap via
+```
+
+## Build Sonix flasher
+
+It's important to use the
+[Flashing tool](https://github.com/SonixQMK/sonix-flasher) to flash the
+jumploader, which is needed on this chip, because it's possible to brick it,
+by overwriting the bootloader, the jumploader allows a button combination (ESC)
+to be held when plugging in the keyboard to boot into bootloader mode.
+Bootloader mode is the mode that allows flashing new software to the chip.
+
+To build on modern systems, update requirements.txt QT version as per the
+instructions [here](https://github.com/cederlys/svive-qmk#flashing)
+(I do this with sed in the following code snippet)
+
+This was tested on Arch 2023-09-21 with the following package versions:
+
+ - [python36](https://aur.archlinux.org/packages/python36) 3.6.15-5
+ - [qt5-base](https://archlinux.org/packages/extra/x86_64/qt5-base/) 5.15.10+kde+r155-1
+ - [python-pyqt5](https://archlinux.org/packages/extra/x86_64/python-pyqt5) 5.15.9-2
+
+```bash
+# Install python 3.6
+yay -Sy python36
+
+# Don't save the software when rebooting the computer
+cd /tmp/
+
+# Download release 0.2.5
+wget https://github.com/SonixQMK/sonix-flasher/archive/refs/tags/v0.2.5.zip
+
+# Extract release
+unzip v0.2.5.zip
+cd sonix-flasher-0.2.5/
+
+# Install these python package versions for this project only
+python3.6 -m venv venv
+source venv/bin/activate
+
+# This was needed, else it threw an error
+pip3 install --upgrade pip
+pip install wheel
+
+# Use a more modern version of the QT package,
+# that's compatible with the version of QT in the repos
+sed -i 's/hidapi==0.9.0.post2/hidapi==0.14.0/' requirements.txt
+pip install -r requirements.txt
+
+# Run the program
+python src/main/python/main.py
+```
+
+## VIA
+To use via it needs the json keyboard definition loaded
+
+## Resources
+- [C1 White PCB info](https://github.com/IsaacDynamo/keychron_c1_white_info)
+
+---
+
+## Expanding functionality
+
+What have i used this newfound customizability for?
+
+Mainly repurposing the os switcher has been into a layout switcher,
+to allow switching between Qwerty and Colemak in hardware, which comes in handy when using it on someone elses computer.
+
+![Firmware colemak switch](Firmware&#32;colemak&#32;switch.png)
+
+Also i changed the right alt to the menu button (acts like a right click)
+
+You can find the firmware source code here: [sonix-qmk - git.node5.net](https://git.node5.net/node5/sonix-qmk/src/branch/sn32_master_stable/keyboards/keychron/c1/plain/keymaps/default/keymap.c)
+
diff --git a/misc/QMK firmware keychron c1/main.jpg b/misc/QMK firmware keychron c1/main.jpg
new file mode 100644
index 0000000..913f725
--- /dev/null
+++ b/misc/QMK firmware keychron c1/main.jpg
Binary files differ
diff --git a/misc/Raspberry Pi cooling/Thumbnail.jpg b/misc/Raspberry Pi cooling/Thumbnail.jpg
new file mode 100644
index 0000000..c1aa439
--- /dev/null
+++ b/misc/Raspberry Pi cooling/Thumbnail.jpg
Binary files differ
diff --git a/misc/Raspberry Pi cooling/case.jpg b/misc/Raspberry Pi cooling/case.jpg
new file mode 100644
index 0000000..ac00f48
--- /dev/null
+++ b/misc/Raspberry Pi cooling/case.jpg
Binary files differ
diff --git a/misc/Raspberry Pi cooling/graph.png b/misc/Raspberry Pi cooling/graph.png
new file mode 100644
index 0000000..8efbf4c
--- /dev/null
+++ b/misc/Raspberry Pi cooling/graph.png
Binary files differ
diff --git a/misc/Raspberry Pi cooling/index.md b/misc/Raspberry Pi cooling/index.md
new file mode 100644
index 0000000..bc2b388
--- /dev/null
+++ b/misc/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/misc/Raspberry Pi cooling/main.jpg b/misc/Raspberry Pi cooling/main.jpg
new file mode 100644
index 0000000..c93bdae
--- /dev/null
+++ b/misc/Raspberry Pi cooling/main.jpg
Binary files differ
diff --git a/misc/Sharp memory display/Holding jig.jpg b/misc/Sharp memory display/Holding jig.jpg
new file mode 100644
index 0000000..4fa7355
--- /dev/null
+++ b/misc/Sharp memory display/Holding jig.jpg
Binary files differ
diff --git a/misc/Sharp memory display/Thumbnail.jpg b/misc/Sharp memory display/Thumbnail.jpg
new file mode 100644
index 0000000..0f2ccac
--- /dev/null
+++ b/misc/Sharp memory display/Thumbnail.jpg
Binary files differ
diff --git a/misc/Sharp memory display/index.md b/misc/Sharp memory display/index.md
new file mode 100644
index 0000000..6a6a5de
--- /dev/null
+++ b/misc/Sharp memory display/index.md
@@ -0,0 +1,43 @@
+---
+description: LS012B7DH02
+created: 2024-01-19
+---
+
+![Holding jig](Holding&#32;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/misc/lightsabers/Thumbnail_.webp b/misc/lightsabers/Thumbnail_.webp
new file mode 100644
index 0000000..3b0e026
--- /dev/null
+++ b/misc/lightsabers/Thumbnail_.webp
Binary files differ
diff --git a/misc/lightsabers/emitter.webp b/misc/lightsabers/emitter.webp
new file mode 100644
index 0000000..c89b897
--- /dev/null
+++ b/misc/lightsabers/emitter.webp
Binary files differ
diff --git a/misc/lightsabers/index.md b/misc/lightsabers/index.md
new file mode 100644
index 0000000..68f4ada
--- /dev/null
+++ b/misc/lightsabers/index.md
@@ -0,0 +1,8 @@
+---
+description: "3D printed Star wars props"
+created: 2025-05-25
+---
+
+![lightsabers](lightsabers.webp)
+![](emitter.webp)
+![](rust.webp)
diff --git a/misc/lightsabers/lightsabers.webp b/misc/lightsabers/lightsabers.webp
new file mode 100644
index 0000000..0841f12
--- /dev/null
+++ b/misc/lightsabers/lightsabers.webp
Binary files differ
diff --git a/misc/lightsabers/rust.webp b/misc/lightsabers/rust.webp
new file mode 100644
index 0000000..c62b52f
--- /dev/null
+++ b/misc/lightsabers/rust.webp
Binary files differ