(Topic ID: 266605)

Replacing the M6800 in a Stern MPU100 with an Arduino


By DickHamill

1 year ago

Topic Heartbeat


Topic Stats

  • 192 posts
  • 37 Pinsiders participating
  • Latest reply 1 hour ago by slochar
  • Topic is favorited by 55 Pinsiders

You

Linked Games

  • Stars Stern Electronics, 1978

Topic Gallery

View topic image gallery

IMG_1527 (resized).jpeg
Screen Shot 2021-05-05 at 10.05.48 PM (resized).png
Screen Shot 2021-05-05 at 10.05.14 PM (resized).png
IMG_0162SB (resized).jpg
WAVTriggerBeautyKDS (resized).jpg
WAVTriggerBeauty (resized).jpeg
PXL_20210422_032049704 (resized).jpg
20200721_154629.jpg
20200721_154238.jpg
Perfboard.jpg
20200714_153848.jpg
2020-07-14_15-23-13.png
IMG_1806 (resized).jpeg
BallyNanoAdapterV1 (resized).png
Wiring rev3a (resized).png
Wiring rev3 (resized).png

There are 192 posts in this topic. You are on page 4 of 4.
#151 20 days ago

Here are Robotworkshop 's instructions on Wav Trigger install:

Typically you would use a short 6-pin cable straight through to connect on the header pins on each. I soldered 6-pin headers to both boards.

Before using it there are several steps and you’ll want a to get one of the USB adapters for updating the firmware on the wav trigger.

These steps just need to be done once to update the wav trigger
- solder 6-pin header to wav trigger
- download v1.30 firmware and update utility
- set the slide switch on the wav trigger to the load position
- connect your desktop computer to the wav trigger using a usb cable and the adapter to the 6-pin header you installed above
- connect an external power supply to the wav trigger
- run the wav trigger flash utility.

Once the new firmware is on the wav trigger you can disconnect everything.

- you need to solder bridge two pads to allow the wav trigger to be powered through the 6-pin connection so it will get power from the RoyGBev board. If this is done earlier you may it need the extra power adapter to program the new firmware but it’s safer for dedicated power for that part.

All the actual sound files are stored on a microSD card and plugged into the wav trigger. You load the files using your computer and copy to that card.

- get a microSD card 2gb or larger and just copy all the sound files to the root directory on the card.

From the docs the only part that matters is the first three digits as it used that to identify what sound number to play. The rest of the name is more like a comment and is ignored.

After that just plug the wav trigger in with the 6-pin cable and the audio jack

#152 20 days ago
Quoted from DickHamill:

Hi Yemons - my apologies, I think there is documentation out there that I haven't updated! A little while ago, I moved away from the stock Wav Trigger software, because it included a lot of stuff unnecessary for this project and I was looking to trim things down. Now, everything you needed is bundled with the Stars project (in files called SendOnlyWavTrigger.*).
You're most of the way there.
Assuming you have latest from Stars2020 and BallySternOS (on GitHub), and you've unpacked everything to the same folder, you should only need to touch BSOS_Config.h
In that file, you'll find a commented define that looks like this:
//#define USE_WAV_TRIGGER
Uncomment that line and upload the software again to the Arduino and it should allow you to update the "Music Level" adjustment to 5 (previous max was 3). This is under the diagnostic menu from the coin door switch. Music Level is menu item 14, I believe. I think this document is up to date:
https://github.com/BallySternOS/Stars2020/blob/master/Stars2020%20One%20Sheet.pdf
It's hard to keep on top of all the documentation though.
Give that a try. The next game after you exit diagnostics should trigger the sounds.
If you have the means, update the firmware of your Wav Trigger and use the define:
//#define USE_WAV_TRIGGER_1p3
instead of the other one.
Robotworkshop wrote good instructions for this somewhere. I'll see if I can get them posted to the wiki.

DickHamill, that did the trick. I'm now enjoying the full sound experience. The Music Level ended up being item 13. I'll work on updating the WAV Trigger firmware once I get a connector. I'd also be happy to help out updating documentation as I'm fresh from working through it. Just let me know.

Thanks a bunch for all of the work you put into this! It is an amazing addition to Stars and I'm sure all of the others you have done.

