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

#1 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 28 April 2024 - 06:21 PM

Folks,

 

I have finally released an open-source virtual pinball interface controller based on a Raspberry Pi Pico, LIS3SH accelerometer, and CircuitPython.  This project is called 'Little Bang' and it is open source and cost around $10 USD in parts.   

 

These are some of the features:

 

  • 16 each low latency (5ms) button inputs using standard Keyboard HID
  • X/Y accelerometer with 10 bit resolution @100 Hz sampling, with adjustable dead band (in software)
  • Ball Plunger, 16 bit resolution @200 Hz sampling
  • Two HID interfaces in one, GamePad and Keyboard
  • Code is written in CircuitPython for easy maintainability
  • Detailed instructions on how to assemble, load software, test, and implement
  • Did I mention it is open source?

I am creating a side-hustle called 'Intense Arcade' that sells mini-sized pinball machines and parts and plan to expand my product line into pinball controller boards and I am using the open-source 'Little Bang' as a vehicle to give me and my brand some recognition.  I should have a completed turnkey assembly for the Little Bang available for sale in a couple weeks.

 

Here are the files.  Please enjoy!!!!

       

https://github.com/r...tle_Bang_Board/

 

 

Regards,

 

Rickey Horwitz


Edited by rickh, 28 April 2024 - 06:53 PM.


#2 SpacemanSpiff

SpacemanSpiff

    Neophyte

  • Members
  • Pip
  • 9 posts

  • Flag: United States of America

  • Favorite Pinball: Evel Knievel

Posted 29 April 2024 - 01:54 AM

So this is in "competition" with the KL25Z essentially?
 

What about the Pinscape expansion boards... can it work well with them, or would we need other solutions?
 

Also, I see a plunger in the docs associates with Intense Arcade... but the products page at Intense isn't loading... what's the best way to procure?

 

Materials for my project are arriving shortly (and many still to be ordered)

Thank you!


Edited by SpacemanSpiff, 29 April 2024 - 02:07 AM.


#3 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 29 April 2024 - 12:12 PM

The Pico comes up short competing with the rich features of the late great KL25Z.  For $16 you got a two processor board with huge amount of GP I/O, 16 bit ADC, and a 12 bit accelerometer.  The board was being sold much less than the BOM cost.  It was a dream come true until a couple components on this board became obsolete and it stopped being made.  Although Mike Roberts has been an invaluable resource to me, the 'Little Bang' has no compatibility with Pinscape or association with it.  

 

I originally planned to make this a feature rich, proprietary product, but I got several emails requesting that I make it open source so that other DIY can build a system on a reasonable budget and developers could contribute to make it better.  I resisted at first, but realized that an open source project was needed as a stop-gap until a true successor to Pinscape becomes available.  So I simplified the requirements to this project and released it. 

 

BTW- I started building mini-pinball machines several years ago and sold them on Ebay.  I took a hiatus a few years back and only recently have I decided to go back.  I apologize for the broken links on my website, as go-daddy recently had a migration and all my links need to be fixed.  Perhaps I'll include the plunger .stl files to the project?

 

Regards,

 

 

Rickey Horwitz

 

So this is in "competition" with the KL25Z essentially?
 

What about the Pinscape expansion boards... can it work well with them, or would we need other solutions?
 

Also, I see a plunger in the docs associates with Intense Arcade... but the products page at Intense isn't loading... what's the best way to procure?

 

Materials for my project are arriving shortly (and many still to be ordered)

Thank you!



#4 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 30 April 2024 - 02:36 AM

Folks, 

 

I added my .stl files for the ball shooter.  This model is based on the Chinesium ball shooter sold on AliExpress. Again, these file can be found on my github page:  https://github.com/r...ttle_Bang_Board



#5 chrisjubb

chrisjubb

    Neophyte

  • Members
  • Pip
  • 2 posts

  • Flag: United Kingdom

  • Favorite Pinball: Attack From Mars

Posted 27 September 2024 - 06:57 AM

Wow this is really cool! Going to get the parts and give it a build.
I am just using my laptop and monitor so this will be a great addition to have proper buttons and a plunger.
I wonder if this can eventually do force feedback too (receive signals from visual pinball and activate solenoids/relays).

#6 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 01 October 2024 - 12:45 PM

Folks,  

 

