MutantC V5 - Handheld PC

by rahmanshaber in Circuits > Gadgets

4100 Views, 50 Favorites, 0 Comments

MutantC V5 - Handheld PC

0.JPG
31.JPG
32.JPG
33.JPG
35.JPG
34.JPG
36.JPG

A small Handheld PC with a physical keyboard, 5inch Display with External display port, USB-A port and Expansion port with PCIE, GPIO and USB support.

Here we will discusses what you need to build one and show step by step guide. This device is very easy to make, you don't need lots of tools and parts. No codding skill is needed. just basic stuff like upload a code to Arduino. with acquitted soldering skill that's all.


This guide is for mutantC v5.1


Here is the list of features that you can get with this device,

  1. Uses Raspberry-pi CM4 form-factor for main SBC.
  2. 5inch or 4.3inch TFT display can be used with another External Display out port.
  3. 1,2,4,8 GB ram, Wifi, either EMMC or SD card for the storage depending on SBC.
  4. Uses ESP32-S2 for all the secondary functions including keyboard and mouse control.
  5. Expansion supports 1x3gen PCIE for many posibilites with add-on cards like SSD, OCuLink.
  6. Expansion also supports 2 USB2.0 ports, 17 GPIO which includes SPI, I2C, PWM.
  7. 61 key customizable keyboard, 6 shoulder button for navigation.
  8. 3D hall-effect joystick is used for proper Mouse control.
  9. NeoPixel connected to the main SBC for customizable notification.
  10. 10000mAh(21700) or 7000mAh(18650) 2S battery can be used for main power source.
  11. Using USB-PD chargers for 2Amps fast charging and powering the device.
  12. One USB-A and display out for external display.
  13. USB-C formfactor Nurolink/docking port with UART, I2C.
  14. Additionally USB-A, USB-C, Audio out and Ethernet can be added with Add-on board.
  15. Full-Size 2280 M.2 SSD can be added with Add-on board.
  16. Full power off using OS and keyboard key.
  17. Read battery Power level and power off the device when battery is low with Add-on board.
  18. Improvements to casing to better fit out from the print compare to v4.


Project page - https://mutantcybernetics.com/mutantC_V5.html


Support this project: https://www.paypal.me/mutantCybernetics


If you have any question or suggestion

  1. https://discord.gg/RbYJhYjH3Z
  2. https://gitlab.com/mutantcybernetics
  3. https://mutantcybernetics.com/index.html
  4. https://www.reddit.com/r/mutantC/
  5. https://riot.im/app/#/room/#mutantC:m...

Supplies

F94ROT2KZWPPXC8.jpg
FXYI473KSHI8XX0.jpg

Basic tools that can do the job

  1. Good soldering Iron that at lest can go 350 degrees
  2. Soldering wick to remove extra solders
  3. Soldering wire to solder
  4. Flat head clippers to cut
  5. Soldering flux.
  6. Surgical knife to fix the 3D parts.
  7. USB to TTL/Serial converter, 3.3v

For better job

  1. Good hot-air station for reworking the soldering
  2. Hot plate for Quick soldering or can use a modified oven.

Chose Your Build and Parts Needed

46.JPG
49.JPG
20.JPG
37.JPG
38.JPG
25.JPG
39.JPG
19.JPG
2.JPG
11.JPG
12.JPG
13.JPG
45.JPG

You need to collect all the parts that you need to build the PCB and the case. There are 2 official version of this device, main part that is different is the battery. So some parts will be slightly different.

Warning: The source files in the git repository may not reflect a stable build and could cause failed build if used as-is. Use the latest stable release


mutantC v5.1 - download the files


Note you can print the 3D printed parts by your self or outsource them.

As for the PCB I highly recommend you to use the link(affiliated) I provided to order them

  1. Regular version
  2. 7000mAh capacity, uses 2x18650 protected batteries
  3. 39mm device thickness
  4. 3D printed parts needed
  5. Display_Bottom x 1
  6. Display_Top-Touch x 1
  7. Joystick_Spacer x 1
  8. KeyCap-Keyboard x 55
  9. KeyCap-Shoulder x 3
  10. Body_Top x 1
  11. Body_Bottom-18650 x 1
  12. Mid_Frame-18650 x 1
  13. PCB needed
  14. mainPCB x 1 - Order from here
  15. displayPCB x 1 - Order from here
  16. Components for PCB
  17. Parts for mainPCB - in the folder displayPCB/bom/ibom.html
  18. Parts for displayPCB - in the folder displayPCB/bom/ibom.html
  19. Extended-battery version
  20. 10000mAh capacity, uses 2x21700 batteries
  21. 42mm device thickness
  22. 3D printed parts needed
  23. Display_Bottom x 1
  24. Display_Top-Touch x 1
  25. Joystick_Spacer x 1
  26. KeyCap-Keyboard x 55
  27. KeyCap-Shoulder x 3
  28. Body_Top x 1
  29. Body_Bottom-21700 x 1
  30. Mid_Frame-21700 x 1
  31. PCB needed
  32. mainPCB x 1 - Order from here
  33. displayPCB x 1 - Order from here
  34. Components for PCB
  35. Parts for mainPCB - in the folder displayPCB/bom/ibom.html
  36. Parts for displayPCB - in the folder displayPCB/bom/ibom.html