#153 20 days ago
Quoted from yemons:

DickHamill, that did the trick. I'm now enjoying the full sound experience. The Music Level ended up being item 13.

Awesome - glad to hear it! I guess if that one is 13, the rest of the settings must be off by one as well.
Yes, any notes or help you can give with the documentation would be greatly appreciated. The project has grown so much that it's difficult for me to stay on top of everything.

1 week later
#154 11 days ago
Quoted from DickHamill:

connect your desktop computer to the wav trigger using a usb cable and the adapter to the 6-pin header you installed above

The FTDI Basic (and other FTDI adapters) have 6-pinout: DTR, RX, TX, VCC, CTS, GND, and a 5v/3.3v selector switch.
Meanwhile, the WAV Trigger 6-pinout: GRN=(unmarked), TX, RX, 5VIN, (nothing) GND=BLK

Are the RX/TX lines actually to be reversed in the cable, or only in usage (TX to RX, RX to TX) ?

Is the FTDI voltage switch to be set to 5v, or 3.3 ?

Once powered up in the LOAD switch position, I flashed the new WAV trigger code.

Then, disconnect the FTDI, disconnect the power barrel plug, connect a speaker to the audio output barrel connector (this speaker works with a PC, and sounds to play through the speaker).

I press the test button and hear nothing. The flash drive contains the entire list of Meteor sound files, as provided on github, first sound file is 001_Spinner.wav, and there is also this file made with the configuration program:

#VOLM -21
#SPKR 1
******************************************************************
This file was generated by the Robertsonics Configurator v2.00
for use with the WAV Trigger firmware. It is only required if
you wish to over-ride default settings. You may add your own

The above file "wavtrigr.ini" is located on root folder of the flash card.

I have tried the test button with #VOLM all the way up to 10, no sound.

What else needs to be done for the WAV trigger board, powered, by itself, with a speaker, to produce the test sound?

Next, I see the WAV trigger is being connected, apparently, from the RoyGBev board from the pads marked J7 WAV TRIG 1..6 to the WAV trigger board 8-pads (some of them), just above the FTDI serial pads, and not to the "trigger" inputs.

So, what is the correct wire correspondence from RoyGBev to the WAV trigger board??

Thanks in advance.

Anyone have any idea why no sound? The file
comments below this line -->

#155 11 days ago

It sounds like a power issue. If you aren't powering with an adapter then you need to have a 6-pin straight through cable to connect the WAV trigger. In order to power from the Nano board you need to solder bridge a connection on the WAV trigger so it will get power from the 6-pin cable instead. Done that on a couple now.

#156 11 days ago
Quoted from keith20mm:

Are the RX/TX lines actually to be reversed in the cable, or only in usage (TX to RX, RX to TX) ?

No - hook everything up directly (1 to 1, 2 to 2, etc.) and you'll get TX->RX and RX->TX. The FTDI is transmitting on the line that the Wav Trigger is receiving on and vice versa. So a straight, 6-pin cable will work great. This will be the same case when you hook up a cable from Roy's board to the Wav Trigger.

Quoted from keith20mm:

The above file "wavtrigr.ini" is located on root folder of the flash card.

I don't use a configuration file with my Wav Trigger, and I control the volume with my speakers. Not saying this won't work, but the only thing loaded on my flash card is the samples.

You'll plug the Wav Trigger into Roy's card to the same 6-pin connector you used to re-flash your Wav Trigger. The 6-pin cable is all that's needed to talk to the Wav Trigger. This project doesn't use any of the trigger inputs because it communicates serially.

Assuming you moved the switch from LOAD to RUN, whenever the Wav Trigger is plugged in with the 6-pin cable, you should see the LED flash on the Wav Trigger periodically. If it doesn't, then maybe you haven't bridged the solder pads for power (as Robotworkshop mentioned)?

In order to get power from the 6-pin connector to the board, you have to bridge two solder pads that are labeled 5V. I've circled them in yellow in this photo.

WAVTriggerBeauty (resized).jpeg
#157 10 days ago

I simply have a DC center positive 12v wall wart plugged to the wave trigger, a tested, working, speaker plugged into the speaker 3.5mm barrel jack, and the microSD is installed, with the provided 98 .wav files on the microSD.

