(Topic ID: 225276)

Homebrew LEDs?

By SpaceAce

5 years ago


Topic Heartbeat

Topic Stats

  • 16 posts
  • 6 Pinsiders participating
  • Latest reply 5 years ago by lyonsden
  • Topic is favorited by 4 Pinsiders

You

Linked Games

No games have been linked to this topic.

    Topic Gallery

    View topic image gallery

    1DE36528-E847-4D69-91DD-35ED6BC949CB (resized).jpeg
    #1 5 years ago

    Is anyone making their own LED inserts? Yes, I know that there are a bajillion store bought possibilities, but if I can roll my own, I would kind of like to try to.
    I was just wondering if anyone was doing it, and what sort of things they encountered while doing so. I am thinking about using some old bulbs as the base and soldering in a resistor and LED (possibly a cap if it's too flickery)(technical term there). It's going to require tweezer fingers, and probably a few beers, but hey, I am willing to give it a try if it saves me $100.

    I am looking at Playfield LEDs first, and then I will be looking into A/C driven LEDs for the GI. I know Christmas Tree lights are A/C and while I could be wrong here (so don't go poking any LEDs into a light socket) I don't see any sort of AC-DC conversion. So, somehow they are getting the LEDs to run.

    #2 5 years ago

    There was a guy making them an i believe he started a topic here

    #4 5 years ago

    It will take you a very long time to make a very mediocre bulb.
    LED bulbs are cheap, nice, and last a lifetime.

    #5 5 years ago

    Most GI of games is like $30-50 if that. I bet you spend about 20 hours making the bulbs minimum and won't be as quality as a nice single SMD. Just my prediction on it

    #6 5 years ago

    Thank you. I had searched, for DIY, make your own, roll your own, homebrew... but "LED's for 5 Cents"... Nope, not so much. Thanks!!!

    Quoted from dudah:

    It will take you a very long time to make a very mediocre bulb.
    LED bulbs are cheap, nice, and last a lifetime.

    I get it. I have seen some very nice tables with LEDS. But I have lots of LEDs from other hobbies. So... It can't hurt to make a few to see what I can do. I like a challenge. Will I make 150 of them? I don't know. I have to see what I can do.

    #7 5 years ago

    LED strips might be worth considering if you're willing to run power to them yourself from a cheap DC supply. Or for just a little extra work, addressable LED strips let you control each LED individually so you can roll your own light show. Here's an example:
    https://pinside.com/pinball/forum/topic/williams-magic-city-rotating-backglass-lamp-feature#post-4582640

    /Mark

    #8 5 years ago

    If you want to control the color of the lights, you can use addressable LED strings. I’ve made some fun set ups with them and a Pinduino.


    1DE36528-E847-4D69-91DD-35ED6BC949CB (resized).jpeg1DE36528-E847-4D69-91DD-35ED6BC949CB (resized).jpeg

    #9 5 years ago

    @lyonsden Holy smokes! THAT IS... BEAUTIFUL!!! YES!!!
    So... tell me more about this. I just watched the video. I get that you did the GI, but did you do the two ramps as well? I have seen a few Trons, but they never did THAT! So...

    I am familiar with coding for Arduino, and for my son's pinewood derby I wrote a color engine for some ambient LED strips which would react with what was happening in the races. So... I understand (in a small way) what you are doing here. But I have never used the addressable LEDS. This might be the thing that pushes me into using them (I generally learn out of necessity).

    Oh man, too many questions.

    1. How are you sensing the game?
    2. How bright are these?
    3. Do you see any reason why the cable could not be cut and a longer cable soldered in to place them where you want vs. where you are forced with a prepackaged set?
    4. I looked at the code you wrote on Github. There's not much there. Is there enough in the pinduino library that this is all that was necessary to make the machine do what I saw in your video?
    5. You changed the GI based upon the state of the game. I have had so many ideas since watching this. I have a Black Knight, and I have just thought of several things which I could do with a full ambient color change in the GI. I guess what I want to know is how you told the ardiuno what the current situation was. I see the calls for the various color combinations.

    Crap... so this post is going to be a mess. I am sorry for that. I just followed through and saw that there was a different sketch for the GI. So, you have one sketch for the ramps, and one for the GI. This is making more sense. I wasn't seeing how you were doing both the ramps and GI, and this makes it so much more clear.

    Not wanting to open and close the machine a bajillion times, how are you programming the pindiuinos? How much wiring crazyness is going on in that machine? Do you have a blog, or post on this forum which shows off how you did it, so you are not rewriting things which have already been explained?

    DARN YOU! I didn't want to go all ape shit, I just wanted to light my machine with LEDS, now I am doing what I always do... make it 12 levels more than it needs to be. HEH HEH HEHHHHHH!

    #10 5 years ago

    @lyonsden Eric, So, I have been googling and looking at Youtube... did you make the Pinduino? Like... Is this your baby?

    #11 5 years ago
    Quoted from SpaceAce:

    @lyonsden Eric, So, I have been googling and looking at Youtube... did you make the Pinduino? Like... Is this your baby?

    Yes -- the Pinduino is my baby.

    For your questions, the pinduino is a board that plugs into the power driver board and monitors flashers, coils, magnets, etc. It is driven by a Nano. The core pinduino library (https://github.com/elyons/pinduino) is where most of the magic happens (that is where all of the controls are for monitoring states on the power driver board, all the effects for the LEDs, etc.) I've tried to make things very easy for writing code for a game. For example, the sketch for Tron will have something like:

    if (pd.pinState()->J7(3) ) { // Video Game
    pd.adrLED1()->color("cyan", 255);
    pd.adrLED2()->color("blue", 255);
    delay(200);
    pd.fadeOutAllAdr(100);
    trigger = 1;
    }

    Which means that when J7-3 on the power driver board is triggered (which is the flasher for the video game), then turn the GI "cyan" and the LEDs on the apron "blue". (Actually, due to the LED string in the GI using a different controller than the LED strips on the apron, the red and green channels are reversed, and cyan turns the GI purple.)

    The LEDs I use for the GI is pre-wired with 50 LEDs, so I just use those as they are, having some LEDs under the playfield when I need to make a longer run between holes in the playfield for the GI. I have a lot of documentation written up for the pinduino, but for setting up a GI system, here is the link: https://docs.google.com/document/d/1q4ocskLaG9377kGTRL-7TVRDCNNiFv-U_TAz9zaoilE/edit

    And here is a link to the folder containing all of the instructions and game builds: https://drive.google.com/drive/folders/0B2njOnd06CCOdlBCVzdiWFZhUVE

    I hope that answers some of your questions, but feel free to post more, or shoot me a PM and we can chat by phone.

    #12 5 years ago

    Also, glad you like what can be done with the Pinduino!

    #13 5 years ago

    I read a lot last night. I found a thread here on Pinside and some other scattered things. I thought I had read that is was based upon Mega, but I am seeing Nano here, and seeing use whatever in some of the documentation you provided. But I would think that the Arduino would be the best bet as much of the legwork has been done within the library. Great job! There's a lot of work in there.

    By day, I am a video editor and animator, but within our theater, I also program the lighting system. Granted, the pinduino is not going to run moving fixtures, it does excite me that I could add some extra zing to my Black Knight. I do want to be cautious as I could see one ruining the look game by adding 'too much', or the wrong thing at the wrong time. But used sparingly, I could see it being very atmospheric.

    Initial thoughts / ideas... (to refer back to when I get going... Note taking so to speak).
    1. I think I want to keep the GI in warm white and non blinky until if goes into game mode. Don't want to give up the goody until it's time.
    2. If it's sitting in a single color (R, G, or B), it will always be a maximum of 1/3 the brightness of the 3 combined. Teal, purple, yellow, would be 2/3s maximum.
    3. For white, I was thinking about lowering the levels so it would be less than full. I could hover in a warm white color and keep brightness dialed back, then if the pop bumper gets hit, it could react with a full on RGB and brightness at 255 for flash. This would allow for extra 'pop' above normal. Gives you extra umph when in those SHTF moments.
    4. Instead of putting LED strips on the apron, perhaps put them under the metal guides next to the flippers to keep them out of sight. This might require drilling a new hole.
    5. In reading about the programming, and colors, add an option for 'black' r = 0, g = 0, and b = 0. "clear" seems to do this, but I can see places where black might be helpful. (Addressed in AddressableStrip.cpp)

    Questions...
    1. What kind of time lag is there? I am watching these videos, but it's hard to make the connection as there's a feeling when a slingshot kicks out. So, does the flash, or whatever actually feel as though it's associated with the game, or does it feel slightly mushy?
    2. It looks like the GIs are single color sets? So... these are not addressable, this is just an RGB led string, correct? But on Tron, you are addressing the ramps.
    3. How bright are these RGB LEDs as compared to standard incandescent GI?
    4. I see the ability to call via RGBB values, or by color. Where are the colors defined?
    EDIT: Found it
    https://github.com/elyons/pinduino/blob/master/src/RGBStrip.cpp
    https://github.com/elyons/pinduino/blob/master/src/AddressableStrip.cpp

    5. Is strobing accomplished by changing colors rapidly? (alternating colors with short timers)
    pd.adrLED1()->fadeColor2Color("red", "black", 5);
    pd.adrLED1()->fadeColor2Color("black", "red", 5);
    pd.adrLED1()->fadeColor2Color("red", "black", 5);
    pd.adrLED1()->fadeColor2Color("black", "red", 5);
    pd.adrLED1()->fadeColor2Color("red", "black", 5);
    pd.adrLED1()->fadeColor2Color("black", "red", 5);
    Or... Is there a function for strobing?

    #14 5 years ago

    Very neat stuff!

    Yes, the first version on the pinduino was based on the mega. While it had a lot of features, it was complicated to build, so I developed the version based on the nano. Much easier to build and assemble, and much less expensive. For you questions:

    Get a warm white is not difficult with the addressable LEDs (more green/red, less blue) will do the trick.

    To keep the LEDs out of site on the apron, you can always put them in the ball trough. Downside is that there are fewer LEDs so the less coverage. Or, you can make rails similar to stadium lighting. In the two videos below, Metallica as them in the trough and Dialed In as them in rails like stadium lighting.

    ->clear() is the function used to clear the LEDs and turn them off. Good idea to add a function called "black" to do the same thing.

    There is usually no noticeable lag, unless the program is set up to:
    1. monitor the flasher/coil activity for some time in order to check for a combination of events. Sometimes I'll monitor for 1/4 to 1/2 a second to capture those events. Also, if an effect is running, the pinduino will often need to complete it before starting the next one. A lot of the effects have routines built in them to continue to monitor the game's activity, but until that effect finishes, it won't break out of the effect (single thread nature of arduinos)

    2. The GIs are addressable. Here is a link: https://www.amazon.com/Agile-shop-Ws2811-Pixels-Digital-Addressable/dp/B017HAWXF0 . You can find them on EBay as well and usually run $10-$15.

    3. They are on par with incandescent lights, but dimmer than 5050 LEDs.

    4. Awesome -- most functions have two options where you can set a color, or set an RGB value. Depending on what I want to do, I may use the "named" color for convenience or RGB values if I want a specific color (e.g., make orange darker).

    5. You can strobe with fades as you have written, or go for on/off with a delay. And then wrap those in a for loop to minimize typing/cutting and pasting

    for (int i=0; i <= 4; i++){
    pd.adrLED1()->fadeIn("red",5);
    delay(50);
    pd.adrLED1()->fadeOut(5);
    delay(50);
    }

    --or--
    for (int i=0; i <= 4; i++){
    pd.adrLED1()->color("red");
    delay(50);
    pd.adrLED1()->clear();
    delay(50);
    }

    I'm going to be traveling this week out of the country, so may not be online as much, but hope this helps.


    #15 5 years ago

    Thanks for your response. Have a safe trip!
    I am pulling my boards today to start work on them. I have an order going into Mouser tomorrow. I have to rebuild the power supply and work on the lamp matrix. This is something I have been putting off for a while, so it's time. It will be a couple of weeks until I can pick up the Pinduino. But I will be looking very closely where things are located so I can get a game plan for the upgrade. These things can easily go off the tracks without an order of execution (well at least that's how it is for me).

    I get that things would need to play out before the next thing began. But this also means that things could stack up quite a lot at times. No?
    I noticed that you were using delay vs timer loops using millis + x as an end of timer sort of thing. If you did this with (if new thing == true){break()}, couldn't you leave a sequence mid em... sequence?
    It would seem that 40 ms would be enough time to do a full scan, no?

    #16 5 years ago
    Quoted from SpaceAce:

    Thanks for your response. Have a safe trip!
    I am pulling my boards today to start work on them. I have an order going into Mouser tomorrow. I have to rebuild the power supply and work on the lamp matrix. This is something I have been putting off for a while, so it's time. It will be a couple of weeks until I can pick up the Pinduino. But I will be looking very closely where things are located so I can get a game plan for the upgrade. These things can easily go off the tracks without an order of execution (well at least that's how it is for me).
    I get that things would need to play out before the next thing began. But this also means that things could stack up quite a lot at times. No?
    I noticed that you were using delay vs timer loops using millis + x as an end of timer sort of thing. If you did this with (if new thing == true){break()}, couldn't you leave a sequence mid em... sequence?
    It would seem that 40 ms would be enough time to do a full scan, no?

    Good luck with the board rebuild (and getting everything ordered the first time -- always takes me two tries).

    Great idea on using a break! Just hadn't occurred to me.

    Ping me when you are thinking of picking up a pinduino. Depending on what you are wanting to do, I may have some extra parts I can toss in that you could use.

    Reply

    Wanna join the discussion? Please sign in to reply to this topic.

    Hey there! Welcome to Pinside!

    Donate to Pinside

    Great to see you're enjoying Pinside! Did you know Pinside is able to run without any 3rd-party banners or ads, thanks to the support from our visitors? Please consider a donation to Pinside and get anext to your username to show for it! Or better yet, subscribe to Pinside+!


    This page was printed from https://pinside.com/pinball/forum/topic/homebrew-leds and we tried optimising it for printing. Some page elements may have been deliberately hidden.

    Scan the QR code on the left to jump to the URL this document was printed from.