Balboa-GS510SZ
Balboa-GS510SZ copied to clipboard
An Arduino/esp8266 library to direct interface Balboa Series GS (GS510SZ) hot tube control system.
Balboa-GS510SZ with panel VL700S
Software
version 1.3
- New example sketch for Home Assistant users, thank you netmindz
version 1.2
- Updated a failure of the intepretation of "9" in
Balboa_GS_Interface.cpp
- Changed to ElegantOTA in
Balboa_GS_MQTT.ino
- Added
Stop
andReset
MQTT interface inBalboa_GS_MQTT.ino
version 1.1
- New function
updateTemperature
added to set a temperature value instead of "push" button x number of times - Balboa_GS_MQTT sketch updated with AsyncElegantOTA
version 1.0
- Basic functionality to read and set status using a Balboa_GS developed library. Two examples are provided, first with simple read and set functionality and the second using MQTT for remote access.
RJ45 pins

PIN | Description |
---|---|
PIN 1 | Functionality unclear! |
PIN 2 | Functionality unclear! |
PIN 3 | Button data |
PIN 4 | GND |
PIN 5 | Display data |
PIN 6 | Clock |
PIN 7 | 5 VDC |
PIN 8 | Floating output |
Measurements
PIN 1 and 2
PWM output from control system, same on both pins. Unclear functionality for these PINs still! Maybe some internal light supply?
50Hz, pk-pk=18v, mean 5V
PIN 6 (Yellow - clock), PIN 5 (Blue - display data), PIN 3 (Pink - button data)

Conclusion
- The clock is pulsing 7 times for each chunck of display data, totaly 39 bits and 3 times for button data. A complete cycle 42 pulses.
- Totaly of 6 display data chunks in each cycle
- Each cycle is repeted every 20 ms
- One total cycle duration 1.88 ms
- Bit duration for display data is 10 microseconds for display data
- Bit duration for button data is 60 microseconds
Display Data
Display shows 37.5C - How does that translates into the bitstream? The first 4 chunks is coded in BCD to 7 segment LCD (see reference) but only with 7 bits sinse the LSB always is (0).
3 = 1111001(0) = 0x79 (Chunk 1)
7 = 1110000(0) = 0x70 (Chunk 2)
5 = 1011011(0) = 0x5B (Chunk 3)
C = 1001110(0) = 0x4E (Chunk 4)
Chunk 1 - bit(0-6) | Chunk 2 - bit(7-13) | Chunk 3 - bit(14-20) | Chunk 4 - bit(21-27) | Chunk 5 - bit(28-34) | Chunk 6 - bit(35-38) |
---|---|---|---|---|---|
LCD segment 1 | LCD segment 2 | LCD Segment 3 | LCD segment 4 | 28 - Button down/up | 35 - Heater |
29 - ? | 36 - Pump 1 | ||||
30 - ? | 37 - Pump 2 | ||||
31 - Standard mode | 38 - Light | ||||
32 - ? | |||||
33 - ? | |||||
34 - ? |
Button data
Button | Decoding bit(0-2) |
---|---|
Mode | 0 0 1 |
Temp up | 1 0 0 |
Temp down | 1 0 1 |
Light | 0 1 1 |
Pump 1 | 1 1 0 |
Pump 2 | 0 1 0 |
Pump 3 | 1 1 1 |
Wiring
Since the display and controler unit hardware design is unknown an OR-gate is used to prevent damage if simultaneous HIGH/LOW levels from display and Arduino.

PCB fabrication
Gerber files located here: PCB Balboa-GS510SZ
References of great help!
- https://github.com/NickB1/OpenSpa/blob/master/documents/Balboa/Balboa_Display_Measurements.pdf
- https://www.olivierhill.ca/archives/72-The-Internet-of-Spas.html
- https://create.arduino.cc/projecthub/meljr/7-segment-led-displays-102-using-a-shift-register-6b6976
Other Balboa projects
- GL2000 Series https://github.com/netmindz/balboa_GL_ML_spa_control
- BP Series https://github.com/ccutrer/balboa_worldwide_app
- GS523SZ https://github.com/Shuraxxx/-Balboa-GS523SZ-with-panel-VL801D-DeluxeSerie--MQTT