When power is applied to the wav trigger, the led flashes 7 times, then begins to periodically flash. If I press the onboard push button, no sound, and my expectation is for the wav board to play the lowest numbered wav file. If I jump the trigger 1-6 pad to their corresponding ground pad, no sounds, either.

There are three onboard pad pairs, left of the speaker barrel plug, for which I have no clue the purpose, as there is apparently no actual documentation, not on Sparkfun, nor on robertsonic website.

Picture has ovals, labeled by me, 1, 2, 3, on the pad pairs mentioned above.

This board produces no sound, either with, or without, these pads connected (to their cross-gap pad)

The "documentation" for this board indicates that the LED will flash 3 times, and this is not the case with the newly-flashed version 1.3 program.

Lacking any kind of contact email address on robertsonics website, I am asking if there is something I have missed in getting this board to work, alone, prior to connecting to the Nano...

Possibly the additional flashes indicates some kind of misformat on the midroSD card, I don't know, as there is a paucity of documentation on this thing.

Thanks again.

WAVTriggerBeautyKDS (resized).jpg
#158 10 days ago

keith20mm: What size SD card did you use? If I remember correctly, the wav trigger only recognizes a relatively small card. I don't remember the maximum size, but I think it was 2 or 4 GB. I only had a 32 gig card on hand, but used some fancy software to format it to the size it wanted.

#159 10 days ago

CousinPookie, THANK YOU... 250GB will not work, 64GB does work.

Using smaller microSD gives 3 flashes, and test button plays first wav file.

Here is the -17 board, ready to install as soon as this bad weather passes:

DickHamill, IRQ is clipped to top of the R134, the two compile constants you mentioned above are in place, and that code is flashed onto Nano. The WAV Trigger firmware is updated, as earlier mentioned.

Thank you, RobotWorkshop, et al, for various assistance.

Owe it to the near total lack of documentation on the WAV trigger for much consternation. The schematic, "Maybe", for the WAV trigger is here:, again, POSSIBLY, as https://easyeda.com/oshw/WAV_Trigger_Open_hardware-Neq0AaKjT
Take it with a large grain of salt, it "Looks" like the Wav trigger, but no assurance it really is. And, the 3 pairs of solder pads simply connect ground from power section to ground on audio amp section, +5 from power section to +5 on audio amp section, and VCC (secretly also known as 3.3V) in the power section to 3.3v (oh, secretly called VCC) in the audio amp section.

keith20mm
IMG_0162SB (resized).jpg

#160 10 days ago

Try putting the Load/Run slide switch in the Run position. I've never been able to get them to play sounds in the Load position.

#161 9 days ago

I am slowly poking my way through the BSOS code. I hope this is the right place to ask questions. I am trying to follow the chain of events to light a lamp. I can see how BSOS_SetLampState operates. The next function, BSOS_ApplyFlashToLamps is really short and it seems to toggle lamps off on odd milliseconds and on for even millseconds? Is there a countdown to know when to turn a light off again at the end of the lampFlashPeriod?

#162 8 days ago

The Meteor code is running in the Nano RoyGBev board, on the -17 MPU , WAV trigger functional, 1 to all 4 players, all fine, except for no flippers.

I am looking for the line that enables the flipper replay, Solenoid Driver Board pin J4B-8 Flipper Relay Disable/Enable, and the V+ rail to flippers. I do not know if the same i/o pin is used on -17 (Taken from Mata Hari, and was working in Mata Hari) as compared to the Stern Meteor MPU200.

I see the relay on the Meteor power board, but don't know how it is controlled. I find these in the Meteor schematic from ipdb.org Meteor:

A2J2-9 (O) to both flipper switches (Meteor Schematic page 2, upper right "Flip Sw Ret" A2 Transformer block)
A3J2-2 (BLU) to top of Left Flipper (Meteor Schematic page 4, upper right corner)
A3J2-1 (R) to top of Right Flipper (Meteor Schematic page 4, upper right corner)

A3J1-9 (G) Left Flipper Solenoid Driver Board A3 (Meteor Schematic page 15, upper right corner)
A3J1-8 (O) Right Flipper Solenoid Driver Board A3 (Meteor Schematic page 15, upper right corner)

