flash on 8 expansion board

15 views
Skip to first unread message

james cardona

unread,
Nov 18, 2013, 8:47:46 AM11/18/13
to fre...@googlegroups.com
Hi all,
DM has the 8 expansion board which is supported in freewpc using: define MACHINE_SOL_EXTBOARD1

Every time I boot the game, the #6 and #7 flashers that are fed from that board flash momentarily (X6 and X7).  It doesn't seem right to me that this is happening.  This even occurs if the only code I have is the md.  Since I also have some other unexplained bugs I am wondering if this is related to a bigger problem coming from the expansion board code?  Any ideas?

Brian Dominy

unread,
Nov 18, 2013, 9:59:10 AM11/18/13
to fre...@googlegroups.com
I don't see how this could be happening either.  How long is "momentarily" and when exactly do they come on, in relation to the powerup screen and the attract mode starting?

The 8-board solenoids aren't treating any differently from the others, or at least they shouldn't be.  It's possible that the WPC signal to the board isn't initialized as part of the physical reset and that the lines are "floating" until the software explicitly sets it.  None of the solenoid outputs are written during early initialization so they would have whatever value the WPC chip resets to.  Only after the first call to "enable_interrupts", near the end of freewpc_init, would the interrupt handler run that sets the outputs to the desired state.  But this should happen so fast that I can't imagine you would notice it...

You might try adding an explicit "pinio_write_solenoid_set(5,0)" near the top of the freewpc_init() function and see if that helps.

Brian


--
 
---
You received this message because you are subscribed to the Google Groups "FreeWPC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to freewpc+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.



--
- Brian

james cardona

unread,
Nov 19, 2013, 12:47:46 PM11/19/13
to fre...@googlegroups.com, br...@oddchange.com
Thanks BD,
put it right at the top and that worked.  the flash was happening prior to any DMD messages, about 1/2 second after flipping the switch on.  Wasn't causing any problems - just doesn't look professional.
By the way, looking through the sol_init code I came across this:

    for (sol = SOL_MIN_FLASHER; sol < PINIO_NUM_SOLS; sol++)
    {
        sol_duty_state[sol - SOL_MIN_FLASHER] = sol_get_duty (sol);
    }

I would think it would say this to set everything to off initially?

        sol_duty_state[sol - SOL_MIN_FLASHER] = 0;


Jim

Brian Dominy

unread,
Nov 19, 2013, 12:54:49 PM11/19/13
to fre...@googlegroups.com
Cool, glad that helped.  Yes, the code you posted is initializing the data structures, but the hardware isn't updated with these values during init, until some time later.

My guess is the regular solenoid outputs are guaranteed to be off by the WPC ASIC, but the 8-board slot could have other things connected to it, or nothing at all, so those outputs are not guaranteed to be reset, and software must do it.

Good find.

Brian
Reply all
Reply to author
Forward
0 new messages