• 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.
You can, but you need to recompile with your settings and build the sketch. The build script does this, but you need to run linux, and you'll need to install SDCC and GPUTILS. So yes, you can, but it will require you to setup a build environment.

Ok, not so simple then. A linuxbox is no problem, I will see if I can handle compiling. I have 4 running and I wold like to have these with identical profiles. So a change in one result in programming all. Will it be possible in the future to extract the settings to a .txt file and port it in to the sketch do you think?
 
Ok, not so simple then. A linuxbox is no problem, I will see if I can handle compiling. I have 4 running and I wold like to have these with identical profiles. So a change in one result in programming all. Will it be possible in the future to extract the settings to a .txt file and port it in to the sketch do you think?

You'd need to generate the HEX data that is now generated by the compiler. You can check wikipedia for the format.
You could probably get by with having a 'template', and just changing the data and checksum.
While it would be possible to do, I have thought about doing that earlier, but there was not a lot of interest.
I think the easiest thing would be to make a simple javascript driven webpage, that lets you set the values and computes the HEX to simply copy-paste into the sketch. If this is something you are willing to have a go at, I'd be glad to include it with STC-1000+.
 
Ok, not so simple then. A linuxbox is no problem, I will see if I can handle compiling. I have 4 running and I wold like to have these with identical profiles. So a change in one result in programming all. Will it be possible in the future to extract the settings to a .txt file and port it in to the sketch do you think?

Hi again.

So, this is was definitely not on the list of things I should do, but on the other hand I was not too difficult and kind of a fun mini-project.
I made a simple EEPROM editor in javascript, try it out if you want Hans-Einar.
Though, be advised I have not done any real testing of it, so it might not work at all :)
If it won't work, then let me know, I'll see if I can fix it.
STC-1000+ EEPROM editor

Simply put in your numbers, and press 'Generate HEX'. Then replace the corresponding section in the sketch.

Cheers!
//mats
 
Hi again.

So, this is was definitely not on the list of things I should do, but on the other hand I was not too difficult and kind of a fun mini-project.
I made a simple EEPROM editor in javascript, try it out if you want Hans-Einar.
Though, be advised I have not done any real testing of it, so it might not work at all :)
If it won't work, then let me know, I'll see if I can fix it.
STC-1000+ EEPROM editor

Simply put in your numbers, and press 'Generate HEX'. Then replace the corresponding section in the sketch.

Cheers!
//mats

Mats you are truly a remarkable dude! This is really neat.
 
Absolutely fantastic :) Wish I had at bit of your programming knowledge. I will try it out of course!
 
And anoter +
If I click show code and save it as a html file locally I can edit the value=""presets to my values and have a backup (or later flashh) of my profiles :)

Code:
<tr><td>SP0:</td><td><input class="temperature" type="text" id="adr_0" name="sp0_0" maxlength="4" size="4" [COLOR="Red"]value="16.0"[/COLOR] title="Setpoint 0"><span class="tscale">[&deg;C]</span></td></tr>
						<tr><td>dh0:</td><td><input class="plainnumber" type="text" id="adr_1" name="dh0_0" maxlength="3" size="4" [COLOR="red"]value="24"[/COLOR] title="Duration 0"><span class="durscale">[h]</span></td></tr>
						<tr><td>SP1:</td><td><input class="temperature" type="text" id="adr_2" name="sp0_1" maxlength="4" size="4" value="17.0" title="Setpoint 1"><span class="tscale">[&deg;C]</span></td></tr>
						<tr><td>dh1:</td><td><input class="plainnumber" type="text" id="adr_3" name="dh0_1" maxlength="3" size="4" value="24" title="Duration 1"><span class="durscale">[h]</span></td></tr>
 
And anoter +
If I click show code and save it as a html file locally I can edit the value=""presets to my values and have a backup (or later flashh) of my profiles :)
Sure, why not. But, check to see if it actually works first :)

Edit: I mean, that the generated values actually work on a real STC-1000
 
Space missing: Line 143, Col 126
(however shouldn't affect functionality)

Thanks for this by the way!
 
Hi again.

So, this is was definitely not on the list of things I should do, but on the other hand I was not too difficult and kind of a fun mini-project.
I made a simple EEPROM editor in javascript, try it out if you want Hans-Einar.
Though, be advised I have not done any real testing of it, so it might not work at all :)
If it won't work, then let me know, I'll see if I can fix it.
STC-1000+ EEPROM editor

