Hot Tub Temperature Control

Noob here and hoping to find some help. I have zero experience with the Arduino, but from what I have read it seems to be what I am looking for. I have spent most of the day looking all over the internet for this. Some projects are close but not what I need. I have a decent understanding of electronics and build. When it comes to programming and coding, I can only cut and paste with the best.

I have an older hot tub that uses a 110v timer to maintain temperature and filter the water. This can be inefficient. Plus my temp control is analog and consists of only a dial and a light that comes on when the heater is on or when its ready.

What I would like is a way to a digital read out of the current temp and be able to select the temp I want the tub at. Plus have it turn on a relay when the temp drops a preset number of degrees and turns the relay back off when the temp is reached.

The current timer is a 110v timer that just acts as a switch and provides power to the pump, heater relay, and ozonator. I would just like to replace that with 60A Solid State Relay with optical isolation that is activated by the Arduino. I figured I could use the Waterproof DS18B20 Digital temperature sensor for the input.

I would like a 4 line LCD display. first line or two show a preset text, the third line show the current water temp, and the forth line show the current set temp. I would like to be able to adjust the differential temp as well. With everything mounted in a sealed box, and the screen showing a few push buttons would be nice too, up, down to control the temp.

So in a nutshell I guess I need:

an Arduino (not sure which model)
a 4 line LCD screen that will connect to it.
temp sensor
AC relay
push buttons
sealed box
power supply
the code
a schematic

a lot of help

It looks feasible, as long as you trust yourself to deal with high voltage electrics safely. But what you't trying to achieve is so close to what an ordinary digital central heating room stat does that I wonder whether you wouldn't be better off getting one of those that can accept a remote temperature probe - and that could just mean unsoldering the existing local probe and adding some wires. A decent controller will include a PWM control algorithm that will give much more stable temperatures than a simple thermostat - and would enable you to define a program of temperatures during the day, come on in time to be up to temperature at your set time, and so on, which would all be quite tedious to program yourself with an Arduino.

thanks for the reply.

I was hoping that this would just be the start of it. Down the road I would like it to take complete control of all the controls. Including the both jets (remember one of the pumps is two speed), the lighting and whatever neat little thing we could throw in there.

OK, so it has been a couple of months since this thread was active but…

I am working on exactly what you are talking about. I have only spent a few hours working on it but I do have the temperature control part working. My tub seems to be set up similarly to yours but I don’t have quite as many features as you do. I have a single two speed water pump, a air pump (that almost never gets used), heater, and an LED light inside the tub that all run off of 110v (except for the LED in the tub but it has a transformer to drop the voltage). All but the heater (and low speed of the pump) are controlled by “air switches” in a remotely mounted control box. The heater control was handled by a dial in the top mounted control panel that connected directly into the thermostat. There are also a couple of lights in the top mounted control panel that indicated what was on (high speed pump, air pump, heater, and temperature ready). At some point a “professional” rewired the remotely mounted control box and to say the butchered it would be a HUGE understatement. Instead if using a relay to control the heater and pump they had the thermostat connected directly to the heater and pump - the contacts stuck and the heater would not turn off and the wiring harness was starting to melt. Anyway, that is another story for another time…

What I have done so far is just the temperature control portion of the control. I used an old arduino I had lying around, a solid state relay I had lying around, and a LM35 temperature sensor that I also had lying around (sounds like I have a lot of stuff just lying around…). I have the LM35 resting against the side of the metal heater tube (all of the connections are sealed so nothing will short out) and piece of insulating foam covering the LM35 so the ambient temperature will not interfere with the readings. For the time being I have the on and off temperatures hard coded into the program but I am eventually going to improve on the design and code so I can adjust it without hooking a computer to the unit. It will heat for a maximum of 60 minutes (or until the higher temperature has been reached) and will be turned off for a minimum of 5 minutes (or until the minimum temperature has been reached) before the heat will come back on. The only complaint I have about my code so far it the heater/low speed of the pump will not come on for at least 5 minutes after the unit has been powered up - I am sure it would be easy enough to fix but I honestly am not that worried about it.

I am sure my code is not perfect but it may at least give you a starting point, there are lots of comments to help you figure out what is going on and why…

