Jump to content



Photo
* * * * * 1 votes

'Little Bang' A New Open-Source Virtual Pinball Interface

Pinscape visual pinball game controller pinball controller Little Bang

  • Please log in to reply
38 replies to this topic

#21 ModelM

ModelM

    Neophyte

  • Members
  • Pip
  • 5 posts

  • Flag: Canada

  • Favorite Pinball: Demolition man

Posted 29 November 2024 - 02:55 PM

Without the lis3dh module I'm still unable to get pot readout for plunger, which is leading me to believe I'm having library issues. I used the included .zip and v2 instruction set. I am however using a pico W (pinouts the same though).

When you load the code into MU and run it does it stop at "X module missing"?

In the meantime I think I'll verify the adafruit lis3dh on its own.

#22 ModelM

ModelM

    Neophyte

  • Members
  • Pip
  • 5 posts

  • Flag: Canada

  • Favorite Pinball: Demolition man

Posted 29 November 2024 - 03:05 PM

Oops, double posteed *edit*


Edited by ModelM, 06 December 2024 - 04:26 AM.


#23 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 06 December 2024 - 01:57 PM

Without the lis3dh module I'm still unable to get pot readout for plunger, which is leading me to believe I'm having library issues. I used the included .zip and v2 instruction set. I am however using a pico W (pinouts the same though).

When you load the code into MU and run it does it stop at "X module missing"?

In the meantime I think I'll verify the adafruit lis3dh on its own.

ModelM,

 

Sorry for the late response.   What version of circuitpython (.UF2) did you use?  I have been having grief with version 9.1.4.  The one that I used for this project is 9.0.5.  

 

Regards,

 

Rick



#24 ModelM

ModelM

    Neophyte

  • Members
  • Pip
  • 5 posts

  • Flag: Canada

  • Favorite Pinball: Demolition man

Posted 10 December 2024 - 07:38 PM

 

Without the lis3dh module I'm still unable to get pot readout for plunger, which is leading me to believe I'm having library issues. I used the included .zip and v2 instruction set. I am however using a pico W (pinouts the same though).

When you load the code into MU and run it does it stop at "X module missing"?

In the meantime I think I'll verify the adafruit lis3dh on its own.

ModelM,

 

Sorry for the late response.   What version of circuitpython (.UF2) did you use?  I have been having grief with version 9.1.4.  The one that I used for this project is 9.0.5.  

 

Regards,

 

Rick

 

Hey Rick, I can confirm that 9.0.5 displays 32 buttons and no XYZ axis under USB game controllers.



#25 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 10 December 2024 - 10:32 PM

 

 

Without the lis3dh module I'm still unable to get pot readout for plunger, which is leading me to believe I'm having library issues. I used the included .zip and v2 instruction set. I am however using a pico W (pinouts the same though).

When you load the code into MU and run it does it stop at "X module missing"?

In the meantime I think I'll verify the adafruit lis3dh on its own.

ModelM,

 

Sorry for the late response.   What version of circuitpython (.UF2) did you use?  I have been having grief with version 9.1.4.  The one that I used for this project is 9.0.5.  

 

Regards,

 

Rick

 

Hey Rick, I can confirm that 9.0.5 displays 32 buttons and no XYZ axis under USB game controllers.

 

This is a weird situation.  I have notified this issue to the circuitpython discord and I am reporting the issue to github for the circuitpython joystick XL. I only recently found this issue after a windows update for win11.  My PCs in my shop both have win 10, but are not on the network and hence no updates.   I'll keep everyone apprised of my progress.



#26 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 11 December 2024 - 05:55 PM

I got a response back from the Joystick XL library author.  Long story short; he can't find anything with the code that could be causing this anomaly.   Here is his response:

 

I tried your code on a Pico running CircuitPython 9.0.5 (to match the version in your boot_out.txt) as well as CircuitPython 9.2.1 (the latest available) on two different Windows 11 machines, and I get the X, Y and Z axes as well as the two buttons in the Windows "Set up USB game controllers" properties dialog. Have you tried connecting your controller to a different Windows PC to verify that the issue isn't specific to the Windows installation on your development machine?

One thing I did notice (although it shouldn't cause the issue you're experiencing) is that you've renamed __init__.py in the /lib/joystick_xl folder to __version__.py, which results in <module 'joystick_xl.__version__' from '/lib/joystick_xl/__version__.py'> getting written to boot_out.txt instead of the actual JoystickXL version number.

 

