diff --git a/Makefile b/Makefile index bd24fb8..c041ed2 100644 --- a/Makefile +++ b/Makefile @@ -1,18 +1,17 @@ .PHONY: build clean setup serve -build: clean setup +build: clean mkdir -p ./public/{css,js,img,fonts} cp ./node_modules/bulma/css/bulma.min.css ./public/css/ cp ./node_modules/fork-awesome/css/fork-awesome.min.css ./public/css/ cp ./node_modules/fork-awesome/css/fork-awesome.min.css.map ./public/css/ cp ./node_modules/fork-awesome/fonts/forkawesome-webfont.* ./public/fonts/ - cp ./mkbd65-ansi.png ./mkbd65-ansi-fn.png ./mkbd65-iso.png ./mkbd65-iso-fn.png ./img/ + cp ./mkbd65-{ansi,iso}.png ./mkbd65-{ansi,iso}-fn.png ./public/img/ + cp ./img/mkbd65_{74x74,148x148,222x222}.png ./public/img/ cp -r ./css ./public/ cp -r ./js ./public/ - cp mkbd65-iso.png mkbd65-ansi.png ./public/img/ - cp mkbd65-iso-fn.png mkbd65-ansi-fn.png ./public/img/ - cat header.html index.html footer.html > public/index.html - cat header.html build.html footer.html > public/build.html + cat ./{header,index,footer}.html > public/index.html + cat ./{header,build,footer}.html > public/build.html clean: rm -rf ./public diff --git a/img/mkbd65-ansi-fn.png b/img/mkbd65-ansi-fn.png deleted file mode 100644 index 8bea36e..0000000 Binary files a/img/mkbd65-ansi-fn.png and /dev/null differ diff --git a/img/mkbd65-ansi.png b/img/mkbd65-ansi.png deleted file mode 100644 index 1a7821f..0000000 Binary files a/img/mkbd65-ansi.png and /dev/null differ diff --git a/img/mkbd65-iso-fn.png b/img/mkbd65-iso-fn.png deleted file mode 100644 index 5a09c13..0000000 Binary files a/img/mkbd65-iso-fn.png and /dev/null differ diff --git a/img/mkbd65-iso.png b/img/mkbd65-iso.png deleted file mode 100644 index 14ac23d..0000000 Binary files a/img/mkbd65-iso.png and /dev/null differ diff --git a/index.html b/index.html index 6ff7128..7e236b6 100644 --- a/index.html +++ b/index.html @@ -13,17 +13,17 @@

Features

-
  • Full qwerty keyboard layout
  • Fully customizable through QMK firmware
  • Primary target layout is "English US intl. with AltGr"
  • Uses the phones USB-C port
  • +
  • Supports USB Power Delivery, phone can still fast charge while keyboard is plugged in
  • No Bluetooth – No additional battery
  • Very thin footprint
  • -
  • Open source firmware
  • -
  • Open hardware
  • +
  • Open source firmware (QMK)
  • +
  • Open source hardware
@@ -32,22 +32,19 @@

Roadmap

-

Revision 0 (Prototype)

  • Standard qwerty keyboard
  • USB connection with USB-C cable
- -

Revision 1 (Initial release)

+

Revision 1 (planned)

  • Slide out mechanism
  • Keyboard can be permanently connected to the phone
  • USB connection with USB-C flex cable
  • Charging the phone with additional USB-C port (no data)
-

Revision 2 (planned)

  • @@ -59,51 +56,42 @@
  • Key frontlight
-

Future revisions may include

-

Some of these features are a little insane, what can I do. ¯\_(ツ)_/¯

  • Headphone jack with dedicated sound card connected to the on board USB hub
  • +
  • Headphone jack using USB-C SBU pins
  • Key backlight
  • -
  • - Integrated KVM switch -
      -
    • Use the keyboard with a connected PC (headless server etc)
    • -
    • mkbd65 will advertise itself as a DisplayPort monitor over that USB cable and act as a webcam to the connected phone
    • -
    • Display content of the headless unit can then be shown in a dedicated KVM app or a compatible camera app
    • -
    • Inside the KVM app, the phones display area can be used as a touchpad/mouse for the headless unit
    • -
-

Layouts

+

Example layouts

-

ANSI

+

English US International (ANSI)

- ANSI layout + English US International (ANSI) layout
- ANSI layout Fn combinations + English US International (ANSI) layout Fn combinations
-

"ISO" (ANSI with big enter)

+

German (ISO)

