Light on/Off
Hello to everyone. Can somebody point me in the right direction. I have 4 Prusa printers (2xMK3s, 1xMK2.5s and 1xMK2.5sMMU2s), each running it's own instance of Repetier server on Raspberry Pi3 B+ with touch screen. Everything is working flawlessly but I can't get light to work. What i am trying to achieve is that i can remotely turn light on and off via raspberry. The available GPIO pin that i am trying to use are GPIO 21 (pin 40) and GPIO 39 (pin 39 as ground) using mos module and white LED strip. The problem is that i don't know how to tell the repetier server witch pins to activate when i send M355 command. I am new in all of this. The information that have found on this forum are:
1. That it can't be done and that i need to do it via Einsy board directly (don't like that solution)
2. That it can be done via externalcommands.xml and some scripts (don't know how to do it, founded externalcommands.xml but don't know what to write in it and don't know how to write scripts for that commands and how to tell the server on what pin is light connected.
I hope it makes sense what i am trying to ask.
Thank you in advance.
Comments
And i'm guessing once I DO put the extcommands.xml file in the right place, I still have to add something for my particular printer on the repetier server page to call for it?
Login using ssh (W10 has it as well out of the box) and use
sudo nano /var/lib/Reepetier-Server/database/extcommands.xml
to edit it. Afterwards server needs to be restarted to read the new file which is hopefully still xml compliant.
So, after instaling Repetier server on Raspberry Pi, updating everything and installing display drivers reboot Pi. Once the Pi has booted up, login via Putty or whatever you use to connect via SSH. You need to create two scripts. One for lights on and one for lights off.
Create script folder:
sudo mkdir scripts
Open scripts folder:
cd scripts
Create new script file
sudo nano lights_on.sh
Write in that file:
#!/bin/bash
gpio -g mode 21 out
gpio -g write 21 1
Hold ctrl + x, y to save file
Create second script:
sudo nano lights_off.sh
Write in that file:
#!/bin/bash
gpio -g mode 21 out
gpio -g write 21 0
Hold ctrl + x, y to save file
Now you need to add command in the extcommands.xml
Open Repetier database with:
cd /var/lib/Repetier-Server/database/
Open extcommands.xml :
sudo nano extcommands.xml
After the last command already writen in file add this:
<command>
<name>Lights ON</name>
<execute>bash /home/pi/scripts/lights_on.sh </execute>
</command>
<command>
<name>Lights OFF</name>
<execute>bash /home/pi/scripts/lights_off.sh </execute>
</command>
Hold ctrl + x, when prompted to save hit y and enter.
Now, about wiring. Pin 39 from Raspberry is going to ground header (-) on MOS module and pin 40/GPIO21 is going on header (+) on MOS module. External 12V is going to terminal connector in and wires from LED strip are going to terminal connector out.Plus on plus and ground on ground.
If you have the right MOS module that should be it.
From web interface now you can turn lights on/off.
If you have situation like me when the MOS module has big voltage drop from 12V power to 8V and the LED strip is working with the half of intensity, my solution is adding a relay to all that. If your LED strip is not working or is working with low intenisty, check the output + and - with the multimeter to see if you have 12V on output. If not, then you need to add a relay.
Please note, from electronic point of view this solution is far from optimal, but I had these two modules handy, just laying around and I decided to use them for a quick fix rather than solder another board with just the components needed. It works, it was done in 5 minutes and I moved on.
The mos module i am using is:
https://www.aliexpress.com/item/4000727363333.html?spm=a2g0o.productlist.0.0.4df8326ajw6mg5&algo_pvid=01499d17-b276-40c4-a4a2-b12995c630b9&algo_expid=01499d17-b276-40c4-a4a2-b12995c630b9-7&btsid=0ab6f83115868495703684016e29e1&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
And the 12V relay module added is:
https://www.aliexpress.com/item/4000356150750.html?spm=a2g0o.productlist.0.0.c7d73e7eqhX7nz&algo_pvid=37587626-3fcc-44c8-b142-1483b5a212b3&algo_expid=37587626-3fcc-44c8-b142-1483b5a212b3-0&btsid=0ab6f82315868492426854222e1cab&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_
The wiring is simple.
First, make a small modification on a relay module, with a piece of wire, connect DC+ and COM terminal connector.
12V from external power supply is going to DC+ and DC- IN on relay module. Also from DC+ on relay module wire goes to +IN on MOS module terminal connector and from DC- on relay module to -IN on MOS module terminal connector. The signal wire is going from MOS module +OUT to relay module IN. The LED strip is going on relay module NO for +12V power and DC- for ground.
Thank you so much for taking the time to type this up. I accidentally put the <command> lines outside of the <config> the first time, but once I corrected that I was able to get power to the LED strip. I have the same problem as you. Mine is a 24v LED strip though I originally had hard wired with a switch to the 24v PSU lines at the Einsy board. Now, going through the mos module it drops down to about 18V on the output, which barely lights the LEDs. I ordered a 3.3v relay module to use instead.
Thank you again for the help!
You are welcome. Happy to help
(Only 4 in Use right now)
Do you see any chance i can add 8 buttons to your webinterface? Is it opensource?