GithubHelp home page GithubHelp logo

matsstaff / stc1000p Goto Github PK

View Code? Open in Web Editor NEW
260.0 260.0 47.0 13.87 MB

Programmable thermostat firmware and arduino based uploader for the STC-1000 thermostat

License: GNU General Public License v3.0

JavaScript 44.15% C 2.80% HTML 2.26% Makefile 0.18% Shell 0.19% C++ 50.42%

stc1000p's People

Contributors

kevinvanderlugt avatar matsstaff avatar sotrajohnny avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stc1000p's Issues

ITC-1000 Compatibility

I just received 2 of the ITC-1000 Ink Bird dual temp controllers they appear to be identical to the STC-1000. Will your firmware work on that controller?
Regards,
mike

Suspicious RANGE() function

Hello,

I was really looking forward to using this program on my STC-1000, but unfortunately I got a version with a Holtek processor on it rather than the Microchip part.

However, in looking through the code briefly, I found a potential problem that you might want to take a look at:

static int RANGE(int x, int min, int max){
if(x>max)
return min;
if(x<min)
return max;
return x;
}

If x is greater than the max, then the min is returned!? Seems like the max should be returned. Same kinda deal for x less than min.

Aid

Good afternoon, I am emailing you with the request of some aid for flashing my STC-1000. Is there another way that I could contact you and work on this together. I am attempting to combine the STC-1000 with a CoolZone brew jacket to automate the temperature controlling section of brewing.

second temperature probe inquiry

Hi Mats, sorry if I'm being lazy and not checking out the code right now, but have you by any chance done any playing with nested control loops for 2 temperature probes (eg. for in-wort measurement while lagering but controlling refrigeration setpoint)? I was just about to get into designing my own "better" stc to do this (among other things), when I came across your project here.

Custom temperature threshold alarm?

Hello,

Would it be possible to add global min and max temperature limits, which would set off the alarm and stop both relays when crossed?

I'm planning a custom temperature control solution for my aquaterrarium and having this fail-safe in case something goes awry (the chiller will be Peltier-based), would be perfection (for my use case this is actually the only feature missing from the original firmware, but I only noticed the fixed out-of-rage thresholds after placing the order :-S ).

Thank you and keep up the great work!

Temperature jitter

Is there any way to slow down display of temperature without incurring overhead?

Get Device ID error message

Hey Matt,

I'm trying to upload my 2nd controller but with a new Uno clone that I've never used before. When trying to upload the most recent picprog.ino to the uno, I am continually getting the following error message:

capture

Have you ever come across this before?

Thank you again for the software, although I didn't buy a Black Box i still made a donation to the Dana-Farber Cancer Institute in your name, as a gesture of thanks.

Thanks,

Cam

User defined temperature display

New settings menu option "CF", to toggle temperature display: "C" = Celsius; "F" = Fahrenheit.

This will prevent the need to support two firmware versions.

Drop one profile, to be able to add more settings and make profiles more versatile

It would be really cool if at the end of the profile, you could set next run mode (Pr0-Pr4 + th + off).
That way you could make it run the profile in a loop, run consecutive profiles, run consecutive profiles in a loop or turn thermostat off afterwards. That would be more versatile.
Only question really is how would a duration of '0' be interpreted? Just skipped over? Skip to end of current profile? Gut feeling is it would be best to handled as any other setpoint in the profile (i.e update the thermostat setpoint and directly go to next step)

Buttons reversed

I purchased the stc1000 (a400p) on amazon and I was able to flash it, etc... However it appears that my buttons are reversed (see picture below). The arrow buttons are on the left and the power/esc and selection buttons are on the right.

https://lh3.googleusercontent.com/-oYIOGAyPlZo/ViiJorO-r3I/AAAAAAAAX2g/JoTXVy4AX1Q/s912-Ic42/DSC09396.JPG

This isnt really a "defect" in you firmware as much it is as a quality/consistency issue with the hardware itself, since most of the pictures I see of the stc1000 have the buttons oriented differently than mine... but would it be possible to get you to add a fw configuration option to re-map the buttons?

I purchased this stc1000 on amazon after someone else in an HBT thread mentioned that they were a400p's. Once more people catch on to your firmware, and the fact that there is an a400p available via prime on amazon, these are going to be selling like hotcakes. If all of the ones sold in the above amazon link are a400p's, there will be lots and lots of people wanting this feature. You would think it would be easy to get used to having them reversed, but its damn near like driving a car with the steering reversed.

