Forum Replies Created
Thanks for your interest!
I have just received 2nd batch of Smartsolenoids boards that solve all hw problems found in first batch. Software has been already tested for almost 1 year and, of course, there is updates to add new functions every couple of months.
If you want, you can reach me on [email protected] and describe exactely what you need and ask any additional question!
Just to give you an idea :
- This reply was modified 5 months, 3 weeks ago by pbecchi.
Offcourse Smartsolenoids can be controlled by any Opensprinkler controller, they have been developped to be a addon and an extension to Opensprinkler for wireless control of valves and sensors.
Hardware consist on a Esp32 Lora board that work as trasmitter and a number of Smartsolenoid LoRa receiver , using Stm32L0xx processor ,to open or close latching valves and to aquire local sensors.
I can provide you the receiver boards inside a waterproof enclosure
, the enclosure can be mounted near to the valve or in top of it.
Regarding Software you have 2 options:
using Firmware 1.0 fully tested and operational since last year , you will have a central Esp32 Oled Lora board that run an OpenSprinkler 2.7 code that i have modified to run on Esp32 and to control remote Smartsolenoids. This Sw it is fully compatible to standard Opensprinkler and can be set as an extension to other OpenSprinkler controller like the one you already have.
You have to locate the central unit where you have WiFi coverage and need to be connected to power with an Usb adapter.
Otherwise using Firmware 2.0 you can use same hardware and get more functions, like sensors reading , intelligent programmable controls, cloud storage , push notifications….
The software 2.0 it is still under development but a beta release will be available shortly.
You can use same HW for both firmware.
Preliminary price tags are :
50€ Smartsolenoid receiver boards
65€ Smartsolenoid receiver + enclosure and antenna
40€ Esp32 Lora Oled transmitter/Opensprinkler controller with enclosure
Shipping cost within Europe shoud be around 25€, if you wish i can be more precise about it!
Finally a Smart Solenoid working prototype is born!!
Both HW and SW of this project are fully open source and you can find it on
We developed 2 version of Smart Solenoid :
-one based on BLE transceivers (Nrf52832)
-one based on LoRa transceivers (Semtech1278).
SmartSolenoid valve’s can be controlled as a remote wireless stations on OpenSprinkler (Esp32 OpenSprinkler)!
- This reply was modified 1 year, 5 months ago by pbecchi.
Sorry but I am not the guy that can help you on your h bridge electronic design.
All my circuit are very simple and basic.
Regarding voltage for latching solenoid operations, in my experience 12v constant are more than enough to operate most of the valve’s, but this is true because I use a battery.
If you use a capacitor the voltage will drop immediately when you open your circuit….
So you need to start well above 12v.
If you want you can find in the market signal relay that can be connected to a Esp gpio for about 1$ each, I think is the simplest and cheaper solution!
I really think that , to make sense, the latching solenoids should be operated on batteries.
Otherwise the additional cost , complexity and the lower reliability versus 24v Ac it is not justifiable.
In my case using Lipo batteries the charging current is not a problem and there is also the simple and cheap solution to use a 9v or 12v batteries for the solenoid and a separate one for the Esp.
I am working now (since 10 month) on Esp32 version with a lot of 3.0 features.
It may be a good solution if you take an Esp32 with builtin graphic Oled lcd since they have a lot of Gpios available.
To drive a latching solenoid I use 2 DPDT signal relay rated 2 AMPS avoiding this way any voltage drop. You must take care of all possible voltage reduction sources and in paticular of the length of wires connecting to the solenoids.
Regarding Esp flash size, i recommend at least 4 GBytes.
April 14, 2018 at 12:54 am in reply to: Running: Esp8266 Open Sprinkler on OS Bee 2.0 hardware? #49562
- This reply was modified 1 year, 6 months ago by pbecchi.
I am afraid that my code work only for latching valves!
To add non latching option it require now a non trivial change of the code .
I am busy now on SmartSolenoid, a battery wireless controller, and I have very little time available…..sorry!
Thanks for your inquiry !
I am working on two HW solutions:
One is based on nRF52 Ble 5.0 with a minimal power consumption: a 200 mAh battery should last for more than one year.This solutions mainly intended for smartphone connections.
Another with a LoRa transeiver and a ATMmega328p to connect SmartSolenoid to a remote (up to 1000mt) Esp32 OpenSprinkler controller. Power consumption will be higher : a 2000mAh battery will be necessary for 4 6 month operations. In this case, a solar rechargeable battery will be probably the best solution .
The 2 different hw boards will fit in the same enclosure and will drive same solenoid coil.
Very soon I will make HW schematics and SW available on GitHub.,..
Can you tell me something about the range
Thanks, this is a very good question!
There is a widespread believe that Bluetooth range is very short and only useful for nearby communications. This was true for old Bluetooth standards but today this important limitation has been completely removed.
With BLE 4.0 the average range has been extended to 30ft (10 m) and this is what I have used for my first prototype.
I am started testing now BLE 5.0 modules. These brand new module extend the range more than 10x ! This means that now we should have almost 1000ft open air range and a very good range also for underground installations!
Thanks for your comments.
I don’t think SmartSolenoid can be considered in any way competitor of your OpenSprinkler products.!
First of all it is Bluetooth and you don’t have any Bluetooth product, second it is not a controller but is a solenoid embedded BLE micro to drive wirelessly a single valve.
So in reality is more an integration to create a new family of controllers that will operate remote valve’s without the need of any wire!
As a matter of fact your firmware ported to Esp32 is already a powerfull controller of valve’s without the need of any additional hardware so changing MCU you could easily transform your OS3.0 controller to become BLE enabled controllers!
You know I have ported OpenSprinkler to Esp32 : Esp32 OpenSprinklerand I can tell you that has been an easy task!
- This reply was modified 2 years ago by pbecchi.
The prototype board is under test right now!
Everything work as expected and some features like range exceed best expectations!
We have also designed a nice waterproof enclosure and we will be ready to start a IndieGoGo campain very soon planning delivery of first items on may 2018.
We plan to build several type of adapters so that can fit most of existing brands and to deliver also SmartSolenoid with his own valve body!
Price of the Solenoid adapter will be 50€ and Solenoid + valve 60€! We are evaluating selections of US distributors and we expect similar prices (55 and 65$) in North America. We want to keep the price as low as possible ,considering that an average latching solenoid valve cost is 30€ !
Anybody interested should partecipate to the
IndieGoGo coming soon :https://www.indiegogo.com/projects/smart-solenoid/coming_soon
or SmartSolenoid book :https://pbecchi48.wixsite.com/smartsolenoid/perks
surveys selecting the type of SmartSolenoid and the quantity.
This way you can obtain a discount for your crowdfunding perks orders , please select type of perks ( specify the valve brand and type) and number of units.
The OpenSprinkler code running on Esp32 that will connect wireless to SmartSolenoid valves will be OpenSource as well as the Smartphone application.
- This reply was modified 2 years ago by pbecchi.
Have a look to first message on page 7!
The statement the give the error in OpenSprinkler.h is under #ifdef and should not be executed if you define LCD_SSD1306!
For unused pins pin_sr_oe lcd_rst you should use a dummy pin n. (a,free pin ).
You can find indication on where to find libraries in Readme or in previous posts.
Regarding LiquidCristal and FatLib libraries:
all your define are correct?
Then you should not use those!
May be you better restart from scratch!
This is a pins.h section for your HW schematic :
#elif PROTO==13 //ADD NEW N. for your prototype
#define SDA_PIN gpio
#define SCL_PIN gpio
#define PIN_SR_LATCH gpio // shift register latch pin
#define PIN_SR_DATA gpio // shift register data pin
#define PIN_SR_CLOCK gpio // shift register clock pin
#define PIN_SR_OE GPio // shift register output enable pin
#define PIN_BUTTON_1 gpio
#define PIN_BUTTON_2 gpio
#define PIN_BUTTON_3 gpio
#define STA_HIGH LOW // low station output on for Relay
#define STA_LOW HIGH // high station output off for Relay
// OLED 128*64 DISPLAY
#define LCD_RST gpio // LCD rst pin
#define LCD_ADDR 0x3c. // LCD address
You have to insert appropriate GPio n. and add this section to pins.h …don’t change any other define!
Sorry but we should restart from the beginning……. You have far to many errors and a lot of people compiled successfully with no or little problems!
Have a look to previous post and see what other has done to compile!
First GitHub contain to many directories and file that are useless ,so extract and compile OpenSprinkler 2.1.6 directory with only the subdirectories that contain the libraries you may need.
Second define the configuration of your HW , the Esp pins you want to use and pins.h defines ( use comments and other prototype examples).
If you want to send me your HW schematics I can do your pins.h proto configuration for you!
If those steps are done correctly you should compile with no errors !
It look like you are compiling the wrong library , you should NOT USE spiffsdfat library !
For some reason , probably wrong define in pins.h , you are including spiffsdfat.h !
Verify where this appends and what define is causing this!
Regarding choise of prototype …I believe you could start with proto n.1 :
It use a shift register
A i2c 20×4 LCD
A i2c Real time clock
Analog GPio is used for Button input
I will prepare a hardware schematic of you tell me what you want to use!
This name is an heritage of the branch I have used to start my port to Esp8266. I have started from a 2016 branch from Dave1001 that had the scope to port OS to Arduino Mega with a Ethernet shield.
The error was to use 25 26 ….. I should have told you: the reasons is clear since on Esp8266 Max n. Of GPio is =16 in my code for all pin above 16 are redirected to expanders …..I have to change that ….but from the time beeing use GPio <16.
Regarding the other points I would like to keep interacting with you and try to fix all other bugs, some it is common to the Esp8266 version like the one relative to NPT time …it work but after several trials!
Esp32 library are progressing fast and I have to catch up with WiFiManager this is important I will do it next week.
Regarding logs it should work …. Check if log files are generated on Spiffs , if they are there logs normally work!
Thanks for all your contributions and …..keep in touch!
Thanks for your great work!
I have been out for a couple of week and for some reason I don’t get email notices of your posts!
I have found the same 2 bugs you have found and I have fixed those in my local code but not in the GitHub .
I will have a look to your GitHub code and your HW setup,I think it should be almost identical to mine.
When you say that the code is unstable and hang randomly, I would like to understand what you really mean :
It is during a web request , the code doesn’t reply ?
Or the Esp32 hang and you have to reset it?
The Esp32 library code is far from beeing fully tested and it is not reliable as the Esp8266 core library.
In theory the code running on Esp8266 using libraries ported to Esp32 should run on Esp32 with no changes, but this in not always true!
In particular all this PROGMEM related statements that are meaningless for Esp32 where accepted onEsp8266 but may cause problems on Esp32.
If you give me more details on your failures or hangs at run time I will try to do some test and to understand possible reasons.
Thanks for trying!
Regarding libraries you have done it rigth, since esp32-arduino is far from beeing complete, you have to dig around the missing libraries.
I believe that most of your errors depend on setting you have on your pins.h file.
You should use define proto 12, on 12 you have all define I have used to compile the code.
This has been done for a bare devkit c board without any HW attached, but in this configuration the code compile and run!
You have to set in the code ethercard5100.cpp your SSID and password because WifiManager is not available!
Since the code is multiplatform and multihardware I put all define in the pins.h file , there if you want to add your configuration just add another proto number copying and pasting the lines of another proto the one most similar to your!!
I will try to avoid putting #define around in the code and I suggest you put all those in the pins.h file!
If you have problems just send a message with your pins setting and I will try to compile it myself!
I have just checked…. MY_PING has to be not DEFINEd otherwise you get all errors relative to Sockets …..!
Regarding ping,…I made a ping library but….yes you are right there are probably better way to check network status… I am already working on that!
I don’t advise anybody , especially beginners , to change the code for their needs!
Of course this is Open Source and you are free to do it, but I will not follow you on that!
The only thing to do , to adjust the code to your HW configuration, is to modify pins.h file where all the modifiable code flags (#define) are located.
To do that :choose one of the 11 proto cases, the one better for your needs and modify the value of the #define there.
Minimum HW configuration is proto 11!
- This reply was modified 2 years, 6 months ago by pbecchi.
The error you are reporting is very strange! There is no change in the error you are reporting due to the new pins.h file. The reason should be elsewhere!
Anyhow I have verified on my PC using the same pins.h file and I have found a different error relative to LCD definition. To correct the error you need to uncomment #define LCDI2C.
With this small correction it compile with no errors! Again it is very strange you find a different error!
Check what you are doing!
The code now it is rather complex , so every time you change anything there is the risk of new errors , so changing of #define flags in pins.h can be done but each new configuration need to be tested for compilation a/o runtime errors.
In the attachment ,I have modified the pins.h file adding proto 11 for your case! To be selected in the line #define proto 11.
Now the question is what GPio assign to station outputs:
In the file I have left 0x3x numbers that are for a PDF expander
You have to set your books, but do not use 1 ,3 ,4 and 5.
Try using 0,2,9,10,12,13,14,15 and 16 left for spare!
You can probably do it since your board is a Esp8266 12e!
Anyhow you are going to test with a fully blind system , having no feedback where the MCU work ,where is connected to internet ,where command to valves are received and running!
I doubt you will be able to do anything with this configuration: keep USB connected (pin 1 and3) at least you will see something!