Tangent's Blog

CharaChorder and Forge related articles and notes

Preface

I wrote two articles about how I designed the layout for Bopomofo input method on CC1 and M4G. They are like progress notes for my layout, including what problems I faced and how I solved them.

However, it may be hard to trace the reason behind each remapped keys on my layout in those two articles, so in this article, I would break down my latest layout (TC36.V2) and explain why I remap those keys.

Primary Layer

Placing Symbols on Home Row

localhost_4200_layouts (3)

Corresponding Bopomofo layout:
localhost_4200_layouts

The Bopomofo IME can only map character keys (alphabets, numbers, and symbols) to Bopomofo symbols, so some non-character keys on the home row are replaced with symbol keys. Those symbol keys don’t hold shift, so that they won’t affect the chords (both CC chords and Bopomofo chords).

These symbol keys are also useful when programming.

Placing the Replaced Non-character Keys

localhost_4200_layouts (2)

Then I should find places for the non-character keys replaced by symbols. Similar to the default layout of M4G, I place them on the ring middle switches.

LW and RW are Left GUI and Right GUI keys. (Windows keys on Windows, or Command keys on Mac) They are actually Ctrl keys on my Mac since I use Karabiner to swap the Ctrl and Command keys on CC1, CC2 and M4G.

Numeric Layer Lock

localhost_4200_layouts (4)

Since the mouse switches on the primary layer are occupied by some non-character keys, I use the mouse actions on the numeric layer instead. I remap a numeric layer lock key to lock the device to the numeric layer. (And the original num-shift keys are used to unlock.)

Numeric Layer

Placing Function Keys to Left Half

localhost_4200_layouts (1)

To make the function keys more accessible, I remap them to the left half of the numeric layer.

Placing Mouse Actions

localhost_4200_layouts (2)

  • M(arrow): mouse move
  • S(arrow): mouse scroll
  • LC, MC, RC: mouse left, middle, right click

As mentioned above, I use the mouse actions on the numeric layer. I place the mouse actions on the middle row, so I can shift my hands down to it (i.e. The tips of my thumb, middle finger, and ring finger are on the corresponding middle switches.). I call it mouse mode.

There are all three click actions on both the left and right thumb middle switches, so I can access all the mouse actions with one hand.

Comparison Table

Notice:

  1. You could learn more differences between CC2 and CC1 from the CC2 Product Page.
  2. It seems to me that other unmentioned specs of CC devices would be similar to those of CC1, and they would be marked with an * in the comparison table.
  3. You could further confirm the specs on their Discord server if you have any questions.
  4. ??? are the specs which I am not sure about or cannot find information about. If you know of any helpful resources, please message me on Discord (Tangent Chang, @andy23512).
  5. This comparison note has a web application version.
Master Forge (M4G)CharaChorder Two (CC2)CharaChorder One (CC1)CharaChorder Lite (CCL)CharaChorder X (CCX)Svalboard (Sval)Market Leading Keyboard
Computational------M4G------------CC2------------CC1------------CCL------------CCX------------Sval--------------------
ModalitiesProgrammable Keys & Key CombinationsProgrammable Keys & Key CombinationsProgrammable Keys & Key CombinationsProgrammable Keys & Key CombinationsProgrammable Keys & Key CombinationsProgrammable Keys & Key CombinationsIndividually Programmable Keys Only
Possible Inputs> 13,000,000,000> 13,000,000,000> 13,000,000,000> 17,000,000,000> 17,000,000,000[1]???< 200
Memory1,000,000 Actions60,000 Actions16,000 Actions65,000 Actions[2]65,000 Actions[3]???Uses Host CPU Resources
Memory TypeEmbeddedEmbeddedEmbeddedEmbeddedEmbeddedEmbeddedUses Host CPU Resources
DriverDriverless OSDriverless OSDriverless OSDriverless OSDriverless OS???Requires Custom Driver from Host CPU
ConfigurationWeb Based FOSS/Libre offlineWeb Based FOSS/Libre offlineWeb Based FOSS/Libre offlineWeb Based FOSS/Libre offlineWeb Based FOSS/Libre offlineWeb Based FOSS/Libre offlineRequires Proprietary Software
Microprocessor240 MHz Dual Core240 MHz Dual Core48 MHz??????133 MHz Dual Core150 MHz Single Core
Input StyleFluid Chorded / Character EntryFluid Chorded / Character EntryFluid Chorded / Character EntryFluid Chorded / Character EntryFluid Chorded / Character EntryCharacter Entry and Combos[4]Character Entry Only
APIOpen Serial API SpecificationOpen Serial API SpecificationOpen Serial API SpecificationOpen Serial API SpecificationOpen Serial API Specification???None
Electrical------M4G------------CC2------------CC1------------CCL------------CCX------------Sval--------------------
Routing StyleAntiMatrix with Dedicated ChannelsAntiMatrix with Dedicated Channels*AntiMatrix with Dedicated ChannelsAntiMatrix with Dedicated Channels*N/A[5]???Traditional Key Matrix
Anti-GhostingNKRO+NKRO+*NKRO+NKRO+*N/A[5:1]NKRONKRO
HID Keyboard SchemaExtended 12 Key SchemaExtended 12 Key Schema*Extended 12 Key SchemaExtended 12 Key Schema*Extended 12 Key Schema*???6 Key Schema
USB-Hub Ports3XXXX???0-1
Mechanical------M4G------------CC2------------CC1------------CCL------------CCX------------Sval--------------------
Size (L*W*H)228*115*38 (mm)295*111*29 (mm)[6]296*110*38 (mm)295*105*33 (mm)[7]59*23.25*16.15 (mm)[8]190*130*90 (mm)[9]450*158*38 (mm)
Weight (Full Device, both hands)346-500 g303 g[10]308 g468 g[11]???550 g[12]989 g
Switch Style3-D Snap Action3-D Tactile3-D Tactile1-D Mechanical[13]N/A[5:2]3-D Magneto-optical1-D Mechanical / Optical / Halls
Actuation Force (4-direction / press-down for 3-D switch)55-57 gf / N/A [14]42 gf / 240 gf70 gf / 240 gf35 gf[13:1]N/A[5:3]20 gf / 20 gf40-80 gf
Hardware InterfacePicatinny RailingFemale ¼”-20 ThreadN/AN/AN/AFemale M5 and ¼”-20 ThreadN/A
Switch Durability (cycles each direction)20,000,000[15]1,000,000[16]200,000[17]???N/A[5:4]??????
Number of 3D Switches16[18]1818N/AN/A10 (Key Clusters)N/A
Number of Keys on each 3D Switch4[19]55N/AN/A5N/A
SwitchOmron Electronics D2LS-21(20M)Alps Alpine SKRHADE010Alps Alpine SKRHABE010Gateron Clear/WhiteN/A??????
Material------M4G------------CC2------------CC1------------CCL------------CCX------------Sval--------------------
Shell5052 Aluminium Alloy[20]Injection Molded ABS Plastic[21]Injection Molded ABS Plastic[22]ABS Plastic[23]Injection Molded Plastic[24]ABS Plastic???
Baseplate3D-printed Plastic[25]3D-printed Plastic[21:1]Injection Molded ABS Plastic[22:1]ABS Plastic[26]N/AN/A???
Other------M4G------------CC2------------CC1------------CCL------------CCX------------Sval--------------------
Pointing Device[27]Trackball / None[28]Cursor Movement KeyCursor Movement KeyNoneNoneTrackball / Touchpad / Trackpoint / None???
Quietness Ranking3rd1st2nd????????????

