• Please visit and share your knowledge at our sister communities:
  • If you have not, please join our official Homebrewing Facebook Group!

    Homebrewing Facebook Group

Stc-1000+

Homebrew Talk

Help Support Homebrew Talk:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Alpha, I'm still on version 1.04, so I don't know if the following behavior has been changed in 1.05.

I finished a fermentation a few weeks ago and turned the STC+ off using its power button. I then unplugged it and set it aside.

When I went to use it again, I plugged it in and the display flashed, "-8", and went back off. I unplugged and plugged it back up a few times and got the same result. At that point I thought the STC had gotten fried by a power surge, cosmic rays, etc.

Then I remember that I had turned it off earlier. Plugging it back up and holding down the power button to turn it back on took care of things.

Is there any way to indicate that it is in the off state when it is plugged up? Maybe flash "OFF" for a couple of seconds?

Hi Disney!
That the display flashes is a glitch and hopefully this will not occur in v1.05 as I have implemented a cleaner handling of the off state.
I'm not a fan of the off functionality as I think it is misleading, but I can understand why some would find it handy. I'd really like to keep this kind of excess functionality as basic as possible, and adding the 'OFF' display when applying power would IMHO use code space that could be better utilised.
I hear what you are saying though, I'll create an issue for it and promise to look into it. If I can find a way that doesn't 'cost' much, I'll absolutely consider it.

Cheers!
 
Thanks, it really isn't a big deal and I should have realized what I had done.

If nothing else, you might just mention the behavior in the manual. I can see other people plugging one in that they hadn't used for a while and thinking it was dead before realizing it was just turned off.

I frankly don't know what the OEM firmware does if you turn it off and then unplug/replug it. Probably the same thing as you wouldn't want it to start running the fridge/heater just because the power went out.
 
Yes, I'm pretty sure stock firmware does the same. Mentioning it in the manual is a good idea. In fact, I'm thinking that a FAQ section or something of the sorts could be useful.
Thinking about it, it could actually be more difficult than I thought first, as in the reimplementation of the power off functionality, I turn of the timer for handling the thermostat and all, so what probably happens is that the watchdog timer keeps resetting the unit until it is turned on.
Maybe I should investigate the possibility of having interrupts for the buttons and if they could be active during proper MCU sleep. I wish I had more time for this...
 
My arduino finally arrived and I used one connector from an old car stereo so I don't have to open and solder for every update (I am waiting for PID firmware :) ).

img0876.jpg


img0879.jpg
 
Well, I got my sensors calibrated, most were pretty close as they were, except one was 8* off. I tried tinkering with changing the temp_corr_max and temp_corr_min to 100 and -100, but I don't think I'm saving something right as I can't get it to go past 5. Not that experienced with the arduino.
 
Just tried flashing mine today but looks like I bricked it. I have the A400_P version and quintuple checked my wiring. When I connected it, the alarm made a noise but I didn't know if this was normal or not at the time (I should've watched a video on the flashing first).

It did detect the controller and started to flash it but it seems to have errored out partway through:

Incrementing address to 0x7FE
Incrementing address to 0x7FF
Incrementing address to 0x800
Validation failed for address 0x805 wrote 0xDB but read back 0x0
Programming hex data...
Programming program memory
Programming config memory
Programming 8 bytes at EEPROM address 0x0
Resetting address for EEPROM
Validation failed for EEPROM address 0x0 wrote 0xA0 but read back 0x0
Writing magic.
Writing version.
Leaving programming mode


I then saw a ton of Java I/O errors in the main Arduino window.

When I tried again, it is no longer being detected. :( Guess I'll have to buy another controller (or two) and try again.

Anyone else run into this, or have the alarm go off as soon as the connection between the boards was made yet flash successfully?
 
Just tried flashing mine today but looks like I bricked it. I have the A400_P version and quintuple checked my wiring. When I connected it, the alarm made a noise but I didn't know if this was normal or not at the time (I should've watched a video on the flashing first).

It did detect the controller and started to flash it but it seems to have errored out partway through:

Incrementing address to 0x7FE
Incrementing address to 0x7FF
Incrementing address to 0x800
Validation failed for address 0x805 wrote 0xDB but read back 0x0
Programming hex data...
Programming program memory
Programming config memory
Programming 8 bytes at EEPROM address 0x0
Resetting address for EEPROM
Validation failed for EEPROM address 0x0 wrote 0xA0 but read back 0x0
Writing magic.
Writing version.
Leaving programming mode


