I am a travel enthusiast and also have a strong need for customized buttons for e-sports and multimedia, so I conceived this modular portable keyboard with USB hub and an OLED screen.
The main control uses at90usb1286. It has a huge programmable space (128 kB) and a lot of IO ports. This is the reason why I chose him. The only drawback is that the price is slightly higher, 75 yuan on Taobao. Kaihua choc axis body.
The data transmission is completed by the cable, which is quite reliable (I didn't buy one with the right length, and it has grown a little now, but it doesn't affect it)
Folding is a simple matter of using two optical axes (2mm diameter, zero-cut, 100mm, Taobao, 10 yuan, free shipping), and the twisting is very smooth. It looks pretty nice to put a few meters of screws on both sides of the optical axis (I think it looks nice)
Many people complained about this controller. I happen to have two pieces in stock on hand, and the price is indeed high. In fact, if you really like it, you can change the main controller and go offline again. The source code I gave you can be migrated to many high-quality and low-priced main controllers.
A better idea is to replace the cable connecting the two motherboards with a spring shock (Xiaomi bracelet charging port) and then use two main controllers for IIC communication, which is better. The problem is that there is not enough flash capacity to play with the firmware.
The thickness is also compromised by the USB port. Removing the USB port and re-drawing a shell can reduce the thickness to one-half or even one-third of the current thickness. However, I really need a convenient interface for transferring ppt and other things.
If you have any better ideas, please feel free to speak out. This is the purpose of open source.
My laptop doesn't have many USB ports. When transferring data, I have to stand up to adjust the USB port plug-in device, so I added a USBhub chip to expand two USB2.0.
The speed of usb2.0 is only enough for keyboard, mouse and small-scale data transmission. If it exceeds 2Gb, I will use my m.2 hard disk box. Haha, these two interfaces only meet the needs of transferring ppt and so on.
In addition, the location of these two interfaces is located on the right side of the keyboard as shown in the figure
I plan to make a small keyboard module for him in the future, so that it can become a full keyboard configuration, modular modular.
In addition, if it is folded and placed in a backpack, foreign objects may enter the USB port and cause a short circuit (my bag is a huge mess, and there are often inexplicable small parts, and I have to clean it every time I come back), so I made a dust cover.
The dust cover also has another function - to raise the bracket (all magnets are attached, the magnets are very cheap, and the white ones are the extra cables)
The height of the pad is also in line with my personal habits.
The data cable is separated from the C port key cable. I made additional sinking. I think it looks good.
The code I am currently using on the OLED screen can display the wpm value in real time and generate a bar chart to intuitively feel the typing speed. When working, I can force myself to improve my typing efficiency.
There are two knobs on the left hand as shown in the picture to improve the efficiency of video editing. There are quite a lot of knob caps for the ec11 encoder. I made this one myself and was too lazy to spend money on it.
This knob module is made up of two small boards, as shown in the picture. Who doesn’t like two little guys every month for free?
The interface also has a dust cover and is also magnetically attracted
The io number of the interface here is enough to use the little red dot. If the trackball is unclear.
post photos
Finally, I would like to thank Mr. Liu and Gong Liu who connected me with the Spark Project of Jialichuang open source platform. This project is supported by the Spark Project and all Lichuang expenses are fully reimbursed. Thanks to this, I also made a set of keycaps for 3D Monkey Printing. .
The schematic diagram and pcb file should be bug-free. If you have any questions, please feel free to contact 383127866@qq.com
The code and shell step files are uploaded later.
If you like this project, please leave a comment and give it a thumbs up. This is my first project in my life, and I’m quite frustrated that no one cares about it, haha.
-------------------------------------------------- -------------------------------------------------- ----------
5.27 update
1. Via supports, you can change key positions in real time.
2. The circuit board shaft package is changed to the universal mx pentagonal shaft package
3. Added the ability to disable the usbhub jumper, so that the thickness of the new shell can be reduced without using the usb interface.
-------------------------------------------------- -------------------------------------------------- ----------------------------------------
Future improvements:
Circuit aspect:
Add the little red dot function
Modify the axis package to support ordinary axes
Shell: Make a thin shell without the USB, and compress the thickness to achieve true portability
All reference designs on this site are sourced from major semiconductor manufacturers or collected online for learning and research. The copyright belongs to the semiconductor manufacturer or the original author. If you believe that the reference design of this site infringes upon your relevant rights and interests, please send us a rights notice. As a neutral platform service provider, we will take measures to delete the relevant content in accordance with relevant laws after receiving the relevant notice from the rights holder. Please send relevant notifications to email: bbs_service@eeworld.com.cn.
It is your responsibility to test the circuit yourself and determine its suitability for you. EEWorld will not be liable for direct, indirect, special, incidental, consequential or punitive damages arising from any cause or anything connected to any reference design used.
Supported by EEWorld Datasheet