I’ve done some testing with the new slave code, all looks good so i have merged the code. One thing that i did find during testing was the position reference does make a slight difference, most noticeable when the battery voltage is low and the slave cable is long, as such i have implemented the same fix as the master from post #100 above. A small jumper between pin 3 of the ESP32-C3 and the top of the potentiometer. if this jumper isn’t installed the code will use a default and still work reasonably well.
as i get more devices up and running I’m really starting to notice a difference in the motors, some are super quiet while others are quite noisy. As I’ve bought them from several suppliers over the last couple of years in not sure which ones are the quiet ones and which ones are noisy. The PID control has made such a big improvement while moving that you can barely hear them during the normal part of the move, its just the disengage that’s still a bit loud, its hard to find the sweet spot where it reliably disengages but isn’t running too fast
Next on the todo list is to make the settings adjustable via MQTT/LoRa.
Pushed some more updates today, found some slave devices were going offline after a while and the only way to get them back was a reset of the master to get it to scan properly. also for some reason the status updates were not every minute as they should have been… i think i have too many devices trying to talk at the same time and they are hitting the carrier activity detect limit, so i have increased that to 20.
the changes are on the gateway and will make it poll the slave before marking it offline. unfortunately its intermittent and takes several days for it to go offline so i haven’t fully tested the fix. this requires the gateway and the master devices to be updated for the fix to work as intended, however if the master isn’t updated it wont cause an issue, it will just mark offline as it used to. and updating a master without updating the gateway wont cause an issue either
let me know if there are any other bugs or issues you have found…
@PungoSEG Sorry for the delay in replying, not getting all notifications for some reason!.
@Vasa211 ordered his parts from JLCPCB, post 106 above, i think they turned out pretty good. Dennis, are they holding up OK? I have a dozen that i printed myself that are working pretty well but my wife has managed to break a couple of them by slamming them when they don’t disengage properly. mostly the ones in the bedroom, I had the PWM turned down really low to make them quiet but then they stall and the gear stays engaged and she doesn’t have the patients to open the HA app and move it. on the plus side i know where i need to beef them up a bit more now haha
Life is pretty busy at the moment so haven’t had much time to work on this… but still planning on doing a injection mold version at some point. will take a bit of trial and error i think… i haven’t done any injection mold stuff before and don’t have a machine myself
The software is still a WIP too… its functional and is holding up really well… just not as polished as it needs to be. the logging to the flash isn’t ideal and because of the limited space there is only a couple of hours logs when 12 devices are operational… but hopefully it just works for you and you wont need to even look at the logs
I use the halot mage, it’s not bad… just make sure you are running the latest firmware. I would pick one up 2nd hand because people buy them and then realise they are a bit more work than a filament printer.
In the 3d print folder on my GitHub there is a guide to printing/cleaning…
Sounds good! Almost bit into the creality k1 max, friend pointed me towards one for the nozzle heat and bed size stating it was also quite friendly to contend with when the unavoidable issues occur.
I’m biting the K1, my friend will act is my core support team, if and when I have issues, and that is likely worth the added cost of the investment.
What types of filaments are you guys printing (PLA variants, ABS, PC)? I saw you had a couple breaks in previous posts. Is that due to materials selected or other exterior control variables?
For this project, I have had surprisingly good luck with PLA. I attempted PETG, but found that there was too much flex and the gear cage would come out of place.
I’ll note that I did have to adjust some tolerances in onshape to adapt for FDM printing. Mostly the holes in the gears and the actuator bearings. Those changes and switching to a 0.2mm nozzle helped it fit together perfectly.
Got just about everything in a cart in various places. One caveat: ESP32 boards. I see you have the C3 version listed on the BOM yet I see the S3 version in your videos.
Please let me know if you switched to C3 (perhaps in lieu of less soldering?) or if we should grab the S3?
The master devices use the heltec wsl V3 which contains an s3 processor, and the slaves use a c3 super-mini.
There are a few versions of the c3 super-mini now, I’m pretty sure they are pin compatible, the main changes being around the wifi antenna design… I’ve tested a few and they all worked ok…
I use the same heltec wsl V3 that’s used on the master, there isn’t any code to use a display or anything… maybe in the future it could be added… but I find the web portal works well for configuration and once it’s setup it’s in the cupboard out of sight anyway
Got the gateway setup! Just waiting for my pcb boards and components galore to fly through customs
On the gateway I have a couple questions:
I’m guessing we have to set something up for MQTT communication between esp32 boards but I’ve never done this before and have no idea what to set here. Also with aes/hmac sec keys, do I need to enter these on the master boards anywhere along with the MQTT username/pass?
when you setup MQTT in home assistant it will typically have the port 1883 so unless you have specifically changed it then leave it as 1883. i setup a HA user for the blinds, set it up with local only and not admin and enter the details to the gateway. its only the gateway that connects to MQTT, all the master devices talk thru LORA in a custom protocol… the slaves talk to the master with rs485 in pretty much the same protocol but without the security/encryption.
once the gateway connects to the MQTT server it will “advertise” itself and just magically show up under the MQTT integration and be available. each time a blind connects to the gateway the gateway will advertise it too…
the NTP time offset is for your timezone, im +8 so i enter 28800 (8 x 60 x 60) it only makes a difference to the timestamps in the logs… and i havent done anything to account for daylight savings or anything,
I’m good with GMT for logs because no one wants to mess with daylight savings lol
(am I -7? -8 now? ¯_(ツ)_/¯)
Will get into MQTT setup. Have home bridge but will need to spin up another container in my synology docker setup to run home assistant. Thank you for your guidance!