Sorry for the long delay.  I diverted my attention to designing and building a new ball shooter/plunger system that I hope to release later this month.  In the meantime, I am excited to announce my new open source PCB that uses through-hole technology for an easy DIY assembly.  As mentioned before, this project revolves around the RP Pico and LIS3DSH modules.  My first attempt at designing this board resulted in failure, as my PCB fabricator messed up on the solder mask and I quickly discovered that the LIS3DSH LGA16 package was too tiny for most people to solder. 

I have also made improvements to the Pico open source code to include a configuration script.  This allows the board to be mounted at any horizontal axis inside the cabinet and easily configure button inputs without learning how to code.  This code and configuration files will be uploaded to Github early next week when I complete SQA. 

 

As for this design, the Little Bang OS (open source) has 16 button inputs, Ball Plunger/Shooter input, 2 axis accelerometer and an expansion port (SPI) for adding a future TLC5947 for 24 PWM channels of outputs.

Below is a completed working board and bare PCB.  The bare PCB is available for purchase at $6 each.  I plan to have kits (PCB, Pico, LIS3DSH) starting at around $15 depending on demand.  If interested, shoot me a message.

Little Bang PCBA 2
Little Bang PCB


#7 Suikazz

Suikazz

    Enthusiast

  • Members
  • PipPipPip
  • 113 posts

  • Flag: Hungary

  • Favorite Pinball: GoT

Posted 06 October 2024 - 12:16 PM

i'm interested!
​could you send me some details?



#8 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 06 October 2024 - 06:43 PM

Folks,

 

I finally got all the new files uploaded on Github including the gerbers and drill files for making the PCB.  I also updated the ball shooter to include all the printed parts.  So it is now complete except for the shaft.

 https://github.com/r...ttle_Bang_Board 

Those interested in buying kits, I will have these posted on Ebay early this week.


Edited by rickh, 07 October 2024 - 11:03 AM.


#9 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 12 October 2024 - 05:49 PM

As usual, I was late again, but was able to get the listing on Ebay.  https://www.ebay.com/itm/146096632871



#10 thainglo

thainglo

    Hobbyist

  • Members
  • PipPip
  • 20 posts

  • Flag: United States of America

  • Favorite Pinball: Indiana Jones

Posted 23 October 2024 - 07:35 PM

Please clarify - is a LIS3DH or LIS3DSH the required accelerometer?  The guide references the former, but your kit contains the latter.  I am trying to get the code to work using the LIS3DH that I ordered per the manual and getting zero response when I use the windows tool "Set up USB Game Controllers."


Mini cab with 24" PF, 19" BG and small DMD. Raspberry Pi Pico controller.

#11 thainglo

thainglo

    Hobbyist

  • Members
  • PipPip
  • 20 posts

  • Flag: United States of America

  • Favorite Pinball: Indiana Jones

Posted 23 October 2024 - 09:20 PM

OK, I think I resolved the issue.  The module is fine, but there might be a couple of steps missing in the instructions.  I am not an expert, just barely know enough to get myself into trouble.  I used the Mu editor to look at the code.py file and was able to do the following troubleshooting steps.

 

1) The adafruit_hid library that is apparently the default on the pico when the python script is loaded in the boot drive doesn't work and needs to be updated.  I found the latest here: https://github.com/a...on_HID/releases.  Using the default library lead to errors about the Keyboard.mpy not being valid.

2) I also had to download the TLC5947 as that is imported into the code.  This is for an LED driver (I think), not sure its applicability here.  I found this library here: https://github.com/a...tPython_TLC5947

3) In addition to the boot.py and code.py that is taken from the .zip file and placed on the root of the Pico, the config.txt file needs to be placed there as well.

4) The schematic for hooking up the LIS3DH calls for using Pins 1 & 2 for SDA and SCL, respectively.  For my hookup, I needed it wired into Pins 6 and 7.  This appears to be called out to those GPIOs in the code.py.

 

Now that the code boots without error, I'm going to get into dialing it into my cabinet (naming buttons, etc).  I previously had the buttons wired to ground, going to see if I can swap that in the code or have to rewire.

 

Rick - please let me know if I was way off base on these steps.  I'm impressed with the project and all the work you've done!


Mini cab with 24" PF, 19" BG and small DMD. Raspberry Pi Pico controller.

#12 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 28 October 2024 - 04:13 PM

OK, I think I resolved the issue.  The module is fine, but there might be a couple of steps missing in the instructions.  I am not an expert, just barely know enough to get myself into trouble.  I used the Mu editor to look at the code.py file and was able to do the following troubleshooting steps.
 
