Disclaimer

While I take great pride in my work, I am no professional but just a good willing amateur. Therefor I have to warn you that if you decide to use the info on this blog or order some of my "product's", I cannot be held responsible for any kind of damage, burning down your cab/house/city or following addiction to pinball games in any way.

In other words: use is at your own risk !

Sunday, November 16, 2014

VP, DOF and loads off LEDs

Some of you may have noticed that Shifters and myself have picked up the pinballs again this year. With the introduction of the Direct Output Framework (DOF) from SwissLizard some amazing things are possible that made us totaly rethink the whole concept we had on VP-Fx.

The way we are working now is not based on hardware like ledwiz, boards to enhance the power and number off outputs but totaly focused on LEDstrips like the LPD8806 and WS2812. The driving of the strips is done from DOF via Artnet, a network based protocol. We connected an Arduino with a Ehternet shield to the network and Shifters made some very fast code to drive the strips.

With Artnet you can have many differens Universes each having 512 channels. Those channels we use to drive the individual LEDs on the strips, where the first channel is LED #1, the red one, channel #2 is green on LED #1 and channel #3 is blue on LED #1. This way you can have a maximum of 512/3 = 170 leds in one Universe.

The current situation in my cab is as followed:
  • 30 leds on the left side off the playfield (type LPD8806)
  • 30 leds on the right side off the plafield (type LPD8806)
  • 3 rows of 32 leds on the top off the playfield (type WS2812, 60 led/m)
To give you an idea how this looks view this video: (watch in full screen!)



 I have plans to add some more:
  • 34 leds on the bottom off the playfield 60 led/m
  • around 2.1 meter strip around the backbox, 30 led/m
  • undercab leds, probably not addressable but single rgb strip
  • behind the backbox strips, not decided what type
The Arduino we use is a Mega, type 1280 or 2560. You will need a W5100 ethernet shield to get it to work with Artnet. Both can be bought on various placed like Floris or eBay. To get this to work you need software to translate the Artnet code to something the LEDstrips can understand. That will be available later on. The current software is capable of connecting up to four different ledstrip on one Arduino driving a maximum of 170 RGB leds.

You might think, with a max off 170 leds on the Arduino with LEDstrips of 60 leds per meter, that is less then 3 meter I can have. Well, that is true, but making use off the different Universes and direct output on IP base you can have several universes each Arduino having its own. So when you have 10 Arduino's on 10 Universes you can drive 1700 LEDs. When you think you can place all off those let me know how that is gonna look, can't wait to see that !

Ok, this is it for today, in the next posting I will get into the making of a cabinet.xml for DOF so you can drive your leds in a flexible way.


Pixel

Wednesday, October 8, 2014

The end of the LEDwiz utility

Hi all,

After a long break I am working on the pinball machine again. Coming back to the different forum sites I noticed some (a lot) messages that my LEDwiz utility is not working correctly in all situations.

I was thinking on picking up where I left but discovered that some people have taken over the stick and made an amazing product that I very much support an reccomend for using instead of my old, half broken, tool.

This great pleasure I would like to forward everyone to The DOF Configtool hosted on VPUniverse.com  made bij Arngrim with (as I understand it correctly) help from DeeGor.

I have put a notice on the LEW-Wiz page and with some time I will take the utility offline.

Pixel

Friday, March 30, 2012

New Arduino Shield and Driver Board

The new batch of pcb's for VP-Fx have arrived. To give easy access to the Arduino Mega board i have designed a Shield that fits exactly on the Arduino, and has a load of screw connectors on it, and also headers to take a small flatcable from the shield to the additional Driver Board.

Here is a image of the shield, fully soldered:



The vertical row of 6x6 pins is going to be used to transfer the signals from the Arduino to the Driver Board. This new driver board get all needed signals via the flatcable (data lines and power) and uses only 3 outputs on the Arduino and transfers that 3 signals to 32 outputs. All conversion is done by the VP-Fx software and you can assign port numbers the way you like. The board itself uses the same driver chips as the LED-Wiz does and gives you the same output power on 16 ports. The other 16 ports have the driver chips doubled and give you in theory double the power that 1 ledwiz output does.
All driver chips have been placed on feet, so then IF you happen to blow out a output you can easy remove the defective driver chip and replace it by a new one.

Here is a image of the fully polulated Driver Board:


Both boards will be available shortly, only the pcb or fully soldered.