Simply put in your numbers, and press 'Generate HEX'. Then replace the corresponding section in the sketch.

Cheers!
//mats

I added some graphing capabilities, quick and dirty, I didn't have time to consider ramping, but I think it should be possible to add it. Also, I'm not really a js develper or anything, so code quality might be... how to put it... not the best, but I think the feature really helps to "see" the profiles
 
Nice! I have the profile editor as well, it supports ramping (calculated the same way STC-1000+ does)
Maybe someone, with some spare time, could merge all this into one.
I'd prefer tabs for each profile graph in that case :)
 
This is what I did with my STC-1000. Nice and clean, plus push-breakers on the hot feeds mean no fuses.

IMG_0180.JPG


IMG_0181.JPG
 
Here's my stab at creating a hex-able profile page with charts. It's a bit rudimentary but it seems to work, HOWEVER it could use some other eyes to review the hex output and ensure it's accurate.

http://justfortesting.byethost12.com/hex.html

Hi StPug!

I got your message, I hope it's ok I answer here.
I'll look it over as soon as I can! But you obviously put some work into this! Thanks! Would you mind if I made some changes?
I like the compactness, but mostly the close relation to the settings on the stc-1000+ of my original layout. I'd also like to keep the unit for each setting.
Also I would personally rather stack the graphs vertically (and make them bigger).
I hope you see this as criticism, au contraire, I'm very glad for your contribution! I'm jusr nitpicking.
 
This is great!
Is it possible with "Save settings" and "Load settings" buttons? Then this utility is lifted one more level..
 
Here's my stab at creating a hex-able profile page with charts. It's a bit rudimentary but it seems to work, HOWEVER it could use some other eyes to review the hex output and ensure it's accurate.

http://justfortesting.byethost12.com/hex.html

Just had a quick look at the source, and I like how you handled generate hex and the id's. Cleaner and easier to make changes if eeprom layout should change. Nice!

This is great!
Is it possible with "Save settings" and "Load settings" buttons? Then this utility is lifted one more level..

Easiest would probably be to just save/restore the settings to/from a cookie.

Then there is also room for improvement with validation and some help text and stuff. But I think that is 'fluff'.

Anyone actually tested if generated HEX is ok?
 
I try this:
http://justfortesting.byethost12.com/hex.html