It's also worth noting that your code doesn't actually stay running on my Pico; it errors out because I don't have an accelerometer connected to the appropriate pins. (Again, this shouldn't matter - the USB descriptor reports the axes/buttons you've defined whether or not any code is actually running.) I can, however, run a JoystickXL test console from the CircuitPython REPL and confirm that all axes and buttons register correctly:
> from joystick_xl.tools import TestConsole
> TestConsole()

  

I offered to send him a complete board to evaluate. Perhaps he might want to build a VP cabinet.  In the meantime, I will continue to look into this issue.  

 

Regards,

 

Rick



#27 Giovanni17

Giovanni17

    Neophyte

  • Members
  • Pip
  • 1 posts

  • Flag: Netherlands

  • Favorite Pinball: Cirqus Voltaire

Posted 01 January 2025 - 03:11 PM

Cool project. I am still using a KL25Z, but I read that it introduces about 10ms of latency, meanwhile the PICO should be somewhere around 1-2ms. 

 

If true, then that closes the KL25 chapter for me.

Having the lowest possible flipper latency is a top priority, especially as someone that also has real pins, you just notice that it ain't quite right. 

 

I'll keep you all posted on my findings. If anyone even cares :) 



#28 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 01 January 2025 - 09:06 PM

Giovanni,

I am clocking around 5ms on this project.  I can go faster using a C library, but at the moment, I'm using circuitpython which is slower.  I recently contacted the guy that wrote the Joystick library and he mentioned that the X/Y/Z axis are 8 bit.  This was a slight disappointment, as the accelerometer axis are 10 bit and the plunger uses a 16 bit ADC. 

 

Anyway, I have another batch of PCBs for the basic PCB.  Contact me if interested.

 

Happy New Year!!!

 

 

Rickey 

 

Cool project. I am still using a KL25Z, but I read that it introduces about 10ms of latency, meanwhile the PICO should be somewhere around 1-2ms. 

 

If true, then that closes the KL25 chapter for me.

Having the lowest possible flipper latency is a top priority, especially as someone that also has real pins, you just notice that it ain't quite right. 

 

I'll keep you all posted on my findings. If anyone even cares :)



#29 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 01 January 2025 - 09:18 PM

Happy New Year!

 

I wish to use this thread to introduce a new open source project I am pursuing.  I have designed an enhanced pinball interface that has both inputs and outputs.  I call it the Bang Plus.  This board boast 11 button inputs, ball shooter, 2 axis accelerometer, and 12 high current PWM outputs.  I understand that this doesn't sound like much, but it maximizes the diminutive I/O of the RP Pico and should be very inexpensive.  I haven't had time to add the output coding, but it will be DOF compliant.   The board itself is very compact at 157mm x 103mm.  It will be open source, the schematic, PCB gerbers, and eventually the code will be added to my GitHub in a couple weeks.   In the meantime, here is a image of the artwork:

Big Bang Plus OS
 
Please share your thoughts on this.   
 
Cheers!
 
Rickey 


#30 ModelM

ModelM

    Neophyte

  • Members
  • Pip
  • 5 posts

  • Flag: Canada

  • Favorite Pinball: Demolition man

Posted 03 January 2025 - 06:33 PM

Looks great! Is the pico through hole? Could add solder assist pads for flush mount like my Bluescsi desktop devices (bluescsi.ca)

Are you working in kicad, easy eda or eagle? Excited to see this!

#31 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 04 January 2025 - 03:09 AM

Looks great! Is the pico through hole? Could add solder assist pads for flush mount like my Bluescsi desktop devices (bluescsi.ca)

Are you working in kicad, easy eda or eagle? Excited to see this!

Thanks for the great questions.  You caught my mistake, I forgot to change the Pico footprint for through hole!  The other components are mostly SMT.  I am using KiCAD, it is free, very powerful and easy to use.  BTW- That blueSCSI is really cool!

 

 

Rick 



#32 fhjui

fhjui

    Enthusiast

  • Members
  • PipPipPip
  • 332 posts
  • Location:Germany

  • Flag: Germany

  • Favorite Pinball: especially EM tables

Posted 04 January 2025 - 11:46 AM

A great work ! :tup:


My documentation for installing vpin software with PinUpsystem (Baller installer): https://mega.nz/fold...wAXZlOEMQGbdutQ

Files and PDF-docu in the subdir "Installation vPin-Software with Baller-Installer"


#33 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 12 January 2025 - 06:35 PM

Hi folks!!!

 

I have uploaded my Bang Plus, open source to my GitHub account at github.com/rmhorwitz/Bang-Board-Plus