Here is the latest video I made with the VP-Fx software and some custom configuration. Notice the full-color LED's on the sides off the cab. There are 30 LED's on both sides off the cab, that can be driven individualy with VP-Fx. And remember, that 60 RGB LED's is not even close to the limit of the software. On LED-Wiz like config that 60 LED's would use 60*3=180 outputs !!

 

In the mean time, take a look at http://www.pieterfloris.nl/shop/ for some Arduino stuff you going to need.

PixelMagic

Monday, January 16, 2012

595 multiplex board

Here are some details off the multiplex board for Arduino i have made.

This is the correct layout of the connections on the board:

Beware: on the pcb the top left ABCABC if incorrectly printed as CBACBA. The above picture is the correct one !!

Here is the part list:
  • 1x 595 multiplex pcb
  • 4x 74HC595
  • 3x 2pin jumper headers
  • 3x jumpers
  • 16x 3 screw connector
  • optional: 4x 100n capacitor - only needed in case of interference

Usage:

Connect the Ground to the Arduino Ground and place a 5 volt supply with enough power to feed all of your connected devices.

Connect the 3 pins from the Arduino to the desired 595 In1-4. If the 595's are placed in a row, place the jumpers in the needed positions and connect only the A+B wires from the first used port to the second, do not connect the C together, the jumper takes care of that. Make sure that the Arduino software knows that there are more then one 595 connected, otherwise you get strange results.

The 595 can drive up to 20-30mA per output, not more. If you want to drive more power you need some kind of driver or relay.

Here is some sample code for the Arduino to test the working of your pcb:

 // 74HC595 multiplex board test sketch  
 // (C) 2012 PigelMagic  
 // Pins used to connect to the 595 board - change this if needed  
 int CLK_Pin = 8;  // Connactor A - pin 11 on the 75HC595  
 int LATCH_Pin = 9; // Connector B - pin 12 on the 75HC595  
 int DATA_Pin = 10; // Connector C - pin 14 on the 75HC595  
 // How many of the shift registers - change this if needed  
 #define number_of_74hc595s 1  
 // Nothing to change under this line for demo program  
 // definitions  
 #define numOfRegisterPins number_of_74hc595s * 8  
 #define totalLoop number_of_74hc595s * 8   
 boolean registers[numOfRegisterPins];  
 void loop(){  
  for (int i=0; i<totalLoop; i++) {  
   setRegisterPin(i, HIGH);  
   writeRegisters();  
   delay(250);  
   setRegisterPin(i, LOW);    
   writeRegisters();  
  }    
  writeRegisters();   
 }  
 void setup(){  
  pinMode(CLK_Pin, OUTPUT);  
  pinMode(LATCH_Pin, OUTPUT);  
  pinMode(DATA_Pin, OUTPUT);  
  Serial.begin(9600);  
  Serial.print("Totaal aantal output pins");  
  Serial.println(totalLoop);  
  //reset all register pins  
  clearRegisters();  
  writeRegisters();  
 }          
 //set an individual pin HIGH or LOW  
 void setRegisterPin(int index, int value){  
  registers[index] = value;  
 }  
 //Only call AFTER all values are set how you would like (slow otherwise)  
 void writeRegisters(){  
  digitalWrite(LATCH_Pin, LOW);  
  for(int i = numOfRegisterPins - 1; i >= 0; i--){  
   digitalWrite(CLK_Pin, LOW);  
   int val = registers[i];  
   digitalWrite(DATA_Pin, val);  
   digitalWrite(CLK_Pin, HIGH);  
  }  
  digitalWrite(LATCH_Pin, HIGH);  
 }  
 //set all register pins to LOW  
 void clearRegisters(){  
  for(int i = numOfRegisterPins - 1; i >= 0; i--){  
    registers[i] = LOW;  
  }  
 }   

Wednesday, December 21, 2011

74HC595 PCB have arrived

The order of the 595 multiplex PCB's have arrived, here are some pictures:




Sunday, December 11, 2011

Arduino driver board

I have designed a PCB to use with the Arduino board so that you can drive more powerfull toys with the Arduino board.

Each PCB has 12 inputs and 12 high power outputs that can be used separate from each other. You can feed the PCB with 12 and 5 volts and via a jumper decide for every single output if you like to use 5 or 12 volt DC. The maximum output per port is user defined by changing the diode. The default is max 16 amp with the MBR 1645 or you can downscale it with a other diode if you like. If you change the 560 Ohm resistor to 1K2 you can also use the PCB for 24 volts.

Beware: It is not recomended to switch this high amps for a long time with the PCB

The driver board will only switch on positive voltage, not negative like the LEDwiz. If you like you can invert the signal with an optocoupler (1N35 or so) and still use it with LEDwiz. If there would be enough demand I could also design an PCB for that.

