NickB1 / OpenSpa

An open source hot tub controller using the ESP8266 (WeMos).
GNU General Public License v3.0
15 stars 2 forks source link

Question #1

Closed tmjo closed 3 years ago

tmjo commented 4 years ago

Hi @NickB1,

Sorry for opening this as an issue, it's more of a question, and I hope you don't mind me asking here. I'm following your OpenSpa and also the balboa-spa-mqtt-controller projects trying to do something similar. My controller is (still) working but is a decade old. If it fails, I'll try do implement a solution similar to OpenSpa, but meanwhile I would like to connect my spa to get status and control if with an ESP8266.

My spa is a Balboa HSEX2000 Mach3 (part no 54503-01) and is branded GL2000 inside a plastic enclosure (know there is a different variant of the same with metallic enclosure). Display is ML400.

Would you mind me asking which display is connected to yours? And do you know the type of controller that was originally fit to it? I see you mentioned 25501 on hackaday.io, would you mind sharing some more details?

I was initially trying to use the information found here, but found out my spa has a 8-pin Molex connector to the display and not 4-pin as is the case for the referenced project which is RS485 based. See particularly this issue if you're interested. Although yours is a RJ45, I was hoping it would be similar to mine, just different connector.

Anything you could share that could help me shed some light on my issue? Protocol? Connections?

Thanks in advance.

NickB1 commented 4 years ago

Hi,

No problem. At first glance the HSEX2000 Mach3 seems to be fairly newer then my original 25501 board. The Balboa 51057-01 display seems to match my display the closest (the spa manufacturer has stuck another layout over it with their logo).

I've committed my findings about the display protocol in the documents folder. It's best to leave the display plugged in and probe the lines with a scope. My controller just outputted a single clock pulse without any data when no display was plugged in. It waited for the data in line to go high before outputting the full clock train with data.

tmjo commented 4 years ago

Thanks a lot! I believe this information will help me a lot in deciphering my spa. I'll try to connect a oscilloscope and measure one of the next weeks when I'm back at work and have one available. Even if the models are different, I guess they don't change the protocols every second day, so since mine is not a match with the newer series (4-pin) I really hope they are similar to yours!

Bostwickenator commented 3 years ago

Hey Nick. I'm also looking into this wanting to emulate the panel side. I don't see in that document if this is using any kind regular serial protocol. It looks like you are just clocking out your data "by hand". I'm thinking from the scope traces it's 3V signaling? It also looks like you are commanding the display segments themselves instead of writing a temperature value and the panel using that to set the segments itself. Did I understand that correctly?

NickB1 commented 3 years ago

Hey Nick. I'm also looking into this wanting to emulate the panel side. I don't see in that document if this is using any kind regular serial protocol. It looks like you are just clocking out your data "by hand". I'm thinking from the scope traces it's 3V signaling? It also looks like you are commanding the display segments themselves instead of writing a temperature value and the panel using that to set the segments itself. Did I understand that correctly?

Hi, you can see some scope screenshot of the protocol here: https://github.com/NickB1/OpenSpa/blob/master/documents/Balboa/Balboa_Display_Measurements.pdf It's not a regular uart, it's a custom data/clock protocol where individual display segments data and button data is clocked through. Maybe newer displays use a regular uart but I don't have any experience with these.

Bostwickenator commented 3 years ago

Thanks for the reply. I was looking at the screenshots but was having a little trouble figuring out a few parameters for instance in (clock + data), zoomed (display: 35.0C) there appear to be three signal levels for the data line but I don't see any references to that in your protocol implementation. Is that just an artifact of the scope? It looks like the clock signal is 4V and data is only 500mV? I read the OWON scope manual it that seems to be how I should interpret the screenshots. Those values just seem a little odd so I thought I'd reach out and ask. Thanks for the help of even posting this it's invaluable.

On Tue, Oct 5, 2021, 4:04 AM Nick B. @.***> wrote:

Hey Nick. I'm also looking into this wanting to emulate the panel side. I don't see in that document if this is using any kind regular serial protocol. It looks like you are just clocking out your data "by hand". I'm thinking from the scope traces it's 3V signaling? It also looks like you are commanding the display segments themselves instead of writing a temperature value and the panel using that to set the segments itself. Did I understand that correctly?

Hi, you can see some scope screenshot of the protocol here:

https://github.com/NickB1/OpenSpa/blob/master/documents/Balboa/Balboa_Display_Measurements.pdf It's not a regular uart, it's a custom data/clock protocol where individual display segments data and button data is clocked through. Maybe newer displays use a regular uart but I don't have any experience with these.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/NickB1/OpenSpa/issues/1#issuecomment-934213812, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAMOHDFQ2ZYIV3VRRHC72RTUFK5TTANCNFSM4QF56FBA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

NickB1 commented 3 years ago

Good catch, I think the multiplier on the data channel of the scope was not configured to be the same as the probe (probably should be x10). Both signals have a logic level of 5V. Here is a snippet of the schematic where the level conversion to 3.3V happens to interface it with the esp8266.

image

netmindz commented 2 years ago

The VL series isn't compatible with the GL controllers @tmjo not sure why not. So they may or may not share the same protocol. I'll have to hook up the scope and see what we get