Reverse-engineer an inflatable spa controller

Hi everyone !

I am a complete rookie in both the Arduino and the electronics in general, coming right from the programming world. The only part I feel at ease with right now is the sketches coding ;).

That’s it for who I am, since this is my first post in this forum :). I hope I will chose my words right, at least I will try to.

Now, about my project. I am looking for a way to add remote-controlled capabilities to my spa. It seems to be quite straight forward (with the appropriate knowledge :)) as the actual keypad communicates with the internal motherboard using a 4-pin cable (VDD, RX, TX, GND).
My newbie assumption is that I should be able to use the Arduino Uno I own as a man-in-the-middle to be able to do both read and write operations over the signal.

Does someone know how I would be able to translate the multiplexed signal coming from the spa motherboard and also generate the appropriate signals to increase/decrease the temperature, or set the pump or the bubbles on/off.

I already checked that the VDD pin is providing a 5V+ current, and I was able to read an analog signal using the RX/TX pins of the Arduino Uno.

I attach some pictures of the controller PCB. The chip in the middle is labelled PIC16F723A.

Can anyone help me, I am eager to learn more about this new stuff :).


You need to know the protocol. Start by contacting the manufacturer, the worse they can do is say no. The next thing I would do is see if I can find it on the web. Next BE SURE the controls are isolated from the mains, if so you are set to continue. Next use a logic analyzer and see if you can determine what you have. Saleae has a fairly nice unit for not a lot of money. The part I like is I can try the protocols they have and generally find what I want. Simply capture the signal and select a protocol. A few hours with it and you will be an expert, it is that easy to use. Depending on the unit you can have a lot of inputs, I use the 8 input device.