2 This is a way to take a Microsoft ergonomic bluetooth keyboard, and make it
3 into a hard-wired keyboard running QMK.
5 The keyboard is known under several different names:
6 Mobile Bluetooth 5000, Mobile 6000, Sculpt mobile, and Asus rebranded
8 I had a stack of them,since they're cheap on ebay, travel well, and are just ergo enough.
10 The ribbon cable is 1mm pitch, which is hard to hand solder. I bought a cheap set of
11 "pitch adapter" boards https://www.amazon.com/Double-Sided-0-4mm-1-0-Adapter-60mmx38mm/dp/B00OK42118
13 Cut the original ribbon cable sockets off the bluetooth board using a razor, they're hard to desolder.
14 They're also allow the cable to be inserted on top or bottom.
16 If I was going to do it again, I'd make the MCU connection come out the top of the keyboard
17 and avoid the wires dangling out the bottom.
19 As I was debugging the matrix, I started to get random failures. In desparation I tried a second MCU,
20 but had the same problems. It turns out that the ribbon cable connections can get worn. Shave a
21 half millimeter off the end of the ribbon cable & the errors go away.
23 My method for discovering the matrix was to set up a KEYMAP macro that included all pins.
24 See MATRIX_TESTING_KEYMAP if you need it. Then set up a keymap that has all printable symbols
25 in the first 4 rows. test each key & record output. Then switch the printable symbols to the
26 bottom 4 rows & repeat. This was enough to show the matrix.
29 The full original keymap for the sculpt is
37 6 a s d q w e, Up left
38 7 F7 F8 F9 F10 F11 F12 f
40 -----> I J K L M N O P Q R
42 1 Vol+ mute Rctl vol- pgdn LCTL
46 5 6 bakspc 1 2 3 4 F4 F5 F6
47 6 Down right spc F1 F2 F3 tab
48 7 r t z x c v enter Esc
50 This works with 18 cols + 8 rows on a Teensy++, or Arm based Teensy.
52 The Astar mini has all pins exposed , so you can do 18x8
53 If you want a speaker, LEDs &etc, you'll need to free up a pin. I recommend joining columns
54 R and L to the same pin.
56 Building - add ASTAR=1 to the compile line or leave out for teensy2++