forked from mirrors/qmk_userspace
HHKB YDKB Yang BT Controller (#15759)
Co-authored-by: Drashna Jaelre <drashna@live.com>
This commit is contained in:
parent
0eab24be26
commit
f439fe6055
11 changed files with 1028 additions and 0 deletions
118
keyboards/hhkb/yang/readme.md
Normal file
118
keyboards/hhkb/yang/readme.md
Normal file
|
@ -0,0 +1,118 @@
|
|||
# HHKB Alternate Controller (YANG HHKB BLE Mod)
|
||||
|
||||

|
||||
|
||||
An alternative controler for the HHKB designed by YANG (yangdigi)
|
||||
based on the hasu controller.
|
||||
|
||||
* Keyboard Maintainer: [Kan-Ru Chen](https://github.com/kanru)
|
||||
* Hardware Supported: YANG HHKB BLE Controller
|
||||
* Hardware Availability: https://kbdfans.com/products/hhkb-ble-mod-upgrade-module
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make hhkb/yang:default
|
||||
|
||||
To flash, first boot your keyboard into bootloader (hold ESC and attach usb cable)
|
||||
then a virtual USB storage should appear. You can copy the `hhkb_yang_default.bin`
|
||||
file to the virtual USB storage and override the `HHKB_BLE.BIN` file in there.
|
||||
|
||||
Make sure to unmount and eject the virtual USB storage.
|
||||
|
||||
## Features:
|
||||
|
||||
- [x] QMK (via USB)
|
||||
- [x] Bluetooth (BLE)
|
||||
- [x] Power saving mode
|
||||
- [x] Idle mode
|
||||
- [x] Deep sleep mode
|
||||
- [x] LEDs
|
||||
- [x] Battery service
|
||||
- [x] Special commands
|
||||
- [x] Switch BT peer
|
||||
|
||||
## Entering flash mode
|
||||
|
||||
Different ways to enter flash mode:
|
||||
|
||||
* Press and hold the ESC key. Insert the USB cable to enter the flash
|
||||
mode. When the OS shows the drive disk, you can release the key.
|
||||
|
||||
* Use the magic command LSHIFT+RSHIFT+B to reboot to bootloader then
|
||||
quickly hold the ESC key.
|
||||
|
||||
If you reflash the wrong firmware or did not reflash successfully, you
|
||||
can no longer enter the flash mode, especially the wireless keyboard
|
||||
with battery. You need to turn off the keyboard's power switch, and
|
||||
re-enter the flash mode, reflash the correct firmware.
|
||||
|
||||
After entering the bootloader(flash mode), three indicators on the top
|
||||
right of the HHKB BLE controller will flash. LED3(green) will flash
|
||||
quickly when writing firmware to the controller.
|
||||
|
||||
If these three leds are not soldered or your hhkb case is black, you
|
||||
can't know their status, but you can still see LED3 under the right
|
||||
USB port.
|
||||
|
||||
## How to reliably flash LUFA MassStorage bootloader on Linux
|
||||
|
||||
The FAT filesystem on Linux very often cannot flush the write cache,
|
||||
leading to broken firmware in the flash.
|
||||
|
||||
We can use `dd` to write to the virtual block storage directly to
|
||||
bypass the vfs layer.
|
||||
|
||||
```
|
||||
dd if=FLASH.bin of=<path of virtual block device> seek=4
|
||||
```
|
||||
|
||||
Skip 4 sectors because the default sector size of the virtual device
|
||||
and dd is 512 bytes and the emulated flash file starts at 5th sector.
|
||||
|
||||
## How to find the path of the virtual block device
|
||||
|
||||
After the keyboard boots into flash mode, on Linux system you should
|
||||
be able to find the block device in `dmesg` logs.
|
||||
|
||||
For exmaple if you type
|
||||
|
||||
```
|
||||
sudo dmesg
|
||||
```
|
||||
|
||||
You should find something like
|
||||
|
||||
```
|
||||
[357885.143593] usb 1-1.4: USB disconnect, device number 24
|
||||
[357885.627740] usb 1-1.4: new full-speed USB device number 25 using xhci_hcd
|
||||
[357885.729486] usb 1-1.4: New USB device found, idVendor=03eb, idProduct=1962, bcdDevice= 0.01
|
||||
[357885.729492] usb 1-1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
|
||||
[357885.745620] SCSI subsystem initialized
|
||||
[357885.746712] usb-storage 1-1.4:1.0: USB Mass Storage device detected
|
||||
[357885.746818] scsi host0: usb-storage 1-1.4:1.0
|
||||
[357885.746919] usbcore: registered new interface driver usb-storage
|
||||
[357885.747689] usbcore: registered new interface driver uas
|
||||
[357886.766755] scsi 0:0:0:0: Direct-Access LUFA Bootloader 0.00 PQ: 0 ANSI: 0
|
||||
[357886.773216] scsi 0:0:0:0: Attached scsi generic sg0 type 0
|
||||
[357886.777474] sd 0:0:0:0: [sdx] 134 512-byte logical blocks: (68.6 kB/67.0 KiB)
|
||||
[357886.780300] sd 0:0:0:0: [sdx] Write Protect is off
|
||||
[357886.780302] sd 0:0:0:0: [sdx] Mode Sense: 00 00 00 00
|
||||
[357886.783113] sd 0:0:0:0: [sdx] Asking for cache data failed
|
||||
[357886.783114] sd 0:0:0:0: [sdx] Assuming drive cache: write through
|
||||
[357886.842676] sdx:
|
||||
[357886.859528] sd 0:0:0:0: [sdx] Attached SCSI removable disk
|
||||
```
|
||||
|
||||
The `sdx` is the block device name and the full path is at `/dev/sdx`
|
||||
The above flash command will become
|
||||
|
||||
```
|
||||
dd if=FLASH.bin of=/dev/sdx seek=4
|
||||
```
|
||||
|
||||
**Caution**: if set to incorrect device it may wipe out
|
||||
your actual disk.
|
||||
|
||||
## Help page of original firmware
|
||||
|
||||
http://help.ydkb.io/doku.php?id=en:kb-mods:hhkb-ble
|
Loading…
Add table
Add a link
Reference in a new issue