Forum Replies Created
-
AuthorPosts
-
ianfParticipantPaolo,
Try replacing ‘()’ and ‘!’ with ‘@’ and ‘.’. I hate to have to obfuscate but the spammers have ruined it for everyone.
Ian
ianfParticipantRay,
Consider making remote temperature sensors that folks can plug into an outlet in rooms not covered by their main thermostat so that the thermostat can get additional temperature data.
Ian
ianfParticipantPaolo
I’m very interested in your work – it’ll potentially save me a bunch of time porting the software. Please contact me off-line at ianf () freislich ! nom ! za and I’ll share my work. If you’re located in the USA I’ll make another board and post it you. It’s not yet ready for prime-time but I’ve attached a picture of the 3rd prototype board I made yesterday (changes are the micro SD and DS3231 RTC). I need to figure out what’s wrong with the SD interface and the soldering is rubbish because I had to de-solder and then re-solder most of the components by hand. This is the first board I made in my T-962A reflow oven and there were a bunch of shorted tracks. I’ve kept the layout single sided so I can run the boards off by hand while it still under development.
Truth be told, I’m considering loosing the 74HC595 shift register in favour of the PCF8574 I2C PIO chip. It will fee up some pins and simplify things somewhat including expansion board detection which can just be done with an I2C scan and DIP switches to set the address of the expansion board.
Ian
Attachments:
ianfParticipantRay,
The ESP-12E has extra pins broken out but I believe you can’t use them without interfering with the SPI Flash interface which will affect program execution. I’ve based my prototype on the ESP-07, the only real difference between this and the ESP-12 is the ESP-07 has 1MB flash and a ceramic antenna with u.fl external antenna connector while the ESP-12 has 4MB flash and no external antenna interface. Otherwise they are interchangeable.
For now I’m focusing on a minimal hardware implementation to prove the concept. As you can see in the picture, I’ve moved the LCD to a PCF8574 but I messed with the pin assignment to make the layout easier so I’ve a hack to the LiquidCrystal_I2C library. The second SOIC-16 footprint is for another PCF8574 to provide the additional GPIO. I considered just attaching the 74HC595 to the SPI bus (in hindsight I think it should have been done like this from the start) but I’m not sure how invasive code-wise this change would be.
I see now that I should have connected B2 and B3 to the IO expander rather than the ESP module to free up a GPIO to use as an interrupt for state changes like buttons, and other sensors.
The only real gotcha is the ESP8266 has one ADC channel. I guess this can be remedied by either an I2C analog mux or ADC.
At present, I see enabling the ESP platform requiring the following:
1. Inclusion of the LiquidCrystal_I2C library with private changes.
2. Abstraction of the GPIO to use PCF8574/5 ICs
3. Some pin definitions as you’ve stated.
4. Some #ifdef magic to filter out the Ethernet library in favor of the ESP8266WIFI and cousins.
5. Some #ifdef magic to deal with the ESP8266 flash emulated EEPROM.
ianfParticipantI’ve just completed the first prototype (hand etched and soldered). Once I’ve ironed out the issues I’ll put up the cad files somewhere.
Just a question. Will you be willing to include the #def stuff in the OpenSprinkler repository to enable the ESP8266 platform?
Attachments:
ianfParticipantNever mind. To externally reference const (which are implicit static), the declaration needs to be as follows:
-prog_char op_max[] PROGMEM = {
+extern prog_char op_max[] PROGMEM = {In trying to figure this out, I had left in server.cpp
extern const char *op_max;instead of
extern const char op_max[];
which seems to be deferenced differently and messed up the maximum values.
ianfParticipantRay,
I’m also seeing this after upgrading to 2.1.6 compiled from git today (I’m using the Android AP). The controller is essentially an OS AC HW2.3. Is there an easy way to debug and see what input value it’s failing on?
Ian
ianfParticipantI have built a couple of open sprinklers for family and friends on prototyping board. They all use the DS3231 RTC and work fine.
The DS3231 is not pin compatible with the DS1307.
ianfParticipantHi Ray,
I’ve fixed an issue (pull request 18) with detection of expansion boards that looks like it was introduced in 2.1.0.
I was hoping that this fix would correct another issue I’m having and that is the LCD display doesn’t show status E1:______O__ for stations 9-16 when they’re running. It could be that I just messed up the construction (custom ATMega1284, 20MHz with an 8 station expander on board), but it does turn on the correct stations on the expansion and I enabled serial debugging and annotated the detection code and it returns 1 now, not -1.
If you think the problem is my hardware, I’ll investigate further but at this point I’m pretty sure it’s a software issue. I’ll continue to plug away on my end, but if you can help I’ll be very grateful.
Ian
ianfParticipant@Fr33: Ray’s comments not withstanding, before you re-flash you can try resetting to defaults (B1 during power-on).
ianfParticipantIs what you’re experiencing now new behaviour since updating to 2.1.0?
Reading your posts, it looks like your reset the OpenSprinkler a few times with no effect. Then you reset the OpenSprinkler and the WiFi bridge and then you could access the page. Are you sure that the issue is not the WiFi bridge? Can you report the RSSI for the bridge on your AP and the bridge? You can test this by resetting only the WiFi bridge the next time it happens.
Also, are you running the UI from the SD card?
There was an issue with the upstream ethernet library, but it’s not often triggered. When the problem is triggered it results in a soft-lockup and the OpenSprinkler is rebooted by the watchdog 2 minutes later. The upstream fix has been incorporated into the 2.1.1 firmware.
November 25, 2014 at 1:40 am in reply to: [patch] Use the whole allocated buff for network transfers #34824
ianfParticipantI’m pretty sure that was the case. IIRC the early versions of the Ethercard library had a static buffer. In fact for another project we chose UIPEthernet for its improved TCP/IP support. There are still some hangovers from the early days in the Ethercard code – the MSS of 512 octets in the client code as an example. Your project has finally given me the impetus to look into a bunch of stuff I’ve been meaning to get to for a long time.
I’m building an OpenSprinkler for my Mom to replace the Toro DDC-6 I gave her years ago because it’s a pain to program, runs the backup battery down and forgets the settings whenever there’s a power failure.
The OpenSprinkler is such a nice solution.
ianfParticipantThanks.
I had the wrong repository checked out (https://github.com/rayshobby/opensprinkler.git).
ianfParticipantSamer,
Is it possible to get a copy of the source for this fix or a diff so that I can apply it to my copy of the sources?
Ian
-
AuthorPosts