bartdesign / PinPal

Portable VPX pinball handheld controller with DMD display
GNU General Public License v3.0
4 stars 0 forks source link

PinPal

PinPal is a handheld device that acts as a controller for your iPhone. It has four hardware buttons and a DMD display. It is made specifically for the newly released VPX (Visual Pinball X) app on the Apple iOS App Store.

The VPX iOS app has built-in support for a ZeDMD display device, and I've built specific firmware for the Lilygo T-Display S3 AMOLED device. The display refresh speed is high enough for enjoyable gameplay, and there are also different scaling modes available to simulate a DMD pixel display. The ZeDMD firmware has full support for colorized DMD with the help of Serum.

Gameplay:

VPX Gameplay

DMD close up:

VPX DMD

There are 4 different scaling methods available; this is using the 2x2 pixel mode ( this is drawn in a 4x4 black pixel block to simulate the DMD effect ).

Pictures:

Progress

-- Update 22-10-2024

Todo:


After weeks of tinkering, I've completed the first prototype of my portable pinball handheld device. While it still has some rough edges, it fully works as I originally envisioned. The current version is designed for the iPhone Pro Max series with a USB-C connector. Moving forward, I plan to release four versions:

iPhone 15/16 Pro Max (USB-C) — already released
iPhone 15/16 Pro (USB-C)
iPhone 13/14 Pro Max (Lightning)
iPhone 13/14 Pro (Lightning)

At the moment, I'm experimenting with different button configurations to improve comfort, as I'm not entirely satisfied with the current layout. I’ve also developed firmware for the ESP32 Zero that emulates a keyboard for the hardware buttons. In the next iteration, I’ll be converting this firmware to function as a game controller, which should resolve the issue of the on-screen keyboard interfering with gameplay.

I’ll be releasing all of my 3D printable files in both STL and STEP formats. I’m not a professional 3D modeler; so the models are not perfect :-)
I encourage others to take my designs, improve upon them, and make the project better or start their own versions of this concept!

BOM (Bill of materials)

Description Amount Link
T-Display S3 AMOLED V2.0 Non-Soldered Pin [H713] 1x https://www.lilygo.cc/products/t-display-s3-amoled?variant=43506902368437
ESP32-S3-Zero 1x https://www.waveshare.com/esp32-s3-zero.htm
Soft dome tactile push buttons (4PIN) version 4 buttons (buy a 20 pack) https://aliexpress.com/item/1005005384244944.html
USB-C female 5 pin connector 2x https://aliexpress.com/item/1005006260700701.html
Cylinder head screw M4 6x - I ordered these(the site has all the exact dimensions): https://www.rvspaleis.nl/bouten/binnenzeskant/din-7984/din-7984-[-]-a2-[-]-m4/7984-2-4x12_1
- USA Link of something equivalent: https://belmetric.com/m4x0-7-a2-stainless-din-7984-allen-socket-low-head-cap-screw/?sku=BSH4X12LOWSS
Sleeve Nut M4 6x - I ordered these(the site has all the exact dimensions): https://www.rvspaleis.nl/moeren/hulsmoeren/verzonken-binnenzeskant/9062-2-4_1
- USA link of something equivalent: https://belmetric.com/sleeve-nut-flat-head-stainless/?gad_source=1&gclid=CjwKCAjwjsi4BhB5EiwAFAL0YEJn1d-U1o56CrpPKzjxZ5y5co3S5-NrORw0wPohaRkb9woiMzEqkhoCX0kQAvD_BwE
Small copper insulated wires +- 70 cm I cut op an old broken USB lead and recycled those wires

Build instructions

Stay tuned, i will document this later.

Setup instructions

  1. Install VPX from the Apple iOS store.
  2. Click the cog at the right top to open the VPX Settings.
  3. Change the DMD type to "ZeDMD-WiFi".
  4. Fill in the IP Adress and use the default port number 3333.
  5. Tap Done in the top right, load up a table and have fun!

Thanks

I would like to thank the following people for help on this project, without them this wouldn't have been possible: