Wi-Fi on your Lay-Z-Spa. Great way to remote control
[Updated 2025-06]
A noteworthy update that was shared in the comments. If you go along with the guide and attempt to use the WeMos D1 mini board. Make sure to get the v1 or v2 (v2 is used for this guide which will be the recommended version) board version with the micro USB port. As pointed out by Gerwin in the comments, v3 and most likely newer versions will not function properly. The board usually has the version outlined on the board itself to be able to confirm.

[Updated 2024-08]
A small update that may be worth noting. Nothing has changed as of the last update. Some new versions of these integrations were released (ver. 4.4.5 at the time of writing) but did not impact the guide I previously wrote. So this guide can still be followed to achieve the results stated. Regarding some news, there are now users selling complete kits that add the Wi-Fi functionality so if you are not tech-savvy enough to attempt this you may be interested in just getting a pre-made one:
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions/615
Disclaimer: I am in no way associated/affiliated with the post above, nor have I purchased this item or confirmed its legitimacy. I am solely basing this off of the reviews and comments left on the post that the seller appears to be legitimate in what he offers. Take this with a grain of salt and if interested, buy at your own discretion.
[Updated 2023-06]
Since last summer the Lay-Z-Spa has been in storage. In the meantime, I have gotten an explosive amount of questions regarding this year’s update as it seems many are trying to find a solution on how to Wi-Fi enable their hot tubs. So here is an update.
As of writing the current version of the integration is v4.1.3 which we will be using.
The parts/tools that are mentioned in the original guide still hold up to this day so you can still use the same ones if you are doing this fresh or upgrading an existing install. The guide assumes you have the same model pump S100101 and the d1_mini board with 5V pin out and Wi-Fi functionality.
The setup and upgrade
We download the latest version of the code from visualapproach repository. Extract it somewhere that we are going to work with it. Nothing changes here from the original guide we will still use Visual Studio Code to perform all the actions. We use PlatformIO to open the code folder. But this time the only change we need to make is the board to d1_mini.

Set the parameter as in the screenshot:
board = d1_mini
That’s all the changes we are going to make in VS Code. We now connect the board if we haven’t already with a USB cable and compile and upload the code. Follow the picture below for the proper upload steps to avoid errors.

Do keep in mind that if you are using my old guide as a setup for your board or you are upgrading. The pin out and your Wi-Fi/MQTT settings are reset to default and you will need to set up this again.
After the upload is complete your board should be accessible once again via http://layzspa.local I urge you to set up the basic settings like Wi-Fi so you have connectivity after you unplug it and use it as normal.
Once the UI is opened in your browser you will notice if you used it before it is slightly different. The first thing to do is click on the hamburger menu button in the top-right to open the menu. We should first go to Hardware Config and adjust the settings to our board and pump.
So here we have a multitude of settings that were not available before. This is why we no longer need to set the pump model and pinout in VS Code because it is now all done through the UI. Pretty neat!
The settings for the pump model number S100101 are as below in the screenshot. You will also need to set the PCB settings and Pinout if you soldered the wires the same way as in the original guide.

So we set it to 6 wire, 2021. PCB is set to Custom and Pin out is CIO: 4/3/2 and DSP 7/6/5/0. If your board or pump or soldered pins differ you must adjust this accordingly to your model/board.
We save the config and restart the board from the hamburger menu. If everything was correct you should see your model changed at the bottom of the main menu based on your settings.

You can test if it works properly by adjusting the settings. The way I like to test that it works is to enable the Bubbles function which will make the pump blow air. As well as adjusting the temperature settings. I would not advise trying the filter or heater options since I do this unplugged and it has no water inside so we don’t want to damage any internals.
So that is pretty much it. It has become much more straightforward to do with fewer parameter changes in VS Code. You can still follow the old method regarding the programs/tools you need. Just use this refresher for the rest once you have everything built and ready.
As always I hope this has helped you out. Happy bathing! Be sure to check out my other posts like:
Using 3D printing to improve your Lay-Z-Spa experience
If you are interested in integrating your hot tub in Home assistant you can check out this post here:
Home Assistant Hot Tub Integration
[The old method from 2022]
Since the start of summer, I have noticed a sale for some of these Lay-Z-Spa inflatable hot tubs. So I decided to get one. We used it for a few weeks outdoors in our yard and I noticed something. We usually tend to go in at the end of the day and that usually means not forgetting to heat it so that it is at the right temperature we want it to be. Sometimes you turn it on and leave the filtering on and forget the heating. Once the evening comes you go out and see that you forgot to heat it up. Bummer.
Since then I have decided there has to be a solution to this. Of course, Bestway offers pumps with Wi-Fi-enabled pumps and an app to accompany them. But most hot tubs do not include this feature and the pumps alone cost almost the same as the whole hot tub. Here comes a DIY solution courtesy visualapproach on GitHub.
You can find the page here:
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA

The solution
The idea of this is we add a module inside the pump that interfaces with the pump itself and the display. Also provides Wi-Fi connectivity with a Web interface and remote controls. This supports many different hot tub models from Bestway. The personal one that I am using is the Cancun which has the 2021 pump on it, not like the older egg-shaped models. The features of it are the same as the Miami version except for the texture of the liner.

First off for this method to work we need to identify the pump model. There is a sticker on the side of the pump that will tell you what model you have. For this specific setup, I can confirm it works with model number S100101.
If you have the same one you can completely follow along to get this to work. If it is different or you have the egg-shaped pump better to refer to the GitHub page as there is better documentation on different models and what parts you need to make this work.
For this setup, we will be using a WeMos D1 Mini board.

A pair of male-to-female JST-SM 6-pin connectors

Soldering iron, a screwdriver, and a micro USB cable for connecting it to our PC.
Firstly you need to disassemble the pump and open it up to expose the wiring. You should disconnect the pump from the tub and power it off. There are 6 screws that we need to remove around the middle of the pump they can be accessed from underneath in the groves.

Check the locations underneath on each side, front, and back. You will find holes and you need to remove the screws to be able to lift the top half off to expose the connections. Take care when lifting the top half the handles for lifting on the side might come off. That is normal don’t worry you can put them back in later. You will also want to take care to not lift it too much off as the wire that connects to the display is not that long and you don’t want to damage it because we will need to use it. For easier use going forward, you can disconnect the cable.
We now have the pump prepared for modding. We will need to prepare the WeMos board with the code that is needed to control it.
Download Visual Studio Code and install it. https://code.visualstudio.com/
Within the application go to Extensions or Ctrl+Shift+X search for PlatformIO IDE and install it. It might ask you to restart or reload the application too. You will see the new icon available here

Download the latest release from the GitHub page https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/releases
Extract the contents to your preferred location. Via the PlatformIO home page open your project and navigate to the extracted folder with the 6-wire version

Once inside the folder click to open it

You will have an editor with a list of files on the left side. First, let’s open model.h, uncomment the Miami model, and comment out the PRE2021 with the // symbols. I also use the PCB_V1 version but I do believe the V2 can be used. So comment accordingly

At the bottom, you should find the platformio.ini file. Let’s open that up and define our board as the WeMos D1 mini

Next, we will open the BCW_6w_type1.h file and define the pins that we are going to use on our WeMos board.

Those are the pins we will solder the JST connector wires to. Before we start soldering let’s build and upload our code to see if it works correctly.
Upload the sketch via USB with the arrow at the bottom left corner

Once that is done we need to also do it via PlatformIO as it will give you a 404 error when trying to connect if you don’t do this. Click the PlatformIO icon and go to Project Tasks>nodemcuv2>Platform. Then Build Filesystem Image.

Wait for it to complete and then Upload Filesystem Image. Once both are done the WeMos will start providing a Wi-Fi hotspot called Lay-Z-Spa Module. The password for it is layzspam0dule. Once connected you can access the module via your browser by visiting http://layzspa.local. Click the three lines at the top and go into Network Config

Here you can set up your home Wi-Fi network. So that it will always connect and be accessible from your home network. Enter the SSID and password of your network and click save. Shortly it should be connected to your network. We can leave everything else as is for now and continue with the installation of the module to the pump.
Now we solder the connector cables. Here is the diagram of how the wiring should fit.

Solder the wires as shown in the above diagram. We won’t be using the one wire on the white-colored wire connector as it is not needed since it is used for the audio sound when turning on. Once installed we will get this little jingle that plays whenever you turn on the hot tub.
You should have something like this once done with one female and one male connector coming from the board.

Not my exact picture but taken from the GitHub page as an example. Now plug both the connectors into the two plugs that we disconnected which connect the display to the pump. This WeMos board will sit in between them and act as the bridge and controller.

Without assembling everything back we can test if it works. Place the top cover with the wiring and board inside somewhere in an empty space. Plug the power in and turn on the pump. If everything went well you should hear a jingle. The display will scroll some text informing you of the current version and show the IP address too. It will then display as normal showing the temperature. Now we can test if the remote control works or not.
Go into the web interface and you should have controls ready to test.