T his design is for review. Your comments and suggestions are very valuable to me. 

As for software, I had someone very special offer me a configuration script to run their software on this project.  I'll elaborate more on that later.  Again, your comments and suggestions are important to the success of this project.

 

 

Best regards,

 

Rick


Edited by rickh, 12 January 2025 - 06:37 PM.


#34 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 22 February 2025 - 04:08 PM

Folks,

 

A small update.  First, special thanks go out to MJR for catching a couple of issues he discovered during a design review.   I recently received a batch of these Bang + PCBs and I should have a hand stuffed PCBA completed by the end of February.   As hinted in my previous post, MJR created a script so that Pinscape Pico can run on this board.  If successful, I'll adapt it to the Little Bang! as well.  Honestly, Python has performance limitations beyond a basic pinball interface board.  I was hoping that someone with stronger programming skills could take this project to the next level while keeping it open source.  However, Pinscape already does all this.  So going forward, any hardware designs I release will be Pinscape complaint.

 

If anyone is interested in a pinball interface that supports more I/O (inputs/outputs), I suggest looking at MJRs new Pico Pinscape project which should be released soon as a DIY friendly project.   

  

 

Regards,

 

Rick



#35 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 03 April 2025 - 05:20 PM

This is an actual photo of a completed and operational Bang Plus PCBA.  I used my own Python code to validate the design, but will use a version of MJR's Pinscape for Pico software.

 

Bang Board Plus


#36 mjr

mjr

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 3,253 posts

  • Flag: United States of America

  • Favorite Pinball: Medieval Madness

Posted 03 April 2025 - 06:13 PM

Looks great - looks nicely compact and convenient for wiring.  



#37 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 03 April 2025 - 07:44 PM

Looks great - looks nicely compact and convenient for wiring.  

Thanks Mike!   



#38 karlson18

karlson18

    Enthusiast

  • Members
  • PipPipPip
  • 94 posts

  • Flag: Germany

  • Favorite Pinball: Strikes and Spares

Posted 19 July 2025 - 02:32 PM

Hi rickh,

your project is great and i try to build it. unfortunaly i have som problems, followd you instuctions. The pico appears in device manager as an extra HID Compliant Consumer Control Device, HID Compliant Game Controller. When i start joy.cpl it is listet as Circuit Python HID, but there are 32 buttons an axes. I used all the files from yout github. Then i tryed the steps from thainglo with the same result. Tested the included adafruit-circuitpython-raspberry_pi_pico-en_US-9.1.4 and the adafruit-circuitpython-raspberry_pi_pico-en_US-9.0.5 if youn got an advice?

 

pics

https://www.dropbox....ypgw9x1rur&dl=0

 

https://www.dropbox....0ibb497hhm&dl=0

 

https://www.dropbox....s36ln65b25&dl=0

 

https://www.dropbox....h7d8vhsgpm&dl=0

 

https://www.dropbox....zp1pfg7y9x&dl=0

 

greetings

karlson



#39 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 21 July 2025 - 04:57 PM

Hi rickh,

your project is great and i try to build it. unfortunaly i have som problems, followd you instuctions. The pico appears in device manager as an extra HID Compliant Consumer Control Device, HID Compliant Game Controller. When i start joy.cpl it is listet as Circuit Python HID, but there are 32 buttons an axes. I used all the files from yout github. Then i tryed the steps from thainglo with the same result. Tested the included adafruit-circuitpython-raspberry_pi_pico-en_US-9.1.4 and the adafruit-circuitpython-raspberry_pi_pico-en_US-9.0.5 if youn got an advice?

 

pics

https://www.dropbox....ypgw9x1rur&dl=0

 

https://www.dropbox....0ibb497hhm&dl=0

 

https://www.dropbox....s36ln65b25&dl=0

 

https://www.dropbox....h7d8vhsgpm&dl=0

 

https://www.dropbox....zp1pfg7y9x&dl=0

 

greetings

karlson

Karlson,

 

I apologize for your frustration.  For some reason the joystick driver hangs up on some PCs and works on others.  I notified the author who made the driver, but he was not helpful in resolving this issue.  I concluded that this joystick driver only supported 8 bits and would be better if I started over with micropython, as it supported both CPU cores,  but I got tied up with other projects and never pursued it.   I think you could load MJR's Pinscape Pico software and see if you could get it to work.  In the meantime, try another PC.  I'm still baffled over this issue. 

 

Regards,

 

Rick  







Also tagged with one or more of these keywords: Pinscape, visual pinball, game controller, pinball controller, Little Bang