qmk_firmware/keyboards/handwired/ms_sculpt_mobile
James Young 4b453dca92
Remove MIDI Configuration boilerplate (#11151)
* remove keyboard-level instances of `MIDI_ENABLE = no`

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e  '/^[ #]*MIDI_ENABLE[ \t]*=[ \t]*no/d' {} +
```

Co-Authored-By: Nick Brassel <nick@tzarc.org>

* fix case-sensitivity issues on MIDI_ENABLE

Change instances of `MIDI_ENABLE = YES` to `MIDI_ENABLE = yes`.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;MIDI_ENABLE[ \t]*=[ \t]*[Yy][Ee][Ss];MIDI_ENABLE = yes;g' {} +
```

* replace `# MIDI controls` with `# MIDI support`

Replace `# MIDI controls` with `# MIDI support` in keyboard-level `rules.mk` files.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*MIDI[ \t]*\(controls\|support\).*;# MIDI support;g' {} +
```

* align inline comments

Aligns the inline comments to the length used by the QMK AVR rules.mk template.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;MIDI_ENABLE *= *yes.*;MIDI_ENABLE = yes           # MIDI support;g'  {} +
```

* remove commented instances of `MIDI_ENABLE` from keyboard `rules.mk` files

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#\([ \t]*MIDI_ENABLE\) = yes; \1 = no ;' {} +
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;^\([ \t]*\)\(MIDI_ENABLE = no\);\2\1;' {} +
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e '/^[ #]\+MIDI_ENABLE *= *no/d' {} +
```

* remove MIDI configuration boilerplate from keyboard config.h files

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-16 06:51:13 +10:00
..
keymaps Remove Full Bootmagic (#13846) 2021-08-06 23:59:56 -07:00
babblePaste.c handwired/MS_sculpt_mobile Refactor, Configurator and cleanup (#4576) 2018-12-07 16:48:03 -08:00
babblePaste.h handwired/MS_sculpt_mobile Refactor, Configurator and cleanup (#4576) 2018-12-07 16:48:03 -08:00
babblePaste.txt handwired/MS_sculpt_mobile Refactor, Configurator and cleanup (#4576) 2018-12-07 16:48:03 -08:00
config.h Remove DESCRIPTION, H-J (#11616) 2021-01-20 00:38:12 +11:00
info.json handwired/MS_sculpt_mobile Refactor, Configurator and cleanup (#4576) 2018-12-07 16:48:03 -08:00
ms_sculpt_mobile.c handwired/MS_sculpt_mobile Refactor, Configurator and cleanup (#4576) 2018-12-07 16:48:03 -08:00
ms_sculpt_mobile.h handwired/MS_sculpt_mobile Refactor, Configurator and cleanup (#4576) 2018-12-07 16:48:03 -08:00
readme.md handwired/MS_sculpt_mobile Refactor, Configurator and cleanup (#4576) 2018-12-07 16:48:03 -08:00
rules.mk Remove MIDI Configuration boilerplate (#11151) 2021-08-16 06:51:13 +10:00

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.