Jump to content

Spa Controller Compuetr Interface


Yadkin
 Share

Recommended Posts

I ordered a Bus Pirate to play with the i2c interface. Since the IQ 2020 Navigator RF Remote connects to this I'm sure I'll be able to adjust the temperature. It'd be nice to also read the current temperature (though a independent thermometer would work too). I'll save a lot of energy if I can turn the temperature up with a timer or from my phone.

The link to the electrical schematics posted by RyanF at detechtive.watkinsmfg.com no longer works. Can someone send me a copy of "PN 60478 HotSpring Service Manual" ? Thanks.

Link to comment
Share on other sites

  • 4 months later...
  • 2 weeks later...

I've been very casually working on this same issue for a few months. I have been snooping on the I2C interface between the control panel and IQ2000 controller in my late 90s Jetsetter. The data captures I got were very different from the ones on TomGoBravo's github site. I was using a Saleae logic to capture I2C traffic as well.

My goal is to integrate I2C comms to smart phone using iRule software. Currently I have an X10 universal module connected to the clean switch to have remote jet control for now but am looking to have temperature controls. I use an insteon SmartLinc to get x10 on the internet. My original plan was to use a PIC microcontroller to interface but to save on the hassle of getting that on the internet through serial ports/etc now I am going to take a look at using a raspberry pi's i2c bus to get on the IQ2000 bus. If there is too much trouble trying to be a second master along with the control panel on that link, I was going to look at a friend's hot spring sovereign to emulate the remote control for jet and temperature control. I hope the protocol for the remote hasn't changed between IQ2000 and IQ2020. Of course attempts to ask watkins for information went unanswered.

I have a cable hooked up to the control panel to IQ2000 and the 6 pin RJ12 jack I assume the remote control plugs into. Here is some sample data captured on the control panel to IQ2000 link. I need to spend some more time analyzing the protocol but i think I'm going to see if I can get the raspberry pi I2C listening to the channel first.

Time ,Packet ID,Address,Data,Read/Write,ACK/NAK
0.474642,0,'189','162',Read,ACK
0.509529458333333,0,'189','0',Read,ACK
0.544374083333333,0,'189','15',Read,ACK
0.579214708333333,0,'189','189',Read,ACK
0.6908145,1,'29','160',Read,ACK
0.725705958333333,1,'29','23',Read,ACK
0.760592416666667,1,'29','3',Read,ACK
0.975311041666667,2,'189','162',Read,ACK
1.0101985,2,'189','0',Read,ACK
1.04516766666667,2,'189','15',Read,ACK
1.08001425,2,'189','189',Read,ACK
1.47320483333333,3,'189','162',Read,ACK
1.50808629166667,3,'189','0',Read,ACK
1.542930875,3,'189','15',Read,ACK
1.57777845833333,3,'189','189',Read,ACK
1.68937820833333,4,'29','160',Read,ACK
1.724269625,4,'29','23',Read,ACK
1.75926066666667,4,'29','3',Read,ACK
1.97399216666667,5,'189','162',Read,ACK
2.00887858333333,5,'189','0',Read,ACK
2.043729125,5,'189','15',Read,ACK
2.07858170833333,5,'189','189',Read,ACK
2.474437625,6,'189','162',Read,ACK
2.50931908333333,6,'189','0',Read,ACK
2.54416366666667,6,'189','15',Read,ACK
2.57901120833333,6,'189','189',Read,ACK
2.69060595833333,7,'29','160',Read,ACK
2.72550433333333,7,'29','23',Read,ACK
2.76038279166667,7,'29','3',Read,ACK
Link to comment
Share on other sites

Cool, thank you for posting some more data. Did you try parsing it with chomp.py? Looks like you'll need to change Saleae to save in hex or hack the python to parse decimal. The addresses are different but it may help you piece together higher level meaning.

On the IQ2020 the front control panel (with buttons and display) is an I2C slave at 7 bit address 0x20. I discovered this by disconnecting it from the controller and seeing the master attempting to read from it. The controller attempts to contact slaves at 0x18 0x3e 0x36 and 0x44. I'm guessing one of these is the remote control. I suspect that it won't take long to make a remote once we can see the interface. Can we get a Saleae, remote and IQ together? I have 2/3 of them in the Bay Area.

The Electric Imp made connecting to the internet easy but it is closed source and doesn't have in I2C slave mode yet. I ordered a Spark Core which promises the flexibility of a normal Arduino with the ease of the Imp.

Link to comment
Share on other sites

Found out some more information about the IQ2000 interface last night. The I2C is only between the control panel and main control box. Here is the pinout through the 14 pin ribbon connector.

Pin 2 I2C Data (5V)

Pin 3 I2C Clock (5V)

Pins 6,8 GND

Pin 10 5V

I hooked up the I2C lines to a voltage shifter (PCA9306) to run the I2C on the raspberry pi (3.3V) just to find out the Pi's drivers and I2C chip only support master mode where I want to monitor the I2C communication and maybe inject a command to change temperature, start jets, etc. Looks like I'm going to need to do something akin to what these guys are talking about: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=44&t=44482

