Redesigned roller blind to accommodate a stepper motor and power it using POE (hopefully).
Uses a belt drive to keep things simple, and the motor does not need to be powered constantly to hold the blinds in their place due to the locking mechanism that the stock blinds have.
Moved to a new place, the window in my room is now very large and making a motor for that will be a challenge, I still like the idea of making POE actuators and devices so stay tuned for more POE projects
Still working on the POE board. I think I'll need a board to do the conversion of POE to 12v 30W and a separate board where the esp32, stepper driver, and other electronics will be attached. I am following a reference design from TI but I am still looking at other designs which are smaller and have a low BOM cost to hopefully only have one board. This reference design is very expensive (estimated about £40 per board) so I will most likely stick to using the schematic of this LILYGO board as it's definitely cheaper, and simpler although that schematic is for a 5v output so I'll need to figure out how to get 12v if it's possible, I am way out of my comfort zone and well past my knowledge barrier that's why it's taking so long. If I'm not confident with the design I may make an evaluation-style board just for testing and it will allow me to make some changes to the connections and will have footprints for different components, I'll also be able to see if any components need more cooling although I will be following advice for the layout in the datasheets.
After this POE design is done I will move onto creating an enclosure for the PCB which is attached to the rest of the mechanism. After that, I'll do some finishing up of the esphome and home assistant stuff.
I have been using the mechanism and electronics since the last update and from using it I have discovered that the esp32 doesn't boot reliably, sometimes it takes ages for the device to show up as available in HomeAssistant and sometimes it appears within a few seconds, and then sometimes it will go offline while the blinds are going up or down and I have to quickly scramble to disconnect the battery. The wizards in the Esphome discord should be able to help me out with that.
The new mechanism works just fine. I may play around with the pulley size in order to increase the speed. I have got a big chunk of the program working but its definitely not polished, I need to add some error checking and things to ensure that the blind always knows the current position, I used the endstop cover example from esphome but I may try out the other ones such as the time based one but for now, I will try to implement some manual control buttons for easy control of the blinds without having to open the app or if my pc is turned off.
Here you can see the current setup I'm using to test the blinds. On the breadboard is an ESP32 dev board, a reed switch module with sensitivity control, and the TMC2208 driver. The stepper is connected via long wires
I have also done a successful test of the POE board and I have got it to appear in the ESPHome UI, In order to move my software to this poe board ill just need to change some pins since they are being used by the onboard ethernet and remove the wifi stuff. It was surprisingly easy.
I have also started the schematic for the PCB, when that is completed then I'll be able to design the rest of the enclosure around the PCB since I'm not sure how big it will be. Since the stepper needs 12V I'll have to make a custom board because the POE board I bought doesn't have any other voltages present, only 3.3V for the esp32, and plus it has extra stuff on the board which just takes up space such as the SD card slot and USB C.
I have designed a new version, I'll print it out and test it tomorrow when some bearings arrive. I am also using a new motor and it does seem like it has enough torque.
I have taken a different approach this time. A simpler part with increased stiffness around the motor mount and support for the shaft that will be facing constant downward force due to the tension of the belt.
Tensioning the belt on the previous version was done by moving the motor itself but now I have introduced a bearing although as I have not tested it, I may need to print an idler as the bearing could be too big.
Another change is the way that the assembly will be mounted to the wall. It still uses the same mounting holes but since the motor pulley and the standoff pillars are in the way I would not be able to screw the assembly into the window frame. With V2 the top part (the male part of the dovetail) can be installed first and then the rest of the assembly can be slid on and hung from the dovetail. After this version is tested and I am happy with the performance I will carry on developing the software and then finally design a PCB to handle the POE stuff.
I've done some tests, the mechanism is struggling to roll the blinds up. I will have to introduce a gearbox to the system or use a bigger stepper. The stepper being used right now is a strange one, 0 information about it, I believe it's a NEMA 15. Going to a more common NEMA 17 should give me more torque, I had these motors lying around so I thought I should use them but ill just keep them around for another project I have in mind.
In the video, you see the whole assembly, driven by a TMC2208. I spent a couple of days troubleshooting with some A4988 drivers which turned out to be fake. The motor is extremely silent, definitely worth the extra money. The mechanism is a mix of custom 3D printed parts and parts from the original mechanism.
I think the combination of a stepper motor and a gearbox will be quite slow for my liking. I am thinking of introducing a regular DC motor for the increased RPM and then a gearbox for increased torque but that's probably going to be for the next version.
For the software side of things, I have got the HomeAssistant and esphome stuff working via a slider on the dashboard, just for testing but I want the end product to have some "limit switch" type functionality so the blinds will "home" themselves when I put the blinds all the way up in the morning, this is so that any difference between the actual position of the blinds, and where the software thinks the blind's position is will be brought back to zero, not quite sure how this will be done but I think a reed switch will do fine.
I have just got my POE board and will be doing some tests later on. This is the LILYGO ESP32 POE. The image on the listing was the WROVER module but I received the WROOM module but that's okay since this is the module I intend to use on my custom PCB. This is my first board so I also bought the programming board along with it since the programming header on the board does not use standard 2.54mm header pin spacing.
I want to get some kind of program working first so I can see if the motor will be able to roll the blinds up.
This is an image of the stock "hangar" alongside the new one which will hold the electronics box (not modelled yet) and the rest of the mechanism. I will upload a picture later on of the mechanism itself when I assemble it again (I have to keep disassembling and reassembling because I need the blinds back on the window at night). I am waiting on components to test out the POE and ESP32 capabilities. I am yet to test this mechanism, after testing it I will move onto writing the code (first time getting something to work with homeassistant)
I have printed some test pieces, I identified weaknesses in the frame and made another version with ribs and a thicker top section (left one) where the screws will be installed to fix it to the wall. It has improved however there is still a bit of weakness so ill have to improve it further. Also had an issue with the stepper mounting screw holes being too thin and snapped off when I tried to remove the support material.