If you like you can order the PCB from me. I also give the option to order the parts needed and final option is that i solder the board for you. Offcource this takes some time !
Important remark is that I do not do this to make money but just as a service to the community. But you also might understand that I don't want to lose money on it (ordering parts and let them collect dust) nor want to spend my valuable time for totaly free.
Having said that please understand that I do not offer next day delivery as I have to probably order the parts also and in some cases a new batch of pcb's. Contact me first on what the current status is of supply's.

Prices:
  • Single DriverBoard PCB: € 15,00
  • Single DriverBoard PCB with all parts: € 50,00
  • Single DriverBoard PCB completely assembled: € 75,00
All prices excluding postage and packaging. Please contact me for current pricing on P&P.

All packages will be send on your own risk. You get an email from me when it is posted. I will not be held responcible if things are damaged or lost. Payment is possible via PayPal or bank transfer (Europe only).

If you like more info or order something please use the Blogger email function on the bottom left of this message (the M).

This is the basic schematic for the PCB:

Driverboard Schematic

Link to bigger version

This is the layout of the PCB and parts:

Driverboard PCB layout

Attention: the flat side of the LED is the Kathode !

Link to bigger version

This is the partlist:

12x         IRLZ34
12x         MBR1645/MBR1065/SF14G (for 16/10/1 amp)
12x         470 ohm
12x         560 ohm
12x         15k ohm
12x         LED 3mm
12x         3 pins header
12x         jumper 12/5v select
12x         screw connector 2x
5x           screw connector 2x

To come in the near future: Multiplex board

Tuesday, December 6, 2011

Multiplexing

Another few steps made:

First i have made a layout on how i want my toys connected and driven from the Arduino. It looks like this at the moment:



As you can see i am planning on 4 groups of 595's that are driven separate. one reason for that is ease of use and driving, the other speed.

I have made a test setup today with 3 groups of 595's, 1 group of 4, 1 group of 2 and a single one.

The writing of data to the 3 groups gets done in about 1600 microseconds (yes, micro) and i think the driving of all 4 groups will be around the 2 miliseconds in the end. I think that will be more then enought to handle all things. There is going to be some more cycles of the Arduino needed to handle the input and selecting the needed ports but i think we will be safe with that.

After that i designed and orderer some pcb's for the 595 multiplexers. There are going to be 4 595 on the pcb that can be driven separate or in line and even can be connected to a next 595 board. 1 board can drive up to 32 outputs to the driver boards.

This is the board:


While i wait on the pcb's to arrive i will try to code the Arduino for further testing and setup 1 table to use all the events i am planning to build.

One thing i would really like, is on startup to fire a pattern of solenoids like when a real table gets started And offcourse there need to be some animation with my backbox and the flashers.

So little time, so much fun...

Saturday, December 3, 2011

Contactors and psu

Got some mail today:








Some progress made, i have 1 of the pcb tuned for 24 volt driving for my new contactors.

To give some idea of the options we could have in the futre connected a few contactors and wired them randomly to the Arduino board and hitting with different timings.

The results:




This one almosts sounds like starting up a real cab !!


Wednesday, November 30, 2011

Working with MM

Ok guys, have made some effects in the arduino:


The clicking is me punching in the characters via RS232 for the effects.

Basicly i have made 8 effects, 2 for lighting 1 led for 50ms, 2 for running up the side (left and right), 2 running down left and right, 1 on the top running sideways and 1 on the bottom changing between leds.

And after that did some adding in MM, sending the numbers to arduino on specific events, high loop, enter the moat, hitting troll targets and so on.


So i think i can say i made some progress today

Tuesday, November 29, 2011

Parts are here

Had the mail deliverred today:



And the board works !!



And to show that PWM also works:






Monday, November 28, 2011

Other angle of approach

I have read the remark of Noah on VPforums about editing core.vbs and he thinking that is not the way to go. I tend to agree a bit on him and keeping things closer to the table. The table is also 'running' a .vbs script for gameplay. Things also happen there.....

Why do the same kind of things in 2 different places ?

I looked a bit into the B2S magic happening at the moment and got a small insight on how it COULD work.

A am going a bit into details here, so you might want to skip this if you are not interested.

