Wednesday, March 4, 2020

A Pattern for Stroking Symbols with Plover

Unless I use them on a very regular basis, I have trouble remembering the strokes for many of the symbols and punctuation. I figure that if they follow a pattern they should be easier to remember. Awhile back on the Plover Discord Elzed suggested such a pattern for (), [], and {}. I've extended it to include many more symbols.

The idea is that each symbol has a pair of strokes. The first stroke of a pair has -FPLT in the right hand, and the second stroke has -RBGS in the right hand. The -FPLT strokes allow a leading space before the symbol but supress the trailing space. Strokes with -RBGS supress the leadings space but allow a trailing space. This make it easy to do such things as (this) without having to fiddle with spaces. The left hand part of each stroke is either mnemonic or has a memorable shape to help me remember it. Here is the JSON file to show how it's done.

"KPH-FPLT": "/{^}",
"KPH-RBGS": "{^}/",
"KW-FPLT": "{\"^}",
"KW-RBGS": "{^}\"",
"KWHR-FPLT": "{=^}",
"KWHR-RBGS": "{^=}",
"P-FPLT": "%{^}",
"P-RBGS": "{^}%",
"PHR-FPLT": "+{^}",
"PHR-RBGS": "{^}+",
"PR-FPLT": "({^}",
"PR-RBGS": "{^})",
"PRAFPLT": "<{^}",
"PRARBGS": "{^}>",
"PW-FPLT": "|{^}",
"PW-RBGS": "{^}|",
"PWR-FPLT": "[{^}",
"PWR-RBGS": "{^}]",
"SKP-FPLT": "&{^}",
"SKP-RBGS": "{^}&",
"SKWR-FPLT": "_{^}",
"SKWR-RBGS": "{^}_",
"STRAFPLT": "*{^}",
"STRARBGS": "{^}*",
"T-FPLT": "'{^}",
"T-RBGS": "{^}'",
"THR-FPLT": "~{^}",
"THR-RBGS": "{^}~",
"TK-FPLT": "${^}",
"TK-RBGS": "{^}$",
"TKPW-FPLT": "@{^}",
"TKPW-RBGS": "{^}@",
"TPH-FPLT": "#{^}",
"TPH-RBGS": "{^}#",
"TPR-FPLT": "{\\{^}",
"TPR-RBGS": "{^\\}}",
"TW-FPLT": "`{^}",
"TW-RBGS": "{^}`",
"TWR-FPLT": "{\\^}",
"TWR-RBGS": "{^}\\",
"WR-FPLT": "-{^}",
"WR-RBGS": "{^}-"

Here's the logic behind the left sides of the strokes:

