Turn On Sarcasm With The Flip Of A Switch

Sarcasm is notoriously difficult to distinguish in online communities. So much, in fact, that a famous internet rule called Poe’s Law is named after the phenomenon. To adapt, users have adopted several methods for indicating implied sarcasm such as the /s tag, but more recently a more obvious sarcasm indicator has appeared that involves random capitalization througout the sarcastic phrase. While this looks much more satisfying than other methods, it is a little cumbersome to type unless you have this sarcasm converter for your keyboard.

The device, built by [Ben S], is based around two Raspberry Pi Pico development boards and sits between a computer and any standard USB keyboard. The first Pi accepts the USB connection from the keyboard and reads all of the inputs before sending what it reads to the second Pi over UART. If the “SaRcAsM” button is pressed, the input text stream is converted to sarcasm by toggling the caps lock key after every keystroke.

For communicating in today’s online world with rapidly changing memes, a device like this is almost necessary for making sure you aren’t misunderstood on whichever popular forum you like to frequent. We don’t know how long this trend will continue, either, but until something else replaces it to more concisely communicate sarcasm we expect it to remain relevant. The build is also a reminder of the various interesting ways that microcontrollers can be programmed to act as keyboards.

Thanks to [ted yapo] for the tip!

43 thoughts on “Turn On Sarcasm With The Flip Of A Switch

    1. I mean technically yeah.
      A 555 with a low duty cycle pulse and also in the Hertz frequency range pulsing the pins for caps lock of a typical garbage OEM keyboard pcb (with maybe a optocoupler) that’s been liberated from the confines of its landfill destined coffin.
      Bonus is that it doesn’t have to be in-line anymore, or programmed for that matter, but downside is loss of a usb port.

        1. I was thinking more of something for those with laptops, or expensive mechanical keyboards they’re afraid of damaging or want to keep pristine.
          Besides, waste not want not with a awful OEM keyboard every corporation with a internal IT department has a closet full of.

  1. THIs sOLutIOn IS weLl OpTimIzED ANd NoT OvERKilL aT aLl.

    *cough* while the solution works its needlessly complicated – the easiest and cheapest would be to just use a Arduino Pro Micro clone and this code to mash the shift key periodically:


    void setup() {

    void loop() {

    A 555 timer based version build into that keyboard is also something that might work but lots more effort ;)

      1. And to not interfere with your own reading of the gArBlEd NoNsEnSe you’re trying to produce or the automatic spellchecking you program your AHK script to only convert currently marked/selected text with a hotkey.

        Srlsy your comment is the only one this project deserves.

      1. EsPeCiAlLy ThIs AbSoLuTeLy NoN-ReTaRdEd WaY tO eNcOdE iT!

        Srsly?! Who came up with this stupid idea?
        Every time I see a comment with this retarded-camel-case it gets a downvote from me (if possible) regardless of content because it’s impossible to *just* read it.
        For me at least and I’m sure I’m not the only one with difficulties deciphering such garbled nonsense (in a timely manner for *reading*).

    1. I made a diy qmk keyboard at one time which had a bug in vusb that caused the microcontroller to freeze and drop the first keystroke, so i programmed it to send an illegal keystroke before every keypress to wake it up. worked great, and i’m sure i could have sent a caps lock keystroke instead. ideally, you would have it on a layer though.

    2. Could sort of see a use for the technique as a kludgey way to implement an old fashioned non-shift overriding caps lock or shift lock mode, maybe? If you’re doing a lot of mainframe emulation I guess I could see use, though I’d imagine the terminal could be configured to send all caps, so maybe not.

  2. I remember a long long time ago. I was still running Windows. I think I was running XP at the time. I had a piece of software that showed network activity by blinking the LED’s on the keyboard for num lock, scroll lock and caps lock. It actually didnt’ turn on the LED’s by themselves, but switches them on and off to show it, resulting in the sarcastic spongebob style of writing.

    1. I don’t believe that either. 8.3 filenames were case sensitive, no? These days I’ve noticed that Linux is far more forgiving with changing directories without case sensitivity compared to attempting the same thing with Windows on the command line.

  3. With a potentiometer for sarcasm level.

    A sarcasm cruise control, Oh, NoW, ThAtS a REaly UsfUL InvenTioN.

    If it was doing it properly, it would have to analyze the speech and stress the appropriate syllables.

  4. Fun project for sure, but other than doing it tHe RiGhT wAy By DoInG wITh A 555, one could just have written a shell script that toggles the shift key on and off.

    Here’s some powershell script that I use to keep my remote desktop connections from locking up while I’m working on another screen (this using the Scroll Lock key so it won’t interfere with any typing I may be doing)

    $wshell = New-Object -com “WScript.Shell”

    while($true) {
    Start-Sleep -Milliseconds 100
    Start-Sleep -Seconds 49

  5. I never realized that the bracketed punctuation was only used by the deaf community to denote sarcasm. I feel like I have been living in the stone age[.] BeCauSe ClEaRlY ThIs Is MuCh eAsEr To UnDeRsTanD.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.