1) The adafruit_hid library that is apparently the default on the pico when the python script is loaded in the boot drive doesn't work and needs to be updated.  I found the latest here: https://github.com/a...on_HID/releases.  Using the default library lead to errors about the Keyboard.mpy not being valid.
2) I also had to download the TLC5947 as that is imported into the code.  This is for an LED driver (I think), not sure its applicability here.  I found this library here: https://github.com/a...tPython_TLC5947
3) In addition to the boot.py and code.py that is taken from the .zip file and placed on the root of the Pico, the config.txt file needs to be placed there as well.
4) The schematic for hooking up the LIS3DH calls for using Pins 1 & 2 for SDA and SCL, respectively.  For my hookup, I needed it wired into Pins 6 and 7.  This appears to be called out to those GPIOs in the code.py.


 
Now that the code boots without error, I'm going to get into dialing it into my cabinet (naming buttons, etc).  I previously had the buttons wired to ground, going to see if I can swap that in the code or have to rewire.
 
Rick - please let me know if I was way off base on these steps.  I'm impressed with the project and all the work you've done!

Thanks for bringing this to my attention. I'm currently on travel, and as such I don't have access to my resources. The accelerometer should be the LIS3DSH. The LIS3DH is an older, obsolete model that is buggy at best and should not be used. The TLC5947 is an LED driver used for DOF outputs. This is still under development. Here is how I have been loading the software. I first load the circuit python application. Once loaded, I copy the contents of root and library to the Pico. I reboot using MU editor debugger and ensure that the code stops at loading the driver for the accelerometer, as this device is present on a bare Pico. This tells me that libraries are present. I'll elaborate more when I get back on Nov.6th. Please excuse any typos and misspells.

Regards,

Rick

Edited by rickh, 28 October 2024 - 10:59 PM.


#13 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 04 November 2024 - 06:10 PM

OK, I think I resolved the issue.  The module is fine, but there might be a couple of steps missing in the instructions.  I am not an expert, just barely know enough to get myself into trouble.  I used the Mu editor to look at the code.py file and was able to do the following troubleshooting steps.

 

1) The adafruit_hid library that is apparently the default on the pico when the python script is loaded in the boot drive doesn't work and needs to be updated.  I found the latest here: https://github.com/a...on_HID/releases.  Using the default library lead to errors about the Keyboard.mpy not being valid.

2) I also had to download the TLC5947 as that is imported into the code.  This is for an LED driver (I think), not sure its applicability here.  I found this library here: https://github.com/a...tPython_TLC5947

3) In addition to the boot.py and code.py that is taken from the .zip file and placed on the root of the Pico, the config.txt file needs to be placed there as well.

4) The schematic for hooking up the LIS3DH calls for using Pins 1 & 2 for SDA and SCL, respectively.  For my hookup, I needed it wired into Pins 6 and 7.  This appears to be called out to those GPIOs in the code.py.

 

Now that the code boots without error, I'm going to get into dialing it into my cabinet (naming buttons, etc).  I previously had the buttons wired to ground, going to see if I can swap that in the code or have to rewire.

 

Rick - please let me know if I was way off base on these steps.  I'm impressed with the project and all the work you've done!

Thanks for your patience.  When I updated the GitHub repository, I failed to remove the older, outdated instructions.   Anyway, I added instructions to the readme to include software programming installation.  I also added all the software drivers and code to a .zip file for easy installation.  This was not included in my 2.0 instructions because the RP Picos I am selling already have the software pre-installed.  Let me know if you still have any issues.



#14 cyberm4d

cyberm4d

    Neophyte

  • Members
  • Pip
  • 2 posts

  • Flag: Canada

  • Favorite Pinball: Pin-Bot

Posted 13 November 2024 - 01:51 PM

Amazing job Rickh!

Now is the perfect time to start building my 2nd machine, my first one was very basic with no plunger nor accelerometer. 
There's so much to think about when building a vpin having all the controler build covered at low cost in a single guide is very appreciated.

Thanks for your hardwork!



#15 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 16 November 2024 - 07:51 PM

Thanks for the kudos. Let me know when you get ready to add a new plunger.  I have been designing and building a bunch of beautiful ball plungers.  I'll try to share these later this weekend.  

DSCN0046

 

Amazing job Rickh!

