1
0
mirror of https://github.com/whowechina/chu_pico.git synced 2024-11-27 20:20:50 +01:00

Cross-reference to new Groove Pico

This commit is contained in:
whowechina 2024-07-15 16:05:31 +08:00
parent f31faa11df
commit 0a52eb01a1
2 changed files with 366 additions and 352 deletions

352
README.md
View File

@ -1,173 +1,179 @@
# Chu Pico - Chunithm Style Mini Controller
[点这里可以切换到中文版](README_CN.md)
<img src="doc/main.jpg" width="80%">
Features:
* It's small, made for 15-17 inch screen.
* Air towers are replaced with built-in ToF sensors.
* HID lights, of course!
* 32 keys (upper and lower rows).
* Follows CrazyRedMachine's RedBoard I/O protocol.
* Command line of rich features.
* All source files open.
Thanks to many respectful guys/companies who made their tools or materials free or open source (KiCad, OnShape, InkScape, Raspberry things).
And thanks to community developers that inspired me and helped me: CrazyRedMachine (https://github.com/CrazyRedMachine), SpeedyPotato (https://github.com/speedypotato).
## Notes
This one is relatively easy to build compared with my other projects like IIDX Pico or Teeny. You can check out my other cool projects.
* Popn Pico: https://github.com/whowechina/popn_pico
<img src="https://raw.githubusercontent.com/whowechina/popn_pico/main/doc/main.jpg" width="180px">
* IIDX Pico: https://github.com/whowechina/iidx_pico
<img src="https://raw.githubusercontent.com/whowechina/iidx_pico/main/doc/main.jpg" width="250px">
* IIDX Teeny: https://github.com/whowechina/iidx_teeny
<img src="https://raw.githubusercontent.com/whowechina/iidx_teeny/main/doc/main.jpg" width="250px">
* Mai Pico: https://github.com/whowechina/mai_pico
<img src="https://raw.githubusercontent.com/whowechina/mai_pico/main/doc/main.jpg" width="250px">
This Chu Pico project:
* Heavily depends on 3D printing, you need a Bambu 3D printer (X1 or P1).
* Requires skills to solder tiny components.
## **Disclaimer** ##
I made this project in my personal time with no financial benefit or sponsorship. I will continue to improve the project. I have done my best to ensure that everything is accurate and functional, there's always a chance that mistakes may occur. I cannot be held responsible for any loss of your time or money that may result from using this open source project. Thank you for your understanding.
## About the License
It's CC-NC. So DIY for yourself and for your friend, don't make money from it.
## HOW TO BUILD
### Frequently Made Mistakes
Many DIY enthusiasts commonly make certain mistakes during the building process. Please proceed with extra caution to avoid these.
* **MISTAKE: Soldering everything together without conducting intermediate testing.**
Remember, even professional engineers can make mistakes. It becomes significantly harder to identify the root cause of a problem when all components are already assembled or soldered. Therefore, it's advisable to solder and test in stages. The firmware is designed to function correctly even with some components missing, which is good for testing.
* **MISTAKE: Neglecting to cut the ADDR pin trace on the MPR121 module.**
The MPR121 module in the market has the ADDR pin pre-connected to ground. But the board expects a floating ADDR pin, otherwise the ADDR pin will short the circuit. Please verify your "CUT" using a multimeter.
* **MISTAKE: Rushing to replace components when something fails.**
Sometimes people prematurely assumes that the Raspberry Pi Pico or other modules are faulty.
Be aware that desoldering and soldering large SMD components is a challenging task. It carries the risk of damaging the component or the PCB board. Patience and caution are crucial. Look at the schematics and PCB design files and ask help from community first. Questioning the integrity of these components should be your last resort.
* **MISTAKE: Failing to properly solder the 3 USB pins of the Raspberry Pi Pico.**
These pins are at the bottom side of the PCB. It's a common oversight to either forget to solder them or to leave air bubbles during the process. To avoid this, solder slowly from one side of the hole, using minimal solder wire and a generous amount of flux.
### PCB
* Go JLCPCB and make order with the gerber zip file (latest `Production\PCB\chu_main_xxx.zip`), regular FR-4 board, black color, thickness is **1.6mm**.
* 1x Rasberry Pico Pi Pico or Pico W.
https://www.raspberrypi.com/products/raspberry-pi-pico
Becareful of 3 pins that are at the other side, they're difficult to solder and may leave air bubbles.
<img src="doc/solder_usb_txrx.jpg" width="60%">
* 1x USB Type-C socket (918-418K2023S40001 or KH-TYPE-C-16P)
* 36x WS2812B-4020 side-facing RGB LEDs.
https://www.lcsc.com/product-detail/Light-Emitting-Diodes-LED_Worldsemi-WS2812B-4020_C965557.html
* TCA9548APWR (TSSOP-24) I2C multiplexer.
https://www.lcsc.com/product-detail/Signal-Switches-Encoders-Decoders-Multiplexers_Texas-Instruments-TCA9548APWR_C130026.html
* 3x MPR121 modules, there're many types in the market, choose ones like this.
https://www.sparkfun.com/products/retired/9695
Before solder MP121 module to the main PCB board, remember to use a knife to **cut (unshort) the tiny trace that connects ADDR to the GND**. Please be careful not to cut more than necessary.
<img src="doc/mpr121_cut.png" width="40%">
There's not enough space for the whole height of MPR121 module plus the lead pads. So you need to solder the module like the picture shows below.
First apply some insulation tape.
<img src="doc/mpr121_solder1.jpg" width="60%">
Then solder the module directly against the PCB.
<img src="doc/mpr121_solder2.jpg" width="60%">
You can use the pins comes with the module, but you need to cut away the plastic pads.
<img src="doc/mpr121_solder3.jpg" width="60%">
* 5x Sharp GP2Y0E03 or ST VL53L0X ToF sensor modules, you need cables as well.
https://www.lcsc.com/product-detail/Angle-Linear-Position-Sensors_Sharp-Microelectronics-GP2Y0E03_C920270.html
<img src="doc/gp2y0e03_solder.jpg" width="60%">
<img src="doc/vl53l0x.jpg" width="60%">
You can use both of them in a same PCB, the firmware will identify each of them automatically.
<img src="doc/tof_mix.jpg" width="80%">
* 2x 0603 5.1kohm resistors (R1, R2) for USB.
* 1x SN74LV1T34DBVR (SOT-23-5) level shifter (U8), if you can't find one, use a 0603 10ohm resistor (R3) as an alternative.
https://www.lcsc.com/product-detail/Buffer-Driver-Transceiver_Texas-Instruments-SN74LV1T34DBVR_C100024.html
<img src="doc/pcb_1.png" width="90%">
* 8x 0603 1uF (0.1~1uF all fine) capacitors (C1 to C8), OPTIONAL, recommended.
* 10x 0603 5.1kohm (1~5.1kohm all fine) resistors (R4 to R13) for I2C pull-up, required for overclock I2C.
### Light Guide Panel
* Find a service to cut a light guide panel using DXF or DWG file `Production\CAD\chu_pico_lgp.*`, the size is 256mm*60mm, 1.8mm to 2.0mm thickness, thinner is better for sensitivity. 2.0mm is easy to find, 1.8mm is rare. I used 1.8mm for my build.
<img src="doc/lgp_1.png" width="90%">
* LGP material choices:
* Real LGP (Light Guide Panel) material, it's the best choice.
<img src="doc/lgp_2.png" width="50%">
* Clear Acrylic with Light Guide Film, it's a good choice.
<img src="doc/lgp_3.png" width="50%">
* Clear Acrylic with single-side-frosted, it's a good choice.
<img src="doc/lgp_4.png" width="50%">
* Clear Acrylic with manual single-side-sanding, it can work too.
<img src="doc/lgp_5.png" width="50%">
### Panel Film
* A self-adhesive **textured**/**frosted** film sheet, it is applied on top surface of the light guide panel. It improves touch feel. You can use window sticker film. It **MUST** be self-adhesive ones, **NOT** static cling ones. They're usually very cheap.
* Cut the film to roughly match the shape of the light guide panel, and stick to the panel.
<img src="doc/film_1.jpg" width="60%">
* Gentlely rub the film to remove any air bubbles and make it stick tightly.
<img src="doc/film_2.jpg" width="60%">
### IR Cover
* It's for good looking, as it hides 5 ToF sensors.
<img src="doc/ir_cover_1.png" width="60%">
* IR lights can go through.
<img src="doc/ir_cover_2.png" width="60%">
* Find a service to cut an IR cover using the DXF or DWG file `Production\CAD\chu_pico_ir_cover.*`, the size is 293.2mm*63.5mm, 1mm thickness. The material must be "Infrared Transmitting Acrylic Sheet" which can block visible lights (so it looks black) while letting IR lights go through.
<img src="doc/ir_cover_3.png" width="80%">
* If you can't find one, cut a regular smooth surface acrylic, but it can't hide the ToF sensors which are not good looking.
* If you're using the VL53L0x ToF sensor, please add padding beneath the sensor. This brings it closer to the acrylic cover, which can prevent acrosstalk error.
### 3D Printing
* You need a Bambu 3D printer for 2 reasons:
* Parts are designed to perfectly fit in its 256mm*256mm print bed.
* Its AMS system works great for easy-to-remove support material.
* For all the following prints:
* To fit object in the bed, Z rotate: 315 degree, X, Y move to: 134mm
<img src="doc/rotate.png" width="50%"><img src="doc/moveto.png" width="32%">
<img src="doc/layout.png" width="80%">
* PLA, PETG, ABS are all OK.
* Layer height: 0.2mm
* 4-6 walls, 50+% infill
* Support: Yes. If you have Bambu AMS system, use their special support material at interface layers.
* Base: `Production\3D\chu_pico_base.stl`, dark gray filament.
* Cover: `Production\3D\chu_pico_cover(_aime).stl`, dark gray filament.
* Cover Base: `Production\3D\chu_pico_cover_base.stl`, **clear transparent (IMPORTANT)** filament.
* Light Guide Panel Fixer: `Production\3D\chu_pico_lgp_fixer.stl`, color doesn't matter.
### Exploded View for Assembly
<img src="doc/assemble.png" width="80%">
From top to bottom:
* IR Cover
* Cover
* Cover Base
* Panel Film
* Light Guide Panel
* PCB
* Light Guide Panel Fixer
* Base
You need **4x M3*12mm screws and 4x M3 hex nuts** to fix all things.
7x silicone anti-slip pads can be applied to the bottom side of the base to provide stability when playing.
<img src="doc/silicone_pad.png" width="50%">
### Firmware
* UF2 file is in `Production\Firmware` folder.
* For the new build, hold the BOOTSEL button while connect the USB to a PC, there will be a disk named "RPI-RP2" showed up. Drag the UF2 firmware binary file into it. That's it. There's a small hole at the bottom side of the Chu Pico, it is facing right to the BOOTSEL button.
* It works on CrazyRedMachine's RedBoard protocol. For more information, please check out CrazyRedMachine's project (Don't forget to give him a star and drop by his GitHub for other cool projects):
https://github.com/CrazyRedMachine/RedBoard
* It has a command line to do configuration. You can use this Web Serial Terminal to connect to the USB serial port of the Chu Pico. (Note: "?" is for help)
https://googlechromelabs.github.io/serial-terminal/
<img src="doc/cmd.png" width="320">
## CAD Source File
I'm using OnShape free subscription. It's powerful but it can't archive original designs to local, so I can only share the link here. STL/DXF/DWG files are exported from this online document.
https://cad.onshape.com/documents/8b9d0fe6ff1bfa4da17d33ee/w/5c7c980a282a19e7ba1db795/e/56ee65492584a3f709c23c49?renderMode=1&uiState=64fd606f17393c0e6f9b19a4
# Chu Pico - Chunithm Style Mini Controller
[点这里可以切换到中文版](README_CN.md)
<img src="doc/main.jpg" width="80%">
Features:
* It's small, made for 15-17 inch screen.
* Air towers are replaced with built-in ToF sensors.
* HID lights, of course!
* 32 keys (upper and lower rows).
* Follows CrazyRedMachine's RedBoard I/O protocol.
* Command line of rich features.
* All source files open.
Thanks to many respectful guys/companies who made their tools or materials free or open source (KiCad, OnShape, InkScape, Raspberry things).
And thanks to community developers that inspired me and helped me: CrazyRedMachine (https://github.com/CrazyRedMachine), SpeedyPotato (https://github.com/speedypotato).
## Notes
This one is relatively easy to build compared with my other projects like IIDX Pico or Teeny. You can check out my other cool projects.
<img src="https://github.com/whowechina/popn_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/iidx_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/iidx_teeny/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/chu_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/mai_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/diva_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/aic_pico/raw/main/doc/main.gif" height="100px">
<img src="https://github.com/whowechina/groove_pico/raw/main/doc/main.gif" height="100px">
* Popn Pico: https://github.com/whowechina/popn_pico
* IIDX Pico: https://github.com/whowechina/iidx_pico
* IIDX Teeny: https://github.com/whowechina/iidx_teeny
* Chu Pico: https://github.com/whowechina/chu_pico
* Mai Pico: https://github.com/whowechina/mai_pico
* Diva Pico: https://github.com/whowechina/diva_pico
* AIC Pico: https://github.com/whowechina/aic_pico
* Groove Pico: https://github.com/whowechina/groove_pico
This Chu Pico project:
* Heavily depends on 3D printing, you need a Bambu 3D printer (X1 or P1).
* Requires skills to solder tiny components.
## **Disclaimer** ##
I made this project in my personal time with no financial benefit or sponsorship. I will continue to improve the project. I have done my best to ensure that everything is accurate and functional, there's always a chance that mistakes may occur. I cannot be held responsible for any loss of your time or money that may result from using this open source project. Thank you for your understanding.
## About the License
It's CC-NC. So DIY for yourself and for your friend, don't make money from it.
## HOW TO BUILD
### Frequently Made Mistakes
Many DIY enthusiasts commonly make certain mistakes during the building process. Please proceed with extra caution to avoid these.
* **MISTAKE: Soldering everything together without conducting intermediate testing.**
Remember, even professional engineers can make mistakes. It becomes significantly harder to identify the root cause of a problem when all components are already assembled or soldered. Therefore, it's advisable to solder and test in stages. The firmware is designed to function correctly even with some components missing, which is good for testing.
* **MISTAKE: Neglecting to cut the ADDR pin trace on the MPR121 module.**
The MPR121 module in the market has the ADDR pin pre-connected to ground. But the board expects a floating ADDR pin, otherwise the ADDR pin will short the circuit. Please verify your "CUT" using a multimeter.
* **MISTAKE: Rushing to replace components when something fails.**
Sometimes people prematurely assumes that the Raspberry Pi Pico or other modules are faulty.
Be aware that desoldering and soldering large SMD components is a challenging task. It carries the risk of damaging the component or the PCB board. Patience and caution are crucial. Look at the schematics and PCB design files and ask help from community first. Questioning the integrity of these components should be your last resort.
* **MISTAKE: Failing to properly solder the 3 USB pins of the Raspberry Pi Pico.**
These pins are at the bottom side of the PCB. It's a common oversight to either forget to solder them or to leave air bubbles during the process. To avoid this, solder slowly from one side of the hole, using minimal solder wire and a generous amount of flux.
### PCB
* Go JLCPCB and make order with the gerber zip file (latest `Production\PCB\chu_main_xxx.zip`), regular FR-4 board, black color, thickness is **1.6mm**.
* 1x Rasberry Pico Pi Pico or Pico W.
https://www.raspberrypi.com/products/raspberry-pi-pico
Becareful of 3 pins that are at the other side, they're difficult to solder and may leave air bubbles.
<img src="doc/solder_usb_txrx.jpg" width="60%">
* 1x USB Type-C socket (918-418K2023S40001 or KH-TYPE-C-16P)
* 36x WS2812B-4020 side-facing RGB LEDs.
https://www.lcsc.com/product-detail/Light-Emitting-Diodes-LED_Worldsemi-WS2812B-4020_C965557.html
* TCA9548APWR (TSSOP-24) I2C multiplexer.
https://www.lcsc.com/product-detail/Signal-Switches-Encoders-Decoders-Multiplexers_Texas-Instruments-TCA9548APWR_C130026.html
* 3x MPR121 modules, there're many types in the market, choose ones like this.
https://www.sparkfun.com/products/retired/9695
Before solder MP121 module to the main PCB board, remember to use a knife to **cut (unshort) the tiny trace that connects ADDR to the GND**. Please be careful not to cut more than necessary.
<img src="doc/mpr121_cut.png" width="40%">
There's not enough space for the whole height of MPR121 module plus the lead pads. So you need to solder the module like the picture shows below.
First apply some insulation tape.
<img src="doc/mpr121_solder1.jpg" width="60%">
Then solder the module directly against the PCB.
<img src="doc/mpr121_solder2.jpg" width="60%">
You can use the pins comes with the module, but you need to cut away the plastic pads.
<img src="doc/mpr121_solder3.jpg" width="60%">
* 5x Sharp GP2Y0E03 or ST VL53L0X ToF sensor modules, you need cables as well.
https://www.lcsc.com/product-detail/Angle-Linear-Position-Sensors_Sharp-Microelectronics-GP2Y0E03_C920270.html
<img src="doc/gp2y0e03_solder.jpg" width="60%">
<img src="doc/vl53l0x.jpg" width="60%">
You can use both of them in a same PCB, the firmware will identify each of them automatically.
<img src="doc/tof_mix.jpg" width="80%">
* 2x 0603 5.1kohm resistors (R1, R2) for USB.
* 1x SN74LV1T34DBVR (SOT-23-5) level shifter (U8), if you can't find one, use a 0603 10ohm resistor (R3) as an alternative.
https://www.lcsc.com/product-detail/Buffer-Driver-Transceiver_Texas-Instruments-SN74LV1T34DBVR_C100024.html
<img src="doc/pcb_1.png" width="90%">
* 8x 0603 1uF (0.1~1uF all fine) capacitors (C1 to C8), OPTIONAL, recommended.
* 10x 0603 5.1kohm (1~5.1kohm all fine) resistors (R4 to R13) for I2C pull-up, required for overclock I2C.
### Light Guide Panel
* Find a service to cut a light guide panel using DXF or DWG file `Production\CAD\chu_pico_lgp.*`, the size is 256mm*60mm, 1.8mm to 2.0mm thickness, thinner is better for sensitivity. 2.0mm is easy to find, 1.8mm is rare. I used 1.8mm for my build.
<img src="doc/lgp_1.png" width="90%">
* LGP material choices:
* Real LGP (Light Guide Panel) material, it's the best choice.
<img src="doc/lgp_2.png" width="50%">
* Clear Acrylic with Light Guide Film, it's a good choice.
<img src="doc/lgp_3.png" width="50%">
* Clear Acrylic with single-side-frosted, it's a good choice.
<img src="doc/lgp_4.png" width="50%">
* Clear Acrylic with manual single-side-sanding, it can work too.
<img src="doc/lgp_5.png" width="50%">
### Panel Film
* A self-adhesive **textured**/**frosted** film sheet, it is applied on top surface of the light guide panel. It improves touch feel. You can use window sticker film. It **MUST** be self-adhesive ones, **NOT** static cling ones. They're usually very cheap.
* Cut the film to roughly match the shape of the light guide panel, and stick to the panel.
<img src="doc/film_1.jpg" width="60%">
* Gentlely rub the film to remove any air bubbles and make it stick tightly.
<img src="doc/film_2.jpg" width="60%">
### IR Cover
* It's for good looking, as it hides 5 ToF sensors.
<img src="doc/ir_cover_1.png" width="60%">
* IR lights can go through.
<img src="doc/ir_cover_2.png" width="60%">
* Find a service to cut an IR cover using the DXF or DWG file `Production\CAD\chu_pico_ir_cover.*`, the size is 293.2mm*63.5mm, 1mm thickness. The material must be "Infrared Transmitting Acrylic Sheet" which can block visible lights (so it looks black) while letting IR lights go through.
<img src="doc/ir_cover_3.png" width="80%">
* If you can't find one, cut a regular smooth surface acrylic, but it can't hide the ToF sensors which are not good looking.
* If you're using the VL53L0x ToF sensor, please add padding beneath the sensor. This brings it closer to the acrylic cover, which can prevent acrosstalk error.
### 3D Printing
* You need a Bambu 3D printer for 2 reasons:
* Parts are designed to perfectly fit in its 256mm*256mm print bed.
* Its AMS system works great for easy-to-remove support material.
* For all the following prints:
* To fit object in the bed, Z rotate: 315 degree, X, Y move to: 134mm
<img src="doc/rotate.png" width="50%"><img src="doc/moveto.png" width="32%">
<img src="doc/layout.png" width="80%">
* PLA, PETG, ABS are all OK.
* Layer height: 0.2mm
* 4-6 walls, 50+% infill
* Support: Yes. If you have Bambu AMS system, use their special support material at interface layers.
* Base: `Production\3D\chu_pico_base.stl`, dark gray filament.
* Cover: `Production\3D\chu_pico_cover(_aime).stl`, dark gray filament.
* Cover Base: `Production\3D\chu_pico_cover_base.stl`, **clear transparent (IMPORTANT)** filament.
* Light Guide Panel Fixer: `Production\3D\chu_pico_lgp_fixer.stl`, color doesn't matter.
### Exploded View for Assembly
<img src="doc/assemble.png" width="80%">
From top to bottom:
* IR Cover
* Cover
* Cover Base
* Panel Film
* Light Guide Panel
* PCB
* Light Guide Panel Fixer
* Base
You need **4x M3*12mm screws and 4x M3 hex nuts** to fix all things.
7x silicone anti-slip pads can be applied to the bottom side of the base to provide stability when playing.
<img src="doc/silicone_pad.png" width="50%">
### Firmware
* UF2 file is in `Production\Firmware` folder.
* For the new build, hold the BOOTSEL button while connect the USB to a PC, there will be a disk named "RPI-RP2" showed up. Drag the UF2 firmware binary file into it. That's it. There's a small hole at the bottom side of the Chu Pico, it is facing right to the BOOTSEL button.
* It works on CrazyRedMachine's RedBoard protocol. For more information, please check out CrazyRedMachine's project (Don't forget to give him a star and drop by his GitHub for other cool projects):
https://github.com/CrazyRedMachine/RedBoard
* It has a command line to do configuration. You can use this Web Serial Terminal to connect to the USB serial port of the Chu Pico. (Note: "?" is for help)
https://googlechromelabs.github.io/serial-terminal/
<img src="doc/cmd.png" width="320">
## CAD Source File
I'm using OnShape free subscription. It's powerful but it can't archive original designs to local, so I can only share the link here. STL/DXF/DWG files are exported from this online document.
https://cad.onshape.com/documents/8b9d0fe6ff1bfa4da17d33ee/w/5c7c980a282a19e7ba1db795/e/56ee65492584a3f709c23c49?renderMode=1&uiState=64fd606f17393c0e6f9b19a4

View File

@ -1,179 +1,187 @@
# Chu Pico - Chunithm (中二节奏) 风格的迷你控制器
[Click here for the English version of this guide.](README.md)
<img src="doc/main.jpg" width="80%">
**特性:**
* 它很小巧适合15-17寸屏幕。
* 空键被 ToF 距离传感器替代。
* HID 灯光,必须的!
* 32个按键上下两排
* 遵循 CrazyRedMachine 的 RedBoard I/O 协议。
* 丰富的命令行功能。
* 所有源文件开放。
感谢许多尊敬的爱好者和公司将他们的工具或材料免费或开源KiCadOnShapeInkScapeRaspberry 相关工具, 嘉立创)。
感谢社区开发者的启发和帮助,比如 CrazyRedMachine (https://github.com/CrazyRedMachine)SpeedyPotato (https://github.com/speedypotato).
## 注意
这个项目相比于我其他项目(比如 IIDX Pico 和 IIDX Teeny其实是要容易一些的。你也可以尝试做我其他的一些项目。
## 查看我的其他项目
你也可以查看我其他的酷炫项目。
<img src="https://github.com/whowechina/popn_pico/raw/main/doc/main.jpg" height="100px"><img src="https://github.com/whowechina/iidx_pico/raw/main/doc/main.jpg" height="100px"><img src="https://github.com/whowechina/iidx_teeny/raw/main/doc/main.jpg" height="100px"><img src="https://github.com/whowechina/chu_pico/raw/main/doc/main.jpg" height="100px"><img src="https://github.com/whowechina/mai_pico/raw/main/doc/main.jpg" height="100px"><img src="https://github.com/whowechina/diva_pico/raw/main/doc/main.jpg" height="100px"><img src="https://github.com/whowechina/aic_pico/raw/main/doc/main.jpg" height="100px">
* Popn Pico: https://github.com/whowechina/popn_pico
* IIDX Pico: https://github.com/whowechina/iidx_pico
* IIDX Teeny: https://github.com/whowechina/iidx_teeny
* Chu Pico: https://github.com/whowechina/chu_pico
* Mai Pico: https://github.com/whowechina/mai_pico
* Diva Pico: https://github.com/whowechina/diva_pico
* AIC Pico: https://github.com/whowechina/aic_pico
## **声明** ##
我在个人时间内制作了这个项目,没有任何经济利益或赞助。我将继续改进这个项目。我已尽我所能确保所有内容的准确性和功能性,但总有可能出现错误。如果你因使用这个开源项目而造成时间或金钱的损失,我不能负责。感谢你的理解。
查看我 GitHub 主页,上面有很多其他项目。
https://github.com/whowechina/
## 关于许可证
它是 CC-NC 授权。所以你只能给自己和你的朋友 DIY不能利用这个项目赚钱。
## 如何制作
### 常见错误
很多 DIY 爱好者在制作过程中常常犯一些错误。请格外小心避免这些错误。
* **错误:在焊接之前没有进行中间测试。**
请记住,即使是专业工程师也会犯错误。当所有元件都已组装或焊接时,要找到问题的根本原因就会变得更加困难。因此,建议分阶段焊接和测试。固件设计为即使有一些元件缺失也能正确运行,这对测试很有帮助。
* **错误:忘记切断 MPR121 模块上的 ADDR 引脚的默认接地。**
市面上的 MPR121 模块的 ADDR 引脚默认已经接地。但是,板子上的设计需要一个浮动的 ADDR 引脚,否则 ADDR 引脚会短路。请使用万用表验证确保你成功切断它,但也请注意不要切过头,导致切断临近线路。
* **错误:在器件看上去没有工作的时候就匆忙更换它。**
比如过早的假设 Raspberry Pi Pico 或其他模块是有问题的。
请记住,器件绝大部分情况下都是好的,问题可能在焊接上。更换器件会带来额外的风险,比如损坏器件或 PCB 板。耐心和谨慎是至关重要的。首先查看原理图和 PCB 设计文件,并向社区寻求帮助。怀疑器件问题应该是你的最后选择。
* **错误:没有正确焊接 Raspberry Pi Pico 的 3 个 USB 引脚。**
这 3 个引脚位于 PCB 板的底部。很容易忘记焊接它们,或者在焊接过程中留下气泡。为了避免这种情况,从孔的一侧开始慢慢焊接,使用很少的焊丝和较多的焊剂。
### PCB
* 前往 JLCPCB 下单,使用最新的 `Production\PCB\chu_main_xxx.zip` 文件,选择常规 FR-4 板材,黑色,厚度为 **1.6mm**
* 1x 树莓派 Pico 或 Pico W。
https://www.raspberrypi.com/products/raspberry-pi-pico
注意 PCB 板的底部有 3 个引脚,它们很难焊接,可能会留下气泡。
<img src="doc/solder_usb_txrx.jpg" width="60%">
* 1x USB Type-C 插座 (918-418K2023S40001 或 KH-TYPE-C-16P)
* 36x WS2812B-4020 侧向发光 RGB LED。
https://www.lcsc.com/product-detail/Light-Emitting-Diodes-LED_Worldsemi-WS2812B-4020_C965557.html
* 1x TCA9548APWR (TSSOP-24) I2C 多路复用芯片。
https://www.lcsc.com/product-detail/Signal-Switches-Encoders-Decoders-Multiplexers_Texas-Instruments-TCA9548APWR_C130026.html
* 3x MPR121 模块,市面上有很多种,选择这种类型的。
https://www.sparkfun.com/products/retired/9695
在焊接 MPR121 模块到主 PCB 板之前,记得用小刀**切断 ADDR 和 GND 之间的微小连线**,注意绝对不要切过头。
<img src="doc/mpr121_cut.png" width="40%">
MPR121 模块加上引脚的高度超过了 PCB 板的高度。所以你需要像下面的图片一样焊接模块。
首先贴上一些绝缘胶带。
<img src="doc/mpr121_solder1.jpg" width="60%">
然后直接将模块焊接到 PCB 上。
<img src="doc/mpr121_solder2.jpg" width="60%>
你可以使用模块自带的引脚,但是你需要剪掉塑料垫。
<img src="doc/mpr121_solder3.jpg" width="60%">
* 5x Sharp GP2Y0E03 或 ST VL53L0X ToF 传感器模块,你还需要一些排线。
https://www.lcsc.com/product-detail/Angle-Linear-Position-Sensors_Sharp-Microelectronics-GP2Y0E03_C920270.html
<img src="doc/gp2y0e03_solder.jpg" width="60%">
<img src="doc/vl53l0x.jpg" width="60%">
你可以在同一个 PCB 上同时使用这两种传感器,固件会自动识别它们。
<img src="doc/tof_mix.jpg" width="80%">
* 2x 0603 5.1kohm 电阻 (R1, R2) 用于 USB。
* 1x SN74LV1T34DBVR (SOT-23-5) 电平转换器 (U8),如果你找不到这个,可以使用一个 0603 10ohm 电阻 (R3) 作为替代。
https://www.lcsc.com/product-detail/Buffer-Driver-Transceiver_Texas-Instruments-SN74LV1T34DBVR_C100024.html
<img src="doc/pcb_1.png" width="90%">
* 8x 0603 1uF (0.1~1uF 都可以) 电容 (C1 to C8),可选,建议使用。
* 10x 0603 5.1kohm (1~5.1kohm 都可以) 电阻 (R4 to R13) 用于 I2C 上拉,超频 I2C 时需要。
### 导光板
* 找到一个服务商,使用 DXF 或 DWG 文件 `Production\CAD\chu_pico_lgp.*` 切割导光板,尺寸为 256mm*60mm厚度为 1.8mm 到 2.0mm越薄越好。2.0mm 的很容易找到1.8mm 的很少见。我用的是 1.8mm 的。
<img src="doc/lgp_1.png" width="90%">
* 导光板材料的选择:
* 真正的 LGP 材料,是最好的选择。
<img src="doc/lgp_2.png" width="50%">
* 透明亚克力板 + 导光膜,也是一个不错的选择。
<img src="doc/lgp_3.png" width="50%>
* 单面磨砂透明亚克力,也可以。
<img src="doc/lgp_4.png" width="50%">
* 透明亚克力 + 手工单面磨砂,也马马虎虎。
<img src="doc/lgp_5.png" width="50%>
### 面板膜
* 一个自粘的**纹理**/**磨砂**膜,它被贴在导光板的顶部表面。它改善了触感。你可以使用窗贴膜。它**必须**是自粘的,**不可以是**静电膜。它们通常很便宜。
* 将膜剪裁成与导光板相匹配的形状,然后粘贴到导光板上。
<img src="doc/film_1.jpg" width="60%">
* 轻轻地擦拭膜,以去除任何气泡并使其和导光板紧密贴合。
<img src="doc/film_2.jpg" width="60%">
### 透红外盖板
* 它的存在是为了美观,可以遮住 5 个 ToF 传感器。
<img src="doc/ir_cover_1.png" width="60%">
* 它必须是 "红外透射亚克力板",它可以遮住可见光,但可以让红外光穿透。
<img src="doc/ir_cover_2.png" width="60%">
* 找到一个服务商,使用 DXF 或 DWG 文件 `Production\CAD\chu_pico_ir_cover.*` 切割红外盖板,尺寸为 293.2mm*63.5mm,厚度为 1mm。材料必须是 "红外透射亚克力板"。
<img src="doc/ir_cover_3.png" width="80%">
* 如果你找不到这种材料,可以使用普通的透明亚克力,但是它不能遮住 ToF 传感器,这样看起来不太好看。
* 如果你使用 VL53L0x ToF 传感器,请在传感器下方添加一些垫片。这样可以让它贴紧亚克力盖板,可以防止光线串扰。
### 3D 打印
* 你需要一个 Bambu 3D 打印机,有两个原因:
* 部件被设计成完美适合它的 256mm*256mm 打印床。
* 它的 AMS 系统非常适合易于去除的支撑材料。
* 对于以下所有的打印:
* 为了使对象适合于打印床Z 旋转315 度X, Y 移动到134mm
<img src="doc/rotate.png" width="50%"><img src="doc/moveto.png" width="32%">
<img src="doc/layout.png" width="80%>
* PLA, PETG, ABS 都可以。
* 层高0.2mm
* 壁厚4-6层50%+ 填充
* 支撑:需要。如果你有 Bambu AMS 系统,使用他们的特殊支撑材料会更好。
* 基座:`Production\3D\chu_pico_base.stl`,深灰色。
* 透红外盖板:`Production\3D\chu_pico_ir_cover(_aime).stl`,深灰色。
* 盖板:`Production\3D\chu_pico_cover(_aime).stl`,深灰色。
* 盖板底座:`Production\3D\chu_pico_cover_base.stl`**透明**(重要)。
* 导光板固定器:`Production\3D\chu_pico_lgp_fixer.stl`,颜色无所谓。
### 组装爆炸图
<img src="doc/assemble.png" width="80%">
由上到下:
* 透红外盖板
* 盖板
* 盖板底座
* 面板膜
* 导光板
* PCB
* 导光板固定器
* 基座
你需要 **4x M3*12mm 螺丝和 4x M3 六角螺母** 来固定所有东西。
7x 个硅胶防滑垫可以贴在基座的底部,以提供游玩时候的稳定性。
<img src="doc/silicone_pad.png" width="50%">
### 固件
* UF2 文件在 `Production\Firmware` 文件夹下。
* 全新烧录的话,按住 Pico Pi 的 BOOTSEL 按钮,然后连接 USB 到 PC会出现一个名为 "RPI-RP2" 的磁盘。将 UF2 固件二进制文件拖入即可。Chu Pico 的底部有一个小孔,它正对着 BOOTSEL 按钮。
* 固件采用了 CrazyRedMachine 的 RedBoard 协议和 PC 通讯。具体请查看他的项目(别忘了给他点赞并访问他的 GitHub 查看其他酷炫的项目):
https://github.com/CrazyRedMachine/RedBoard
* 它有一个命令行进行配置。你可以使用这个 Web 串口终端连接到 Chu Pico 的 USB 串口。(提醒:"?" 命令可以查看帮助)
https://googlechromelabs.github.io/serial-terminal/
<img src="doc/cmd.png" width="320">
## CAD 源文件
我使用的是 OnShape 的免费订阅。它很强大但是它不能将原始设计存档到本地所以我只能在这里分享链接。STL/DXF/DWG 文件是从这个在线文档导出的。
https://cad.onshape.com/documents/8b9d0fe6ff1bfa4da17d33ee/w/5c7c980a282a19e7ba1db795/e/56ee65492584a3f709c23c49?renderMode=1&uiState=64fd606f17393c0e6f9b19a4
# Chu Pico - Chunithm (中二节奏) 风格的迷你控制器
[Click here for the English version of this guide.](README.md)
<img src="doc/main.jpg" width="80%">
**特性:**
* 它很小巧适合15-17寸屏幕。
* 空键被 ToF 距离传感器替代。
* HID 灯光,必须的!
* 32个按键上下两排
* 遵循 CrazyRedMachine 的 RedBoard I/O 协议。
* 丰富的命令行功能。
* 所有源文件开放。
感谢许多尊敬的爱好者和公司将他们的工具或材料免费或开源KiCadOnShapeInkScapeRaspberry 相关工具, 嘉立创)。
感谢社区开发者的启发和帮助,比如 CrazyRedMachine (https://github.com/CrazyRedMachine)SpeedyPotato (https://github.com/speedypotato).
## 注意
这个项目相比于我其他项目(比如 IIDX Pico 和 IIDX Teeny其实是要容易一些的。你也可以尝试做我其他的一些项目。
## 查看我的其他项目
你也可以查看我其他的酷炫项目。
<img src="https://github.com/whowechina/popn_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/iidx_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/iidx_teeny/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/chu_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/mai_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/diva_pico/raw/main/doc/main.jpg" height="100px">
<img src="https://github.com/whowechina/aic_pico/raw/main/doc/main.gif" height="100px">
<img src="https://github.com/whowechina/groove_pico/raw/main/doc/main.gif" height="100px">
* Popn Pico: https://github.com/whowechina/popn_pico
* IIDX Pico: https://github.com/whowechina/iidx_pico
* IIDX Teeny: https://github.com/whowechina/iidx_teeny
* Chu Pico: https://github.com/whowechina/chu_pico
* Mai Pico: https://github.com/whowechina/mai_pico
* Diva Pico: https://github.com/whowechina/diva_pico
* AIC Pico: https://github.com/whowechina/aic_pico
* Groove Pico: https://github.com/whowechina/groove_pico
## **声明** ##
我在个人时间内制作了这个项目,没有任何经济利益或赞助。我将继续改进这个项目。我已尽我所能确保所有内容的准确性和功能性,但总有可能出现错误。如果你因使用这个开源项目而造成时间或金钱的损失,我不能负责。感谢你的理解。
查看我 GitHub 主页,上面有很多其他项目。
https://github.com/whowechina/
## 关于许可证
它是 CC-NC 授权。所以你只能给自己和你的朋友 DIY不能利用这个项目赚钱。
## 如何制作
### 常见错误
很多 DIY 爱好者在制作过程中常常犯一些错误。请格外小心避免这些错误。
* **错误:在焊接之前没有进行中间测试。**
请记住,即使是专业工程师也会犯错误。当所有元件都已组装或焊接时,要找到问题的根本原因就会变得更加困难。因此,建议分阶段焊接和测试。固件设计为即使有一些元件缺失也能正确运行,这对测试很有帮助。
* **错误:忘记切断 MPR121 模块上的 ADDR 引脚的默认接地。**
市面上的 MPR121 模块的 ADDR 引脚默认已经接地。但是,板子上的设计需要一个浮动的 ADDR 引脚,否则 ADDR 引脚会短路。请使用万用表验证确保你成功切断它,但也请注意不要切过头,导致切断临近线路。
* **错误:在器件看上去没有工作的时候就匆忙更换它。**
比如过早的假设 Raspberry Pi Pico 或其他模块是有问题的。
请记住,器件绝大部分情况下都是好的,问题可能在焊接上。更换器件会带来额外的风险,比如损坏器件或 PCB 板。耐心和谨慎是至关重要的。首先查看原理图和 PCB 设计文件,并向社区寻求帮助。怀疑器件问题应该是你的最后选择。
* **错误:没有正确焊接 Raspberry Pi Pico 的 3 个 USB 引脚。**
这 3 个引脚位于 PCB 板的底部。很容易忘记焊接它们,或者在焊接过程中留下气泡。为了避免这种情况,从孔的一侧开始慢慢焊接,使用很少的焊丝和较多的焊剂。
### PCB
* 前往 JLCPCB 下单,使用最新的 `Production\PCB\chu_main_xxx.zip` 文件,选择常规 FR-4 板材,黑色,厚度为 **1.6mm**
* 1x 树莓派 Pico 或 Pico W。
https://www.raspberrypi.com/products/raspberry-pi-pico
注意 PCB 板的底部有 3 个引脚,它们很难焊接,可能会留下气泡。
<img src="doc/solder_usb_txrx.jpg" width="60%">
* 1x USB Type-C 插座 (918-418K2023S40001 或 KH-TYPE-C-16P)
* 36x WS2812B-4020 侧向发光 RGB LED。
https://www.lcsc.com/product-detail/Light-Emitting-Diodes-LED_Worldsemi-WS2812B-4020_C965557.html
* 1x TCA9548APWR (TSSOP-24) I2C 多路复用芯片。
https://www.lcsc.com/product-detail/Signal-Switches-Encoders-Decoders-Multiplexers_Texas-Instruments-TCA9548APWR_C130026.html
* 3x MPR121 模块,市面上有很多种,选择这种类型的。
https://www.sparkfun.com/products/retired/9695
在焊接 MPR121 模块到主 PCB 板之前,记得用小刀**切断 ADDR 和 GND 之间的微小连线**,注意绝对不要切过头。
<img src="doc/mpr121_cut.png" width="40%">
MPR121 模块加上引脚的高度超过了 PCB 板的高度。所以你需要像下面的图片一样焊接模块。
首先贴上一些绝缘胶带。
<img src="doc/mpr121_solder1.jpg" width="60%">
然后直接将模块焊接到 PCB 上。
<img src="doc/mpr121_solder2.jpg" width="60%>
你可以使用模块自带的引脚,但是你需要剪掉塑料垫。
<img src="doc/mpr121_solder3.jpg" width="60%">
* 5x Sharp GP2Y0E03 或 ST VL53L0X ToF 传感器模块,你还需要一些排线。
https://www.lcsc.com/product-detail/Angle-Linear-Position-Sensors_Sharp-Microelectronics-GP2Y0E03_C920270.html
<img src="doc/gp2y0e03_solder.jpg" width="60%">
<img src="doc/vl53l0x.jpg" width="60%">
你可以在同一个 PCB 上同时使用这两种传感器,固件会自动识别它们。
<img src="doc/tof_mix.jpg" width="80%">
* 2x 0603 5.1kohm 电阻 (R1, R2) 用于 USB。
* 1x SN74LV1T34DBVR (SOT-23-5) 电平转换器 (U8),如果你找不到这个,可以使用一个 0603 10ohm 电阻 (R3) 作为替代。
https://www.lcsc.com/product-detail/Buffer-Driver-Transceiver_Texas-Instruments-SN74LV1T34DBVR_C100024.html
<img src="doc/pcb_1.png" width="90%">
* 8x 0603 1uF (0.1~1uF 都可以) 电容 (C1 to C8),可选,建议使用。
* 10x 0603 5.1kohm (1~5.1kohm 都可以) 电阻 (R4 to R13) 用于 I2C 上拉,超频 I2C 时需要。
### 导光板
* 找到一个服务商,使用 DXF 或 DWG 文件 `Production\CAD\chu_pico_lgp.*` 切割导光板,尺寸为 256mm*60mm厚度为 1.8mm 到 2.0mm越薄越好。2.0mm 的很容易找到1.8mm 的很少见。我用的是 1.8mm 的。
<img src="doc/lgp_1.png" width="90%">
* 导光板材料的选择:
* 真正的 LGP 材料,是最好的选择。
<img src="doc/lgp_2.png" width="50%">
* 透明亚克力板 + 导光膜,也是一个不错的选择。
<img src="doc/lgp_3.png" width="50%>
* 单面磨砂透明亚克力,也可以。
<img src="doc/lgp_4.png" width="50%">
* 透明亚克力 + 手工单面磨砂,也马马虎虎。
<img src="doc/lgp_5.png" width="50%>
### 面板膜
* 一个自粘的**纹理**/**磨砂**膜,它被贴在导光板的顶部表面。它改善了触感。你可以使用窗贴膜。它**必须**是自粘的,**不可以是**静电膜。它们通常很便宜。
* 将膜剪裁成与导光板相匹配的形状,然后粘贴到导光板上。
<img src="doc/film_1.jpg" width="60%">
* 轻轻地擦拭膜,以去除任何气泡并使其和导光板紧密贴合。
<img src="doc/film_2.jpg" width="60%">
### 透红外盖板
* 它的存在是为了美观,可以遮住 5 个 ToF 传感器。
<img src="doc/ir_cover_1.png" width="60%">
* 它必须是 "红外透射亚克力板",它可以遮住可见光,但可以让红外光穿透。
<img src="doc/ir_cover_2.png" width="60%">
* 找到一个服务商,使用 DXF 或 DWG 文件 `Production\CAD\chu_pico_ir_cover.*` 切割红外盖板,尺寸为 293.2mm*63.5mm,厚度为 1mm。材料必须是 "红外透射亚克力板"。
<img src="doc/ir_cover_3.png" width="80%">
* 如果你找不到这种材料,可以使用普通的透明亚克力,但是它不能遮住 ToF 传感器,这样看起来不太好看。
* 如果你使用 VL53L0x ToF 传感器,请在传感器下方添加一些垫片。这样可以让它贴紧亚克力盖板,可以防止光线串扰。
### 3D 打印
* 你需要一个 Bambu 3D 打印机,有两个原因:
* 部件被设计成完美适合它的 256mm*256mm 打印床。
* 它的 AMS 系统非常适合易于去除的支撑材料。
* 对于以下所有的打印:
* 为了使对象适合于打印床Z 旋转315 度X, Y 移动到134mm
<img src="doc/rotate.png" width="50%"><img src="doc/moveto.png" width="32%">
<img src="doc/layout.png" width="80%>
* PLA, PETG, ABS 都可以。
* 层高0.2mm
* 壁厚4-6层50%+ 填充
* 支撑:需要。如果你有 Bambu AMS 系统,使用他们的特殊支撑材料会更好。
* 基座:`Production\3D\chu_pico_base.stl`,深灰色。
* 透红外盖板:`Production\3D\chu_pico_ir_cover(_aime).stl`,深灰色。
* 盖板:`Production\3D\chu_pico_cover(_aime).stl`,深灰色。
* 盖板底座:`Production\3D\chu_pico_cover_base.stl`**透明**(重要)。
* 导光板固定器:`Production\3D\chu_pico_lgp_fixer.stl`,颜色无所谓。
### 组装爆炸图
<img src="doc/assemble.png" width="80%">
由上到下:
* 透红外盖板
* 盖板
* 盖板底座
* 面板膜
* 导光板
* PCB
* 导光板固定器
* 基座
你需要 **4x M3*12mm 螺丝和 4x M3 六角螺母** 来固定所有东西。
7x 个硅胶防滑垫可以贴在基座的底部,以提供游玩时候的稳定性。
<img src="doc/silicone_pad.png" width="50%">
### 固件
* UF2 文件在 `Production\Firmware` 文件夹下。
* 全新烧录的话,按住 Pico Pi 的 BOOTSEL 按钮,然后连接 USB 到 PC会出现一个名为 "RPI-RP2" 的磁盘。将 UF2 固件二进制文件拖入即可。Chu Pico 的底部有一个小孔,它正对着 BOOTSEL 按钮。
* 固件采用了 CrazyRedMachine 的 RedBoard 协议和 PC 通讯。具体请查看他的项目(别忘了给他点赞并访问他的 GitHub 查看其他酷炫的项目):
https://github.com/CrazyRedMachine/RedBoard
* 它有一个命令行进行配置。你可以使用这个 Web 串口终端连接到 Chu Pico 的 USB 串口。(提醒:"?" 命令可以查看帮助)
https://googlechromelabs.github.io/serial-terminal/
<img src="doc/cmd.png" width="320">
## CAD 源文件
我使用的是 OnShape 的免费订阅。它很强大但是它不能将原始设计存档到本地所以我只能在这里分享链接。STL/DXF/DWG 文件是从这个在线文档导出的。
https://cad.onshape.com/documents/8b9d0fe6ff1bfa4da17d33ee/w/5c7c980a282a19e7ba1db795/e/56ee65492584a3f709c23c49?renderMode=1&uiState=64fd606f17393c0e6f9b19a4