Since when I tested the board was not connected to the tub and there was no water I avoided testing the Heater and Pump functions. I just tested if setting the temperature and activating the Bubbles works. So if you were able to turn on the Bubbles and the pump started blowing air congratulations you should have everything working. Setting the temperature up or down should reflect on the display as well. We’re done! Now all that is left is to assemble the top cover back with the 6 screws. If you are worried about the board getting wet (not that I found any water inside the pump) You might want to cover it with something or have a case for it. You can of course 3D Print one for yourself. There are many models on Thingiverse like this https://www.thingiverse.com/thing:2045664
Conclusion
That is pretty much all there is to do. Once assembled you can place it back on your hot tub and check all the other functions. Also, be aware of your Wi-Fi reception if the hot tub is far from your router it might not reach to connect so check if there is good connectivity. For additional functions, it supports MQTT so you can add the Lay-Z-Spa to something like Home Assistant for automation and control. For more information on the features, model support, issues and support go to the GitHub link https://github.com/visualapproach. The community is quite active and healthy there and can help you out.
I hope this has helped you and provided some fun functionality.
Hi,
Thank so much for sharing this project! This way I can warm-up the jacuzzi only by solar power.
I can confirm you need the Wemos D1 mini v2 with micro USB port. Tried it with a 3.0 pro and one without any version, both USB-C. Both didn’t work (the web interface etc will work, however -if- the display functions it only gives little sounds when you touch the buttons, pump and heater don’t work). Checked all the soldering twice, so that was not the problem.
Not giving up on this project I ordered a v2 with Micro USB and followed the same steps (from the new part of the guide). And now it functions flawlessly. Maybe it’s a good idea to specify that in the first steps of your guide?
Hey,
Thanks for testing and the update. I added a new note to the post based on your findings.
Hi,
i have a Wave Spa hot tub that has a controller and an integrated heater within the foam walls. is it possible to use something like this within the controller to remotely control the buttons via wifi and an app?
is this somehting you could adapt/do for another brand of hot tub?
thanks in advance!
Maybe v3 doesnt support more than 3.3v for pin. Found this info in manual.
Think i have to search for v1 or v2 and try again. Thanks
Hi,
Indeed the newer versions may not be tolerant to 5v. But you can check the discussion here if you find any helpful information:
https://github.com/visualapproach/WiFi-remote-for-Bestway-Lay-Z-SPA/discussions/312
I don’t have a way to confirm this since it’s installed in the pump but I think for me it was the v1 version that I used.
Hi my friend,
Sorry to bother you. I have the same pump model you mentioned in your guide (S100101)
I used the D1 Mini V3 board (5v pin) and made all the connections as described, double-checked with a multimeter.
I tried both an older firmware and the latest one. When the board is connected to the PC, I can access it via IP.
But when I connect it to the pump, nothing shows on the display. I just hear a couple of “clicks,” but the board doesn’t power up and the screen stays off.
Any ideas? Thanks a lot!
Hello,
I am trying to have my layZspa switched on based on grid voltage. If voltage rises to critical spa should start to prevent high voltage and inverter stopping. This is a desired behaviour as with this, in worst case I find my spa nice and warm.
Any idea how can I achive this
I already simulated a button press with a smart relay but forget about the child lock. …. ccc
thank you
Hi,
The way I’d do it is have some automation software. For example here where I integrated the LayZspa to the my home assistant instance:
https://antanaitis.lt/2023/09/13/home-assistant-hot-tub-integration/
Then you would possibly get like a smart grid meter or if in my example I have a solar plant which I can monitor and have an automation to trigger the spa to turn the heat pump on/off based on the current grid voltage or the generated power at the moment. For getting some automation example you can always use something like claude/chatgpt/bing AI’s to get you at least a rough template from which you can have a better starting point to get to where you want.
I do it on d1_mini and program it with no effect. When I connect to the lazy spa’s Wi-Fi, I enter my Wi-Fi password. After this, I no longer see the lazy spa chain. Does this mean it has connected to your home network? After connecting to the pump, there is nothing on the reader. Doesn’t work. maybe some other pin out?
Hello @Antanaitis,
I’ve done all steps but when connecting to the SPA I have no controls on SPA (neither on app). I have run the hwtest page and there is no error : does it mean that the soldering is ok ?
How can I diagnose what’s wrong ? I’ve read that on most cases it’s related to soldering but the hwtest page says everything is OK so I’m in the dark here.
Thank you for your help!
Im using fireox have tried chome to an http://
I get the message
Content Encoding Error
The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.
Please contact the web site owners to inform them of this problem.
and its not possible to allow it
Not something I have experienced. Never seen such an error. Got any antivirus/firewalls running? Do the browsers you use have any add-ons/extensions enabled? I would try from a clean slate and test on a fresh unmodified browser.
If all else fails best would probably be to try to do a network recording on for example Firefox:
Recording Firefox network log
With that you could then try to raise an issue in the maintainers GitHub page, this might have enough information to troubleshoot further.
I have tried to connect to the bord after setup wifi, it says that the ip to the board its not safe so i cannot acess it. Wifi setup went fine.
I should be able to connect to the board without connecting it to the spa right ?
Your browser security is most likely blocking it. So you would need to allow the connection. Some browsers just don’t let you connect to sites that are hosted under http:// instead of https:// so they get marked as insecure.

Example in Firefox to allow such connections. Depends on the browser and settings you are using for it may differ.
thanks for replay