machinelevel / sp425-crazy-cow

Add crude keyboard-lettering function to eink tablet
MIT License
77 stars 6 forks source link

Crazy Cow: Typewriter-ish input for reMarkable

ej's Secret Plan #425

What's this?

It's a tiny (40k!) extension which turns keyboard input into text, drawn onto the screen in the existing reMarkable environment by mimicking stylus motion.

Crazy Cow demo page

(Most of these features got done, yay. Notice the hand-corrected letters, the text recognotion works on that too!)

What's this not?

What's Crazy Cow?

The best sugar cereal from General Mills in the 1970's which had two superpowers:

  1. Turn normal milk into chocolate milk.
  2. Contain a codewheel which allows the user to emboss letters onto normal paper, using an optional letter-shift cypher.

Why make this?

I use my reMarkable tablet every day, for work and for personal stuff. I've spent hundreds of early mornings with just coffee and the stylus, figuring out things that are important to me. Sometimes I want to type things, such as stories, without giving up the ink. I tried using (and adapting from others) custom apps which edit text, markdown, etc., but I actually like the existing reMarkable UI, and I want to work within it. For me, this is the right balance. No launcher to maintain, no little gotchas.

What's good about ink?

  1. Color - Yellow light from an RGB display does not contain any yellow light, just red and green. Even in 'night mode' which looks yellowish, there's no actual yellow light. Yellow light from the sun, reflected off of an ink display is actual yellow light. You may not think you notice the difference, but I think we all do. Also, just ask Clark Kent.
  2. Strobe - Most digital displays strobe and flicker at a very high rate. Ink displays don't do this.
  3. Speed - Ink displays are slow. I see this as a good thing.

Installation instructions

  1. copy crazy-cow.service to /etc/systemd/system/
  2. copy crazy-cow to /home/root/
  3. ssh to the tablet
  4. systemctl start crazy-cow (note that you might need to chmod +x crazy-cow to make it executable)
  5. systemctl enable crazy-cow (to enable on boot)

User's Manual

Just plug in a keyboard and start typing! Seriously, that's it.

Where's the cursor?

There is no visible cursor. Do not panic. Real typewriters don't have one either. If you type something in the wrong place, just backspace, or tap undo, or erase it with the stylus. Then (like a real typewriter) use space, up, down, enter to get to the right place.

It doesn't work with my keyboard...

Here are the steps to troubleshoot this:

  1. Press the left/right arrow keys on your keyboard. This should change pages. (this is a built-in feature, not a Crazy Cow feature)

    a. If the page does not change, there's a keyboard connection issue.

    b. If the page does change, your keyboard is great, and you can go to step 2.

  2. Please try this binary in the branch 1-multiple-keyboards, to address more complex USB setups. I'm planning to merge this to main, if enough people verify that it solves their issues.

If you find a bug

Please post an issue. This is a just-for-fun project for me.