Error Compiling (I have to recompile eh?)
Code:
picprog.cpp.o: In function `loop':
C:\Program Files (x86)\Arduino/picprog.ino:172: undefined reference to `hex_celsius'
C:\Program Files (x86)\Arduino/picprog.ino:172: undefined reference to `hex_celsius'
C:\Program Files (x86)\Arduino/picprog.ino:183: undefined reference to `hex_celsius'
C:\Program Files (x86)\Arduino/picprog.ino:183: undefined reference to `hex_celsius'
C:\Program Files (x86)\Arduino/picprog.ino:241: undefined reference to `hex_fahrenheit'
C:\Program Files (x86)\Arduino/picprog.ino:241: undefined reference to `hex_fahrenheit'
C:\Program Files (x86)\Arduino/picprog.ino:242: undefined reference to `hex_eeprom_fahrenheit'
C:\Program Files (x86)\Arduino/picprog.ino:242: undefined reference to `hex_eeprom_fahrenheit'
C:\Program Files (x86)\Arduino/picprog.ino:252: undefined reference to `hex_fahrenheit'
C:\Program Files (x86)\Arduino/picprog.ino:252: undefined reference to `hex_fahrenheit'




...
Anyhow if "a" without recompile give me:
Code:
...
Programming 8 words at address 0xDD8
Programming 8 words at address 0xDE0
Programming 8 words at address 0xDE8
Validation failed for address 0xDEA wrote 0x21 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
 
You only replace the corresponding section, right?
Looks like you have deleted all the HEX data from the sketch.
 
Opps.. My fault again. Sorry. Try once more:

1. Load orginal file
2. Replace the "const char hex_eeprom_celsius[] PROGMEM = {" section
3. Compile
4. Falsh
(Is this the way to do it? or can I skip compiling?)

Result:
STS is locked with OFf in display. No reaction when pushing. No error when flashing.
 
I think it compiles before you upload to Arduino anyway, but it is not a bad idea to compile (or 'verify') first.
It sounds like it starts in soft off mode, press and hold 'off' button a few secs (followed by a short press to switch back to probe 1). You need to change 'on' parameter when generating hex to prevent it.
 
Hi StPug!

I got your message, I hope it's ok I answer here.
I'll look it over as soon as I can! But you obviously put some work into this! Thanks! Would you mind if I made some changes?
I like the compactness, but mostly the close relation to the settings on the stc-1000+ of my original layout. I'd also like to keep the unit for each setting.
Also I would personally rather stack the graphs vertically (and make them bigger).
I hope you see this as criticism, au contraire, I'm very glad for your contribution! I'm jusr nitpicking.

It was a brain twister for sure, and I forgot how much I dislike javascript :D. I wanted to reused your effort and implementation as much as possible and, in the end, the functionality of the page worked out pretty well I think. I would be grateful if you made some changes. In fact, I'll remove the hosted example once you post a new example so it doesn't confuse this thread.

Putting back the units for each setting should be easy. I had removed them in an effort to "declutter" the presentation of the page but I certainly understand why they are useful.

I took a quick look at trying to implement the graphs in a tabbed form but was unable to quickly come up with anything useful. If this doesn't get addressed at any point then I can take another look, but I'll wait for your next iteration.

Thanks for looking it over and adding any changes.
 
I've just updated the hex generator webpage linked above, and have verified it's outputting correct hex values by flashing my own unit. If anyone else uses this hex generator for customized profiles and flashes their unit, it would be good to get some feedback. I have only tested the °F hex code, but the °C should also output correct values.

alphaomega:
I've noticed the webpage output of the hex data is preceded by a tab character. The original arduino code hex section is preceded by three spaces. In my successful testing, I replaced the tab characters with three spaces. Do you think this tab-vs-3spaces has any effect once flashed to the STC?
 
Great wok everyone! one thing I've noticed, the default profiles are in C values (17~22 or so) but the default working mode is F, so going to C makes the go to ~60
 
Great wok everyone! one thing I've noticed, the default profiles are in C values (17~22 or so) but the default working mode is F, so going to C makes the go to ~60

I've just made some changes which I think help with this issue, but please let me know if you continue to experience the issue you mentioned above.
 
Hey...just wanted to mention I picked up one of the pre-built controllers from BrewsBySmith. He's done a really nice job in putting this all together, and the dual-color LED is a nice touch. Quick shipping too.

Just in time for my Imperial Pumpkin Ale...
 
Precisely that! Just shoot me a pm let me know how much to paypal you! Could probably drop it in a standard mail envelope and it would get here by the end of the week.

Just checking if you received the controller and temp sensor I sent? Did the temp sensor alone fix it or was it the controller? Just curious of the failing part.

Greg
 
Just put together my controller. I think I prefer javascript to fitting lots of wires into a small space :D. BTW, the hex output by the hex creation Web page worked a charm.

uploadfromtaptalk1414375654149.jpg
uploadfromtaptalk1414375715209.jpg
 
On the hex generation web page;

How about a name for the profile. It is easier to be able to name
the profiles, even though it doesn't go into the STC input (yet?).

A legend for the parameters would be helpful. I've been following this, but don't recall each parameter.

It does look good.
 
Just checking if you received the controller and temp sensor I sent? Did the temp sensor alone fix it or was it the controller? Just curious of the failing part.

Greg

Got the new sensor in and it worked like a charm. The sensor you sent had a smaller thermistor that was black and sealed well. The one I had was a longer, thermowell looking tube that was supposedly sealed on the end but I guess leaving it submerged caused it to short. Is it safe to leave the new one submerged or should I just leave it out in the open?
 
I have an STC-1000+ running a closet, in "th" mode set to 55°F with 0.5°F hysteresis and a 20 minute cooling delay. I have the temperature probe in a 1/2 liter bottle of water. It is cycling every 5 minutes or so. I don't get the blinking cooling light, it just switches on, turning on the compressor on the wine fridge unit I have. I think the STC-1000+ is ignoring the cooling delay. I don't understand why. I'm thinking the first thing I should do is take out the STC and re-flash it. I also have a spare I could swap out. But I figured I'd ask to see if anyone knew what else I could be doing wrong.
 
Hi!
StPug, I made some changes now that are more in line with what I envisioned. It is pretty much only layout changes. I kind of like having the settings collected and in the order they're laid out in eeprom. Hope you think this is ok.
Check it out : HEX editor tabbed

Edit: Oh, yeah... I haven't had a lot of time for this, so it is kind of rushed... No default values makes a kind of uninteresting starting point..
 
I have an STC-1000+ running a closet, in "th" mode set to 55°F with 0.5°F hysteresis and a 20 minute cooling delay. I have the temperature probe in a 1/2 liter bottle of water. It is cycling every 5 minutes or so. I don't get the blinking cooling light, it just switches on, turning on the compressor on the wine fridge unit I have. I think the STC-1000+ is ignoring the cooling delay. I don't understand why. I'm thinking the first thing I should do is take out the STC and re-flash it. I also have a spare I could swap out. But I figured I'd ask to see if anyone knew what else I could be doing wrong.

I'm also planning to use an STC1000+ for the same purpose, e.g. to control my 600 bottle wine cabinet. Thus far, I've just been using its built in mechanical thermostat, but I'd like to have a digital confirmation of temp. BTW, do you have the probe in a wine bottle, or is this in the open air in the wine fridge?
 
Hi!
StPug, I made some changes now that are more in line with what I envisioned. It is pretty much only layout changes. I kind of like having the settings collected and in the order they're laid out in eeprom. Hope you think this is ok.
Check it out : HEX editor tabbed

Edit: Oh, yeah... I haven't had a lot of time for this, so it is kind of rushed... No default values makes a kind of uninteresting starting point..

Your layout changes all look good to me, and I completely understand having the layout flow match the actual STC process flow. It makes intuitive sense to me.

In my hacked version I ended up having to use ' autocomplete="off" ' on nearly every input field to avoid a bug (at least with Firefox) when switching scales and then refreshing the page. The bug leaves the °F values after the refresh as the °C values - clicking 'switch scales' again moves the °F values into the 100s of degrees. Try it in FF if you have it:
-Load the page
-Click 'switch scale'
-Click refresh on page using browsers refresh button/icon, or right-click refresh
-Click 'switch scale' again

Iron (chrome) seems unaffected by this bug, fwiw. Don't know about other browsers.
 
Any chance you made a windows update?
FTDI has apparently made an indcredible a-hole move and in their driver that is pushed out with windows update, actually brick non genuine chips without ANY notification or anything! See this.

I really hope they bite the dust. I do understand they want to protect their IP, but this is so not the way to do it.
Anyway, if your arduino stopped working, it might well be due to a non genuine FTDI USB to serial chip.

If you have the choice, I'd strongly suggest avoiding FTDI (and windows for that matter).

Interesting. Just tried to flash a unit with a newly acquired SainSmart Arduino clone and got Java io communication issues out the wazoo. However, the programming console can see the SainSmart, and can load the sketch and the opening text shows up on the terminal window requesting the pressing of 'd', but when I do that, no lights flash, nothing comes on the terminal, the programming console window under the sketch code shows Java io communication errors and the COM9 disappears. I'm not going to panic yet, I'm trying to hold pin contacts by hand; will solder and try again tonight.
 
I have an STC-1000+ running a closet, in "th" mode set to 55°F with 0.5°F hysteresis and a 20 minute cooling delay. I have the temperature probe in a 1/2 liter bottle of water. It is cycling every 5 minutes or so. I don't get the blinking cooling light, it just switches on, turning on the compressor on the wine fridge unit I have. I think the STC-1000+ is ignoring the cooling delay. I don't understand why. I'm thinking the first thing I should do is take out the STC and re-flash it. I also have a spare I could swap out. But I figured I'd ask to see if anyone knew what else I could be doing wrong.

I cannot confirm for certain but experience has been this:
With a stock STC-1000, the cooling delay is only applicable immediately after turning on the unit for the duration that is set. After that, the cooling delay is either ignored or my cooling refresh cycle has been longer than the 10min delay I have set. I have only seen the cooling delay to be effective after turning on the device from the hard off state. It may be that I've just never had a refresh cooling cycle take place sooner than 10 minutes (i.e. my set delay).

As for the 1000+, I cannot say. I've only just built my first unit and haven't swapped it in for my old stock controller.
 
Back
Top