#163 8 days ago
Quoted from BJM-Maxx:

I am slowly poking my way through the BSOS code. I hope this is the right place to ask questions. I am trying to follow the chain of events to light a lamp. I can see how BSOS_SetLampState operates. The next function, BSOS_ApplyFlashToLamps is really short and it seems to toggle lamps off on odd milliseconds and on for even millseconds? Is there a countdown to know when to turn a light off again at the end of the lampFlashPeriod?

Yes - this place is as good as any to ask.
When you make a call to BSOS_SetLampState, you're telling the library if the given lamp is on/off, dim, and if it should flash. Only the first two parameters are required, so you can turn on or off a lamp by just saying:
BSOS_SetLampState(0, 0); // lamp 0 off
BSOS_SetLampState(0, 1); // lamp 0 on
If a lamp is off, the other parameters are irrelevant. So these two lines do the same thing:
BSOS_SetLampState(0, 0); // lamp 0 off
BSOS_SetLampState(0, 0, true, 500); // lamp 0 off

When the lamp is turned on and a value is give for the flash period, the lamp will flash with that period in milliseconds.
BSOS_SetLampState(0, 1, 0, 500); // turn on lamp 0 and flash it every 500 ms

Your flash parameter will be stored in an array and the lamp's on/off state will be adjusted during calls to BSOS_ApplyFlashToLamps. The idea is that you'll put the BSOS_ApplyFlashToLamps call in your main loop, and if it's time for the lamp's state to change it will happen during that. To calculate the lamp's current state, the library simply figures out if the modulus of the time period is 1 or 0.

You can think of it like this:
lampStatus = (CurrentTimeInMilliseconds / LampPeriod) % 2;
For the first (LampPeriod) milliseconds, the divide will return a 0, and 0%2 is 0, so the lamp will be off.
The second (LampPeriod) milliseconds, the divide will return 1, and 1%2 is 1, so the lamp will be on.

It's just a convenient way to set a lamp to a given flashing period without having to manage code to turn on/off all the flashing lamps.

If you want to flash a lamp at something other than a 50% duty cycle, or you want to make them go off-dim-on-dim-off or something, you'll need to put that code in the application layer. I only offer one simple type of flashing in the library.

Hope that helps!

#164 8 days ago
Quoted from keith20mm:

The Meteor code is running in the Nano RoyGBev board, on the -17 MPU , WAV trigger functional, 1 to all 4 players, all fine, except for no flippers.
I am looking for the line that enables the flipper replay, Solenoid Driver Board pin J4B-8 Flipper Relay Disable/Enable, and the V+ rail to flippers. I do not know if the same i/o pin is used on -17 (Taken from Mata Hari, and was working in Mata Hari) as compared to the Stern Meteor MPU200.
I see the relay on the Meteor power board, but don't know how it is controlled. I find these in the Meteor schematic from ipdb.org Meteor:
A2J2-9 (O) to both flipper switches (Meteor Schematic page 2, upper right "Flip Sw Ret" A2 Transformer block)
A3J2-2 (BLU) to top of Left Flipper (Meteor Schematic page 4, upper right corner)
A3J2-1 (R) to top of Right Flipper (Meteor Schematic page 4, upper right corner)
A3J1-9 (G) Left Flipper Solenoid Driver Board A3 (Meteor Schematic page 15, upper right corner)
A3J1-8 (O) Right Flipper Solenoid Driver Board A3 (Meteor Schematic page 15, upper right corner)

Very interesting! I have run Meteor on a -17, although only for a day or so while I was waiting for an Alltek.
The flippers are controlled by a "Continuous" solenoid relay, which is passed to the solenoid driver board in the upper nibble of U11:PortB.
The bit for the flippers is defined in BSOS_Config.h on this line:
#define CONTSOL_DISABLE_FLIPPERS 0x40

You'll see this line in the setup() function in Meteor2021.ino:
BSOS_SetDisableFlippers(true);