#include <avr/wdt.h>
//********************************************
//  Hot Tub Control
//  Version 0.1
//  Brian Snelgrove
//
//  Expects the following:
//  LM35 temperature sensor for water temperature
//   + on 5v
//   - on ground
//   vOut on analog pin 0
//
//   - reference (ground) on analog pin 2 (not currently used)
//   
//  Heater Control (low speed pump control)
//   relay on digital pin 2
//
//*********************************************
//variables that might need adjustment, pretty self explanitory
int lowTemp=98;
int highTemp=102;
unsigned long maxRunTime=60;
unsigned long minOffTime=5;


// variables that should not be changed
const int waterTempPin=0;                    //analog pin LM35 is on
const int tempRefPin=2;                      //analog pin connecting to ground to tweak LM35 accuracy
const int heaterPin=2;                       //digital pin heater control is on
int waterTemp=0;                             //initialize the water temp to 0
int waterTempLoop;                           //loop counter for water temperature
boolean heaterOn=false;                      //set the heater off to start with
unsigned long currentTime;                   //current time, based on time sketch has been running
unsigned long heaterLoopTime;                //how long the heater has been on or off
unsigned long waterTempLoopTime;             //how long since the last water temperature polling cycle
int countingWaterTemp=0;                     //used to gather multiple water temperature polling cycles for less temp flutter

void setup()
{
 wdt_enable(WDTO_8S);                        //enable the watchdog timer - if the unit hangs for more than 8 seconds it will reboot
 maxRunTime=(maxRunTime*60)*1000;            //set the max run time to milliseconds
 minOffTime=(minOffTime*60)*1000;            //set the min off time to mulliseconds
 currentTime=millis();                       //get the current time (milliseconds the unit has been running)
 heaterLoopTime=currentTime;                 //set the heater loop time to the current time
 waterTempLoopTime=currentTime;              //set the water temp loop time to the current time
 pinMode(heaterPin,OUTPUT);                  //make the heating element pin an output pin
 digitalWrite(heaterPin,LOW);                //make sure the heating element is turned off to start with
 Serial.begin(9600);                         //enable serial output for debugging/logging
}


void loop()
{
 wdt_reset();                                //reset the watchdog timer
 currentTime=millis();                       //get the current time
 if(heaterLoopTime>currentTime){             //see if the current time is less than the heater loop time (might happen when the current time resets after 50 days)
  heaterLoopTime = currentTime;              //update the heater loop timer
 }
 if(waterTempLoopTime>currentTime){          // same as above
  waterTempLoopTime=currentTime;
 }
 if (currentTime-waterTempLoopTime>10){      //see if we have been at least 10 milliseconds since the last temp polling cycle
  waterTempLoop++;                           //increment the loop counter (we want 100 loops)
  countingWaterTemp += analogRead(waterTempPin);               //read the value from the sensor
  waterTempLoopTime=currentTime;             //reset the timer to the current time
 }
 if(waterTempLoop>=100){                     //if we have been through 100 water temperature polling cycles
  waterTemp = ((((5 * countingWaterTemp)/1024) * 9) /5) + 32;  //convert the analog data to temperature (deg F)
  waterTempLoop=0;                          //reset the water temp loop polling cycle counter to 0
  countingWaterTemp=0;                      //reset the cumulative water temp to 0
  Serial.println(waterTemp);                //debugging stuff
  Serial.print(maxRunTime);
  Serial.print(" ");
  Serial.print(minOffTime);
  Serial.print(" ");
  Serial.println(currentTime-heaterLoopTime);
 }
 if(waterTemp<lowTemp&&!heaterOn&&(currentTime-heaterLoopTime)>=minOffTime){ //if the temp is low, the heater is off, and the minimum off time has passed
  digitalWrite(heaterPin,HIGH);            //turn on the heater
  heaterOn=true;                           //set the flag to true
  heaterLoopTime=currentTime;              //reset the heater loop timer
 }else if(waterTemp<lowTemp&&heaterOn&&(currentTime-heaterLoopTime)>=maxRunTime){ //if the temp is low, the heater is on, and the maximum time has passed
  digitalWrite(heaterPin,LOW);             //turn off the heater
  heaterOn=false;                          //set the flag to false
  heaterLoopTime=currentTime;              //reset the heater loop timer
 }else if(waterTemp>highTemp&&heaterOn){   //if the temp is high
  digitalWrite(heaterPin,LOW);             //turn the heater off
  heaterOn=false;                          //set the flag
  heaterLoopTime=currentTime;              //reset the heater loop timer
 }
}