KPH the shape looks a bit like /
KW q for quote "
KWHR eQuaL for =
P Percent for %
PHR PLus for +
PR PaRen for parentheses ( )
PRA the shape looks a bit like < >
PW the shape looks a bit like |
PWR BRacket for [ ]
SKP the Plover brief for "and ", for &
SKWR the shape looks a bit like _
T Tick for '
THR TiLda for ~
TK Dollar for $
TKPW the shape is reminiscent of @
TPH Number for #
TPR FRench bracket for { }
TW the shape looks a bit like `
TWR the shape looks a bit like \
WR the shape is reminiscent of -

I'm not saying this is the final word, just that it's what I'm using right now. The file is available at  and is called symbols.json.

See  for help understanding the JSON file above.

Friday, September 13, 2019

Assembling a TinyMod4

TinyMod has been updated again, but only slightly. It looks nearly the same. It behaves exactly the same. The changes are to make assembly easier and more robust. The diodes have been replaced with an MCP23017 i2c port expander. The microcontroller has been moved out from under the key switches, for easier assembly and repair. The switch footprints now only allow MX style switches and the switches fit better, requiring less solder. The firmware has been rewritten to accommodate the port expander. If I hadn't told you I'm not so sure you'd notice the difference.

The first step is to solder in the i2c resistors and the headers for the microcontroller.

Then we solder in the slider switch and the port expander from the back side. A rubber band holds the MCP23017 in place as we tack it at the corners.

The firmware is flashed into the microcontroller, which is then soldered into the headers on the bottom side.

Now it's good to set the protocol switch to NKRO, plug in the microcontroller and short each of the key switches to see if the right characters come out on the screen.

Once we know things are working so far, we start inserting the key switches, then solder them in. You can see the port expander here too. It's sitting between two rows of switches.

The bottom plate of the keyboard is just another bare PCB with spacers. That's a nut driver for 4-40 machine screws in the upper right corner. I 3D printed it.

Join the two halves like this, then bolt them together with the 4-40 nuts.

The final product looks like this after inserting the keycaps. I feel as though this is pretty close to being a final version. We'll see about that.

Tuesday, July 2, 2019

How to Buy a TinyMod

It's been pointed out to me that I didn't say anywhere on the main page just how to go about ordering a TinyMod. This post is a temporary solution. I'll try for a more long term one later.

To order a TinyMod, send me an email at  saying what you would like (a TinyMod) and giving me your shipping address. I need this to figure the shipping cost, but also I don't necessarily want to rely on the address that PayPal gives me. I'd rather hear it from you.

Once I get the email, I'll send you back a PayPal invoice. The invoice will be for $160 plus shipping, which is $7.90 in the US and around $24 elsewhere. Those are US dollars. You can pay the invoice with your PayPal account if you have one, or by credit card. PayPal will process credit cards.

Shipping is with the US Postal Service, Priority Package. In the US it should arrive in two or three days. Out of the US it's more like 5-10 days.

This somewhat unconventional way of doing things allows me to keep from having to accept credit cards myself as well as from having to set up a website. It's working well for me for now.

Monday, April 22, 2019

New Version, TinyMod3

Another change to the TinyMod. I've moved the thumb keys 5.5mm further from the row of keys above. I think it's more comfortable this way.

Since I was laying out a new board anyway, I also redid the wiring. Now every key is wired separately, including the S- keys and the asterisk keys. I'm still using TX Bolt as the serial protocol, so you can't tell there. But using the NKRO keyboard protocol you could make use of them in Plover. Of course, hacking your own firmware you can do whatever you like!

The boards are just a little bit longer and wider, but not much. The microcontroller has moved from the right side to the left, but is still covered by the top PCB. The slider switch for choosing the protocol is also now on the left side.

It's different firmware because of the change in wiring, but the functions are the same. You shouldn't notice any difference there.

The price is the same, $160USD for the keyboard, $7.90 shipping in the US, about $24 for most of the rest of the world. Sales tax $11.60 if you're in California like I am.

Hope you like it!

Saturday, November 17, 2018


This is enough change to warrant calling it TinyMod2 I think. Mostly the microcontroller has been moved under the PCB. There's no need to cover it with a 3D printed "case" anymore. I believe it looks much better without 3D printing, sleeker and smoother. There are also more standoffs for support. It's much more rigid. It feels more solid to write on this way. I'm very happy with the current keyboard and I hope you will be too.

The internals haven't changed. The firmware still supports two protocols, TX Bolt serial and NKRO keyboard. On my Windows machine I'm using NKRO because I can unplug and plug it back in without problems. For testing a new keyboard it's no problem to just plug it in and use it. It's just another USB keyboard to the operating system. On my Linux laptop I still use TX Bolt because NKRO is too laggy with Ubuntu 18.04. I don't know why, but it is.

For the time being at least, this will be the only keyboard I'm offering. If you're desperate to have one of the old classics or the hinge, we can negotiate something probably, but I'm not going to stock them anymore.

Price for the TinyMod is still $160 plus shipping. I'm going to try to have a few ready to go at any time. Just send me an email with your shipping address and I'll send you a PayPal invoice. Email me with questions or comments anytime. My email address is at the top of the screen.

Tuesday, September 11, 2018

Another Improvement to TinyMod

TinyMod has a new microcontroller now that allows the firmware to support both TX Bolt serial protocol and NKRO keyboard protocol. The serial protocol has served stenomods fine so far, but there are times when NKRO keyboard protocol is better. For one thing, keyboard protocol is supported by all operating systems without having to install any drivers. Both Windows and Mac require a driver to be installed now in order to use the serial port, which can be a hassle. Plover should work for the new TinyMod on Windows, Mac, or Linux*, without installing any drivers.

The newest TinyMod comes with a jumper installed to make it boot into NKRO keyboard mode. If you remove the jumper and rebootIs the keyboard, it will be in TX Bolt serial mode. Without the jumper the keyboard should behave as TinyMods have always behaved. You won't notice any difference.

Jumper in NKRO keyboard position outlined

Price is the same, $160 USD plus shipping. Email me at if you'd like to order one. Please include your shipping address.

* Ubuntu 18.04 users should be aware that as of the writing of this post there a problem with Plover and NKRO on that platform where response is very, very slow. For the time being I recommend using TX Bolt serial for Ubuntu 18.04. And remember that in Linux no drivers need to be installed even for TX Bolt serial.

Sunday, July 29, 2018

TinyMod Update

I've been using a TinyMod exclusively for the past two months. There was some question in my mind about whether or not I'd get used to or even like having the number key as the center thumb key and whether or not I would find it to be ergonomic enough. The answer is YES to both questions.

I don't think I can stress enough how much I like having the number key in the thumb position! I was pretty good with numbers before, but I feel much more fluid and confident doing numbers using my right thumb. I added a dictionary to make reversing pairs of numbers easier, see former post for details.

I haven't had any issues with my wrists either. This layout seems to be very good for my hands. This is something that varies from person to person of course, but the small layout can be very comfortable!

As you can see, I've also replaced the wood bottom with a bare printed circuit board and covered the Arduino with a little plastic case. It's even more compact than before, both a little smaller and a little lighter.

Price is still $160 plus shipping. $200 for the hinge or classic models. Email me at with your shipping address and which model you want if you're interested.