Starting point: a Arduino board connected to the VP PC via usb. On that Arduino port you have special personal dedicated hardware, like i have 28 Mudokons with lighting eyes, but this could also be some gadget like contactors, shakers or whatever. You pick your own config.
Next, from now on, don't think in the LEDwiz way like "i want the middle red flasher to light up for xx microseconds" but think in events like "I want a lightshow with the middle red flasher lighting up and then the 3 middle and then the outer 2" and we give that a name, like "FlashRed1" or something. If you like you can throw in a buzz from the shaker too. That specific lightshow is one of many you can have and personally create. From now on we will call this an event.

Now back to VP. First off we need to open communications with the Arduino board. That is simple, just open a serial port from the table. That's it. Next thing we want is to have VP during gameplay send signals to the Arduino on specific events. This is basicly the thing that the vbs script inside the tables does, it waits for things to change and on specific things it does something.

That something is what we like to know, so we can do our own magic with it. Basicly like with the LEDwiz we are going to say: when switch x is hit, send signal y to the LEDwiz.
Only in this case we want it to watch for switch x and then send a signal to the Arduino. Here comes the point where > I < think is going to be a large speedsaver, the things allready happen, only thing we need to do is just add our own 'listener' to it.
So when a flasher goes off, the vbs sends a signal to the emulated table to show another picture, and we will add that it also sends a event ti the Arduino. The nice thing about Arduino is that we do not need to send a large number of signals to the usb (like LEDwiz) but if we like we could just send 1 byte that refers to the event that is configured in the Arduino.
From that point on the Arduino takes over the hard work, blinking 700 LED's in a order from left to right and so on, and you pinball game just runs further after sending 1 byte of info.

Still with me ? Good.

Some questions:

Is this going to be more work ? Definitly !
Is it going to be faster ? I like to think so at the moment. Love to here comments.
Is it going to need more configuration ? Yes !
Will i be able to have a more realistic cab ? Absolutely
When is it going to be ready ? Not very soon

Oh yeah, and to keep you guys thinking, i have just played around a bit on my desktop with a table and got the basic thing running. While playing BadCats when the ball shoots i get an effect, when drop targets fall also. So it can be done

Very crappy video:

Friday, November 25, 2011

The first driver PCB's

We have made some steps with the Arduino stuff and as some know a have designed (with a lot of help) a schematic to drive up to 16Amp on a Arduino output. From that design i made a PCB design and ordered the PCB's. They came yesterday in and here is the result:

Next thing on the list is soldering some components for testing the whole thing and after that ordering the parts for 1-2 complete PCB's.

With this PCB it is possible to drive 12 devices from the Arduino, both digital and analog (PWM) and drive 5 and 12 volt devices by setting a jumper.


Only 1 small flaw: the printing od the LED is not correct, the flat side must go on the other side. Beside that it is working, now need to order some more parts.



Sunday, November 6, 2011

Arduino PWM with IRLZ34 MOSFET

All right, made some progress in putting together a prototype of the driver for connecting toys to the Arduino. Made some videos.

Test with PWM and gear motor connected (off, 50% and 100%)


Slow starting:

 Just fooling around:

I have talked with Mr Silver a few times and we are both at the point where we think that it can be done in a way that it adds a lot of extra possibilities and we have got both the idea that it could be stutter free.

We have done some time calculations and all things seem to be better in speed. That we have more possibilities is just a fact, the video shows that.

We are a long way from having a standard solution and it is going to need extra hardware (not expensive at the point) and i am designing 2 different driver boards, one for max 500ma per output and another for max 16 amps (!!!). The arduino itself can only drive 20ma. Think about $2-3 per output in parts max.

Saturday, November 5, 2011

Been busy with trying to make the Arduino drive all my toys for my Virtual Pinball machine.

And here is the first ROM event driven video:

 

Tuesday, November 1, 2011

Backbox illuminating

Today i made some big steps on the lighting of the eyes of the Mudokons on the bevel of my backbox LCD. I allready drilled the holes and today connected the wires to the arduino in a test.

The result is here:

Thursday, October 27, 2011

Real Nudging

I got a  MS Freestyle Pro joystick for nudging.

You know me a little bit, and i do not want to go the digital way, so after some reading i came to this post from Noah:

http://www.vpforums.org/index.php?s=&showtopic=15572&view=findpost&p=147178

In my opinion this seemed like the way to go, directly on the place where you nudge (with your hands) and high in de cabinet so it can be as sensetive as needed. So i did.

Then the next thing would be calibrating, because the apron in my cab is a bit on a agle. So i took this posting from the same thread:

http://www.vpforums.org/index.php?s=&showtopic=15572&view=findpost&p=145442





Then loaded MM and nudged a bit while in the shoot lane. And it worked !! Played a bit and noticed that if the ball was coming from the castle bridge down it was leaning to the left side. Did the calibration thing again after a default reset (mind the order !, forward as last) and played again. It works like charm !!