I have just started the same sort of project

I have an older tub and i am planning a complete replacement of the control unit

I have already learned from your post (watchdog timer !!)

my plans are ....

uno , with ic2 4 line display, dallas real time clock and two temp probes, 4 relays to drive the pumps and heater.

I was going to add a sms module so that i could check the status of the tub and change its settings, ie send a txt message to the tub 'status' and it would replay with the current outside temp, water temp and current mode/set temp. i was thinking you could then send it commands embeded in the text like 'standby' , 'goto38' etc

all the parts are on order and i will post again when I have progressed

Hi, I want to replace my hot tub controller as well. My controller uses a mechanical timer that I've replaced twice already. The firs time it failed, it left the motor running for days and burned it out. Cost me $300 to replace... My hot tub is very old but in good condition other than the controller (and it has a new motor) so it's worth the effort, I think.

I think I would like the controller to contact me if there is a failure, I like that idea, but otherwise want to keep it simple. I figure I will use the relays in the current controller since new relays would be expensive. Also, if I do put in some communication capabilities, then the hot tub can contact me if there is a failure. Not sure if I want to go through the trouble of adding wifi, perhaps just a wireless "trouble light" using a hacked wireless doorbell or something.

Anyway, I was thinking the following:

  • Two temperature sensors (I have a few TMP36s)- One for water temp and one for ambient temp (to prevent freezing here in the north where I live
  • four small relays or SCRs to control the large power relays
  • A small LED or LCD display to display current and set temps.
  • Some water proof pushbutton switches to control the temp (or the buttons can be mounted inside the box if I can make it openable.)
  • A water tight box

There seems to be several people interested in doing something like this... We should collaborate. I will probably post my designs on line once it is finalized...

Would it be feasible to connect your motor (or whatever it is you're trying to protect) through a plain simple timer? You can buy devices off the shelf that will turn things off after a defined period and they aren't expensive. Being mass produced and electronic they are likely to be pretty reliable and to fail safe. Depending what you're trying to achieve, if it makes more sense for your application you can also use a timer which will turn itself on and off at defined points in the day.

It looks like a couple of folks are interested in this idea and at least one other person had ordered some stuff to work on it. What is the latest news from everyone? Now that the cooler weather is upon us it is time for me to start getting back into my spa! I have (pretty much) gotten my tub working the way I want it but I would like to see what everyone else has done! I am working on getting a schematic and some code posted on my personal blog to explain what I have done. If/when I get that done I will post a link or copy the code here to yall can take a look at it if you are still interested.

byrongrabber: I would be interested in seeing your completed design (and anyone else's for that matter).

For a while I have had two problems:

  1. The hot tub controller needs a new stepper relay (too expensive).

  2. I recently got the Sparkdesign Wifi shield and I haven't been able to decide what project to start with it.

Then this morning in the shower (TMI I know) viola! I can replace my controller with an Arduino.

Like some have stated I want to start small and just get the basics working then enhance it later to the point where a can use my iPhone to turn the tub on a few hours before I get home.

jerbo, I have had my controller running for a few months now and it seems to be stable. I have gone through several different versions of code and a few different hardware setups. I tried the network control but seemed to have issues no matter what I tried - wifi shield, ethernet shield with a wifi bridge, ethernet shield with a cat 5 cable back to my router but they all caused me problems. The unit would randomly hang - sometimes on boot, sometimes after a few minutes, sometimes after a few days - so I gave up on the direct network connection. I tried xbee modules to control it but I was not able to get the xbees to talk from far enough away to be happy with them - maybe 20 feet or so and I had to have the xbee inside the house right next to a window for it to connect. I guess the xbee modules use a fequency that does not like to pass through walls or water…

So, the controller I am running now is not network connected at all but it does have a control panel that I can change settings without having to make a serial connection to the unit.

Also, attached is a fritzing drawing of the PCB. That is the way I have it put together on a board but I never did actually use the fritzing drawing to make a clean board, I just used a prototype board from Radio Shack and jumper wires to make the connections on the board. I have about a 6 foot tether of wires running from the board to the arduino unit. The arduino is mounted by the relays inside of the hot tub housing and the control board is on a rail next to the tub so it is easy to get to. I have not mounted it in a box or waterproof container yet, I have a clear plastic bag covering the control and a zip tie keeping closed and so far it has kept the water out. Once the hot tub season is over I will probably mount it in something a bit more robust and nicer looking.

The only real issue I have had is with the LCD and I think it is due to the length of wires I have running to it. Sometimes there are pieces of the text missing, sometimes the text is dim, and sometimes the text is garbled. Honestly, that is the only real issue I have had in the few months I have had the unit running.

As with everything you find for free on the internet - there is no warranty, this may not work for you, if you dont know what you are doing with electricity you can hurt yourself, etc., etc., etc. Use this at your own risk.

The code was too long (over 9500 characters) so I could not post it but it is attached in the text file below.

Untitled Sketch.fzz (15.7 KB)

HotTub_v0_3.txt (15.3 KB)

Hi, hot tubs all over the place, no wonder we have greenhouse gas problem…LOL
Question, How long does it take to heat up, energy to keep hot, cost to maintain, cost of energy.
Ratio of use to non use?
Is it worth it?
If you need a hot tub to relieve stress, get another job…LOL
You might also add to your projects an energy monitor to see how much energy you are using.

Tom… :slight_smile:

TomGeorge:
Hi, hot tubs all over the place, no wonder we have greenhouse gas problem.....LOL
Question, How long does it take to heat up, energy to keep hot, cost to maintain, cost of energy.
Ratio of use to non use?
Is it worth it?
If you need a hot tub to relieve stress, get another job...LOL
You might also add to your projects an energy monitor to see how much energy you are using.

Tom..... :slight_smile:

Replaced the controller on my hot tub years ago, with a custom PCB and arduino code. Web interface and SNMP. Still have to finish the 2.0 model with BT Audio and control.

Hot tubs are wonderful for many sorts of injuries. The cheap ones are power hogs, making water hot with electricity is about your worst choice for cost, and insulation matters a lot. Converting to much cheaper NG or wood heat primary/secondary heat can really reduce the expense. That is also a whole different project.

Hi Byrongrabber,

Thanks for the quick response. I am sure your efforts will help me in my project.

I'm still in the planning stage.

Like most people I have many project going at the same time so it is difficult to say how much time it will take to make any real progress on this. I cleaned off my work bench a few weeks ago and sat the old controller on there but so far all I've done is set two other projects on there as well.

I'll try to post my progress when there is some.

Thanks again.

As a spa technician who worked with relay logic and now digital controls both need improvements by using solid state relays on sockets for the heater 30 amp and 20 amp for each pump and speed. Two temperature sensors compared act as high limit, temp sensor and low flow problems. A touch screen/display can display and set temperature waterproof of course. The Arduino is perfect for this and to save more energy use variable speed pumps. Run time can be programmed for 10 20 etc minutes .A perfect solution to those old mechanical spa packs and costly conversion to digital controls.A current sense can be added to indicate heater failure. While I have not actually written the code yet I have considered it Two 10K water sensors available from pool supplier or dual sensor heater tubes. To keep the sketch smaller the digital outputs can feed support ICs like timers. SSRs provide the isolation. GFCI breaker must be used on high voltage as well as ground wires. I am considering making a low voltage demo model with LEDs or small dc motors.The sketch is not all that complicated. Analogue inputs for temperature and digital outputs. WiFi, Ethernet or Bluetooth can be used in place of a keypad.

Thanks for everyone's postings here, it has been inspiring. I have an older tub with no leaks and am faced with replacing the spa pak even though the heater (element) works and the pump has been rebuilt. The bill with installation was going to be around $1500. I have some SCR's and related circuit breakers/fuses that I will re-purpose with the arduino, based on what people have shared. I will keep folks posted with my progress. I have a two speed pump (240 volts) so it sounds like what byrongrabber has done will be similar to what I am trying to accomplish as well as rogertee. One question though, has anyone used the pressure switch which seems to be common on most spa packs, and is wired in series to the heater relay? I'm assuming that if the pump fails, then the pressure drops and disables the heater? I supposed this could be wired in series with the SCR's control voltage? A few more thoughts:

  • the OPTO scr's recommend non-inductive loads and not things such as some motors, relays etc.
  • OPTO also suggest using PWM for heater type loads which makes a lot of sense to control the temperature. Has anyone taken a stab at this?
    Cheers

Here's an update to were I am at with my little hot tub controller project..

Hardware:

Arduino uno, Digole 4x20 blue lcd (ic2), membrain 4 button keyboard, 2 x one wire temp sensors, real time clock, 4 way 10a relay board, 1 way 30a relay board, sim900 SMS/phone module.

After I had got a basic design on paper, I decided that the whole project could be done with pre made boards, I do have the facilities to make pcb boards but it seemed a bit overkill, there is so little 'glue' circuitry that only a small square of vero board will be required!

my design will:

control...... heater, circ pump, main pump, pump2, blower,

accept input from..... keypad, SMS and Serial, temp sensor for water, and outside

Display.... 4x20 Lcd, optional second display

progress so far is good , all the main components are on the workbench and connected and code has been written, most of the basic function are now complete, its basically a working controller!

so far the code includes the following

settings are stored in EEPROM so on power up it will recover its basic fail safe settings.

there is a frost protection mode which activates automatically I the water temp and the outside temp both fall below 5deg C, in frost protection it cycles the water pumps and heats if required to 5 deg

there is a standby mode, in this mode you can set a temperature, which it will maintain, run the circ pump when heating and cycle the pumps for a few mins each hour to purge any stale water in the pipework.

manual mode allows you to adjust the temp, turn on the pumps and blowers etc

I am planning an auto mode which will maintain temp and randomly cycle the pumps for random times, not sure if I need this but may consider it especially if I decide to control the spa lighting as well.

SMS:

This still needs a little more work, at the moment I have to manually turn on the sms module and check its ready, so I need to had a little hardware/software routine to automate this.

The controller send me an SMS if it goes into frost protection, and I can get it to send a status report with the current operation mode, outside and water temp

I need to write a procedure to decode incoming SMS messages and extract commands, just getting my head around how arduino and C++ handles strings (first time coding in C++)

the goal is to be able to send commands for Example

Status : sends back an SMS with current temps and mode
GO 38: sets the mode to standby and the set temp to 38
GO frost : power down and enter frost protection mode
REG (pin code): store the calling tel number in memory, so that only the registered phone can access the tub

I also need to write a little code to set the time, although it may be simpler just to set it from the last SMS received, currently its just been set from some example code, but it seems to be keeping good time

As its now just a matter of time before its a complete project, I have started to assemble the boards onto an aluminium chassis that will fit inside the existing controller box, final assembly if you like!

a couple of points about my design...

I used relays rather than SSR's , Why ?, well when an SSR fails it can fail short!, this rarely happens with the humble relay, secondly if your tub has a dual speed pump (circulation and jets1) the you should never power both windings up at the same time!, so my dual speed pump has two relays , one for on and one to switch to the high speed via change over contacts, making it impossible to power both windings.

Safety

My tub heater tube has fitted to it both an over temp cut out and a pressure switch, these will be wired in series with the heater to ensure it can not over heat and the heater will only run when the circ pump is running, make sure you include this in your design !

As I an using the existing housing , this contain both over current trips for all pumps and a RCD, both are essential.

It would be interesting to see how others are progressing , has anyone else got any good features to add ?

I'd be inclined to add some telemetry - either recording to an SD card or push the data to a server somewhere. At least until the system is fully debugged, I'd want to keep an eye on what the controller is doing in case it's burning power for no good reason. Good logging will tell you that.

yes indeed, the hardware serial port will be the DEBUG output, the sms module is on soft serial

Hey sureview, do you have an update? Can you provide some more detail, ie, a parts list, and schematic? i am very interested in the relays that used and how you wired them.

thanks!!

sureview:
Here's an update to were I am at with my little hot tub controller project..

Hardware:

Arduino uno, Digole 4x20 blue lcd (ic2), membrain 4 button keyboard, 2 x one wire temp sensors, real time clock, 4 way 10a relay board, 1 way 30a relay board, sim900 SMS/phone module.

After I had got a basic design on paper, I decided that the whole project could be done with pre made boards, I do have the facilities to make pcb boards but it seemed a bit overkill, there is so little 'glue' circuitry that only a small square of vero board will be required!

my design will:

control...... heater, circ pump, main pump, pump2, blower,

accept input from..... keypad, SMS and Serial, temp sensor for water, and outside

Display.... 4x20 Lcd, optional second display

progress so far is good , all the main components are on the workbench and connected and code has been written, most of the basic function are now complete, its basically a working controller!

so far the code includes the following

settings are stored in EEPROM so on power up it will recover its basic fail safe settings.

there is a frost protection mode which activates automatically I the water temp and the outside temp both fall below 5deg C, in frost protection it cycles the water pumps and heats if required to 5 deg

there is a standby mode, in this mode you can set a temperature, which it will maintain, run the circ pump when heating and cycle the pumps for a few mins each hour to purge any stale water in the pipework.

manual mode allows you to adjust the temp, turn on the pumps and blowers etc

I am planning an auto mode which will maintain temp and randomly cycle the pumps for random times, not sure if I need this but may consider it especially if I decide to control the spa lighting as well.

SMS:

This still needs a little more work, at the moment I have to manually turn on the sms module and check its ready, so I need to had a little hardware/software routine to automate this.

The controller send me an SMS if it goes into frost protection, and I can get it to send a status report with the current operation mode, outside and water temp

I need to write a procedure to decode incoming SMS messages and extract commands, just getting my head around how arduino and C++ handles strings (first time coding in C++)

the goal is to be able to send commands for Example

Status : sends back an SMS with current temps and mode
GO 38: sets the mode to standby and the set temp to 38
GO frost : power down and enter frost protection mode
REG (pin code): store the calling tel number in memory, so that only the registered phone can access the tub

I also need to write a little code to set the time, although it may be simpler just to set it from the last SMS received, currently its just been set from some example code, but it seems to be keeping good time

As its now just a matter of time before its a complete project, I have started to assemble the boards onto an aluminium chassis that will fit inside the existing controller box, final assembly if you like!

a couple of points about my design...

I used relays rather than SSR's , Why ?, well when an SSR fails it can fail short!, this rarely happens with the humble relay, secondly if your tub has a dual speed pump (circulation and jets1) the you should never power both windings up at the same time!, so my dual speed pump has two relays , one for on and one to switch to the high speed via change over contacts, making it impossible to power both windings.

Safety

My tub heater tube has fitted to it both an over temp cut out and a pressure switch, these will be wired in series with the heater to ensure it can not over heat and the heater will only run when the circ pump is running, make sure you include this in your design !

As I an using the existing housing , this contain both over current trips for all pumps and a RCD, both are essential.

It would be interesting to see how others are progressing , has anyone else got any good features to add ?

Update....

Well work commitments and other projects have held me back a little, and I keep adding new features, but progress is now speeding up , mainly due to the tub being empty and the old controller is now on my workbench!

First of all I would like to point out that I have changed the Arduiono from a UNO to a MEGA2560, A few reasons,

  1. I was running short of RAM,
  2. I thought this RAM shortage was truncating my received SMS messages,
  3. Although I had just enough I/O Pins with the UNO, I have some expansions plans, more on that later

so what's working...

operation modes including , Frost Protect, Standby, Manual and Rundown

temperature control , frost protect temp, standby and runtime temps over temp in software

manual control of Spa functions, pumps etc

Front panel display, buttons, beeper etc

Basic current management, my original tub controller, would only allow certain combinations of pumps/ heater blower to be operated simultaneously, I have replicated this in the control logic

SMS

SMS status, send you a SMS back wit stats

SMS mode, to flip the tub to a new mode

SMS GOXX, to set a new temp

SMS Time , set the RTC from text message header

So what's the hold up ? you may ask...

sometimes the SMS module will not respond, so I think I need to write a routine to query it every hour or so and check its status , if I don't get a response I will fire a relay to do a hard reset on the SMS module

I think I need to implement a watch dog timer , this is supported so its not a big update

there is an Ozone receptacle on the old controller so need to add support for that .

the Pressure switch which will just be wired in series with the heater relay line, I think I will now monitor this in software too, adding an HeaterEnable to the logic

I need to write a menu to set up the basic config, things like default standby temp, clock setting , lighting etc

So in actual fact there is not a lot to do, and the pressure is now really on, the tub is drained , and after only one week I am missing it !

The old spa control panel has been ripped to bits , chopped down until I am just left with the trim, this I will re use when building the new topside control panel, which if it all comes together how I plan will look nice and professional ..

I am hoping around a week from now it will be done!