# QMK-based firmware for Zenith Z-150 keyboard

![Z-150](https://imgur.com/jayyyvJ.jpg)

Zenith Z-150 keyboard conversion project: direct connection of Black Pill to the matrix.

* Keyboard Maintainer: [DmNosachev](https://github.com/DmNosachev)
* Hardware Supported: [Zenith Z-150 keyboard, 100-1860 version with white logo](https://deskthority.net/wiki/Zenith_Z-150), Black Pill STM32F103C8T6 MCU board. Alternatevely you can use any MCU which is supported by QMK and has 22 or more IO pins: Arduino Micro, Teensy 2.0, Teensy 2.0++, Blue Pill, etc.

Earlier 100-1886 version with black logo has different PCB.

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

    make handwired/z150:default

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

# Modding

## Matrix

Z-150 has 11x8 matrix. It's ghost-free thanks to the diodes.

Columns are located under NEC D8049HC MCU IC:
![Z-150 columns](https://imgur.com/XiOsrnh.jpg)

Rows are connected to unmarked 24-pin MUX IC:
![Z-150 rows](https://imgur.com/Wu8rHY0.jpg)

## LEDs

LEDs (from left to right): NumLock, CapsLock, ScrollLock:
![Z-150 LED cathodes](https://imgur.com/MO5NLlZ.jpg)

Their anodes are connected to VCC through 220Ω resistors.
![Z-150 LED anodes](https://imgur.com/w1MfjRN.jpg)

You can keep the original resistors, but with Black Pill or any other 3.3V controller the LEDs may seem a little dim. Try 150Ω or close value if you want to fix that.


## Black Pill
Suggested mount position for the Black Pill (view from the bottom side of the PCB):

```
      R0  R1  R2  R3  R4  R6          R9  LC  LN  LS
,--------------------------------------------------------------------,
|B12 B13 B14 B15  A8  A9 A10 A11 A12 A15  B3  B4  B5  B6  B7 3V3 GND |---,
|                                                                    |USB|
|B11 B10  B1  B0  A7  A6  A5  A4  A3  A2  A1  A0 RST C13  B9  B8 GND |---'
'--------------------------------------------------------------------'
  C0  C1  C2  C3  C4  C5  C6  C7  R5  R8  R7  RA    
```


1. Desolder all ICs, crystal oscillator, capacitors and resistors except R0–R2 (they connect LEDs to VCC).
1. Solder 12-pin header to the Black Pill (pins B11–A0 on the left side).
2. Solder two 3-pin headers for boot jumpers.
3. Solder 4-pin SWD header.
4. Burn [STM32duino bootloader](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/bootloader_only_binaries/generic_boot20_pb12.bin) to Black Pill.
5. Compile and flash the firmware: `make handwired/z150:default:flash`
5. Align Black Pill pins B11–A4 with columns 0–7 and solder them.
6. Connect rows, LEDs, ground and VCC traces to the corresponding pins of the BlackPill using additional wires.