Solder the PCBs

9.JPG
3.JPG
4.JPG
6.JPG
5.JPG

In this step solder the both PCB,

  1. mainPCB
  2. displayPCB

You can use PCBA service when you order the PCB from PCBWay. Use the BOM list when ordering.

  1. Parts for mainPCB - in the folder displayPCB/bom/ibom.html
  2. Parts for displayPCB - in the folder displayPCB/bom/ibom.htm

If you are soldering the PCBs by yourself, then follow the module number for soldering and testing. That way you can easily test and debug while building.


For Extended-battery version don't solder the battry holder

Flash the Firmware and EDID EEPROM

Screenshot from 2024-10-22 21-11-36.png
Screenshot from 2024-10-22 21-12-45.png
How to upload code in esp32-s2 module
41du1kRfJxL-2425921328.jpg

There are 2 chip needs to be programmed, ESP32 and the EEPROM. You need 2 part

  1. FPC brakout board - 40pin/ 0.5mm pitch
  2. FPC cable - 40pin/ 0.5mm pitch ( same connection orentation)

You have to use the Debug FPC Port to flash them. See the connection required to flash them in the pic above. You can use a FPC breakout to make the connections.

Flash ESP32-S2

Follow this guide to flash the ESP32-S2. This is the firmware code

  1. Firmware

Connection required from the Debug FPC Port

  1. RX-ESP
  2. TX-ESP
  3. RESET
  4. BOOT0
  5. GND
  6. POWER_BUTTON

Power the PCB using the changing USB-C port. Now connect the POWER_BUTTON pin to the GND to power on the device. And connect rest of the connection to flash the ESP32.


Flash EDID

To flash the EDID EEPROM follow this guide from Adafruit, use the code as it is.

  1. Flashing/ Editing the EDID

Connection required from the Debug FPC Port

  1. HDMI0_SDA
  2. HDMI0_SCL
  3. GND
  4. POWER_BUTTON

Power the PCB using the changing USB-C port. Now connect the POWER_BUTTON pin to the GND to power on the device. And connect rest of the connection according the guide to flash the EEPROM.

Putting All Together

Assembling mutantC v5
Screenshot from 2024-10-22 21-48-13.png
10.JPG
16.JPG
15.JPG
14.JPG
8.JPG
7.JPG
30.JPG
29.JPG
28.JPG
27.JPG

First Boot Up

This device don't need any custom OS or drivers for normal operation.

  1. Raspberry Pi CM4 with Official Raspberry Pi OS than no modification is needed.
  2. Pine64 Soquartz, i have tested with Manajaro ARM

Add an Add-on

2.JPG
1.JPG
17.JPG
18.JPG

You can add an add-on to have more functionalities/ features in the mutantC. There is this add on currently avilable and can be ordered from PCBWay

Add_on - Apollo - features

  1. Ethernet
  2. RTC
  3. 2280_M.2_SSD
  4. Battery_Monitor
  5. Audio_Out
  6. NuroLink+
  7. USB-A

Order the PCB from PCBWay

Building the add-on

  1. use this scetion to for more build info here

Troubleshooting

Internal display is not working - make sure the FPC cable is good, and the length is not longer than 50mm. Also see if there is any solder bridging in the FPC connector in the both display and main PCB, as well as in the CM connector.

No charging light - Device uses USB-PD, so the charger needs to support USB-PD so as the cable. The cable is usally have USB-C on both ends.

No Display-out - Make sure the Compute Module connector on the main PCB has good soldering, and push the CM on the connectors to see if the display is working or not. If using Pi CM4, the display should show some info even if there is no OS present.

Help Me Out

There might be several things missing in this guide, so please help me out improving it

  1. Add a comment here below the guide
  2. Open an issue here