What's new
Pinball info

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

In Progress Mishmash Homebrew - Pt II

Also created some more topper elements on the 3D printer - these are dancefloors that go behind the mirror ball.

1700328224488.png
1700328251293.png
This will be two 5x4 lit panels with more ws2812b LEDs in.
 

Attachments

  • VID_20231117_163613745.mp4
    11.4 MB
Boring update - managed to get some settings working within the web app. Day off from work on Friday so hope to get some good progress on the OS programming.

1701206157586.png
 
A week and a half since my last update- what has changed? Materially, not a lot, but beneath the surface, loads and loads. (Code here)

We now have full editing of the switches and coils which are created in JSON and stored in SPIFFS and loaded at boot time to update the switch and coil global objects.

1702133943846.png

1702133987689.png

Next task will be to create the GUI elements that will allow for coil to switch binding.

I will then shift my attention to the GUI for LED definition and control, then to sound effect audio (video and music probably from a PI Zero connected over serial)

Following that, it may well get exciting as we will start coding the GUI to edit the rules and define the modes. It would be easy to think this is turning a corner but it's a lot of work yet to do, given the path I have chosen to take.
 
So nearly a month has passed since my last update - much has changed, not that it's too much progress towards actual pinball.

Let's look at the GUI menu to give a hint to the functions that have been added.

1703954362642.png

Live View was here before, but lots of manually configured stuff that is now dynamically generated based on later settings.
1703956022345.png

Update - as you were, not much changed here except limiting the choice of .bin files being uploaded.

Download - loads of work done here. Basically, all of the JSON files stored in the SPIFFS get scooped up and zipped for download. This means all the work done in configuring switches, coils, bindings and will be done in rules in future developments - these can all be exported and manually copes onto the SPIFFS of another ESP32 board. To DO - upload configs to SPIFFS via the browser.
1703955921395.png

Solenoid Test - looping through the coils and firing them one at a time in order.

Basic Config - as per last post

Config Switches - extended since the last post. Now we add isStart, isCredit and isOuthole. To Do - add isTrough, but not needed in my single ball playfield just yet.

Config Coils - no additional dev done.

Config Switch Coil Bindings - This is where we can set up how coils are relates to switches. In the example below, we fire off a pop bumper immediately when the switch is hit.
1703954956313.png
We also can have a coil bound to a switch, like an outhole - but we will leave the firing events to the rules (or "code").
1703955053151.png


Once all that had been done, I have removed loads of manual code which will later be replace by rules.

So, following advice received earlier in this log - I have implemented an interrupt timer to ensure switch matrix is read once a millisecond - so 1000 times a second - this works very nicely.

I then got to the point of implementing an interrupt on the flipper switches, now this opened up a HUGE can of worms my inexperience was not prepared for. Whereas previously Alan's flipper button design handled switches nicely, it seems interrupts can be very challenging because switch presses and release events can be a real art to detect and not doing so efficiently can really break things by taking up too much processor time and crashing the ESP32 - this needs much more work and more electronics (pull down resistor - at least) than is on v1 of the PCB.
 
Wow, nearly two months since my last update. Thats tardy!! :confused:

Lots of mapping of functions in Miro and then programming in the settings to allow for web configuration of them. Boring, believe me.

Today a bit more interesting stuff. I have created a flipper board to handle direct firing of the flippers. They will still be switches on a 5v circuit, but when on, they will operate the MOSFETs directly. As I was doing it, I also created some MOSFET boards.

1708868724208.png

1708868755346.png

1708868864673.png

Ordered on the cheapest shipping terms, so that will be another month until I get to see what mistakes I have made.
 
Last edited:
Crimping and soldering, was having a great time. All was well with the world, connecting up just the outhole and it fired off when it needed to....great me thinks. Connect up all the coils and we get one pop locked on and others fail to work. Seems this isn't as easy as planned (and oh how it's been planned)

Four MOSFETs blown, I must have something connected wrong or my Driver boards aren't right (more likely). If a single coil works and adding multiple doesn't I think that's where I start to redesign. It seemed too simple, it was ;)

Back to the drawing board and read up a bit more.

IMG_20240310_125211568_HDR.jpg
IMG_20240310_125205494_HDR.jpg
 
Working theory is the boards are fine but for the lack of ground connection to the ESP32. With coils firing and only a ground to the main connection block it may have resulted in a difference in potential between the 48v and 5v circuits. If this raised the voltage seen at the gate beyond spec that could have broken the MOSFETs. Better solution long term would be to put an IC or optocoupler between the MOSFET and ESP32. Also, in hindsight, the ground trace should be broader.
 
Next iteration of the boards arrived this afternoon.....

17109573475866128765911438525527.jpg

First test worked....


Will try adding additional coils this weekend....
 
Looking real good.

I really wanna do this but the coding I have not got a clue with!

The wiring, constructions, mechs, LEDs - can do that in my sleep but the code side of it scares me!
 
I
Looking real good.

I really wanna do this but the coding I have not got a clue with!

The wiring, constructions, mechs, LEDs - can do that in my sleep but the code side of it scares me!
The plan is that the code side will be mostly done by the time I'm done (will take some time) with any config and customisations done in the web interface. Should then make reusing the boards and code easy for anyone.

Long way to go, and every step forward currently raises more questions.

Ready for 2030 maybe
 
Back on it again this morning and testing my way through this systematically.

First test was getting the pops working. On the last iteration of the solenoid drive board, right pop fired then stayed on. The mosfet switching the coil on and off shorted so I wanted to test both pops to see what happened.


I was a bit gutted, this wasn't what I had hoped for. Right pop was fried right?.....nope, resistance of the coil checked out so it must be the mosfet....no, this tested good too.....wtf!!!?

Swapped the connections to left and right pop and the right pop worked and the left didn't...

So, out comes the logic probe and when test firing the right pop in the software, no result.

Quick swap of the 595 shift register for a new one and we are back up and running. A reassuring high "pip" from the logic probe.

So, feeling lucky, I add in another mosfet to switch a slingshot on and off and repeat the tests


That's me for today ... After the lows of a fortnight ago I will end on a high this weekend (besides, i've no mosfets left and it's payday on Monday ;)

If at first you don't succeed....buy some more bits and slow the fcuk down next time 😃😃
 
Not a great deal of effort expended today. Just added some simple buttons and a wiring loom for them to connect up to the Flipper Control Board.


Worked first time, but bottled connecting the buttons direct to the ESP32, for this I'm going to use a couple of octocouplers to ensure we dont fry the CPU if a MOSFET in the future
 
And the inevitable lack of will power sees me chuck the playfield, PSU and boards into the game to see it in action.....

 
Back
Top Bottom