Forum Replies Created
-
AuthorPosts
-
RayKeymasterThere is one small problem about removing the baseboard: the firmware will not be able to detect the baseboard and using its I2C address to decide which type of baseboard it is, and will consequently default to AC driver board (instead of DC in your case). The only issue with this is that it won’t engage the boost converter to generate the boosted voltage. If you don’t need the boosted voltage, this is ok. Pretty much the only difference between AC driver board and DC driver board, in terms of software operation, is the boost converter.
RayKeymasterThe easiest way is probably to configure your PCF8575 as an expander, i.e. on zones 9-24. The reason is that this is already in the design of an older version of OS expander. The hardware design files are here:
https://github.com/OpenSprinkler/OpenSprinkler-Hardware/tree/master/Expander/3.0/DC
look for the exp30dc one (you will have to install EagleCAD to view the files). The expander I2C address starts with 0x24 (i.e. A0=1, A1=0, A2=0). You can add up to 4 expanders (0x25, 0x26 and 0x27). The particular design of expander 3.0 uses a lot of components (it uses a PNP transistor per channel for logic inverse, because PCF8575 has persistent internal pull-up so it defaults to high on each output, and the PNP transistor reverses that to default low).So the short answer is that yes you can connect PCF8575 as an expander. This way you existing 8 zones are usable and you get 16 additional zones.
If you can get a PCA9555 board, though, the circuit can be a lot simpler. That’s what expander 3.1 DC is based on.
RayKeymasterIt could be a UI problem. You can try the following approach to use buttons to edit the option value:
– remove power from OpenSprinkler, then power it back on, as soon as you see the OpenSprinkler logo, press and hold the third pushbutton (B3) and continue holding until it shows ‘Setup Options’.
– click B3 as many times as you need until it goes to the ‘Boost Time’ option. Then use B1 or B2 to change the value
– when you are done, please press and hold button B3 again until the controller reboots itself.If this still doesn’t work, it’s likely a flash memory problem. You may have to do a factory reset. Before factory reset, please save a copy of your configurations so you can recover the settings later. Factory reset and import/export configurations are all explained in the user manual.
RayKeymasterIf you have a AVR ISP programmer (like USBtinyISP, or USBASP), you can program the microcontroller directly without using the USB port on the controller. I think this may help fix the issue. If you don’t want to do this yourself, you can send a support ticket to support.opensprinkler.com and send the controller back to us so we can take a look.
RayKeymasterThe time for boosting depends on the input power supply voltage. The booster circuit itself has been configured to boost to ~21VDC (so even if the booster is turned on indefinitely it won’t go past 21V). The higher the input power supply voltage, the faster it is to reach that limit. With 7.5VDC input (the default), it probably will take 500ms to 750ms. You can leave the boost time to 1000ms if you want to make sure it reaches the maximum.
RayKeymasterI’ve occasionally seen this before. I am not sure what’s the root cause, but I think it has to do with the fuse bits settings. AVR microcontrollers have a notorious problem where in some cases if the fuse bits are programmed incorrectly it might require a high voltage programmer to reset that.
RayKeymasterWow, that’s a very clever idea. By splitting the zones into two sets, one set of which drives relays that supply ‘com’ wire to the other set of valves, you can drive a large number of zones. Thanks for sharing! It also sounds like an interesting math problem to find out how to split the zones to achieve the maximum number of valves.
RayKeymasterOn this technical help page:
https://openthings.freshdesk.com/support/solutions/articles/5000859137-troubleshooting-and-technical-help
there is a paragraph about what’s the difference between Hardware version, Firmware version, and App version.“from firmware 2.1.9, only OS 2.3 (and above) will be supported” — this sentence means: firmware 2.1.9 and future firmwares will only support hardware version 2.3 and above (i.e. hardware 2.3, 3.0, 3.1, 3.2 etc.). You have OS 2.3, which means OpenSprinkler 2.3, i.e. Hardware version 2.3, that means your controller can be upgraded to firmware 2.1.9 and future firmwares.
App refers to Mobile app, you can always update your app in the app store, this is regardless of what hardware or firmware version you have. You don’t even need an OpenSprinkler to install the mobile app. Firmware is the software running on the controller, it is different from the mobile app. Mobile app can be thought of as the ‘front end’ or ‘graphics user interface’ of the controller.
RayKeymasterYes, I am aware of the datasheet, but we’ve never had any problem using 3.3V ESP8266 to drive 5V PCA9555. If you believe it’s a problem you can simply add a diode in series between 5V and PCA9555’s VCC pin, so that will drop 0.7V and supply 4.3V to PCA9555. This way 3.3V/4.3V > 75%.
RayKeymasterThe current OSPi design no longer uses external pull-up — it relies on RPi’s internal pull-up resistor, which is about 50~60K ohm. So 4.7K series resistor is fine with internal pull-up.
RayKeymasterWhen you place the order, you can leave a note saying you want the external antenna option. So instead of the standard ESP-12F, the controller will come with ESP-07S WiFi chip, which looks like this:
https://www.mouser.com/datasheet/2/975/1494602250ESP-07S_Datasheet-1589078.pdf
and you can plug in an external antenna. There is no surcharge, so all you need is to leave a note. There will be a one-week lead time as we don’t normally stock these versions.
RayKeymasterESP8266’s technical documents are all listed here:
https://www.espressif.com/en/products/socs/esp8266PCA9555 is a I2C device, for I2C device, because the data lines are pulled high by the microcontroller, and the slave devices only pull these data lines to ground, it’s ok to have a 3.3V microcontroller interfacing with a PC9555 powered by 5V. 3.3V is within the high logic range of PCA9555, so this works fine.
RayKeymasterOS = OpenSprinkler
OS 2.3 = OpenSprinkler hardware 2.3
You can find a summary of App version, Hardware version, Firmware version here:
https://openthings.freshdesk.com/support/solutions/articles/5000859137-troubleshooting-and-technical-help
RayKeymasterOK, maybe I misunderstood the questions in your first post. Perhaps you weren’t asking about the GPIO stations. In any case, I think there were only 4 unused pins on the main PCF8574 — for DC-powered OpenSprinkler 3, it needs two additional pins from the main PCF8574 for voltage booster control, so including B1 and B3 these are 4 pins being used.
Also, because OS 3 uses two layer design, if you want to map any unused pin on the main PCF8574 to the bottom layer for zone control, it would have to be through the pin header between the top and bottom layers. I didn’t want to have that many pins between the two layers. And since the first version of OpenSprinkler, the main controller always has 8 and only 8 zones, so I just left the 4 unused pins on the main PCF8574 as is.
The current OpenSprinkler 3.2 uses a single PCA9555 on the bottom layer, so there is no more PCF8574. PCA9555 is more cost effective than two separate PCF8574s, and it can both source and sink large amount of currents, which is desirable. If you are interested in reading the design choices, I’ve just recently published a blog post about IO expanders (https://opensprinkler.com/i-o-expander-options/).
This may not be obvious at first: but leaving some unused pins can come quite handy when there is need to expand the controller’s functionality. For example, while AC-powered OpenSprinkler 3.2 leaves 7 unused pins on PCA9555, the Latch OpenSprinkler 3.2 uses all the spare pins because it needs several additional pins for controlling the H-bridge of the COM line, and controlling a 74HC595 shift register. So in a way it’s good that there were unused pins on PCA9555, as they have been necessary by the time that I designed the latch version.
RayKeymasterGPIO stations are not defined for OpenSprinkler 3.0 (including 3.1 and 3.2), because ESP8266 doesn’t have enough GPIO pins. In the firmware code, the PIN_FREE_LIST is empty for ESP8266:
https://github.com/OpenSprinkler/OpenSprinkler-Firmware/blob/master/defines.h#L304The GPIO pins referred to by the GPIO stations are assumed to be pins on the microcontroller, not through IO expander. This can certainly be modified in the firmware to provide support for expanded GPIO pins.
October 25, 2021 at 3:50 pm in reply to: Provide installation instructions for wiring provided fuse #71492
RayKeymasterThanks for bringing this up. Yes it should be included in the user manual and I will add that shortly. It’s a fuse for the COM line, you can connect it between the COM terminal and your COM wire. It’s not entirely necessary but does provide some protection against shorted solenoid and mis-wiring of solenoids.
October 16, 2021 at 11:05 am in reply to: OpenSprinkler v2.1u DIY fuse blown seeking replacement #71454
RayKeymasterYou can submit a support ticket at
support.opensprinkler.com
with your delivery address, and we can send you a few of these fuses.
RayKeymasterAll these messages look fine: it got NTP synced correctly, and seems to be able to connect to the weather server as well. If you know it’s IP address, you should be able to type that into a browser, or use the OpenSprinkler app, to access the controller.
October 15, 2021 at 10:33 am in reply to: OpenSprinkler v2.1u DIY fuse blown seeking replacement #71438
RayKeymasterCan you post a picture of the fuse? v2.1 has been a while ago and I don’t particularly remember which type of fuse it uses.
In addition to replacing the fuse, I recommend you to remove power and measure resistance between VIN (i.e. 5V) to GND and also VCC to GND. VIN-GND should be at least 4 kilo ohm or above, VCC-GND should be at least 1 kilo ohm or above. If they look suspiciously low, some parts may have shorted and need to be replaced.
RayKeymasterYou may not overthinking the difficulty of compiling the firmware. If you use Arduino IDE, you can simply install the required libraries in the IDE. Or, you can install virtualbox in Windows, and install linux in virtualbox.
RayKeymasterWell, having an OLED display connected would be tremendously helpful to see what’s going on. You can also turn on serial debugging and that way you can watch the output from serial. This would require you to compile the firmware. To turn on serial output, just uncomment this line:
https://github.com/OpenSprinkler/OpenSprinkler-Firmware/blob/master/defines.h#L27
and compile the firmware.The latest firmware no longer requires an RTC — if an RTC doesn’t exist, it will fall back on NTP syncing. I don’t think it requires PCF8574 either: without PCF8574 it will by default assume this is an AC-powered opensprinkler.
RayKeymasterFrom the screenshot, it looks like the firmware is successfully uploaded. Depending on your WiFi network and the browser, after clicking on Connecting, it might not respond and may look as if it’s stuck. But what’s important is to watch the LCD screen: if it can connect to your WiFi router, then it will reboot itself (you may need to unplug and re-plug in power because ESP8266 has a well-known bug that triggers a stall if you reboot right after flashing the firmware. Power cycle it will fix the problem).
RayKeymasterAh, I know what happened — and this is admittedly my fault not updating the part number properly. So QB1 and QB2 originally were MMBT3904 NPN transistors, and as such they should have base resistors (anywhere between 1K to 10K should be ok). However, in the end I decided to minimize the number of different parts so these were replaced by AO3400 N-channel MOSFETs, since the board already uses AO3400. As is there is now only a 10K pull-down resistor between gate and source, there is no more base resistor. So if you used MMBT3904 then it would have no base resistor causing large current draw. I think this is probably what happened. I am sorry about the inconsistency in the schematic and I will update it in github shortly.
RayKeymasterI tested the current draw on the 5V line using a OS 3.2 DC, and it’s definitely not 300mA. With the ESP8266 (i.e. top layer board) on, the current is about 80mA in AP mode, and about 50mA in WiFi station mode. This is the case either when no solenoid is on, or a solenoid is on. You said you have a friend who has a OS 3.2 DC, that you tested and it draws about 300mA. I am not sure how to explain that, but the one I tested definitely does not have this issue.
One thing you should be careful with is the SMBJ24A TVS diodes — these are for protection against high transient voltages. These are polarized (unlike in the AC-powered controller, which uses non-polarized TVS where the part number ends with CA and not A): the negative of each TVS diode should be connected to each zone port, and the positive should be connected to the 0.2ohm current sensing resistor. I realized that in the schematic I used a non-polarized TVS diode symbol, so it probably is confusing which direction it is. If the polarity is wrong, when a solenoid is connected, it’s basically immediately connecting the solenoid to ground, thus it will start to draw current even when the zone is off. That said, it still doesn’t quite explain the high current draw on the 5V line, because in holding state, the solenoid draws current from the input power supply, not from the 5V line, so even if the TVS diode polarity is wrong, it still doesn’t explain the issue.
RayKeymasterI don’t fully understand the problem, but here are a few notes to begin with:
– BPE is the booster power enable pin, when it’s high, the input DC voltage is fed into MC34063 booster to generate boosted voltage.
– BVE is the booster voltage enable pin, when it’s high, the boosted voltage from the 2200uF capacitor is dumped to the COM line, to provide impulse voltage for the solenoids to engage.
– Between the input DC voltage and COM, there is a SS34 diode, this way, as the boosted voltage fades away, the input DC voltage will continue to provide holding current for the solenoids to keep engaged. As long as BPE is turned LOW after the initial impulse voltage, it doesn’t matter if BVE stays HIGH or not, because the voltage from 2200uF will eventually fall below input DC voltage, hence the input DC voltage will take over to provide current to the solenoids. On the other hand if BPE stays high, the booster will continue to try to bump the voltage, and that can be a problem.
– The only thing I can think of, regarding 7805 drawing a lot of current, is that something on the +5V line is drawing a lot of current. But if you look at the schematic, there isn’t that much connected to the +5V line: the booster is connected to the input DC voltage, so that comes directly from the power supply and not drawing from +5V. Also, as long as the input DC voltage is higher than 5V (we use 7.5V by default), the current shouldn’t flow backward from 5V to the input.
– We are aware that if the controller has a wired Ethernet module connected, it can draw a lot of current — because the wired Ethernet module itself draws 180mA, and the WiFi chip further draws 70mA, that’s about 250mA at minimum. For this reason, if wired Ethernet module is connected, we recommend the input DC voltage to be as low as possible: 7.5V is ideal, 9V is probably ok, but 12V would be too high as that will put too much heat dissipation on 7805. Even without wired Ethernet module, the DC voltage should not be higher than 12V, again, to minimize the power dissipation on 7805.What is your input DC voltage? Even at 300mA current, if the input voltage is only 7.5V, that power dissipation shouldn’t be more than (7.5-5)*0.3 = 0.75W (probably a bit lower than this because there is a diode D1 that drops maybe 0.5V). Do you have anything else connected on the +5V line?
-
AuthorPosts