summaryrefslogtreecommitdiff
path: root/content/blog/thors-hammer/index.rst
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2025-07-26 13:46:13 +0200
committerjaseg <git@jaseg.de>2025-07-26 13:46:13 +0200
commit3281a5044261cb2d8bcce263f959ab9b0fbc93fb (patch)
treea8402de38c04aaa316ab5346cb38c2216d2222f4 /content/blog/thors-hammer/index.rst
parent9d55ae84a8208abd714d6b35bd31b023e4ee2ce5 (diff)
parent61c112870d029ad5ec0510b105d157b8ffb86f55 (diff)
downloadblog-3281a5044261cb2d8bcce263f959ab9b0fbc93fb.tar.gz
blog-3281a5044261cb2d8bcce263f959ab9b0fbc93fb.tar.bz2
blog-3281a5044261cb2d8bcce263f959ab9b0fbc93fb.zip
deploy.py auto-commit
Diffstat (limited to 'content/blog/thors-hammer/index.rst')
-rw-r--r--content/blog/thors-hammer/index.rst64
1 files changed, 0 insertions, 64 deletions
diff --git a/content/blog/thors-hammer/index.rst b/content/blog/thors-hammer/index.rst
deleted file mode 100644
index 650716e..0000000
--- a/content/blog/thors-hammer/index.rst
+++ /dev/null
@@ -1,64 +0,0 @@
----
-title: "Thor's Hammer"
-date: 2018-05-03T11:59:37+02:00
-summary: >
- In case you were having an inferiority complex because your friends' IBM Model M keyboards are so much louder than
- the shitty rubber dome freebie you got with your pc... Here's the solution: Thor's Hammer, a simple typing cadence
- enhancer for PS/2 keyboards.
----
-
-In case you were having an inferiority complex because your friends' IBM Model M keyboards are so much louder than the
-shitty rubber dome freebie you got with your pc... Here's the solution: Thor's Hammer, a simple typing cadence enhancer
-for `PS/2`_ keyboards.
-
-.. raw:: html
-
- <figure data-pagefind-ignore>
- <video controls loop>
- <source src="video/thors_hammer.mov" type="video/h264">
- <source src="video/thors_hammer.webm" type="video/webm">
- Your browser does not support the HTML5 video tag.
- </video>
- <figcaption>A demonstration of the completed project.
-
- <a href="video/thors_hammer.mov">h264 download</a> /
- <a href="video/thors_hammer.webm">webm download</a>
- </figcaption>
- </figure>
-
-The connects to the keyboard's PS/2 clock line and briefly actuates a large solenoid on each key press. An interesting
-fact about PS/2 is that the clock line is only active as long as either the host computer or the input device actually
-want to send data. In case of a keyboard that's the case when a key is pressed or when the host changes the keyboard's
-LED state, otherwise the clock line is silent. We ignore the LED activity for now as it's generally coupled to key
-presses. By just triggering an NE555 configured as astable flipflop we can stretch each train of clock pulses to a
-pulse a few tens of milliseconds long that is enough to actuate the solenoid.
-
-.. raw:: html
-
- <figure data-pagefind-ignore>
- <img src="images/thors_hammer_schematic.jpg" alt="The schematic of the PS2 driver">
- <figcaption>The schematic of the driver stretching the PS/2 clock pulses to drive the solenoid.</figcaption>
- </figure>
-
-
-Since PS/2 sends each key press and key release separately this circuit will pulse twice per keystroke. It would be
-possible to ignore one of them but I figure the added noise just adds to the experience.
-
-Built on a breadboard, the circuit looks like this.
-
-.. raw:: html
-
- <figure data-pagefind-ignore>
- <img src="images/thors_hammer_breadboard.jpg" alt="The circuit built on a breadboard">
- <figcaption>The completed circuit built up on a breadboard and attached to a keyboard.</figcaption>
- </figure>
-
-
-Since my solenoid did not have a tensioning spring I used a rubber band and some vinyl tape to make an adjustable
-tensioner. The small orange USB hub serves as an end-stop because I had nothing else of the right shape. The sound and
-resonance of the thing can be adjusted to taste by moving the end stop, adjusting the tensioning rubber and tuning the
-excitation duration using the potentiometer. My particular solenoid was a bit slow so I added some pieces of circuit
-board as shims between the plunger and the case to limit the plunger's travel inside the solenoid core.
-
-.. _`PS/2`: https://en.wikipedia.org/wiki/PS/2_port
-