Now is the perfect time to start building my 2nd machine, my first one was very basic with no plunger nor accelerometer. 
There's so much to think about when building a vpin having all the controler build covered at low cost in a single guide is very appreciated.

Thanks for your hardwork!


Edited by rickh, 16 November 2024 - 07:56 PM.


#16 Itchigo

Itchigo

    Pinball Wizard

  • Members
  • PipPipPipPipPip
  • 2,704 posts
  • Location:Chicago, Illinois

  • Flag: United States of America

  • Favorite Pinball: All




  • Trophies:

Posted 17 November 2024 - 12:39 PM

I'll just put this out there as I don't know if anyone else did this. My plunger is a "shorty" so it doesn't hit the PF screen. I'm not sure if anyone would be interested in a shorty version of this. I wanted the PF as close to the lockdown bar as I could, and I wanted it to be able to flip up in case I needed to access the PC.

 

I'm considering getting the little bang as a backup in case something happens to my KL25. Looks like a great option for everyone!

 

plungerv2.jpg


Founder of Rogue Pinball! https://roguepinball.com/index.php                 Making Pinball great again!!

 

partylikeits1776-.jpg


#17 digitalarts

digitalarts

    Pinball Fan

  • Members
  • PipPipPipPip
  • 730 posts
  • Location:Bavaria

  • Flag: Germany

  • Favorite Pinball: Judge Dredd (have the real one); all virtual EM's

Posted 17 November 2024 - 02:37 PM

Hi Tim, Looks interesting...
This IS what i call 'handmade' Work
And you have one spare analog knob - perhaps If someone creates tables with left/right plunging ?😜

#18 ModelM

ModelM

    Neophyte

  • Members
  • Pip
  • 5 posts

  • Flag: Canada

  • Favorite Pinball: Demolition man

Posted 25 November 2024 - 10:59 PM

Hey folks! Just started building my own cabinet and was inclined to play with the pico as other controllers were pricey shipped to Canada. Happened upon this forum post and now I have other ~~nerds~~ friends to chat to!

I Followed the instructions on GitHub and wired the adafruit accelerometer and plunger as per the schematics BUT when opening usb gamepad configuration in Windowsnothing registers for xyz axis.

I've noticed the boot.py only contains 2 buttons as well?

Curious if anyone that's had success can chime in, possibly Zip the applicable contents for the pico in the event that the Zip on the github is Defunct.

#19 rickh

rickh

    Enthusiast

  • Gold Supporter
  • 347 posts
  • Location:Raleigh

  • Flag: United States of America

  • Favorite Pinball: pinbot

Posted 28 November 2024 - 01:01 PM

Hi,

 

Thanks for bringing this to my attention.  I am not aware of any issues with the software, but I'll look into it.  Meanwhile, I purchased a batch of LIS3SDH modules and noticed that a couple of them are defective.  Consequently, I am pulling my kits from Ebay   As for the two buttons for the joystick, these are only token values and have no assignments.  Button presses are recognized as HID device keystrokes while the plunger and accelerometer are recognized as a game controller.  So, if you look at windows setup and all you see are a matrix of red buttons, chances are that the Pico cannot talk to the LIS3SDH.  As mentioned, I'll look into this further.

 

Best regards,

 

 

Rick

 

Hey folks! Just started building my own cabinet and was inclined to play with the pico as other controllers were pricey shipped to Canada. Happened upon this forum post and now I have other ~~nerds~~ friends to chat to!

I Followed the instructions on GitHub and wired the adafruit accelerometer and plunger as per the schematics BUT when opening usb gamepad configuration in Windowsnothing registers for xyz axis.

I've noticed the boot.py only contains 2 buttons as well?

Curious if anyone that's had success can chime in, possibly Zip the applicable contents for the pico in the event that the Zip on the github is Defunct.



#20 Tesla

Tesla

    Pinball Fan

  • Silver Supporter
  • 760 posts
  • Location:Texas, USA

  • Flag: United States of America

  • Favorite Pinball: Star Trek - TNG

Posted 29 November 2024 - 02:33 AM

So this is in "competition" with the KL25Z essentially?

 

The Pinscape software on the KL25z hardware (and you are using nudge and buttons) ... alot of basic-functionality and value there (and it just works reliability and good).

 

I have my real-one (that I soldered the headers into) and I then bought a spare also (both from here).

 

This new project looks interesting also.







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