(amazon link: http://www.amazon.com/gp/product/B008KVCPH2?psc=1&redirect=true&ref_=oh_aui_detailpage_o03_s00 )

Move ramping to dh parameter

Set ramping per step instead as a global? Maybe allow negative dh (simplest solution) to indicate ramping in the step.

Dual Probe_Minute program

Mat

Just set my system up and used the dual probe minute pic. I was under the impression that the duration times were in hours, are they only in minutes in this program? If so it limits each step to ~16.65 hours, am I able to reprogram it to the non-minute dual probe?

Also can you help me out with how you set up your dual probes, I have a good temp reading off both probes, but am not fully understanding how to properly use it to get the most out of it.

Thanks

Stu

Remove 'soft off' functionality in favor of run mode 'off'

'Soft off' while better than before is still not really good.
I'm thinking this should be a run mode instead.
Maybe have the 'profile LED' blink when running a profile. Constant on when in thermostat mode and off when in off mode.

Ramping

Ramping is a feature I would like to include at some point. It will be difficult to fit (will probably need to optimize code more) and would likely be somewhat limited. An idea is to use similar interpolation as for A/D LUT.

New A400-p PCB from ALiExpress "U-Control"

Hi Matsstaff,
I ordered a couple of STC1000s, with the A400-P chip, from U-Control. On opening the case I noticed that the programming head was missing on the main PCB. I did, however, notice that there is an ISP near the LCD. I wonder is it possible to use this to reprogram the device and is there anyway to detect what each connection is?
Last week I asked "U-Control" if they would confirm if these points correspond to 5V,GND,ICSPCLK(9) etc. but I have had no reply yet.

http://www.aliexpress.com/snapshot/7110112707.html?orderId=71007002417744
See attached pics
img_20151129_162915
img_20151129_162925
img_20151129_162940
img_20151129_082727

Cheers for any advice
D

OVBSC Separate SO (Strike Output) Variable Into Two Variables

It would be nice to have the SO (Strike output) parameter separated into two variables. One variable for heating the water to the strike and hot break temperature and the other variable for heating water between mash steps. I have 4000 watts of heating on my 5 gallon system and I find that when heating between mash steps with SO set to 100 percent, it quickly reaches the next mash step before the grain temperature has equalized, so the temperature falls substantially when the system switches to the thermostat mode. Two variables would allow quick heating for strike and hot break and controlled stable heating for the mash steps.

Improve 'button up' information in OVBSC

See if it would be possible to show SP even if in constant power mode when running program.

I have a few suggestions that I think will contribute to ease of use of the software.
They are all related to what's on display when running the program.
When first running program and waiting for St to be reached, a press on Up reveals Output Effect (in my case with one heating element: 100.
I think it would be more useful to present St temperature setpoint instead of output. By that I get a verification of what temperature the system is heading at, and can approximate what time is left until there.

When into the different Mashing steps, a press on the arrows displays actual mashing steps and setpoints. Would it be possible to display remaining time instead for example of the name of the step?
For example, a standard 65*C and 60 min would then display 65 when pressing Up and remaining time when pressing DOWN. By that you can figure out how long time is left until next mashing-step and until time to do lautering etc.

The same goes for several other steps, where Output Effect is presented when pressing UP.

OVBSC: not entering thermostat mode when strike temperature reached

I'm going to have run some more tests on this, but it doesn't seem to be switching to thermostat mode when strike temps are reached. Today I came back late, the alarm was beeping, but the temp was up at 75C, (strike was meant to be 69), I don't think my P0 output ratio was too high, it was only 30, and later during first mash, it wasn't even holding heat and I had to raise it to 45%.

Upload without wiping EEPROM

Check if it would be possible to not wipe the EEPROM on upload. During initial upload EEPROM will be wiped due to copyprotection, but it would be nice to leave it intact on later uploads to retain settings.

Clean up the mess with reading from eeprom in page1

Move eeprom defines to header file. Use the defines in page1. Make check_config_value use config address instead (and use define for calc address when calling). Use check_config_value when reading config per default.

Upper limit for second temp probe

First thank you so much for all that you have done! I have made a few of the dual probe STCs and couldn't be happier with them! One thing though, I find it hard to use them to control overshooting, since fermentation is sometimes more intense than other times. I feel like my biggest concern is making sure temps don't go OVER an upper limit, on either probe. Too high of temps cause off flavors, too low and they drop out, since my profiles are always slowly raising the temp to keep them active longer, I push towards the yeasts upper limit fairly close so I am MUCH more worried about raising the temp of the outside or inside of the carboy too high than I am of the temp being too low. I find myself wishing I could set an upper limit for BOTH probes that would turn off the heater and/or turn on the refrigerator if either probes go over a certain limit. I think Upper and maybe Lower limits for the both probes as a whole would be very useful. I m new here and could not find a way to contact you other than this. Not exactly an issue I guess, just wanted to contact you.

OVBSC cooling step?

Even though cooling is a manual step, maybe add a step to the program to alert the user when desired pitching temperature has been reached?

Power off functionality

Add power off functionality.
This would be nice to have, but IMHO is not essential, as it really does nothing except turns off LED's and not run regulation loop. Maybe MCU could be put to sleep, but really what's the point in that?

OVBSC Whirlpool Step

Thanks Mat for all of your great work. I thoroughly enjoy my brewing day now!!
I think a nice enhancement to the OVBSC code would be to add a whirlpool step after the cooling step that only runs just the pump for a timed interval. Placement of this step after the cooling step would allow brewers to cool the wort below the hop isomerization temperature and then whirlpool their flame-out hops.

Degree C symbol

Would it be possible to have the Celsius version of the firmware keep the degree C symbol active? I use Fahrenheit on the hot side, and Celsius on the cold side (because I'm a masochist).

Thanks!

(By the way, this firmware has made this controller SO much more useful! Looking forward to automated diacetyl rests on my lagers!)

A/D filtering

This would be nice to have. Seems unlikely that it could be done, but I'll keep it in mind.

More information needed to wire up pump control with the dimmer on OVBSC README

I'm having trouble figuring out how to wire up my 12v pump to the STC with the 12v dimmer that's been suggested.

On "Fig 1: Connection terminal of the LED dimmer" - It's not clear where we should be soldering a new connection from the STC to the dimmer. I assume it means the pad near J2?

Later, "The schematic of the dimmer shows, that if you connect this output to the center pin of the potentiometer...". I don't have my dimmer yet, but I assume this involves cracking the dimmer open and directly soldering to the pot, and not using the 4 terminals at the bottom?

Should we be wiring up the dimmer, as per the SSR pump control directions mentioned later?

Also, how many volts can we pass through J2? since it's 12v for a pump and the dimmer is suited to this but it's unclear how to send the current for the pump through the STC to control it.

Thanks for any help and updates that will help me with this.

Sensor alarm

Sensor alarm is now disabled, as it seems to interfere with cooling relay for some reason. I need to investigate and fix this.

STC1000 version using N96A8211 conversion to PIC 16F1828 is possible.

Having purchased two stc1000 from ebay and found them to be the version that uses the N96A8211 chip, I decided to do the conversion to PIC 16F1828.

The pin outs are completely different.
The button BTN_PWR and BTN_S and BTN_UP and BTN_DOWN Addresses need to be swapped respectively in the software.
The temperature probe on the N96A8211 operates in the opposite way to the PIC version.
So that has to be changed. It requires a 10K ohm resistor pull down resistor on the input of the pic, with the temp probe connected between the pic (pin 18) input and vcc. (+5)
The conversion can be done on a bit of prototyping board, there is enough space in the case for it.

I’m toying with the idea of getting a small PCBs made that will hold the PIC chip and that can be soldered in place of the N96A8211… I’ll publish the pcb layout and or make the adaptor available if there is any interest.

uart/serial interface

Would it would be possible to utilze the 16F1828s uart by sacrificing the buzzer(RA0/TX) and a thermistor (RA1/RX) to be able to log temeratures and send new profiles to the stc1000p over an serial console (by adding a bluetooth/wifi module or a plain usb-ttl bridge).

Looks like I got a new hardware version

I have had a STC-1000 for a month or so now and was just trying to flash it this morning. When I removed the case I noticed the the 5 nice neat solder locations for the header pins were absent. There are 5 pins labeled but spread out across the front of the board. (NTC1, NTC2, VCC, RST, GND) Can you tell me what the pin-out is so I can try and flash this one? Also if it helps the info on what looks like the embedded PIC is "HOLTEK HT66F40 B433K0667G3" Any help or insight. Would be awesome. I am in need on a second controller so I just ordered 2 additional units from separate amazon sellers. I will see what version of the hardware I get when they arrive.
20150121_081604

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.