- ISO layout + German (ISO) layout
- ISO layout Fn combinations + German (ISO) layout Fn combinations
@@ -114,23 +102,22 @@

Tips

-

The Fn key unlocks a lot of the missing keys and other functions.

-

The key labeled Alt is actually the AltGr key. Because the Alt key is not very useful on Android but the AltGr key is used in the English US intl. layout.

-

The AltGr key is also a sticky key. That means that it remains active until the next key is pressed, and then it is released. This allows you to type keyboard combinations without pressing more than one key at a time.

-

This keyboard uses the Esc-Grave option from QMK to combine the Esc and `~ keys

+

The key labeled Alt is actually the AltGr key. Because the Alt key is not very useful on Android but the AltGr key is used heavily in many layouts.

+

The AltGr key is also a sticky key. That means that it remains active until the next key is pressed and then it is released. This allows you to type keyboard combinations without pressing more than one key at a time.

+

This keyboard uses the Esc-Grave option from QMK to combine the Esc and `~ (^° in German layout) keys

Useful combinations:

  • Hold left thumb on Fn and right thumb on ⏎ to press Super (Windows key)
  • Get ` key by pressing Fn with left thumb and ' with right thumb
  • -
  • Get ~ key by pressing Shift with right thumb and Esc with left thumb
  • +
  • Get ~ key by pressing Shift with right thumb and Esc with left thumb (This is the mentioned Grave Escape feature of the QMK firmware)
  • Get € by tapping AltGr followed by 5 in the English (US) international layout
  • Get the german umlaut ä by tapping AltGr followed by q in the English (US) international layout
  • Get the german umlaut ü by tapping AltGr followed by y in the English (US) international layout
  • Get the german umlaut ö by tapping AltGr followed by p in the English (US) international layout
  • -
  • Cycle through open applications with Fn+O and Fn+P (macro for Alt+Tab/Alt+Shift+Tab) -
  • I'm sorry french typists: +
  • Cycle through open applications with Fn+O and Fn+P (macro for Alt+Tab and Alt+Shift+Tab) +
  • I'm sorry french typists using the English US International layout:
    • Tapping AltGr followed by Fn+' is the only way to get ` and combine it with the next char
    • Tapping AltGr followed by Shift+Fn+' is the only way to get ~ and combine it with the next char
    • @@ -141,22 +128,21 @@
-

Hardware

-
+

Revision 0 (Prototype)

- +
- +

mkbd65 has the USB Vendor ID 1209 and Product ID 4803. You can find it here.

-

The PCB is made with KiCAD. You can download the files here.

+

The PCB is made with KiCAD. You can download the files here.

It costs about 7-25€ to produce the PCB in a fab like JLCPCB. The full BOM can be found here.

@@ -165,8 +151,9 @@

Case

-

The CAD files for the case are generated from configuration files with the help of Solidpython and OpenSCAD.

-

Imagine some nice pictures of colorful 3D prints here!

+

The CAD files for the case are generated from adaptable file using OpenSCAD.

+

The case and keyboard parts can be easily adapted to any phones shape. Some expections are phone with "weird" camera bumps.

+

Imagine some nice pictures of colorful 3D prints here!

@@ -175,13 +162,13 @@

Compatible phones

-

The final PCB will be compatible with any phone that has a USB-C port and fits some minimal size requirements. The CAD files for the case are generated from configuration files and can be adapted to most phones. The limiting factor is mostly the shape of the camera bump.

-

Currently only these models are officially supported:

+

The final PCB will be compatible with any phone that has a USB-C port and fits some minimal size requirements. The CAD files for the case can be easily adapted to most phones. The limiting factor is mostly the shape of the camera bump.

+

Currently only these models have been tested and are known to work:

-

Phones that will never end up on this list include the newer Google Pixel phone with the visor camera bump because it doesn't have any space for the keyboard. So don't get your hopes up to use these with it. I hope the Pixel 8 will have a different design.

+

Phones that will never end up on this list include the newer Google Pixel phone with the visor camera bump because it doesn't have any space for the keyboard. So don't get your hopes up to use these with it. I hope the Pixel 8 will have a different design.

You want your phone on this list? Open an issue here and use the "New phone" template.

