Jump to content

RGB Led Strips Control


Recommended Posts

Posted · RGB Led Strips Control

So I got the motivation to implement this from this thread here.

I'm new to arduino/electronics in general so it took me some time to get this working and there are probably some bad practices in the code but it works!

 

I tried to follow what I thought was proper procedure while implementing this into Marlin. You'll need to edit Configuration.h and Marlin_main.cpp, as well as add in two new files. I'll post everything at the bottom, except for the changes to Configuration.h as everyone's is probably a little different. Add this some where to the bottom, I put it right under the servo stuff:

 


#define LEDCONTROL
#ifdef LEDCONTROL
// Declare pin numbers for the RGB channels
#define REDPIN 8
#define GREENPIN 9
#define BLUEPIN 10
#endif

To physically connect this, you'll need to break out EXP3 (I just used female headers for now, and I broke out all of the analog pins while I was in there). I used pins 8, 9, and 10 connected to red, green, and blue channels respectively. If you use different pins, edit the above code accordingly.

I used an Ikea Dioder led strip which came with a controller. This is an over priced solution so I wouldn't recommend it, but lucky for me I already had it and it comes with a built in controller which has all the components already there to control this easily. I hacked apart the controller like

. Here is a picture of my set up:

Ikea Dioder controller connected to EXP 3 on UM1

 

This whole thing is controlled with G-Code, so I've just been adding it in to the start/end code in Cura.

Running "M420 R255 E255 B255" will make the lights turn white (can't use "G" for green as that is already a special G-Code character)

"M420 S0" will make the lights fade through all the colors like the above video. There is some error checking so you can't run a pattern like that when the hot-end is set above 0.

 

I'm working on a way so you can use a custom pattern for the end of the print, but I'm new to coding and this isn't coming along quickly so I figured I'd post what's working now. Also working on a Cura plugin so that I can keep the lights off for the most part, and just have them light up for a bit on layer changes.

 

Here are the files you'll need when building firmware:

marlin_main.cpp

changes to the above if you don't want to sift through it

LEDcontrol.h

LEDcontrol.cpp

 

Hopefully someone will get some use out of this, but if not, it was fun to finally get my feet wet with the Arduino. Feel free to critique away.

 

  • Link to post
    Share on other sites

    • 2 years later...
    Posted · RGB Led Strips Control

    This is great. I have a question that I have asked elsewhere, but since you have obviously gone quite in-depth with this project you may be able to help me. Do you know what the allowable current draw on the standard LED circuit on the UM2 is?

    Cheers,

    Greg

  • Link to post
    Share on other sites

    Posted · RGB Led Strips Control

    Do you know what the allowable current draw on the standard LED circuit on the UM2 is?

     

    The current goes through a BC817 transistor so the absolute max is 500mA, but avoid to go beyond 400mA...

  • Link to post
    Share on other sites

    Posted · RGB Led Strips Control

    For the Fan output, definitely as they take more current at startup. For the LEDs there should be no probs to go a bit higher.

    But yes, better be safe than sorry ;)

    • Like 1
    Link to post
    Share on other sites

    Posted · RGB Led Strips Control

    Thanks, that is useful . I guess that sounds about right then. If I cut 3 sections of 200mm from the LED strip I bought then that should draw 360mA.

    Cheers,

    Greg

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.7 stable released
        Cura 5.7 is here and it brings a handy new workflow improvement when using Thingiverse and Cura together, as well as additional capabilities for Method series printers, and a powerful way of sharing print settings using new printer-agnostic project files! Read on to find out about all of these improvements and more. 
         
          • Like
        • 18 replies
      • S-Line Firmware 8.3.0 was released Nov. 20th on the "Latest" firmware branch.
        (Sorry, was out of office when this released)

        This update is for...
        All UltiMaker S series  
        New features
         
        Temperature status. During print preparation, the temperatures of the print cores and build plate will be shown on the display. This gives a better indication of the progress and remaining wait time. Save log files in paused state. It is now possible to save the printer's log files to USB if the currently active print job is paused. Previously, the Dump logs to USB option was only enabled if the printer was in idle state. Confirm print removal via Digital Factory. If the printer is connected to the Digital Factory, it is now possible to confirm the removal of a previous print job via the Digital Factory interface. This is useful in situations where the build plate is clear, but the operator forgot to select Confirm removal on the printer’s display. Visit this page for more information about this feature.
          • Like
        • 0 replies
    ×
    ×
    • Create New...