https://github.com/cipulot/ec-pro-2
Open source replacement PCB kit for the HHKB Pro 2 keyboard.
https://github.com/cipulot/ec-pro-2
keyboard qmk-firmware topre vial
Last synced: 3 months ago
JSON representation
Open source replacement PCB kit for the HHKB Pro 2 keyboard.
- Host: GitHub
- URL: https://github.com/cipulot/ec-pro-2
- Owner: Cipulot
- License: other
- Created: 2022-10-06T12:03:08.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-05T10:03:12.000Z (about 1 year ago)
- Last Synced: 2025-01-19T22:50:07.746Z (5 months ago)
- Topics: keyboard, qmk-firmware, topre, vial
- Homepage:
- Size: 20.1 MB
- Stars: 54
- Watchers: 3
- Forks: 17
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# EC Pro2
Open source HHKB Pro2 Controller and mainboard.
## **DEPRECATED**
Project deprecated in favor of the EC Pro X.
Please note that no further support will be provided, let alone give support for boards not sourced from my official runs or approved sources.
# EC PRO X Available for direct purchase!
If you want to buy directly and support my work you can now do it so [here](https://cannonkeys.com/products/cipulot-ec-pcbs-and-daughterboards).
## Introduction
This project is a continuation of my development of open source EC boards.
The supported layout options are the following:

## Technical information
### Mainboard
- Layout size: HHKB Pro2 ANSI and some additions
- Compatible switches: EC switches (Topre and NIZ)
- Microcontroller: STM32F401
- Connector: JST connector for controller board
- Firmware compatibility: QMK (with VIA/VIAL support)
- Protection hardware (present on both the mainboard and both controller versions):
- Fused
- ESD protection### Lite Controller board
The Lite controller board is a slimmed down version of the controller board, featuring only protection hardware and a JST connector for the mainboard.
This is cost effective choice in case the user doesn't need the USB hub feature or the aftermarket case doesn't take advantage of it.
### Normal Controller board
The Normal Controller instead is a full featured controller board, featuring a USB hub, a JST connector for the mainboard and a USB Type-C connector for the PC.
The USB hub is a USB 2.0 hub, featuring 3 USB-A 2.0 ports, one of which is internal, to be used for dongles or small USB drives.
Key features of the Normal Controller are:
- USB 2.0 hub based on the FE1.1 IC
- 2x USB-A 2.0 ports in the same position as the original HHKB Pro 2
- 1x internal USB-A 2.0 port
- Per port current limit on each downstream port using MIC2026-2 for the 2 externally accessible USB ports.**NOTES**
- The internal USB port is intended only for low power devices, such as dongles and small usb drives as previously mentioned. It is not intended for high power devices. Furthermore it is not ESD protected nor current limited and shares the power rail with the rest of the controller.
- The main USB-C port, as well as the 2x externally accessible USB-A downstream ports are ESD protected and current limited.
Keep in mind the the USB 2.0 power budget sets a typical current limit of **500mA**, therefore that is the total budget available to the entire board (controller + mainboard + devices connected to the hub).
## Renders and Prototypes
### Render
Mainboard:


Lite Controller board:
Normal Controller board:
### Prototypes
Mainboard:


Lite Controller:
Normal Controller:
## Revisions and relative features
### Rev1
This revision implements all the main features of the mainboard ad controllers mentioned in the specifications.
#### Connectivity
The Revision 1 (Rev1) implements a USB hub based on the FE1.1 USB HUB IC.
Connection to the PC is achieved through a USB-C connector while devices downstream will use USB-A ports.
Mind that the USB-C connector is wider than the original USB mini connector used, therefore modifications to enlarge the port cutout on the case will be needed. In case you will use this board in an aftermarket case already designed with USB-C in mind n o further modifications are needed.
#### RGB header

The mainboard features an RGB header for connecting +5V addressable RGB strips. THe properties of the lihting can be controlled through Vial or by assigning RGB control keycodes on the board itself.
On the bottom right corner of the PCB, near the bootloader instructions, a pinout diagram shows how to connect the strip to the header:

#### DFU
To access the DFU mode of the mainboard you can perform one of the following actions:
- press the key to which the `QK_BOOT` keycode is assigned (if available)
- while plugging in the board keep the `ESC` (top left corner key) pressed
- while plugging in the board short the `Boot0` pins on the mainboard
## PCB order procedure
In order to have me highers compatibility possible with PCB manufacturers, I decided to design the board around the [JLC7628 Stackup](https://cart.jlcpcb.com/impedance#:~:text=4%2DLayer%20Impedance%20Control%20Stackup) from JLCPCB.
The rational behind this is that the JCPCB stackup is relatively cheap and if the board worked with the stackup, it would be easier to get the board to work with pretty much any other many that offer an equivalent stackup and higher prices.
Both the `Lite` and `Normal` controllers can be instead be ordered with standard 2 layer stackup.
### Production files
The production can be found in the [Production folder](/Production).
As usual the `*.zip` files are the gerber files, `BOM-*.csv` are the BOM (Bill Of Material) files and `POS-*.csv` are the POS/CPL (Footprint POSition/Component Placement List) files.
## Mainboard
As mentioned above, the mainboard is designed around the JLCPCB stackup. The mainboard is a 4 layer board.
Here are the options to select when ordering the mainboard:
- PCB thickness: 1.6mm
- Impedance: NO
- Layer stackup:
- L1(Top layer): `EC_Pro2_Mainboard-F_Cu.gbr`
- L2(Inner layer1): `EC_Pro2_Mainboard-In1_Cu.gbr`
- L3(Inner layer2): `EC_Pro2_Mainboard-In2_Cu.gbr`
- L4(Bottom layer): `EC_Pro2_Mainboard-B_Cu.gbr`
- PCB Color: whatever you like
- Surface Finish: whatever you like
- Material Type: `FR-4 TG155`All the other options can be left as default.
### Assembly options
Here follows the options to be used for assembly:
- Assembly Side: Bottom
- Tooling holes: `Added by JLCPCB`
- Confirm Parts Placement: `yes`**USB-A connector**
An alternative part that has been tested and works is the `JINJIA USB-SMT-04F-S1-B1-R11` from [LCSC](https://www.lcsc.com/product-detail/USB-Connectors_JINJIA-USB-SMT-04F-S1-B1-R11_C718023.html).
As a general rule of thumb the USB-A connectors are interchangeable if they meet the following requirmemnts:
- fits the PCB outline
- has the same number of pins and mounting
- has the following receptor configuration
To be more specific, the plastic part of the connector should be on the top and not the bottom.
**BEWARE** that some USB-A connectors have the plastic part on the bottom, in this case the connector will have the pinout reversed, therefore causing inverse polarity on the USB lines.
The following picture shows the correct orientation of the USB-A connector on the top board while the incorrect one on the bottom board:
### NOTES ABOUT THE OPTIONS
- Once you upload the gerber files wait for the system to automatically recognize the board outline and layers. It will take a while, be patient.
- `PCB thickness` has been tested on both 1.6mm and 1.2mm so it's your call on which one to use.
- For `Material Type` I strongly suggest to use `FR-4 TG155`, using the standard `FR4-Standard TG130-140` material might result in the board delamination and generally is not advised on 4 layer boards.
## Compatibility notice
The EC Pro2 project is intended as a full replacement kit for the OEM HHKB Pro2 controller and main PCB. Therefore it **IS NOT** compatible with the OEM PCBs (both controller and mainboard).
## Copyright notice
This project is not endorse nor sponsored in any way by Topre Corporation and PFU Limited. The HHKB Logo and Topre logo are trademarks of their respective owners.
## License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.