diff --git a/mkbd65-ansi-fn.jpg b/mkbd65-ansi-fn.jpg index 956e762..410f71c 100644 Binary files a/mkbd65-ansi-fn.jpg and b/mkbd65-ansi-fn.jpg differ diff --git a/mkbd65-ansi-fn.json b/mkbd65-ansi-fn.json index 8b7d5cb..02a91f2 100644 --- a/mkbd65-ansi-fn.json +++ b/mkbd65-ansi-fn.json @@ -1,7 +1,7 @@ [ { "backcolor": "#656565", - "name": "mkbd65 ANSI", + "name": "mkbd65 ISO", "author": "XenGi", "notes": "https://gitlab.com/mkbd65", "radii": "18px", @@ -17,7 +17,7 @@ "sm": "alps", "sb": "alps", "a": 7, - "f": 6 + "f": 7 }, "", "F1", @@ -31,32 +31,26 @@ "F9", "F10", { - "f": 7, "w": 2 }, "" ], [ + "", + "", + "", + "", + "", + "", + "", + "", { - "f": 6 + "f": 4 }, - "", - "", - "", - "", - "", - "", - "", - "", + "Alt Shift Tab", + "Alt Tab", { - "a": 5, - "f": 5 - }, - "Alt\nTab\n\n\n\n\nShift", - "Alt\nTab", - { - "a": 7, - "f": 6 + "f": 7 }, "F11", "F12", @@ -79,15 +73,11 @@ "~\n`", { "a": 7, - "f": 7, "w": 2 }, "" ], [ - { - "f": 6 - }, "", "", "", @@ -99,7 +89,7 @@ "", "", { - "f": 5 + "f": 4 }, "PgUp", { @@ -124,24 +114,31 @@ "f": 7 }, "", - { - "f": 6 - }, "", { + "f": 6, "w": 3 }, - "", + "", + { + "f": 7 + }, "", "", { "f": 5 }, "Home", + { + "f": 4 + }, "PgDn", + { + "f": 5 + }, "End", { - "f": 6 + "f": 7 }, "" ] diff --git a/mkbd65-ansi-fn.png b/mkbd65-ansi-fn.png index 8bea36e..f4467bc 100644 Binary files a/mkbd65-ansi-fn.png and b/mkbd65-ansi-fn.png differ diff --git a/mkbd65-ansi-thumb-fn.png b/mkbd65-ansi-thumb-fn.png index 99713fb..14216d7 100644 Binary files a/mkbd65-ansi-thumb-fn.png and b/mkbd65-ansi-thumb-fn.png differ diff --git a/mkbd65-iso-fn.jpg b/mkbd65-iso-fn.jpg index bba84fc..43e15c6 100644 Binary files a/mkbd65-iso-fn.jpg and b/mkbd65-iso-fn.jpg differ diff --git a/mkbd65-iso-fn.json b/mkbd65-iso-fn.json index b4e0c52..4233ca4 100644 --- a/mkbd65-iso-fn.json +++ b/mkbd65-iso-fn.json @@ -17,7 +17,7 @@ "sm": "alps", "sb": "alps", "a": 7, - "f": 6 + "f": 7 }, "", "F1", @@ -31,15 +31,11 @@ "F9", "F10", { - "f": 7, "w": 2 }, "" ], [ - { - "f": 6 - }, "", "", "", @@ -49,29 +45,21 @@ "", "", { - "a": 5, "f": 4 }, - "Alt\nTab\n\n\n\n\nShift", + "Alt Shift Tab", + "Alt Tab", { - "f": 6 - }, - "Alt\nTab", - { - "a": 7 + "f": 7 }, "F11", "F12", { - "f": 7, "h": 2 }, "" ], [ - { - "f": 6 - }, "", "", "", @@ -83,7 +71,7 @@ "", "", { - "a": 5 + "a": 4 }, "°\n^", { @@ -105,14 +93,11 @@ { "f": 4 }, - "PgUp", - { - "f": 6 - }, - "", + "Bild ", { "f": 7 }, + "", "" ], [ @@ -131,24 +116,31 @@ "f": 7 }, "", - { - "f": 6 - }, "", { + "f": 6, "w": 3 }, "", + { + "f": 7 + }, "", "", + { + "f": 5 + }, + "Pos1", { "f": 4 }, - "Home", - "PgDn", - "End", + "Bild ", { - "f": 6 + "f": 5 + }, + "Ende", + { + "f": 7 }, "" ] diff --git a/mkbd65-iso-fn.png b/mkbd65-iso-fn.png index 5a09c13..8b821df 100644 Binary files a/mkbd65-iso-fn.png and b/mkbd65-iso-fn.png differ diff --git a/mkbd65-iso-thumb-fn.png b/mkbd65-iso-thumb-fn.png index 56659b9..5361771 100644 Binary files a/mkbd65-iso-thumb-fn.png and b/mkbd65-iso-thumb-fn.png differ