trough stops functioning mid game (sort of)

72 views
Skip to first unread message

Ryan McQuaid

unread,
Jul 11, 2020, 12:11:44 AM7/11/20
to MPF Users
Im having a problem that has been seemingly slowly getting worse over time (but that might be my imagination)

The trough stops functioning during a game. All switches are working. Trough seems to be keeping track of balls.  But if I drain it wont trigger a drain event, wont give the ball back when it is saved, and wont add more balls for multiball. Sometimes it will kick out a ball when it is supposed to, but rarely does that mean the situation is fixed. Sometimes I will have this bug then start a multiball and it will kick 1 more into play (but not the third) and then if I drain both balls, the game continues and the multiball keeps going too. the game often behaves as if it has forgotten how many balls are in the game. I would suspect a hardware problem, but I have the same issue when running with virtual hardware on MPF monitor.

I'm on the latest dev release, however ive had this issue since ~54.0 dev26

If anyone has any ideas for what to check, or a method for doing science to narrow down the issue let me know

Philip Dixon

unread,
Jul 11, 2020, 2:41:51 AM7/11/20
to MPF Users
May sound odd but check you have the rubber bung under the plunger. Mine was missing and the lack of insulation caused similar.

jabdoa

unread,
Jul 11, 2020, 8:52:10 AM7/11/20
to MPF Users
Hi Ryan,

Do you have an MPF log for such a case? Ideally with "debug: true" on that trough. How long are your eject_timeouts? MPF will wait for that time to confirm an eject unless it can otherwise proof that the ball left (i.e. only one ball on the playfield and the ball entered the scoop). But a log should tell us the exact reason (or lead us to some bug). Please also post you trough config.

Jan

Ryan McQuaid

unread,
Jul 11, 2020, 7:19:12 PM7/11/20
to MPF Users
Here are some logs from times the bug occured. at first I thought it was happening whenever I used ball saves that were not directly linked to multiball, but then I had occasion where It broke with no ball saves used, and other occasions where it worked even after ball savers were used so I wasn't able to find a pattern.

observed behavior:
Sometimes if a ball was supposed to be saved and no ball was ejected, the ball would immediately eject if the game was ended via long start press (just sends the evvent that ends the game)

after this bug occurs no ball savers or multiballs will function, and the ball will not drain. It seems like the game is somehow losing track of how many balls it has (thinking it has 1 more than it does) sometimes.


ball_devices:
  bd_trough
:
    tags
: trough, home, drain
    ball_switches
: s_trough1, s_trough2, s_trough3, s_trough4, s_trough5, s_trough6, s_trough_jam
    jam_switch
: s_trough_jam
    eject_coil
: c_ball_serve
    eject_targets
: bd_plunger
    entrance_count_delay
: 300ms
    eject_timeouts
: 2s
  bd_plunger
:
    ball_switches
: s_plunger_lane
    eject_targets
: playfield
    eject_timeouts
: 2s
    eject_coil
: c_auto_plunge
    mechanical_eject
: true
    player_controlled_eject_event
: s_launch
    auto_fire_on_unexpected_ball
: true
trough bug bubble shield.log
trough bug lightning shield.log
trough bug water shield.log

Ryan McQuaid

unread,
Jul 11, 2020, 7:21:58 PM7/11/20
to MPF Users
Also, this tends to be what happens when a ball is saved but this hug has occurred. It's not like this everytime, but often enough to be of note.
FJIMG_20200711_164347.jpg

Philip Dixon

unread,
Jul 12, 2020, 3:49:10 AM7/12/20
to MPF Users
So its waiting for the plunger. Possibly a fault with the plunger switch, maybe it hasn't verified the ball leaving the plunger.

jabdoa

unread,
Jul 12, 2020, 7:02:51 AM7/12/20
to MPF Users
I would expect this to be plunger related too. Will have look at your logs later. Can you add "debug: True" to your plunger as well (in case you did not already)? Might be a bug or a lost ball. Maybe a confirm problem. We will figure it out for sure. I will try to reproduce it in a test based on your log and config. If I can reproduce it we will have a regression test later.

Jan

Ryan McQuaid

unread,
Jul 12, 2020, 1:00:34 PM7/12/20
to MPF Users
Remember it also happens when using MPF monitor and virtual hardware. Doubt a physical switch is the problem.

Ryan McQuaid

unread,
Jul 13, 2020, 10:05:54 PM7/13/20
to MPF Users
here is a log file with debug: true on the plunger. This time it happened right away.
LatestRun_5x.log

jabdoa

unread,
Jul 14, 2020, 10:16:29 AM7/14/20
to MPF Users
Can you create a log with just MPF (MC does not matter here) with debug on trough, plunger and ball_save. This is hard to debug with limited output and a lot of noise in the log. From what I see I would expect something to block the eject event on the trough but hard to tell without debug.

Please also post the ball_save in question.


Jan

Ryan McQuaid

unread,
Jul 14, 2020, 10:36:30 AM7/14/20
to MPF Users
Here this should be better.

Doubt this particular ballsave has anything to do with it. Seems to happen with any/all/no ball savers.

ball_saves:
  initial_ball_save
:
    active_time
: 12s
    hurry_up_time
: 2s
    grace_period
: 2s
    enable_events
: start_initial_ball_save, 81_end
    disable_events
: 81_start
    early_ball_save_events
: outlane_hit
    auto_launch
: yes
    balls_to_save
: -1
    debug
: true
2020-07-14-07-30-07-mpf-DESKTOP-4OED0H9.log

Ryan McQuaid

unread,
Jul 14, 2020, 12:55:18 PM7/14/20
to MPF Users
Here is an even cleaner version of the log with a lot of unrelated constantly running timer stuff removed
trimmed trough log.txt
Message has been deleted

Ryan McQuaid

unread,
Jul 15, 2020, 11:49:05 PM7/15/20
to MPF Users
This is solved. Jabdoa pointed out to me that 'delaying_eject' was not a standard MPF event. Sure enough I had coded it in as part of a mode select that was not constrained well enough. As a result any additional balls that would be served on ball 1 would be waiting for a mode to be selected (that never was)

The lesson here: Make sure that events and such that you add to your config/code cannot be easily mistaken for things that are running under the hood of MPF. If I had named this event 'delaying_eject_until_mode_selected' (which is now its name) I would have spotted the problem right away.


Reply all
Reply to author
Forward
0 new messages