I then saw a ton of Java I/O errors in the main Arduino window.

When I tried again, it is no longer being detected. :( Guess I'll have to buy another controller (or two) and try again.

Anyone else run into this, or have the alarm go off as soon as the connection between the boards was made yet flash successfully?

I don't think you bricked it. It is pretty tough to brick this thing.

When you said 'alarm' made a noise what type of noise was it?

- An alarm, loud high pitch sound, means the temp probe is not connected or, as in the case of my last controller, board terminals were bad so STC did not recognize that there was a probe connected. Sent it back to Amazon for a prompt refund.

- If a clicking noise then the Arduino was in the process of uploading the program to the STC. Those java errors were probably a result of losing communication between the Arduino and STC. Depending how you are connecting the two devices this can be very easy to do.

Try closing the Arduino program and starting over again see if that helps. I was able to recover from similar problem.
 
Yeah, agree with Gueykewl, highly doubt you bricked it. Like he said, close Arduino and start over; sometimes you need to upload the firmware to the Arduino again as well. Basically start from the beginning and follow the full process and I'll bet it comes back to life. I've flashed 100 of these now and haven't bricked one yet, would be impressed if you pulled it off! :)


Sent from my iPhone using Home Brew
 
First, allow me to thank Alpha and others who have commented on this thread for your hard work and testing on the project. You have literally taken a raw diamond and crafted it into a true gem. Simply brilliant.

Purchased a female/mail 5-pin DIN connector from Fry’s, both for a total of around $ 3.33. Soldered some dupont wires into the STC-1000 and will eventually solder those wires to the 5-pin female DIN connected. This along with the STC-1000 will be installed into the lid of my fermentor, a 14.8 cu ft Kenmore chest freezer. Going to do the same for an upright as well.

The ability to enter a few basic fermentation profiles is awesome. As we know even the same beer does not always ferment out the same. I see that there is the ability to ‘jump’ in the profile, which I am having a hard time wrapping my brain around. If I understand this correctly current duration ‘dh’ is incremented every hour until ‘dh’ has reached the current step duration, after which ‘dh’ will be set to zero and current step ‘St’ will be incremented by 1. Question is, in order to jump to the next step would we would change the current step duration to the current duration ‘dh’? This way on the next query the current ‘dh’ = the current step duration and thus zeroes out the ‘dh’ and increments by 1 the current step? Is there any way we can display the current ‘dh’ so we know what to set the current step duration to in order to ‘jump’ the profile?

Is there a button combination that we press to automatically set the ‘dh’ to the current step duration, thus forcing a jump?

Am I totally confused as to how this works? I feel like I am.
 
Hi and thanks!
That sound sweet! Please feel free to post a few pics when you're done.
It sounds to me like you pretty much got it. 'St' is the current step and 'dh' the current step duration. 'dh' is incremented hourly. If 'dh' is equal (or greater) to the duration of the step as programmed, then it is zeroed and 'St' is incremented. 'Jumping' in the profile, is simply manually setting new values for 'St' and/or 'dh'. Note that this will not change setpoint 'SP', only once the hour is up, new values for 'dh', 'St' and 'SP' will be calculated.
So, if you want it to skip ahead to the next step, setting 'dh' to value greater than or equal to 'dhX' - 1 (where X is the current step) will cause it to start the next step once the hour is up.If you don't want to mess about with figuring out how long this step is and just force next step, simplest would be to just just set 'dh' to a large value (like 999). Then next step should be started within the hour.
That is how it should work at least, I'm not sure how much this has been tested, but I think it should be ok.
Changing a running profile or the profile runtime data ('St' and 'dh') is a bit 'crazy side of the street', you could get unlucky and manage to change the value in the exactly wrong microsecond when it is being recalculated and something unexpected could happen (not dangerous or anything, but you could end up in the wrong step for example) this would be extremely unlikely though.
Also, when running a profile you can press and hold button 'down' (I think) to see current step and step duration. It might also help to note the profile data on a piece of paper or so for quick reference.
Please, try it out and if you have any more questions, ask. Don't feel bad if it isn't obvious at first glance. Jumping in the profile really is 'power user' stuff :)
 
I don't think you bricked it. It is pretty tough to brick this thing.

When you said 'alarm' made a noise what type of noise was it?

- An alarm, loud high pitch sound, means the temp probe is not connected or, as in the case of my last controller, board terminals were bad so STC did not recognize that there was a probe connected. Sent it back to Amazon for a prompt refund.

- If a clicking noise then the Arduino was in the process of uploading the program to the STC. Those java errors were probably a result of losing communication between the Arduino and STC. Depending how you are connecting the two devices this can be very easy to do.

Try closing the Arduino program and starting over again see if that helps. I was able to recover from similar problem.

It was a loud, high-pitched sound, but I didn't have the temp probe connected. I'll make sure to connect it when I try again to avoid waking my family up.

It did make the clicking noise as soon as it was in the process of writing to the STC-1000. The alarm sound turned off at this point as well.

I did close and restart the Arduino program, as well as disconnect/reconnect the board from the PC and uploaded the sketch to the Arduino again.

Now when I make contact with the STC-1000, I hear the Windows USB disconnect sound and I get an error that the COM port is not responding. I got around it by connecting the STC-1000 to the Arduino before plugging in the Adruino's USB cable into the PC. However, this is where I run into the STC-1000 not detected error.

I'm glad to hear that these are not easy to brick. I will try again after work today, and hopefully end up with better results.
 
Yeah, hook the probe up. Maybe also watch the video on flashing on my website (click the "black box" link in my signature, go to "DIY" tab).
 
Alpha, just wanted to say thanks again, and report that last night I got to do a simple test, thanks to Mother Nature and a slew of bad weather. Power was out a little while, but STC+ picked right back up when the power returned. Now if you could figure out how to incorporate the STC+ setting to magically make the wife understand the joy of having not ruined an ongoing fermentation, well that would be sweet. :D
 
It was a loud, high-pitched sound, but I didn't have the temp probe connected. I'll make sure to connect it when I try again to avoid waking my family up.

It did make the clicking noise as soon as it was in the process of writing to the STC-1000. The alarm sound turned off at this point as well.

I did close and restart the Arduino program, as well as disconnect/reconnect the board from the PC and uploaded the sketch to the Arduino again.

Now when I make contact with the STC-1000, I hear the Windows USB disconnect sound and I get an error that the COM port is not responding. I got around it by connecting the STC-1000 to the Arduino before plugging in the Adruino's USB cable into the PC. However, this is where I run into the STC-1000 not detected error.

I'm glad to hear that these are not easy to brick. I will try again after work today, and hopefully end up with better results.

It seems others as well have had problems with USB disconnecting when attaching the STC. Making the Arduino-STC connection before connecting the USB might be a good idea, but make sure that the Arduino has been flashed with the picprog.ino sketch BEFORE doing this.
It sounds weird that the STC is not detected when doing it this way. Only thing I can think of is making sure all connections are good. I don't just mean correct pins, but that there are no shorts or bad connections.

Short of physical damage (ESD, shorts, etc), the STC really should not be 'brickable' as there is no bootloader or anything that could render it unprogrammable.

Alpha, just wanted to say thanks again, and report that last night I got to do a simple test, thanks to Mother Nature and a slew of bad weather. Power was out a little while, but STC+ picked right back up when the power returned. Now if you could figure out how to incorporate the STC+ setting to magically make the wife understand the joy of having not ruined an ongoing fermentation, well that would be sweet. :D

Cool :)
I consider myself to have a pretty decent understanding of the inner workings of micro controllers, the inner workings of women I don't think I'll ever understand. Even remotely.
 
Yeah, hook the probe up. Maybe also watch the video on flashing on my website (click the "black box" link in my signature, go to "DIY" tab).

I watched the actual flashing part of the video last night after my failure, to see how far the output should've gotten, but I'm going to watch the full video tonight before another attempt.
 
Only thing I can think of is making sure all connections are good. I don't just mean correct pins, but that there are no shorts or bad connections.

Short of physical damage (ESD, shorts, etc), the STC really should not be 'brickable' as there is no bootloader or anything that could render it unprogrammable.

I tried again - with the probe in and still get the alarm. I read in the instructions that came with the controller that if there is a short the alarm will go off too, with an EE on the screen. Apparently you should be able to silence the alarm by pressing any button but that doesn't work, nor does anything show up on the screen, but I am now certain that the probe is connected. :p

I notice when I try to detect the controller, I get the following:

Device ID is: 0x3FFF
STC-1000 NOT detected. Check wiring.


As opposed to this when the controller is not actually connected to the Uno:

