Skip to content

Commit

Permalink
README update with touch and AIME support
Browse files Browse the repository at this point in the history
  • Loading branch information
whowechina committed Apr 5, 2024
1 parent 096e5f6 commit a69bc79
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 4 deletions.
16 changes: 13 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
* Made with a 15.6 inch portable screen.
* Arcade-like experience.
* Dual-player is possible.
* Built-in AIME support.
* 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, JLCPCB).
Expand Down Expand Up @@ -61,6 +62,9 @@ It's CC-NC. So DIY for yourself and for your friend, don't make money from it.
* 16x WS2812B-3528 RGB LEDs (each button needs two).
* 8x Kailh Choc v1 key switches, linear, 30gf to 45gf ones.
https://www.kailhswitch.com/mechanical-keyboard-switches/low-profile-key-switches/burnt-orange-switch.html
* 1x PN532 NFC module and some thin wires, only needed if you want AIME.
https://www.elechouse.com/product/pn532-nfc-rfid-module-v4/
You need to solder it to the same I2C as the MPR121 (GPIO 6 and 7).

### ITO Glass
* Find a service to make custom etching ITO coated glass. The AutoCAD file is `Production\CAD\mai_pico_ito_v*.dwg`. Use 2mm thickness, 10-20ohm sheet resistance ITO coated glass.
Expand Down Expand Up @@ -112,10 +116,15 @@ It's CC-NC. So DIY for yourself and for your friend, don't make money from it.
* 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.
* LED and Touch protocols are implemented following Sucareto's research at https://github.com/Sucareto/Mai2Touch.
* It has a command line to do configuration. You can use this Web Serial Terminal to connect to the USB serial port of the Mai Pico. (Note: "?" is for help)
* It has a command line to do configuration. You can use this Web Serial Terminal to connect to the USB serial port of the Mai Pico. (`?` to display help message.)
https://googlechromelabs.github.io/serial-terminal/
<img src="doc/cmd.png" width="80%">
* Button GPIOs can be remapped using `gpio` command. Firmware supports 8 main buttons on the ring and 4 auxiliary buttons (Test, Service, Navigate and Coin).
<img src="doc/cmd.png" width="60%">
* Please note that when you click "Connect" button, you'll actually see the name of each port.
<img src="doc/ports.png" width="60%">
* Button GPIOs can be remapped using `gpio` command. Firmware supports 8 main buttons on the ring and 4 auxiliary buttons (Test, Service, Navigate and Coin).
* Touch keys can be remapped using `touch` command. For people who's using Mai Pico to drive a custom ITO film or a ITO glass, this command will be very useful. For example:
* `touch` with no parameter is to detect touched keys.
* `touch 1 9 E6` is to set the second MPR121's electrode 9 to key "E6". Key name of "XX" means "Not Connected".
* Daisy chained RGB LED numbers for each button can be assigned using `rgb` command.
* LED brightness can be adjusted by `level` command.
* There are MPR121 parameter tuning and sensitive settings, explore them yourself.
Expand All @@ -124,6 +133,7 @@ It's CC-NC. So DIY for yourself and for your friend, don't make money from it.
* key1: `WEDCXZAQ`-Ring Buttons, `3`-Select
* key2 (Numpad): `89632147`-Ring Buttons, `*`-Select
* Above two sets both have: `F1`-Test `F2`-Service `F3`-Coin
* `factory` to reset to default. When there's a firmware update, the old configuration may become corrupted, you can reset configuration, then re-plug the controller.

## 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.
Expand Down
12 changes: 11 additions & 1 deletion README_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
* 使用 15.6 英寸的便携式屏幕制作。
* 类似街机的体验。
* 可以双人游戏。
* 内置支持 AIME。
* 所有源文件开放。

感谢许多尊敬的爱好者和公司将他们的工具或材料免费或开源(KiCad,OnShape,InkScape,Raspberry 相关工具, 嘉立创)。
Expand Down Expand Up @@ -70,6 +71,9 @@ https://github.com/whowechina/
* 16x WS2812B-3528 RGB LED(每个按钮需要两个)。
* 8x Kailh Choc v1 键盘开关,线性的,30gf 到 45gf 的。
https://www.kailhswitch.com/mechanical-keyboard-switches/low-profile-key-switches/burnt-orange-switch.html
* 1x PN532 NFC 模块和一些细电线, 只有需要 AIME 的时候才用得上.
https://www.elechouse.com/product/pn532-nfc-rfid-module-v4/
你需要把它焊接到 MPR121 所在的 I2C 总线上(GPIO 6 and 7)。

### ITO 玻璃
* 找一个服务定制蚀刻 ITO 镀膜玻璃。AutoCAD 文件是 `Production\CAD\mai_pico_ito_v*.dwg`。使用 2mm 厚,10-20ohm 平方电阻的 ITO 镀膜玻璃。
Expand Down Expand Up @@ -122,8 +126,13 @@ https://github.com/whowechina/
* LED 和 Touch 协议的实现遵循 Sucareto 在 https://github.com/Sucareto/Mai2Touch 上的研究。
* 它有一个命令行进行配置。你可以使用这个 Web Serial Terminal 连接到 Mai Pico 的 USB 串口。(注意:"?" 是帮助)
https://googlechromelabs.github.io/serial-terminal/
<img src="doc/cmd.png" width="80%">
<img src="doc/cmd.png" width="60%">
* 当你点击这个网页的 Connect 按钮后,你能看到每个端口的名称。
<img src="doc/ports.png" width="60%">
* 可以使用 `gpio` 命令重新映射按钮 GPIOs,固件支持 8 个主按钮和 4 个辅助按钮(分别是:Test, Service, Navigate, Coin)。
* 可以使用 `touch` 命令重新映射触摸键。对于用 ITO 膜手作触摸板,或者自己定制了引脚不同的 ITO 镀膜玻璃的朋友,这个命令会很有用:
* `touch` 不带参数,可以用来检测当前按下的触摸键。
* `touch 1 9 E6` 是映射第二个 MPR121 传感器的电极 9 到 “E6”,注意 “XX” 表示不连接任何触摸键。
* 可以使用 `rgb` 命令为每个按钮分配串联的 RGB LED 数量。
* 可以通过 `level` 命令调整 LED 的亮度。
* 有 MPR121 参数调整和灵敏度设置,自己探索。
Expand All @@ -132,6 +141,7 @@ https://github.com/whowechina/
* key1:`WEDCXZAQ`-按键环,`3`-Select
* key2(小键盘):`89632147`-按键环,`*`-Select
* 上述两套都有:`F1`-Test `F2`-Service `F3`-投币
* `factory` 用来复位到默认配置。当固件升级时,老配置可能失效,这时候请复位到默认配置,然后重新插拔一下控制器。

## CAD 源文件
我正在使用 OnShape 的免费订阅。它很强大,但不能将原始设计存档到本地,所以我只能在这里分享链接。STL/DXF/DWG 文件是从这个在线文档导出的。
Expand Down
Binary file added doc/ports.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a69bc79

Please sign in to comment.