In InitializeU11PIA, the solenoid byte is initialized to 0x9F with this line:
BSOS_DataWrite(ADDRESS_U11_B, 0x9F);
The lower nibble turns off all momentary solenoids, and the upper turns on 0x40 and 0x20, which are flippers and coin lockout. I'm not certain why I boot up with flippers on. The original Meteor code initializes it to 0xDF, which only has coin lockout on. That might have been smarter, but it's quickly turned off by the setup when SetDisableFlippers is set to true.
That function (BSOS_SetDisableFlippers) will turn on or off bit 0x40 in order to turn on/off the flippers. Bit 0x40 low is flipper relay on, and Bit 0x40 high is flipper relay off.

You can check the current flipper state on U11:Pin16. High should be flippers off (attract mode), and low should be flippers on (game play mode).
It is the same (PB6 = 0x40) line for Meteor and Mata Hari
Screen Shot 2021-05-05 at 10.05.14 PM (resized).png
Screen Shot 2021-05-05 at 10.05.48 PM (resized).png

If you have a logic probe or DMM, please check U11:Pin16 and verify that it's high in attract and low in game play, and then verify that the signal is getting to the MPU's J4:pin 7

#165 8 days ago
Quoted from DickHamill:

Yes - this place is as good as any to ask.
When you make a call to BSOS_SetLampState, you're telling the library if the given lamp is on/off, dim, and if it should flash. Only the first two parameters are required, so you can turn on or off a lamp by just saying:
BSOS_SetLampState(0, 0); // lamp 0 off
BSOS_SetLampState(0, 1); // lamp 0 on
If a lamp is off, the other parameters are irrelevant. So these two lines do the same thing:
BSOS_SetLampState(0, 0); // lamp 0 off
BSOS_SetLampState(0, 0, true, 500); // lamp 0 off
When the lamp is turned on and a value is give for the flash period, the lamp will flash with that period in milliseconds.
BSOS_SetLampState(0, 1, 0, 500); // turn on lamp 0 and flash it every 500 ms
Your flash parameter will be stored in an array and the lamp's on/off state will be adjusted during calls to BSOS_ApplyFlashToLamps. The idea is that you'll put the BSOS_ApplyFlashToLamps call in your main loop, and if it's time for the lamp's state to change it will happen during that. To calculate the lamp's current state, the library simply figures out if the modulus of the time period is 1 or 0.
You can think of it like this:
lampStatus = (CurrentTimeInMilliseconds / LampPeriod) % 2;
For the first (LampPeriod) milliseconds, the divide will return a 0, and 0%2 is 0, so the lamp will be off.
The second (LampPeriod) milliseconds, the divide will return 1, and 1%2 is 1, so the lamp will be on.
It's just a convenient way to set a lamp to a given flashing period without having to manage code to turn on/off all the flashing lamps.
If you want to flash a lamp at something other than a 50% duty cycle, or you want to make them go off-dim-on-dim-off or something, you'll need to put that code in the application layer. I only offer one simple type of flashing in the library.
Hope that helps!

That helped a lot, I just had not quite clued in to the lamps always being in a cycle, I was thinking it was a single event. To leave a light on steadily do I just pick a cycle speed faster than the eye can see, like anything smaller than 20 msec?

#166 8 days ago
Quoted from DickHamill:

BSOS_SetLampState(0, 1); // lamp 0 on

Quoted from BJM-Maxx:

To leave a light on steadily do I just pick a cycle speed faster than the eye can see, like anything smaller than 20 msec?

No, you just don't add an interval.

#167 8 days ago
Quoted from slochar:

No, you just don't add an interval.

This is correct - not including the parameter or setting it to zero will leave the light constantly on until the library is told otherwise.
BSOS_SetLampState(0, 1); // lamp 0 on

#168 7 days ago
Quoted from DickHamill:

The lower nibble turns off all momentary solenoids, and the upper turns on 0x40 and 0x20, which are flippers and coin lockout.

All perfect. I touched up the solder joints on RoyGBev / Nano headers, and the J5 inline receptacle, put it back, played perfectly. I played about 7 games, (some 1 player, some 4 player), and all fine.

On last game, ball 3 ended, ball into outhole, match ran.

When I coined up next game, program started up, but never served ball into shooter lane. So this is something for me to look into. The game would coin up to 4 players, but never serve. So I turned it off for a couple of hours while we rebuilt the Trailblazer's 4L60E transmission valve boty.

