Printrbot LED Strip - Wiring to Your Rev F Printrboard

See the steps below for connecting your Printrbot LED strip to a Rev F Printrboard.  A couple of quick notes:

  • Most Recent Firmware Required - Before beginning this installation, follow this guide to update the firmware on your Printrboard.  Without updating firmware, your LED strip will not work.
  • Header Pins Required - Some Printrboards have been manufactured without these pins.  These header pins are available at printrbot.com.
  • Your Wire Colors Will Almost Certainly Vary - Various colors of extension wires are shipped out with this product.  Disregard the wire colors throughout this guide and pay special attention to the wire position, i.e; ground, signal, power, 5v, etc.

...okay, now let's get started.

 

1. Identify Ground, 5V & Signal.  

If you are looking at the back of your LED strip, the pins are ordered (top to bottom): Signal / 5v / Ground.  After identifying these pins, attach your 3-pin extension wire to the LED Strip and then connect your extension breakout.  In this example, signal will be black, 5v (power) will be gray, and ground will be white.

 

2. Pin Out Your Wiring

See the images below to connect your single wires to the proper pins on your Printrboard.

*Download larger versions of these images at the bottom of this article.

 

 

 3. Power ON Your LEDs!

Connect your Printrbot via USB and send the command "M355 S1 C0" from your control software.  Your LEDs will illuminate white.  Nice work!  See a few more commands below.  

  • S1 - Power ON
  • S0 - Power OFF
  • C0 - White
  • C1 - Red
  • C2 - Green
  • C3 - Blue 
  • C4 - White
  • C5 - Yellow
  • C6 - Magenta
  • C7 - Cyan
  • B0-B255 - Brightness ranging from zero to 255

Example: M355 S1 C2 B127

Result: Lights will power ON, with the color green at half brightness.

 

See more examples of how to use your Printrbot LEDs in this video.

 

 

 

Have more questions? Submit a request

