Introduction: Enlight My Zonestar 3D Printer

My 3D printer lies in my basement with a very basic IKEA light for the entire room... not to say I have to overuse the torch on my mobile! Barely user friendly. Months ago, I tried to enlighten my printer. The vast majority of tutorials are for well known brands such as the original Prusa (the Mk3 could be my next buy!!).

Dealing with my "out of the off the beaten track" Prusa clone (ZoneStar) has been way more challenging! Not to say I'm ordering the electronic components via AliExpress which tends to lengthen the delays :).

As a side note (if you have some clues, I'd be super thankful!), though the switch on is working perfectly (via Repetier, the control panel or the G-Code "M355 S1"), the switch off no longer light the red LED on the relay board BUT the LEDs are still on!!! Is-it because I'm using 220V relays with 12V LED strip?

Step 1: What You Need

Components

  • A 3D Printer...
    • Because the purpose is to put some light on!
    • Also because there are 2 pieces to print (the last one in the "dark"!)
    • I have a ZoneStar P802NR2. Note, if you have 2 extruders along with end of filament sensors, you might no longer have any available pin on your board!!
  • a 12 V LED strip
  • a solid state relay (I tried with a 6V LED strip and a regulator but I almost burned my fingers!!)
  • your current firmware (source code). ZoneStar provides it when requesting via a simple email

Skills

  • Not that much electronic as it's really straightforward.
  • Must know how to compile the Repetier firmware
  • Update the code (2 minor changes noted in the last step)
  • Upload it

Step 2: Testing the Relay

Basic test to double check the relay is working and the wiring is correct!

Pretty straightforward:

  1. Power up the relays circuits
  2. Wire the commands to PIN 12 and 13 (example I used)
  3. Bellow is the super basic code:
<p>#define RELAY_1_PIN 12<br>#define RELAY_2_PIN 13</p><p>void setup() {
    // put your setup code here, to run once:
    pinMode(RELAY_1_PIN, OUTPUT);
    pinMode(RELAY_2_PIN, OUTPUT);
    delay(10);
}</p><p>void loop() {
    // put your main code here, to run repeatedly:
    digitalWrite(RELAY_1_PIN, HIGH);
    digitalWrite(RELAY_2_PIN, LOW);
    delay(5000);
    digitalWrite(RELAY_1_PIN, LOW);
    digitalWrite(RELAY_2_PIN, HIGH);
    delay(5000);
}</p>

First attempt was a failure with a Solid State relay. I used a regular relay such as this one. And it works like a charm, refer the last photo!!

Step 3: Print the Corners to Support the LED Strip

The frame of my ZoneStar is pretty squared (as 99% of printers I guess :)). I designed a Get there the STL!

Photos:

  • The "Out of the printer" models. Need some sand polishing to get a nice result.
  • 2 Previous models:
    • The first attempt was only 7 mm, the size of the frame, though my LED strip is 10 mm!
    • The second one wass 10 mm high but... the 3 mm gaps to insert into the frame instead of the expected 7 mm
    • Test & Learn, isn't-it? :D
  • The corner glued with some help to keep them on place

Step 4: Firmware Update

!! Do it at your own risks !!

Goal: reuse the ORIG_X_MAX_PIN for the Case Lights.

Updated files:

  • P802NR2_ZRIB_Repetier_Zonestar/Repetier/Configuration.h
#define CASE_LIGHTS_PIN 					2 //-1, instead of ORIG_X_MAX_PIN
  • P802NR2_ZRIB_Repetier_Zonestar/Repetier/pins.h
#define ORIG_X_MAX_PIN          -1 //2, to go to CASE_LIGHTS_PIN
// ../..
#define SENSITIVE_PINS {0, 1, ORIG_X_STEP_PIN, ORIG_X_DIR_PIN, ORIG_X_ENABLE_PIN, ORIG_X_MIN_PIN, /*ORIG_X_MAX_PIN,*/ \
         ORIG_Y_STEP_PIN, ORIG_Y_DIR_PIN, ORIG_Y_ENABLE_PIN, ORIG_Y_MIN_PIN, ORIG_Y_MAX_PIN, ORIG_Z_STEP_PIN,\
         ORIG_Z_DIR_PIN, ORIG_Z_ENABLE_PIN, ORIG_Z_MIN_PIN, ORIG_Z_MAX_PIN, LED_PIN, ORIG_PS_ON_PIN, \
         HEATER_0_PIN, HEATER_1_PIN, /*ORIG_FAN_PIN,*/ E0_PINS E1_PINS E2_PINS TEMP_0_PIN, TEMP_1_PIN,SDSS }