太白金星

87-key retro mechanical keyboard based on QMK

 
Overview
## I have been using the 84 keys of BFACE before, but I found two problems: one is that there is a difference in the pressing sequence of the Fn key and the shift key, and the other is that the F1-F12 of the 84 keys are too close to the main key area, making it easy to accidentally touch them. So I wanted to DIY a mechanical keyboard with retro-looking Function keys on the left and right sides, similar to the IBM 3278, IBM5100, Fortune, and Zenith Z100. ![forturn.png] ## Use the [KLE](http://www.keyboard-layout-editor.com/) website to draw the keyboard layout. ![Screenshot 2022-01-19 6.02.57 pm] The lower left and right keys can be removed, giving it a more old keyboard feel; if added, 4 more function keys can be set. ## PCB ![WeChat screenshot_20220211200655.png] 1. I don’t want to solder SMD components myself, and I don’t want to spend money on SMT, so the diodes and resistors are pin type, and the diode direction is Col_to_Row; 2. I don’t want to solder the main control chip myself, I didn’t want to fiddle with the bootloader myself, so I directly soldered the Teesy 2.0+ system board to the PCB; 3. I didn’t want light pollution, so I only added a Caps Lock light in the end. ## The positioning plate uses the [Plate & Case Builder](http://builder.swillkb.com/) website to generate the DXF file. I don’t want to worry about the feel and price comparison of positioning boards made of various materials, so I just made a circuit-less PCB as a positioning board in Lichuang. In fact, although the positioning board does not have circuits and is not covered with copper, the processing cost is more expensive than the PCB board because it requires laser cutting of square holes. (Although there are dense holes on the PCB, they are all round through holes. Use A drill bit will suffice). ![plate.png] ## The shaft body adopts TTC gold powder shaft and belly spirit satellite shaft. The gold powder shaft is indeed very light and perfect for typing. The satellite axis is not adjusted clearly, and the large keys are a bit fleshy. ## The shell is drawn using [OpenSCAD](https://openscad.org/index.html) and purely code modeled. The preview function of positioning plates and keycaps refers to the work of [kbl2scad](https://bitbucket.org/afqueiruga/kbl2scad/src/master/). ![my87keys_full.png] The base is made of light-curing 3D printing, and the upper cover is made of oak. It is difficult to tap durable threads from both materials, so hexagonal grooves need to be dug to embed the nuts. I didn’t want to use the mini USB interface on Teensy, so I bought a Type-C module with positioning holes, made a homemade mini USB to Type-C cable, and designed a structure on the base to fix the Type-C module. . ![typec.png] ## Firmware 1. Use the [Keyboard Firmware Builder](https://kbfirmware.com/) website to generate source code; 3. Modify the values ​​of `VENDOR_ID` and `PRODUCT_ID` in the config.h file; 4 . Add `VIA_ENABLE = yes` in the rules.mk file; 5. Compile and generate firmware in QMK_MSYS; Note: It is necessary to correct the "obsolete" code in the keymap.c and kb.h files according to the error prompts 7. Use [Teensy Loader ](https://www.pjrc.com/store/teensy.html) Burn firmware; 8. Write via.json file and use [VIA](https://www.caniusevia.com) software to modify key values ​​in real time . ![WeChat screenshot_20220211211431.png] ## Assembly 1. Solder the Teensy 2.0+ system board, **and cut the pins short** (otherwise it will hit the positioning plate); 2. Put the * on the Teensy 2.0+ system board *Unsolder the LED lamp** (because it is connected to the PD6 port, if it is not removed, the column of 5, T, G, B, and space will be connected with the 4, R, F, and V keys next to it) 3. Solder the diode ( Unfortunately, the package on the PCB was drawn upside down at that time, so I had to solder it backwards. Of course, you can also solder the diode in the wrong direction of the package, and just change it to Row_To_Col in the firmware). Three 2X satellites near the axis The diode must be **soldered to the back of the PCB**, otherwise the satellite axis cannot be installed; 4. Use tweezers to test all buttons; 5. Install and debug the satellite axis (this step is best **before soldering the axis body**); 6. Weld the shaft body; 6. Drop 502 glue into the hexagonal grooves of the shell and the upper cover, embed the nuts into them, dry and fix, and then tighten the screws to assemble. ![WeChat picture_20220211172031.jpg] ![nocase.jpg] ![WeChat picture_20220218134816.jpg] ## Summary 1. This is my first self-designed keyboard project. Thanks to Lichuang for providing a good software ecosystem and open source With the community atmosphere, you can quickly find similar solutions that you can refer to and learn from. At the same time, it is easy to obtain the packages of various components, eliminating the need for manual measurement and drawing; 2. The first version must have regrets and omissions, such as the diode package is reversed, The main control board ports are not carefully screened, the hexagonal hole size is too large, the base slope angle is not enough, the main control button hole at the bottom can be designed as a foot pad hole, etc. If a maker forks this project, be sure to pay attention to the bold text in the document. parts to avoid production errors and rework. 3. Although AutoCAD was used to complete the design of the shell and base before 3D printing, in the spirit of open source and challenge, I taught myself OpenSCAD and reconstructed the entire design plan using "code" to avoid "unusual errors" in AutoCAD 3D design. For various problems caused by "parameterization", more than 400 lines of design code have also been open sourced for reference by latecomers. ## Attachment description 1. The my87keys.scad file is generated by kbl2scad.py and mainly includes key information; 2. my87keys_full.scad is a file for drawing various parts of the keyboard, which calls my87keys.scad; 3. via.json file is used for VIA software imports the configuration; 4. my8387-qmk.zip is the modified keyboard source code. After decompression, place it in the keyboard folder under the qmk path for compilation.
参考设计图片
×
 
 
Search Datasheet?

Supported by EEWorld Datasheet

Forum More
Update:2025-06-23 08:37:06
  • Socket programming problems
  • Good resource recommendation of the week: 2016.11.28-2016.12.4
  • IAR for 8051 error [e16] for beginners
  • 【C2000 LaunchPad】Build your own C2000 LaunchPad project
  • Floating lights powered by ocean waves
  • Good resource of the week - PCB layout guide

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
community

Robot
development
community

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号