I would suggest giving it a try this way, i am very happy at the moment. Off course have to wait how it's on the long run. Oh yes, and dont forget to set the PBW Accelerator in the table  ;)

BTW, mind the wire that comes from the Sidewinder, wrap it around something steady because if you let it hang from the PCB it will pull the PCB a bit away and gives you false readings.

Friday, March 11, 2011

More stickers on the cab

I added both sides and the front on the cab.
Don't think it shows good enough on the pictures, but i am dissapointed :(

Besides that  the front and others are too small, tha dark colors just look really bad.

The door is black, most of the backdrop is dark/black too. Does not show it.

This was the paper printed with an laser. Much better i think.
  


 The sides have lots of color on the design:
  

It does not really show on the end result

After all the work i put into it, the end result is not very rewarding. :(

Thursday, March 10, 2011

Stickers arrived

Yesterday the stickers arrived again, and sadly they are not perfect again.

The size was not correct again, this thime it was cut to small on one side, so some parts are not wide enought (by about 10 mm). Also are the real black parts still not black, but more like a very dark green.

Called the company today and i think we can agree on the sollution. 

Here are some first pictures of the result:

The side of the backbox, looks perfect


The speaker area off the backbox, here you can see a bit of the dark area that not black.

The apron, the large piece of this is black. Clearly you can see here it's not.

Update: bad angle, bad light, still nice :)
Notice the hinges !

Tuesday, March 8, 2011

New blog / Second Arduino and Artwork shipped

Hi all,

Decided to leave my project website and transfer it to bloggspot. That's what you're looking at right now !

Added all info i posted at hyper(s)pin forum here and all the links and more.

Still want to see my old project website ? Check it out over here

-

Ordered an second Arduino Mega 1280 for a very low price via Ebay on the 28th of february, got it today !
Got it from onlyforever702 from HongKong, very nice.

Also got an email that my stickers are shipped, with some luck they will come tomorrow.

Saturday, March 5, 2011

New arduino LED animations made

I made some new patterns for my backbox LED's


Now only wait for the stickers to come and then drill a lot of holes in the board :)

Thursday, March 3, 2011

PixelMagic's LED-Wiz Default Configuration Utility

First release off PixelMagic's LED-Wiz Default Configuration Utility (PDC).

It is a web-based program where anyone can create and edit LED-Wiz tables settings. You can configure your own personal LED-Wiz connections with the hardware that you own and skip the ones you don't need.
So when there is a new piece of hardware of a change of connections you don't need to edit the .ini file, you just drag and drop your new config, generate a ini file and place it in your cabinet. That's all !

I took Ext2k's config of 50+ tables and converted them to the default config (without flashers, PDC uses the new color system).
After that a few form members (Chriz99, gStav, reko19, Njay) kindly added flasher config to a number of tables.

There is a complete instruction on the first tab of the software, written by gStav.

He also made a very nice how-to make a table configuration, including a complete step-by-step on setting the right values for a specific table.

You can download it here: download link

We kindly encourage you to enter more config's, the more the better ! And it's not so difficult with the manual.

I would like to thank Chris and Gustav for the perfect help and suggestions on making this utility.

Ok, here is the url to use PDC: http://pinball.pixelmagic.nl/ledwiz/

Any additions or suggestions are welcome, please post them in this thread.

Wednesday, March 2, 2011

Artwork printing next part

Finaly some good news about my stickers ! It seems that in the converting from my .psd file the printer has made a mistake. So they used the wrong file format in the printing. Result: everything looked good to them (with the wrong file size as reference) but when compared to my original file it was way off.

The will make me a third one, with confirmed sizes. Hop it's in by the beginning of next week. Keeping my fingers crossed on the result !

Monday, February 28, 2011

Arduino and second artwork print

Bad: Got my stickers for the second time, again not the correct size

Good: Got 2Mb system memory from my best friend in the mail !

Good: Got my arduino in the mail !

A very first simple program with 6 leds:


Sunday, February 27, 2011

RGB Flasher

Finaly got my resistors for the RGB leds, installed them yesterday, and WOW this is a cool effect !!

Used the 5 flasher system with the new color coding


Tuesday, February 22, 2011

Artwork printing goes wrong

Darn !

Today got my stickers in, and a major dissapointment, the somehow blew up my image in size.

Result: pieces of the sides not printed (like centimers short !)

Second, the black is not really black, but more a dark grey

I'm so bummed right now