Before we left the shop, I re-seated all connectors on the -17, and RoyGBev, and tried the game again, same condition, so I am guessing bad pin on -17, and I'll take it down and touch all those pin headers, after inspection.

Unless someone chimes in on how-to, I'll look into the sound board to see where I can patch in the Wav Trigger speaker output, probably just parallel with cap/resistor, as the 3 mixer channels currently show, just before the volume control IC.

Thanks DickHamill, this is a super-cool upgrade to the Meteor!

Oh, one question, how to make 5-ball game? The switch on main board is set, but it is 3-ball game.

#169 7 days ago

keith20mm, I'd recommend going off the head phone port on the WAV trigger. I believe the output is lower level here. Run two wires from each of the channels. (Leave ground float for now). Put a 1K resistor in series on each line and tie together after the 1K. Then a 10 MFD in series (you'll have one wire now) and a 2.2K resistor in series after that (just like the other circuits on the sound board before the U4 3340). Then tie in where the other 3 similar circuits are - to the C14/R23 node.

Lots of series caps in this setup (but that's what the sound board used). Should keep from drawing too much current if the levels aren't right.

If you get no sounds, try running the ground on the head phone jack to ground on the sound board.

#170 7 days ago
Quoted from keith20mm:

but never served ball into shooter lane

I wonder if any of the solenoids worked (i.e. did the fuse blow).

Quoted from keith20mm:

Trailblazer's 4L60E

What year? I have an '05 Envoy that breaks down every 2~3 minutes.

All the adjustments are through the coin-door switch. I think when you see an 18 in the credit display, you can adjust number of balls between 3 & 5. I ignore the DIP switches on this implementation.
They must be documented somewhere, but the adjustments are:
12 - Freeplay (0 or 1)
13 - Ballsave (in seconds)
14 - Music Level (3 for music & fx)
15 - Tournament scoring
16 - Tilt Warnings (0 - 2)
17 - Award score settings
18 - Number of balls per game
19 - Scrolling scores over 1M
20 - Extra ball award (for tournament scoring)
21 - Special award (for tournament scoring)
22 - DIM level of lamps (50% duty cycle or 33%)

#171 6 days ago
Quoted from geeteoh:

keith20mm, I'd recommend going off the head phone port on the WAV trigger...

Thanks, geeteoh, for the lead on "poor man's mixer". I clipped the male stereo plug off a dollar store set of headphones, where they split into left and right leads, stripped that out, commoned the shield (copper), and then applied 1k 1/4w to each signal lead, then conjoined those, and applied a 10uf electrolytic, and then a 2.2k limiter. Then I murdered a microclip, attaching one end to the signal common, and one to the shield.

These I simply clipped across the R23 on the sound board, as one end of R23 is ground, one is signal.

This works great, the 3.5mm end plugs into the WAV Trigger 3.5mm barrel jack.

So it is all easily removable, and I don't know why anyone would ever want to do so.

Thanks again, for assist, and the mixer works just fine.

#172 6 days ago
Quoted from DickHamill:

I wonder if any of the solenoids worked (i.e. did the fuse blow).

What year? I have an '05 Envoy ..

This is 2004 Trailblazer. Sister in law has the '03 Envioy, which we removed the dash last November to replace air duct actuators. Otherwise, her Envoy is great.

This Trailblazer is great, only requires repair when some rodent gnaws a wire out, like fuel injector, or EVAP solenoid lead.

You see, we live in the woods, much woods.

So, the Meteor with -17 and RoyGBev, Nano, and your code.

The under-playfield fuse was open, replaced that, and played many, many games, all working GREAT!!

Man, this game is so much more fun, now, and greater challenge.

So I worked on the 4L60E gear train, and input clutch drum, rebuilt the servo, and completed the valve body.

Once I ran out of parts, before I left the shop, played a number more games on Meteor, no more problems, and I did set the 5-ball play as you explained...

So, for now, THANKS!!! Super fun game, really nice change. I am certain other pinheads will be wanting this kind of mod on some of their games... we shall see. And I would not be the slightest bit surprised if one of them tries to beg this game off me.

keith

#173 6 days ago
Quoted from keith20mm:

Thanks, geeteoh, for the lead on "poor man's mixer". I clipped the male stereo plug off a dollar store set of headphones, where they split into left and right leads, stripped that out, commoned the shield (copper), and then applied 1k 1/4w to each signal lead, then conjoined those, and applied a 10uf electrolytic, and then a 2.2k limiter. Then I murdered a microclip, attaching one end to the signal common, and one to the shield.

Meteor is gone from my life, but I might try the equivalent on Trident.

#174 6 days ago
Quoted from keith20mm:

Man, this game is so much more fun, now, and greater challenge.

Awesome - glad to hear it!

#175 6 days ago

Here is Meteor with -17, Arduino Nano on RoyGBev, with WAV Trigger, running DickHamill's Stern Meteor code.

#176 5 days ago
Quoted from keith20mm:

Here is Meteor with -17, Arduino Nano on RoyGBev, with WAV Trigger, running DickHamill's Stern Meteor code.

Cool video - I like the black rubber.

So that audio was coming through the SB300 amp and the built-in speaker?

Trailblazer looks good. My Envoy was making a funny noise today (left front wheel). One of the caliper bolts had fallen out. It made it 7 days between repairs this time (almost a record).

#177 2 days ago

Mad Props to Dick for coming out with such a really cool system!

I've been collaborating with him and some other developers and we've got a lot of good stuff in the works.

My first custom game using the tech will be Bally Paragon.

Here's a demo of my progress (an impromptu livestream I did the other day). I've now got the entire base game ruleset implemented in BSOS and will be working on custom sounds and additional features:

My plan is to develop several other customized game versions, including: Kings of Steel, Silverball Mania, Spectrum, Futurespa, Hot Doggin, Seawitch, Supersonic and some others.

#178 2 days ago
Quoted from PinballHelp:

Mad Props to Dick for coming out with such a really cool system!
I've been collaborating with him and some other developers and we've got a lot of good stuff in the works.
My first custom game using the tech will be Bally Paragon.
Here's a demo of my progress (an impromptu livestream I did the other day). I've now got the entire base game ruleset implemented in BSOS and will be working on custom sounds and additional features:

My plan is to develop several other customized game versions, including: Kings of Steel, Silverball Mania, Spectrum, Futurespa, Hot Doggin, Seawitch, Supersonic and some others.

Very cool. I am working on a version for Elektra but in very early stages.

#179 2 days ago

Also, I've been focusing on creating light routines that are optimized for LEDs. I think Dick has been working mostly with incandescents and he can do some really cool effects with those that aren't as easy/possible to do with LEDs. (What he's done with his version of Mata Hari takes bulb lighting to another level I haven't seen in other Bally games - really nice dimming effects).

Certain techniques for doing light routines need a different approach with LEDs than incandescents. For example, with regular bulbs you can turn them all off, then turn the ones on you want to enable and it's not noticeable. But if you use that technique with LEDs they strobe. So extra care needs to be taken with LEDs to not turn a light off that should normally be on, even if it's for a few milliseconds.

Here's an example of a small routine I created for Paragon that is "LED-friendly" and will work on other games. A simple attract mode function that flips half of the lights on, half off at 500ms intervals:

unsigned long BlinkTimer=0;

void AlternatePlayfieldLights() {
static byte flip=1;
if ((CurrentTime-BlinkTimer)>500) {
BlinkTimer=CurrentTime;
flip=1-flip; // alternate between 0 and 1
for (byte x=0;x<40;x++) {
BSOS_SetLampState(x,(x+flip)%2,0);
}
}
}

On Paragon, there are some backbox lights above address 39 so I stop there and just alternate playfield lights. This code could be different for incandescent by simply turning all lights off, then turning every other light on, but with LEDs this would cause strobing. This may not be the best example of code optimized for LEDs but it works well with either. And should be usable in other games too.

#180 2 days ago
Quoted from PinballHelp:Here's a demo of my progress

Code looks great so far - can't wait for the final version & sounds! What a great game to be updating!

#181 2 days ago
Quoted from Robotworkshop:

am working on a version for Elektra but in very early stages.

That's another great candidate for an update!

#182 2 days ago
Quoted from DickHamill:

That's another great candidate for an update!

Sold my Elektra at 2017 Texas Pinball Festival, dang it! More $$ than I expected but still. Note to self: Do Not Sell Pins.

#183 2 days ago
Quoted from RoyGBev:

Sold my Elektra at 2017 Texas Pinball Festival, dang it! More $$ than I expected but still. Note to self: Do Not Sell Pins.

I've been planning this one for a while! Was originally going to update the 6800 code like I did on the BlackJack but working with the Arduino code is so much easier and opens up new things.

#184 2 days ago
Quoted from Robotworkshop:

Was originally going to update the 6800 code like I did on the BlackJack

Had a Black Jack long ago too. Have done a bit of 6800 code and I intend to try making a BSOS title if I ever have time. That's why I made the adapter PCB, to be sure I'd at least have a few for myself!

I may try to improve the irredeemable (or is it?) Stern Hot Hand. May have to cheat by adding suit-selection to the flipper buttons (there are a few spares in the switch matrix).

#185 2 days ago
Quoted from RoyGBev:

Had a Black Jack long ago too. Have done a bit of 6800 code and I intend to try making a BSOS title if I ever have time. That's why I made the adapter PCB, to be sure I'd at least have a few for myself!
I may try to improve the irredeemable (or is it?) Stern Hot Hand. May have to cheat by adding suit-selection to the flipper buttons (there are a few spares in the switch matrix).

I had added a couple new tunes with the chimes, fixed a tilt bug, and updated the rules so if you landed in the dealer saucer when the dealer was winning you would lose points instead. Really changed that game.

As long as your upgrades are bolt on so they are reversible and basically ignored by the original ROM then go for it. I am going that direction with Elektra.

#186 2 days ago

Wow, I don’t know how this thread got past me for the last year. You guys have done some amazing work.

#188 13 hours ago

I just wish Gottlieb System 80 hadn't been so cruel to you in the past. I would love to be able to do some programming on my System 80 Mars God of War.

#189 13 hours ago
Quoted from uncivil_engineer:

I just wish Gottlieb System 80 hadn't been so cruel to you in the past. I would love to be able to do some programming on my System 80 Mars God of War.

Yeah - I gave up on System 80, but it does have some good things going for it... You have every signal you need on TC1. I was able to take over the bus, read the soldered PROM, find a bad RIOT chip, and determine that my 6502 was flaky. It wouldn't be that much more work to take over the bus and do the same thing to a System 80 that I did with Bally/Stern.

If you want to give it a shot, I can pass along what I've learned. It's a decent architecture, I just needed to get that machine out of my house because it was seriously haunted and I feared that it was driving me insane...

IMG_1527 (resized).jpeg
#190 12 hours ago
Quoted from uncivil_engineer:

I just wish Gottlieb System 80 hadn't been so cruel to you in the past. I would love to be able to do some programming on my System 80 Mars God of War.

Nothing stopping you from programming in 6502 and Tgol. What changes?

#191 11 hours ago
Quoted from slochar:

Nothing stopping you from programming in 6502 and Tgol. What changes?

The kind of machine level programming going on here is a bit above my level. I appreciate the documentation that went into the first few posts on this thread to explain how the interface to the 6821s work. I never knew they were addressed. From what I’ve read about the 6502 architecture and the RIOT chips it appears to be similar.

#192 1 hour ago
Quoted from uncivil_engineer:

The kind of machine level programming going on here is a bit above my level. I appreciate the documentation that went into the first few posts on this thread to explain how the interface to the 6821s work. I never knew they were addressed. From what I’ve read about the 6502 architecture and the RIOT chips it appears to be similar.

If you just want to change the software (I'm talking about the original stuff here) you don't really have to worry about the hardware level just the software layer.

Going a little OT from the original thread here but PM me if you are interested in doing anything with the original.

There are 192 posts in this topic. You are on page 4 of 4.

Hey there! Got a moment?

Great to see you're enjoying Pinside! Did you know Pinside is able to run thanks to donations from our visitors? Please donate to Pinside, support the site and get anext to your username to show for it! Donate to Pinside