Heater and its SSR always on

So after I finally got me heater in place and all parts hooked up. After booting it all up, both SSR indicator lights were off. When I assigned the fridge and the heater in the device configuration tab, both turned on at the same time. They were initially set to “inverted” and would remain on no matter which mode I was in (Off / Test / Fridge Constant / etc). Once I changed both the fridge and heater to “not inverted” the fridge shut off and would function normally (ie turn on in “fridge constant” mode when the fridge temp was set below the fridge temp probe reading and would shut off when it had reached or was lower than the set temp) however the heater is still on continuously, no matter what mode I am in. I can not even shut it off by changing its function to “none”.

When I run a “sudo halt” command on the raspberry pi to shut her down, though the heater then does shut off with the rest of the system.

Anyone have any ideas on what may be causing this?

In case its helpful here is a screen grab of my device menu (as configured where the fridge worked as planned and the heater is always on:

Not-inverted is the right setting.

I am surprised that you cannot uninstall it by setting the function to None. If you do that, you should not change the device slot.

If you cannot uninstall the heater, you can always reset everything by clicking the factory defaults button in advanced settings. Then re-add both as not inverted.

I reset the whole thing and then installed each device one at a time and it now is working as it should! Oddly, I noticed before the reset that the buttons “send to photon” etc in the interface had replaced with “send to Arduino”. After resetting it was back to normal.

I’m currently running a few tests in fridge constant mode and then will fill a fermentor with water for a full profile mode test.

For some reason I cannot seem to post a new subject in this community. However, I am having a similar issue. I configured the brewpi and everything seems is updated according to the guide. The one problem I am having is the SSR output from the pins is causing the SSR to always be on.

I hooked the heater SSR up to output 1 and the SSR seems to always be on 100% when the pigtails are plugged into the brewpi spark. If I unplug them, it turns off. I put a meter to the brewpi and it shows that the two pins are normally closed. I believe this is causing the issue. Even with the spark off, it is still shorted and keeps the SSR on.

Shouldn’t they be normally open? Am I missing something that would cause the SSR to always stay on when plugged into the unit?

Appreciate the help in advance!

Kory

@Kory_Kendziora:
Did you connect both wires from the green terminal to the SSR?
Did you install the SSR in the device list as not-inverted?
Do you have a photo of how you connected this?
Do you get this result on all 4 outputs?

Can you share the content of the control algorithm tab?

 {
   "kind": "Control",
   "pids": [
     {
       "kind": "Pid",
       "name": "heater1",
       "enabled": false,
       "setPoint": {
         "kind": "SetPointSimple",
         "name": "fridgeset",
         "value": null
       },
       "inputSensor": {
         "kind": "TempSensorFallback",
         "onBackupSensor": false,
         "sensor": {
           "kind": "TempSensor",
           "name": "fridge",
           "sensor": {
             "kind": "OneWireTempSensor",
             "value": 19.0625,
             "connected": true,
             "address": "28AA468008000004",
             "calibrationOffset": 0
           }
         }
       },
       "inputError": null,
       "Kp": 10,
       "Ti": 600,
       "Td": 60,
       "p": 0,
       "i": 0,
       "d": 0,
       "actuatorIsNegative": false,
       "outputActuator": {
         "kind": "ActuatorPwm",
         "value": 0,
         "period": 4,
         "minVal": 0,
         "maxVal": 100,
         "target": {
           "kind": "ActuatorMutexDriver",
           "mutexGroup": {
             "kind": "ActuatorMutexGroup",
             "deadTime": 1800000,
             "waitTime": 0
           },
           "target": {
             "kind": "ActuatorPin",
             "state": false,
             "pin": 16,
             "invert": false
           }
         }
       }
     },
     {
       "kind": "Pid",
       "name": "heater2",
       "enabled": true,
       "setPoint": {
         "kind": "SetPointSimple",
         "name": "beer2set",
         "value": null
       },
       "inputSensor": {
         "kind": "TempSensor",
         "name": "beer2",
         "sensor": {
           "kind": "TempSensorDisconnected",
           "value": null,
           "connected": false
         }
       },
       "inputError": null,
       "Kp": 10,
       "Ti": 600,
       "Td": 60,
       "p": 0,
       "i": 0,
       "d": 0,
       "actuatorIsNegative": false,
       "outputActuator": {
         "kind": "ActuatorPwm",
         "value": 0,
         "period": 4,
         "minVal": 0,
         "maxVal": 100,
         "target": {
           "kind": "ActuatorMutexDriver",
           "mutexGroup": {
             "kind": "ActuatorMutexGroup",
             "deadTime": 1800000,
             "waitTime": 0
           },
           "target": {
             "kind": "ActuatorNop",
             "state": false
           }
         }
       }
     },
     {
       "kind": "Pid",
       "name": "cooler",
       "enabled": false,
       "setPoint": {
         "kind": "SetPointSimple",
         "name": "fridgeset",
         "value": null
       },
       "inputSensor": {
         "kind": "TempSensorFallback",
         "onBackupSensor": false,
         "sensor": {
           "kind": "TempSensor",
           "name": "fridge",
           "sensor": {
             "kind": "OneWireTempSensor",
             "value": 19.0625,
             "connected": true,
             "address": "28AA468008000004",
             "calibrationOffset": 0
           }
         }
       },
       "inputError": null,
       "Kp": 10,
       "Ti": 1800,
       "Td": 200,
       "p": 0,
       "i": 0,
       "d": 0,
       "actuatorIsNegative": true,
       "outputActuator": {
         "kind": "ActuatorPwm",
         "value": 0,
         "period": 1200,
         "minVal": 0,
         "maxVal": 100,
         "target": {
           "kind": "ActuatorMutexDriver",
           "mutexGroup": {
             "kind": "ActuatorMutexGroup",
             "deadTime": 1800000,
             "waitTime": 0
           },
           "target": {
             "kind": "ActuatorTimeLimited",
             "minOnTime": 120,
             "minOffTime": 180,
             "maxOnTime": 65535,
             "state": false,
             "target": {
               "kind": "ActuatorNop",
               "state": false
             }
           }
         }
       }
     },
     {
       "kind": "Pid",
       "name": "beer2fridge",
       "enabled": false,
       "setPoint": {
         "kind": "SetPointSimple",
         "name": "beer1set",
         "value": null
       },
       "inputSensor": {
         "kind": "TempSensor",
         "name": "beer1",
         "sensor": {
           "kind": "TempSensorDisconnected",
           "value": null,
           "connected": false
         }
       },
       "inputError": null,
       "Kp": 2,
       "Ti": 7200,
       "Td": 1200,
       "p": 0,
       "i": 0,
       "d": 0,
       "actuatorIsNegative": false,
       "outputActuator": {
         "kind": "ActuatorSetPoint",
         "targetSetPoint": {
           "kind": "SetPointSimple",
           "name": "fridgeset",
           "value": null
         },
         "targetSensor": {
           "kind": "TempSensor",
           "name": "fridge",
           "sensor": {
             "kind": "OneWireTempSensor",
             "value": 19.0625,
             "connected": true,
             "address": "28AA468008000004",
             "calibrationOffset": 0
           }
         },
         "referenceSetPoint": {
           "kind": "SetPointSimple",
           "name": "beer1set",
           "value": null
         },
         "output": 0,
         "achieved": 127.9961,
         "minimum": -10,
         "maximum": 10
       }
     }
   ]
 }

It should be pretty much the default settings minus the device configuration.

This is my temporary wiring to test setup.

https://drive.google.com/open?id=0B26xabTDMSt7ai1mb0I0ZUFtRmM

The other wiring is disconnected from the SSR that is in that area in the photo.

Your SSR seems different from a normal SSR. It has a ~ marking on the control side.

The SSRs that are normally used have a + and - on the control side.
BrewPi applies 5V on the control side to enable the SSR.

You measured the conductivity of the output, but that is not how the output works. If the SSR is off, both pins are 0V. If the SSR is ON, the + pin is 5V and the - pin is 0V.

Thanks Elco - That did not occur to me.

Can I use a 5V normally open relay to control the SSR?

This will allow me to use my current setup and I just need to pull the ground off the RPI, correct?

Thanks again!

Yes, that should work.
But if you don’t have one yet, I really recommend using an SSR instead.
Because it switches on a zero crossing of your AC signal, it will cause less interference.

I’m running into the same issue that my heater is always on. From reading the above, I reset to factory defaults. Anytime I try to add the chamber heater or chamber cooler back the brewpi Spark reboots itself. I added a second SSR to my setup. I connected it to he top right of the existing SSR to the top left of new SSR. Top right of new SSR goes to heater, other cord from heater goes to ground. Please help. Here is a picture and the control algorithm.

{
“beerDiff”: 0,
“diffIntegral”: 0,
“beerSlope”: 0,
“p”: 0,
“i”: 0,
“d”: 0,
“estPeak”: 118.4,
“negPeakEst”: 118.4,
“posPeakEst”: 118.4,
“negPeak”: 118.4,
“posPeak”: 118.4
}

t

It is not clear to me how you have connected your SSRs, can you draw a schematic?

Like this, as I found in the Fridge Hacking Guide.


On your AC wires, I see black and white wires inside.
But only black wires are going to the middle of the SSRs.

I cannot help you find the cause based on one photo showing half your setup and not much other info to go on.
You can say ‘I connected it same as the guide’, but the setup in the guide worked and yours doesn’t, so we are missing some info.

Sorry for the delay. I had to have a look. I tried my best to draw a diagram in MS paint(For white wires in my set up I used blue ink on the diagram). My heater is a Lasko my heat. When I cut the cord I ended up with two cords. Thank you.


Something is really wrong with that schematic.

Ground is only for protection, to make sure you cannot electrocute yourself. It should be connected to, for example, the outside of the fridge. It probably is actually, so what your circuit is doing now is connecting the outside of the fridge to live voltage via the heater!

Current should flow from live to neutral, no current should flow to ground.
If you connected it like this, as soon as your heater turns on, your GFCI (ground fault circuit interruptor) should turn everything off. If it did’t, the situation is very unsafe and you should get an electrician to look at your house’s safety installation.