References

CharaChorder and Forge

Svalboard


  1. CharaChorder Lite has over 17 billion possible input according to the product page of it, so I think that CCX probably has a similar amount when using with a normal 60% keyboard. ↩︎

  2. According to this outdated wiki, 65k chords up to 247 actions (eg characters) in length can be stored in the memory ↩︎

  3. 65,000 chords according to the CCX Kickstarter page ↩︎

  4. It is possible to use the combo feature of qmk to achieve the chording entry, but it seems that not many users do it. ↩︎

  5. It depends on the spec of the connected keyboard so it doesn’t seem to be the spec of CCX itself. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  6. According to CC2 Dimension and Weight in official CharaChorder document, 11 ⅝” x 4 ⅜” x 1 ⅛”. ↩︎

  7. According to CC Lite Dimensions and Weight, 11 ⅝” (length) x 4 ⅛” (width) x 1 5/16” (height). ↩︎

  8. Shell size of CCX from the CharaChorder official documentation is used. ↩︎

  9. According to this message in Svalboard Discord server. ↩︎

  10. According to CC2 Dimension and Weight in official CharaChorder document, 10.7 oz without USB-C. ↩︎

  11. According to CC Lite Dimensions and Weight in official CharaChorder document, 1 lb 0.5 oz. ↩︎

  12. According to this message in Svalboard Discord server, 275 g per side. ↩︎

  13. According to the Switches section in the official CCL documentation ↩︎ ↩︎

  14. 55 gF is from the comparison table in the specs reveal video. 57 gF is from the measurement result in that video. Therefore I listed it as a range (55-57 gF) in table. Besides, regarding the press-down actuation force, since M4G doesn’t have 3D press keys, I would define it as N/A here. ↩︎

  15. 20M ops according to the switch detail page. ↩︎

  16. According to the CC2 product page, CC2 switches are built tougher, and are engineered to last 5X longer than switches from the 1st generation. ↩︎

  17. 200,000 cycles for each direction according to this Discord message. ↩︎

  18. M4G has two thumb switches fewer than CC1 and CC2. Multiple types of mouse control bolt-ons are planned to be offered on the Forge ecosystem instead of the digital mouse switches on CC1 and CC2. On M4G, the third thumb switch keys have moved to where the digital mouse control keys are. ↩︎

  19. Unlike CC1 and CC2, M4G doesn’t have 3D press keys. When you do a 3D press on M4G, you hit all four keys on that switch. ↩︎

  20. The shell (called exoskeleton) is made of 5052 aluminium alloy according to this video. ↩︎

  21. According to the official CC2 documentation. ↩︎ ↩︎

  22. According to the official CC1 documentation ↩︎ ↩︎

  23. According to the official CCL documentation ↩︎

  24. According to the official CCX documentation ↩︎

  25. The baseplate (called endoskeleton) is made by 3D printing according to this video. ↩︎

  26. According to the official CCL documentation ↩︎

  27. The default pointing devices on each device are listed. You can remap the cursor movement keys on CC devices, Master Forge, and Svalboard. ↩︎

  28. Some tiers of Master Forge bundle don’t include the Trackball Bolt-on. ↩︎