Device ID is: 0x0
STC-1000 NOT detected. Check wiring.


I will be bringing it in to work tomorrow to get my boss to take a look as he wants to set one up as well. He's a lot better with this sort of stuff than I am, so I have my fingers crossed.
 
If you have a meter check to see if the terminal blocks (green) are good. I returned because of a faulty terminal block where the temp probe connects.


Sent from my iPad using Home Brew
 
I tried again - with the probe in and still get the alarm. I read in the instructions that came with the controller that if there is a short the alarm will go off too, with an EE on the screen. Apparently you should be able to silence the alarm by pressing any button but that doesn't work, nor does anything show up on the screen, but I am now certain that the probe is connected. :p

I notice when I try to detect the controller, I get the following:

Device ID is: 0x3FFF
STC-1000 NOT detected. Check wiring.


As opposed to this when the controller is not actually connected to the Uno:

Device ID is: 0x0
STC-1000 NOT detected. Check wiring.


I will be bringing it in to work tomorrow to get my boss to take a look as he wants to set one up as well. He's a lot better with this sort of stuff than I am, so I have my fingers crossed.

If the alarm goes off, then then something is wrong with sensor connection. It won't affect programming, but is very annoying. Besides, at some point you will need to have the sensor working anyway. Same thing there, make sure it is the correct terminal block you are connecting the sensor to and that the connection is good. If it still won't work, check with multimeter that you have 10-15 kohm (ish) over the sensor leads. And inspect board for any issues.

Device ID 0x00 and 0x3FF indicates the same problem, that communication between arduino an stc is not working. It has read all zeros or all ones.
It is difficult to say exactly what the problem is, best advice I can give is the same as before. Make sure all connections are good.
I hope you (and your boss) can get your STC-1000+ on :)
 
Simple thought from simple mind here, but before I flashed any of the STC's I got, first I plugged in temp probe, power, and a couple of indicator items (fans, lights) all hooked up to the STC straight from the box and power it up. If it did not work stock method I returned it. I always wanted to know things were as correct as I could tell before trying to flash it.
 
If you have a meter check to see if the terminal blocks (green) are good. I returned because of a faulty terminal block where the temp probe connects.

Same thing there, make sure it is the correct terminal block you are connecting the sensor to and that the connection is good. If it still won't work, check with multimeter that you have 10-15 kohm (ish) over the sensor leads.

Simple thought from simple mind here, but before I flashed any of the STC's I got, first I plugged in temp probe, power, and a couple of indicator items (fans, lights) all hooked up to the STC straight from the box and power it up. If it did not work stock method I returned it. I always wanted to know things were as correct as I could tell before trying to flash it.

I'll be checking things over with a multimeter today and report back on how things go. My boss will also help me with soldering the pins in (I was just holding the header to the back of the STC-1000).

I should have mentioned that before attempting to flashing the STC-1000, I previously used it in my fermentation chamber and it worked ok. So if it is broken now, I only have myself to blame :p

Thanks to everyone thus far on all of your help!
 
I'll be checking things over with a multimeter today and report back on how things go. My boss will also help me with soldering the pins in (I was just holding the header to the back of the STC-1000).

I should have mentioned that before attempting to flashing the STC-1000, I previously used it in my fermentation chamber and it worked ok. So if it is broken now, I only have myself to blame :p

Thanks to everyone thus far on all of your help!

I had a few failed attempts to flash one of my units and found a few points to be sure of:
1. Make sure you are reporting the correct com port.
2. Make sure yo have the correct baud rate.
3. Ensure the Dupont wires are pushed all the way into the Arduino.

My unit had one solder pad that was missing a good bit of solder. It wasn't until I soldered the wires to the STC board that it flashed successfully.

Thanks to Alpha, Will and others ... even this old man with weak eyes and zero electronics experience was able to pull this project off (3 times).
Cheers!:mug:
 
First post ever! I'm from Argentina :)

Just to thank alphaomega and to let everyone know that the flashing process also works with an arduino nano v3 board.

Also I compiled using linux and avr-gcc, so I had to add functions declaration at the begining of the code for it to be happy. Maybe you could include that alphaomega? This was using the stable version.

I'm running a profile test(and logging temps) before using it in a real beer.
 
i apologize if this was posted previously...has anyone made a programming cable of some sort? I just built my controller and after wiring it all up, i'm not looking forward to the complete disassembly of it to reprogram.