The RJ12 jack turns out to be nothing more than a discrete input connector meaning the $150 auxiliary control panel is just an expensive switch box. Voltage is supplied on one pin and then the switches close inputs to accomplish different features. Here is the RJ12 pinout using the left connector in this example http://wls.wwco.com/ledsigns/alpha/cable.jpg

Pin 1 (Blue) - Jets 1 control

Pin 2 (Yellow) - No Connection

Pin 3 (Green) - Lights up control

Pin 4 (Red) - Lights down control

Pin 5 (Black) - Common Voltage Supply (This will be on one side of all external switches)

Pin 6 (White) - Jets 2 control (this illuminates the Jets indicator on my Jetsetter but doesnt do anything else. I'm assuming this is for Jets 2)

Use this information at your own risk. I am not responsible for you ruining your control panel board or burning your spa down.

Link to comment
Share on other sites

Following this thread closely. If you two can decode this, I'll write a driver for Control4.

FWIW, you guys probably know this, but I saw a reference that the control bus for the 8 port communications hub uses RS485. I have this hub in my system, it appears to come standard on the Grandee with an ACE system installed. This is a brand new system that just arrived today, so if I can be of any assistance, let me know.

Link to comment
Share on other sites

  • 4 months later...

I see some of you were able to determine the pin outs for some of the cables. Maybe you can help me? I have an IQ2000 and believe it or not, but after it was moved and hopefully disconnected a dog thought the hanging cables would be fun to chew on and pull out. He pulled out the thermistor and hi limits clear off the IQ2000 where the like white adapters are on the side of the box. Unfortunately that stripped the cable that connects to the motherboard and before I reconnect it I need to know the pin out and and which thermistor connects where on the board. Anyone have any clue? Thanks

Link to comment
Share on other sites

In my IQ2020 the pins on the main board are pretty clearly labelled. Are the ports on the heater (at the other end of the cables) labelled? You may find this video helpful

. As far as I know these two sensors are just thermistor so polarity doesn't matter. IIRC the main board has 4 pins on these two connectors but only the outside 2 are used. You are unlikely to break anything by hooking them up incorrectly (the red flashing light on the main board you have likely seen) but I have received a warning zap to be careful with the power.
Link to comment
Share on other sites

Ok, I found a drawing that shows the thermistors connect to P5 on the motherboard, partial success! What I'm looking for now is which wire connects to which pin, anyone able to look at their box and let me know? Both thermistor connect to p5, there are four pins and four wires, please help me match them up. Thanks

Link to comment
Share on other sites

  • 1 year later...
  • 1 year later...
  • 3 years later...
On 3/20/2015 at 9:11 AM, DavidDSP said:

hmmm.. wonder how much they want to charge for this piece - anyone want to get one to really start to decipher the signaling?  (I'm assuming this thing is a little embedded module that connects to the Peripheral Interface on the IQ, and interfaces this data/controls to an app via wifi).

Link to comment
Share on other sites

  • 2 weeks later...

If this is even technically possible, you would need access to the communications protocol used by the IQ2020. Obviously, some type of communication bus exists in this system for interface to the remote control, lighting, etc. An alternative to reverse-engineering the IQ2020 would be to replace the entire control system with a PLC (programmable logic controller) - not an inexpensive options, but the possibilities are endless.

Link to comment
Share on other sites

  • 1 year later...

Sorry to resurect this old thread. I'm going to take a stab at this. I haven't totally figured out my approach. I have two ideas:

  • Mess with the thermistor port. I'm thinking of a "man in the middle" attack and reading the voltage from the port and then sending a voltage so I can apply an offset to make the controller think the actual temperature is higher or lower by x degrees. 
  • Mess with the port labeled "Control Head Int". The messages look like RS422. Can anyone confirm?

I didn't see an I2C port. 

Model on my control board is listed as USBRevC5a it came with my 2018 hot tub.

Some questions:

I have one general question—where is everyone pulling off power? I can see the main supply is 12V and I can see 5V and 12V is available on a port labeled peripheral. If anyone knew the current limits for the ports I'd appreciate it so I don't accidentally burn up my control board.

Link to comment
Share on other sites

  • 6 months later...
On 10/27/2011 at 7:12 PM, RyanS107 said:

I am looking for something exactly what you guys are explaining. I want to be able to monitor, or at least be alerted if my Hot Spring's temperature ever drops below a certain temp. If the power ever trips, I would hate it if my spa ever got too cold and froze, destroying the whole thing. Ideally, I would love for some type of interface (Ardunio or other) to be able to text or email me if this happened. Reading directly into the board would be great.

On 10/19/2009 at 10:12 AM, Yadkin said:

OK I searched all over the internet this morning and couldn't find anyone who has done this. I can't imagine being the first bloke to think of this so I'd rather not reinvent the wheel.

I've got a Hot Springs/ Tiger River spa with a 2001 IQ 2020 control panel. It has several places where pins are exposed; my guess is for attachment to their remote control and for diagnostics.

The spa is located at my mountain cabin and I'm there most weekends during the winter. Electricity and fuel costs being what they are, I've gone to great lengths to be able to turn down the house temperature and turn off the domestic hot water when I'm gone, and turn everything back up/ on before I get there so the house isn't freezing when I arrive. I even turn the water main off in case something screws up big time and a pipe freezes.

I'm no computer genius but I figured out how to do this using X10 controllers and their telephone interface. This stuff is all 1980's technology and pretty cheap, around $200 for my set-up, including a second thermostat, a sprinkler valve and the various control boxes. It's pretty neat because I can turn things on-off using my cell phone.

However it's not completely dependable and doesn't provide me any feedback so this last summer my son built a computer to stay up there and monitor things. This was relatively more expensive, plus I now pay for broad band internet at $45/ month. We use Home Domination software and can log on remotely and see what the the computer is doing, see the status of temperature sensors and if the X10 boxes are on or off.

Back to the main point I'm looking for a way to connect to the IQ 2020 board and read the temperature status on the computer, and turn the water temperature up or down.

As an alternate I suppose I could put a second heater in the spa set to a lower temperature, and turn the main heater off using an X10 interface, but there should be a simpler way.

Any gurus here?

 

I just read an old post where you were looking for the same information (Below) I am seeking today. Did you ever discover anything? We have a 2012.4 HotSprings Jetsetter with the Orca IQ2020 system with a topside LCD (Had no luck locating a replacement) that has failed and have buttons only, which is still usable but I am looking to change the programing to allow the heat to stay on with the jet pumps. It was setup that way before we switched it to 230V. I would also like to have wireless control without having to build and program my own controller. Watkins swapped over to another Controller and the Topside is no longer compatible with the previous controller.

I’m not really apposed to buying and programing a Wireless PLC 4 way switch, which would make it very versatile. My thinking is if I am going to build something, I want to go all out. I would like to add the SPA via an Arduino/Raspberry Pi, Wireless Receiver, Relays, and Contactors for high current like Pumps and Heat to our Home automation system. Then program it to calculate the most efficient temperature to maintain knowing variables like the local weather forecast for temperatures and unfavorable conditions. It would have access to my calendar and my current location as well as when I planned to use it by placing it on my calendar or voice command to Siri. Then it would heat the tub before I planned to use it. I know it sounds a bit over the top, but it would be pretty cool having the porch lights, music and tub ready when I arrive home.

Right now I would like to find if I can access the programing via Serial or SSH since I have no LCD to change the factory settings, which need the display as published.

Anything you or any one else has discovered and would share would be greatly appreciated.

Link to comment
Share on other sites

On 6/6/2021 at 7:51 PM, infinitenothing said:

Sorry to resurect this old thread. I'm going to take a stab at this. I haven't totally figured out my approach. I have two ideas:

  • Mess with the thermistor port. I'm thinking of a "man in the middle" attack and reading the voltage from the port and then sending a voltage so I can apply an offset to make the controller think the actual temperature is higher or lower by x degrees. 
  • Mess with the port labeled "Control Head Int". The messages look like RS422. Can anyone confirm?

I didn't see an I2C port. 

Model on my control board is listed as USBRevC5a it came with my 2018 hot tub.

Some questions:

I have one general question—where is everyone pulling off power? I can see the main supply is 12V and I can see 5V and 12V is available on a port labeled peripheral. If anyone knew the current limits for the ports I'd appreciate it so I don't accidentally burn up my control board.

I thought I would assist in resurrecting this post with the following:

I just read an old post where you were looking for the same information (Below) I am seeking today. Did you ever discover anything? We have a 2012.4 HotSprings Jetsetter with the Orca IQ2020 system with a topside LCD (Had no luck locating a replacement) that has failed and have buttons only now, which is still usable but I am looking to change the programing to allow the heat to stay on with the jet pumps. It was setup that way before we switched it to 230V. I would also like to have wireless control without having to build and program my own controller. Watkins swapped over to another Controller and the Topside is no longer compatible with the previous controller.

I’m not really apposed to buying and programing a Wireless PLC 4 way switch, which would make it very versatile. My thinking is if I am going to build something, I want to go all out. I would like to add the SPA via an Arduino/Raspberry Pi, Wireless Receiver, Relays, and Contactors for high current like Pumps and Heat to our Home automation system. Then program it to calculate the most efficient temperature to maintain knowing variables like the local weather forecast for temperatures and unfavorable conditions. It would have access to my calendar and my current location as well as when I planned to use it by placing it on my calendar or voice command to Siri. Then it would heat the tub before I planned to use it. I know it sounds a bit over the top, but it would be pretty cool having the porch lights, music and tub ready when I arrive home.

Right now I would like to find if I can access the programing via Serial or SSH since I have no LCD to change the factory settings, which need the display as published.

Anything you or any one else has discovered and would share would be greatly appreciated.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...