20 Comments

  • 0
    Avatar
    Jbdiablo

    The 2nd picture in step 2 of the board pins is labelled incorrectly.  If you follow the wire colors instead of the labels it is correct, White being signal (next to 5v), black being ground (3rd pin by itself).  This was an F4 BTW

    Edited by Jbdiablo
  • 0
    Avatar
    Dave - PB Support Team

    Thanks Jbdiablo, I have revised the images and language.  This should be correct now.

  • 0
    Avatar
    Dustin Rogers

    Is it possible to utilize the M355 command to just control on an existing single color LED strip (i.e. one that doesn't have a signal wire). Typically, I'd just hook to 5V+ and ground, but it doesn't look like the 5V pin changes with a M355 command. This is on my F5 board flashed with the play-0.6.hex. 

  • 1
    Avatar
    Mick

    Dustin, it is not possible to control standard led without signal wire. Firmware expects rgbw leds.

    If you are interested in hacking this to work with your printer, grab a copy of firmware from github and look into this file https://github.com/Printrbot/Marlin/blob/prod-platformio-2017/src/botlight.cpp

     

  • 0
    Avatar
    Eric - PB Support Team

    Dustin,

    One other option if you have an F6 board is to use a +12v led strip and use a Y adapter on the hotend fan connector.  The light will turn on automatically anytime the hotend is above 50c.

  • 0
    Avatar
    James Fordham

    I have one of these LED strips to add to my Metal Plus, however I currently run a E3D V6, could you please provide the firmware files so I can edit it where needed and still have the M355 command available, please?

    Thanks J. 

  • 0
    Avatar
    Mick
  • 0
    Avatar
    Sean27030

    Is it possible to put a switch in line on either the 5V or ground to manually turn this off in mid print so the light isn't on constantly? If so which would be better to interrupt?

  • 0
    Avatar
    Dustin Rogers

    Sean27030, if you're using the LED strip from Printrbot, then you can use gcode (M355 S0) to turn the light off. If you're just wiring LED's to a 5v power source, then I'd put the switch on the 5v side. That way you know if you're switch is off, the voltage stops at the switch.

     

  • 0
    Avatar
    Sean27030

    You can send that M355 command WHILE running a program?

  • 0
    Avatar
    Thomas Pell

    Will loading the latest firm ware change the function of the EXP pins? I don't want to lose the ability to use my LCD controller on that EXP if I update to plus 0.5.hex

  • 0
    Avatar
    Dave - PB Support Team

    Thomas Pell, yes unfortunately for LCD controller users, the PINs necessary to communicate with the LCD panel are changed to work the LED strip instead.

    thanks,
    Dave -pb

  • 1
    Avatar
    Thomas Pell

    Thanks Dave, I thought that might be the case.

    Part of the Dual Extruder kit install instructions asks that you make sure you are running the latest firmware. So for me with a  Model 1412 with the F5 Printrboard & Extrudrboard/Dual Extruders what would be the latest firmware that won't include the LED  code?  I have plus.hex plus, plus-0.5.hex, and RevF_v5.hex from the various pages, no dates for any of them.  Or should I just leave well enough alone and stick with the firmware originally installed by PB?

  • 0
    Avatar
    Dustin Rogers

    Sean, I print over USB via Octoprint on a Raspberry Pi, so I can use the terminal to send commands during a print. If you're printing via SD card, then no, I guess you wouldn't be able to.

  • 0
    Avatar
    Hunter15r

    Every time i try to select the hex file it says invalid Hex file syntax. Can some one help

     

  • 0
    Avatar
    AleX Candela

    I upgraded to G2 on my Simple Metal (1403) I have the 4/21/2017 Firmware update

    When I use the M355, it tells me that m-code is not supported.

    Any suggestions?

  • 0
    Avatar
    Triponeal

    Can this LED strip be used with the Rev D board or does anyone know of any instructions?

  • 0
    Avatar
    Curtismckee

    With the smalls firmware the M355 commands do not work. If you apply play or simple firmware it does. Does the smalls firmware need the M355 command enabled still?

  • 0
    Avatar
    Tmortn

     

    Should an F6 board ordered recently need to be flashed? got mine wired up and it isn't working... but I am getting an OK response when sending the M355 command. Have tried turning brightness all the way up etc.... Know the LED strip works as it was working fine with the G2 board I just replaced with the F6. And as far as I can tell it is wired up right. Multi meter shows 5v to ground as 5v and signal to ground as 3 and change measured at the connector on the LED board if that helps. 

    <Update>

    Found last night that the first LED closest to the connector is actually illuminated. When a 355 command is sent it goes out for a second and comes back on. Details of the command to not seem to impact it and S0 does not turn it off. 

    Edited by Tmortn
  • 0
    Avatar
    James Fordham

    Hey all, Looking for some help here,

    I've tried to make my own firmware for my Metal Plus (Modified so need to make my own) but I just keep getting errors with the arduino IDE, PB linked to "Firmware" above but that's use a load of files and no instructions on how to use them.

    For example the botlight.cpp file calls for #include "Adafruit_NeoPixel.h" but where is this? I found what I think is it from a quick google but when trying to use these files I get this.

     

    In file included from Adafruit_NeoPixel.cpp:34:
    Adafruit_NeoPixel.h:110: error: 'uint16_t' does not name a type
    Adafruit_NeoPixel.h:120: error: expected `)' before 'n'
    Adafruit_NeoPixel.h:127: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:128: error: 'uint16_t' has not been declared
    Adafruit_NeoPixel.h:128: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:128: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:128: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:129: error: 'uint16_t' has not been declared
    Adafruit_NeoPixel.h:129: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:129: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:129: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:129: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:130: error: 'uint16_t' has not been declared
    Adafruit_NeoPixel.h:130: error: 'uint32_t' has not been declared
    Adafruit_NeoPixel.h:131: error: 'uint8_t' has not been declared
    Adafruit_NeoPixel.h:133: error: 'uint16_t' has not been declared
    Adafruit_NeoPixel.h:134: error: 'neoPixelType' has not been declared
    Adafruit_NeoPixel.h:135: error: ISO C++ forbids declaration of 'uint8_t' with no type
    Adafruit_NeoPixel.h:136: error: expected ';' before '*' token
    Adafruit_NeoPixel.h:138: error: 'int8_t' does not name a type
    Adafruit_NeoPixel.h:140: error: 'uint16_t' does not name a type
    Adafruit_NeoPixel.h:142: error: 'uint32_t' does not name a type
    Adafruit_NeoPixel.h:145: error: 'uint32_t' does not name a type
    Adafruit_NeoPixel.h:152: error: 'boolean' does not name a type
    Adafruit_NeoPixel.h:157: error: 'uint16_t' does not name a type
    Adafruit_NeoPixel.h:160: error: 'int8_t' does not name a type
    Adafruit_NeoPixel.h:162: error: 'uint8_t' does not name a type
    Adafruit_NeoPixel.h:169: error: 'uint32_t' does not name a type
    Adafruit_NeoPixel.h:172: error: ISO C++ forbids declaration of 'uint8_t' with no type
    Adafruit_NeoPixel.h:173: error: expected ';' before '*' token
    Adafruit_NeoPixel.h:174: error: 'uint8_t' does not name a type
    /Adafruit_NeoPixel.h: In member function 'bool Adafruit_NeoPixel::canShow()':
    Adafruit_NeoPixel.h:148: error: 'micros' was not declared in this scope
    Adafruit_NeoPixel.h:148: error: 'endTime' was not declared in this scope
    Adafruit_NeoPixel.cpp: At global scope:
    Adafruit_NeoPixel.cpp:36: error: expected `)' before 'n'
    Adafruit_NeoPixel.cpp: In constructor 'Adafruit_NeoPixel::Adafruit_NeoPixel()':
    Adafruit_NeoPixel.cpp:51: error: class 'Adafruit_NeoPixel' does not have any field named 'is800KHz'
    Adafruit_NeoPixel.cpp:53: error: class 'Adafruit_NeoPixel' does not have any field named 'begun'
    Adafruit_NeoPixel.cpp:53: error: class 'Adafruit_NeoPixel' does not have any field named 'numLEDs'
    Adafruit_NeoPixel.cpp:53: error: class 'Adafruit_NeoPixel' does not have any field named 'numBytes'
    Adafruit_NeoPixel.cpp:53: error: class 'Adafruit_NeoPixel' does not have any field named 'pin'
    Adafruit_NeoPixel.cpp:53: error: class 'Adafruit_NeoPixel' does not have any field named 'brightness'
    Adafruit_NeoPixel.cpp:53: error: class 'Adafruit_NeoPixel' does not have any field named 'pixels'
    Adafruit_NeoPixel.cpp:53: error: 'NULL' was not declared in this scope
    Adafruit_NeoPixel.cpp:54: error: class 'Adafruit_NeoPixel' does not have any field named 'rOffset'
    Adafruit_NeoPixel.cpp:54: error: class 'Adafruit_NeoPixel' does not have any field named 'gOffset'
    Adafruit_NeoPixel.cpp:54: error: class 'Adafruit_NeoPixel' does not have any field named 'bOffset'
    Adafruit_NeoPixel.cpp:54: error: class 'Adafruit_NeoPixel' does not have any field named 'wOffset'
    Adafruit_NeoPixel.cpp:54: error: class 'Adafruit_NeoPixel' does not have any field named 'endTime'
    Adafruit_NeoPixel.cpp: In destructor 'Adafruit_NeoPixel::~Adafruit_NeoPixel()':
    Adafruit_NeoPixel.cpp:59: error: 'pixels' was not declared in this scope
    Adafruit_NeoPixel.cpp:59: error: 'free' was not declared in this scope
    Adafruit_NeoPixel.cpp:60: error: 'pin' was not declared in this scope
    Adafruit_NeoPixel.cpp:60: error: 'INPUT' was not declared in this scope
    Adafruit_NeoPixel.cpp:60: error: 'pinMode' was not declared in this scope
    Adafruit_NeoPixel.cpp: In member function 'void Adafruit_NeoPixel::begin()':
    Adafruit_NeoPixel.cpp:64: error: 'pin' was not declared in this scope
    Adafruit_NeoPixel.cpp:65: error: 'OUTPUT' was not declared in this scope
    Adafruit_NeoPixel.cpp:65: error: 'pinMode' was not declared in this scope
    Adafruit_NeoPixel.cpp:66: error: 'LOW' was not declared in this scope
    Adafruit_NeoPixel.cpp:66: error: 'digitalWrite' was not declared in this scope
    Adafruit_NeoPixel.cpp:68: error: 'begun' was not declared in this scope
    Adafruit_NeoPixel.cpp: At global scope:
    Adafruit_NeoPixel.cpp:71: error: variable or field 'updateLength' declared void
    Adafruit_NeoPixel.cpp:71: error: 'uint16_t' was not declared in this scope

    I really wish Printrbot would just give the firmware as a collection of the correct files and allow us to make the changes needed for each bot we might have, this would allow for mods too. Any chance PB?

     

    Thanks,

    James.

Please sign in to leave a comment.
Powered by Zendesk