I was thinking maybe a CAT5 cable a RJ45 jack mounted to the housing(not the STC1000 itself)?

Excellent work alpha! I havent used it for fermentation yet, but have it hooked up to my kegerator. I plan to use the kegerator as my fermentation chamber once my keg is empty.
 
First post ever! I'm from Argentina :)

Just to thank alphaomega and to let everyone know that the flashing process also works with an arduino nano v3 board.

Also I compiled using linux and avr-gcc, so I had to add functions declaration at the begining of the code for it to be happy. Maybe you could include that alphaomega? This was using the stable version.

I'm running a profile test(and logging temps) before using it in a real beer.

Cool!
Thumbs up for using linux and also avr-gcc straight (though I guess you still need to link to the arduino specific library). I also much prefer straight C and avr-libc over Arduino IDE.
I sure could include the function declarations, but really, Arduino preprocessing will o this for you, and if you want to use avr-gcc straight, then you probably know what you are doing anyway...
I'll try to include them when I get around to it.
It is really cool to hear that STC-1000+ has reached Argentina :)

i apologize if this was posted previously...has anyone made a programming cable of some sort? I just built my controller and after wiring it all up, i'm not looking forward to the complete disassembly of it to reprogram.

I was thinking maybe a CAT5 cable a RJ45 jack mounted to the housing(not the STC1000 itself)?

Excellent work alpha! I havent used it for fermentation yet, but have it hooked up to my kegerator. I plan to use the kegerator as my fermentation chamber once my keg is empty.

Programming connector is a good idea. I don't recall anyone has used RJ45, but if that is what you have at hand, I see no reason that won't be just fine.
 
I can now also verify that using an Arduino Pro Mini (5v with atmega328) and CP2102 USB to serial works well to reprogram the STC. Under Linux it worked out of the box, you might need to install an USB driver under Windows.
A bit more soldering, but on the other hand, this combo can be had for less than 5 bucks on ebay (search "CP2102 pro mini 5v").
Sorry for the crappy pics, but I hope you get the idea...

2q33ak3.jpg


2unty7c.jpg
 
Holy fermentation controller batman!

Ok, I haven't really done much code wise or so this weekend, but I think it has been a pretty good one for the STC-1000+ project anyway. I think that using $5 equipment for a programmer is pretty cool, when the intended programmer (PIC kit 2) costs probably 10-15 times more.

And today I made another discovery. I noticed that just next to the screw terminal for the thermistor, there is an unused solder pad.

2jtjro.jpg


It just 'happens' to be routed to ISCPCLK, the only pin not used in normal conditions (i.e. when not flashing). In the picture you can see that there even are pads for an SMD resistor and SMD capacitor (R3 and C3), same as for the NTC input (R2 and C2, to the right in the pic, but kind of unreadable...). And yes, RA1 (the generic pin that ICSPCLK is on) also functions as A/D.
It is "almost" as someone designed this board to be able to handle TWO thermistor inputs. :rockin:

Why is this awesome? Well, it seems that with a little bit of soldering, and some cheap SMD components off ebay and some of blood, sweat and code (at least on my part), we could have an extra temperature input. This could be used for things like measuring fridge temperature, making sure it does not shoot off too far before beer temp catches up (limit over/under-shoot). Or when I get around to finishing my mash firmware, you could measure mash temp AND output temp from RIMS.
Heck, if you are able to code yourself, you could use it for anything. Not only an input. SSR output? Float switch?
I am gonna try to enable a secondary temp reading. Personally I think it would be cool (pun intended) to be able to set limits on fridge temp (like the hysteresis).

As best I know now, what you would need is a new 3 pole screw terminal (5mm pitch) to replace the 2 pole. And an SMD resistor and capacitor (probably 0603 form factor) and an extra NTC thermistor (B3435). The resistor is 10K with as good accuracy as possible (1%?, this is part of the voltage divider with the NTC). The capacitor should not be as critical, from what I could find with google 10-100uF is prolly in the right range.

Cheers!
 
That is really cool, Nice discovery! I really like the idea of a float controller, should be nice and simple too.
 
Would it be possible to have a separate hysteresis for cooling and heating? I know the memory is getting quite full, not sure if it is possible or not. I'm trying to tighten up my overshoot and undershoots a bit more and prevent excessive heating and cooling. I'm using a cooling jacket and a heat wrap, and they don't quite change the temp at the same rates.
 
Back
Top