qmk-dactyl-manuform-a/keyboards/handwired/ms_sculpt_mobile
James Young fced377ac0
2020 May 30 Breaking Changes Update (#9215)
* Branch point for 2020 May 30 Breaking Change

* Migrate `ACTION_LAYER_TOGGLE` to `TG()` (#8954)

* Migrate `ACTION_MODS_ONESHOT` to `OSM()` (#8957)

* Migrate `ACTION_DEFAULT_LAYER_SET` to `DF()` (#8958)

* Migrate `ACTION_LAYER_MODS` to `LM()` (#8959)

* Migrate `ACTION_MODS_TAP_KEY` to `MT()` (#8968)

* Convert V-USB usbdrv to a submodule (#8321)

* Unify Tap Hold functions and documentation (#8348)

* Changing board names to prevent confusion (#8412)

* Move the Keyboardio Model01 to a keyboardio/ subdir (#8499)

* Move spaceman keyboards (#8830)

* Migrate miscellaneous `fn_actions` entries (#8977)

* Migrate `ACTION_MODS_KEY` to chained mod keycodes (#8979)

* Organizing my keyboards (plaid, tartan, ergoinu) (#8537)

* Refactor Lily58 to use split_common (#6260)

* Refactor zinc to use split_common (#7114)

* Add a message if bin/qmk doesn't work (#9000)

* Fix conflicting types for 'tfp_printf' (#8269)

* Fixed RGB_DISABLE_AFTER_TIMEOUT to be seconds based & small internals cleanup (#6480)

* Refactor and updates to TKC1800 code (#8472)

* Switch to qmk forks for everything (#9019)

* audio refactor: replace deprecated PLAY_NOTE_ARRAY (#8484)

* Audio enable corrections (2/3) (#8903)

* Split HHKB to ANSI and JP layouts and Add VIA support for each (#8582)

* Audio enable corrections (Part 4) (#8974)

* Fix typo from PR7114 (#9171)

* Augment future branch Changelogs (#8978)

* Revert "Branch point for 2020 May 30 Breaking Change"
2020-05-30 13:14:59 -07:00
..
keymaps
babblePaste.c
babblePaste.h
babblePaste.txt
config.h
info.json
ms_sculpt_mobile.c
ms_sculpt_mobile.h
readme.md
rules.mk

readme.md

Microsoft Sculpt Mobile

This is a way to take a Microsoft ergonomic bluetooth keyboard, and make it into a hard-wired keyboard running QMK.

The keyboard is known under several different names: Mobile Bluetooth 5000, Mobile 6000, Sculpt mobile, and Asus rebranded.

I had a stack of them, since they're cheap on ebay, travel well, and are just ergo enough.

The ribbon cable is 1mm pitch, which is hard to hand solder. I bought a cheap set of "pitch adapter" boards https://www.amazon.com/Double-Sided-0-4mm-1-0-Adapter-60mmx38mm/dp/B00OK42118

Cut the original ribbon cable sockets off the bluetooth board using a razor, they're hard to desolder. They're also allow the cable to be inserted on top or bottom.

If I was going to do it again, I'd make the MCU connection come out the top of the keyboard and avoid the wires dangling out the bottom.

As I was debugging the matrix, I started to get random failures. In desparation I tried a second MCU, but had the same problems. It turns out that the ribbon cable connections can get worn. Shave a half millimeter off the end of the ribbon cable & the errors go away.

My method for discovering the matrix was to set up a LAYOUT macro that included all pins. See MATRIX_TESTING_LAYOUT if you need it. Then set up a keymap that has all printable symbols in the first 4 rows. test each key & record output. Then switch the printable symbols to the bottom 4 rows & repeat. This was enough to show the matrix.

The full original keymap for the Sculpt is

A B C D E F G H I J K L M N O P Q R
0 b n m , . / Caps Fn
1 g h " Vol+ Mute RCtl Vol- PgDn LCtl
2 7 8 9 0 Del PgUp RShift LShift
3 p [ ] \ RAlt LAlt
4 y u i o LGUI
5 ~ - += j k l ; 5 6 Bksp 1 2 3 4 F4 F5 F6
6 a s d q w e Up Left Down Right Space F1 F2 F3 Tab
7 F7 F8 F9 F10 F11 F12 f r t z x c v Enter Esc

This works with 18 cols + 8 rows on a Teensy++, or ARM-based Teensy.

The Astar mini has all pins exposed , so you can do 18x8 If you want a speaker, LEDs, etc., you'll need to free up a pin. I recommend joining columns R and L to the same pin.

Building - add ASTAR=1 to the compile line or leave out for teensy2++

Make example for this keyboard (after setting up your build environment):

make handwired/ms_sculpt_mobile:default

See the build environment setup and the make instructions for more information. Brand new to QMK? Start with our Complete Newbs Guide.