jbruce12000 / kiln-controller

Turns a Raspberry Pi into an inexpensive, web-enabled kiln controller.
198 stars 110 forks source link

Not an issue but can we get cone mode added heat work #153

Closed MeltTechAu closed 3 months ago

MeltTechAu commented 1 year ago

In Australia the famous harco kiln controller got around the cone issue by reference to its own cone numbers they sold for nearly 40 years using this method and most are still operating great controller but yours is so much better just needs heat work added then it’s the best of the best maybe on the fly heat work GPT Chat can write an on the fly cone setting in python I assemble Bartlett kiln controllers here into boxes by day as a kiln technician and designer. Bartlett they are usually 5 to 6 degs c out where as the max 31855 is around 1 degrees out tested with our calibrator once tuned Jason mate yours rocks If possible can I get another platform to communicate with you other then this :) I want to bring the software to masses and probably if this works will be needing a programmer I have my first kiln manufacturer onboard www.AAKilns.com.au My contact Melttechau@gmail.com I can’t imagine how much time you have spent to make and rewrite software and all the testing.

for 5 years years all I have done is this project it is hypnotic isn’t it. Also in the earlier time before JBruce mods and split from Brett’s software originally There is some software which dropped the temperature by say 40 deg c if it hit max temp and can’t make temperature then it was sposed to carry out heat work but it didn’t ,but it did drop temp which will save the elements as a bonus by not being on flat out which also makes for longer lasting kilns ,so much more just not on here

close please jbruce12000 send me an email please let’s take this software to the now also a phone app for the dummies see devil masters code I haven’t got it going yet Cheers Brett

rondoc commented 1 year ago

Can someone explain what this rather rambling message means? Heat work is just the way cone makers chose to define temperature and rate of temperature rise. It should be possible to add this to the pi controller but I do not see the need as you can program the temp slope already.

Ronald.

On Tue, Sep 12, 2023, 5:58 AM MeltTechAu @.***> wrote:

In Australia the famous harco kiln controller got around the cone issue by reference to its own cone numbers they sold for nearly 40 years using this method and most are still operating great controller but yours is so much better just needs heat work added then it’s the best of the best maybe on the fly heat work GPT Chat can write an on the fly cone setting in python I assemble Bartlett kiln controllers here into boxes by day as a kiln technician and designer. Bartlett they are usually 5 to 6 degs c out where as the max 31855 is around 1 degrees out tested with our calibrator once tuned Jason mate yours rocks If possible can I get another platform to communicate with you other then this :) I want to bring the software to masses and probably if this works will be needing a programmer I have my first kiln manufacturer onboard www.AAKilns.com.au My contact @.*** I can’t imagine how much time you have spent to make and rewrite software and all the testing.

for 5 years years all I have done is this project it is hypnotic isn’t it. Also in the earlier time before JBruce mods and split from Brett’s software originally There is some software which dropped the temperature by say 40 deg c if it hit max temp and can’t make temperature then it was sposed to carry out heat work but it didn’t ,but it did drop temp which will save the elements as a bonus by not being on flat out which also makes for longer lasting kilns ,so much more just not on here

close please jbruce12000 send me an email please let’s take this software to the now also a phone app for the dummies see devil masters code I haven’t got it going yet Cheers Brett

— Reply to this email directly, view it on GitHub https://github.com/jbruce12000/kiln-controller/issues/153, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXA65G53XDFS6UH2PQKAFRTX2BL7RANCNFSM6AAAAAA4U2E7UE . You are receiving this because you are subscribed to this thread.Message ID: @.***>

chipgarner commented 1 year ago

I can see a couple of reasons for this.

One is that potters know what a cone is but may not understand how to translate this into a temperature slope. These people would be more comfortable selecting a cone.

The other reason is that the kiln, especially as elements age, may not be able to keep up with the slope. In this case automatically continuing until a selected cone heat work is reached would be great.

rondoc commented 1 year ago

May be we could include total max wattage so those with wire elements would know if their elements were aging or not. A wattage output meter is not that expensive. I am not sure, in the cheap ones, if the output is in a format that is easily incorporated to pi code.if I use an independent digital watt meter that measures current and voltage and provides a real-time power measurent. The max power needs to be about 125% of that needed to reach max kiln temp. The reasoning is that it will never reach max temp otherwise. Ronald.

On Tue, Sep 12, 2023, 10:55 AM Chip Garner @.***> wrote:

I can see a couple of reasons for this.

One is that potters know what a cone is but may not understand how to translate this into a temperature slope. These people would be more comfortable selecting a cone.

The other reason is that the kiln, especially as elements age, may not be able to keep up with the slope. In this case automatically continuing until a selected cone heat work is reached would be great.

— Reply to this email directly, view it on GitHub https://github.com/jbruce12000/kiln-controller/issues/153#issuecomment-1716179539, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXA65G3UFJHXG44N5JXLS2DX2COX3ANCNFSM6AAAAAA4U2E7UE . You are receiving this because you commented.Message ID: @.***>

jbruce12000 commented 1 year ago

Hi Brett,

Glad you like the software. Many folks here have found it useful and I hope that continues. This is certainly a spare time project for me, and I move at a snail's pace because there are lots of folks to keep happy.

I agree that a well tuned kiln using this software can stay within a single degree of error or less over entire kiln run... but it's nice to see that verified by an external calibrator.

This software is open source and free to use. There are a few small scale commercial companies using this software already. I know this because sometimes they post issues here... and they have zero knowledge of the hardware or software. I usually refer them to the company they bought from. I understand you want a developer to help move your features along. I'm probably not the right person for that. I have a full-time job and cannot make any guarantees about when things would get done.

As far as heat work... I'm not sure of the viability or complexity of implementing that as a metric. It could be very complicated and would likely be different for each kiln. Just thinking about the simple case you mentioned where the temperature remains 40C below the target... even if I run the kiln forever at this temperature, would it achieve the desired cone? In what cases should the software give up?

I'm gonna need a little time to think through heat work and what should be done with regard to it. I'm gonna keep this open while I do that.

jbruce12000 commented 1 year ago

I'm reminding myself of all those times that I ran the same kiln profile, but the kiln was loaded a little more or less than normal and how much that impacted my cone getting to that perfect bend. Sometimes it takes ten minutes longer than usual... even though my kiln stayed within a degree almost the whole run. Why does it take ten minutes longer? Might be more heavily loaded, might be kiln elements aging, might be my kiln vent venting a little more than usual. So many variables.

I never run my kiln without three cones visible through my peep: one cone under, exact, one above. I wrote the software, and I love it, but that last few minutes can only be judged by dependable old cones that achieve that perfect bend. I'm not sure the software can emulate the physics of cones and the heat work they require to bend to perfection.

I can see something like a switch that detects perfect cone bend... or even a camera that does so... but this still uses cones and would essentially be the same as a kiln-sitter.

rondoc commented 1 year ago

I think that potters are a strange breed. You could have cones that work for you but it does not guarantee a perfect firing. For example a large piece might not reach the same temperature as a small piece at the same time. That's why if you want consistent results then using a temp. profile with the same size pieces will work every time. Then cones are not useful. So far and with over 40years of ceramics I have used cones when I didn't have reliable thermometers. Since using Pi and this great software where I can predict a profile results have been great. Do any commercial large potteries use cones? Ronald.

On Wed, Sep 13, 2023, 11:06 AM Jason Bruce @.***> wrote:

I'm reminding myself of all those times that I ran the same kiln profile, but the kiln was loaded a little more or less than normal and how much that impacted my cone getting to that perfect bend. Sometimes it takes ten minutes longer than usual... even though my kiln stayed within a degree almost the whole run. Why does it take ten minutes longer? Might be more heavily loaded, might be kiln elements aging, might be my kiln vent venting a little more than usual. So many variables.

I never run my kiln without three cones visible through my peep: one cone under, exact, one above. I wrote the software, and I love it, but that last few minutes can only be judged by dependable old cones that achieve that perfect bend. I'm not sure the software can emulate the physics of cones and the heat work they require to bend to perfection.

I can see something like a switch that detects perfect cone bend... or even a camera that does so... but this still uses cones and would essentially be the same as a kiln-sitter.

— Reply to this email directly, view it on GitHub https://github.com/jbruce12000/kiln-controller/issues/153#issuecomment-1718088821, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXA65GZ5DCK2KTE7V3PLVQDX2HYZ7ANCNFSM6AAAAAA4U2E7UE . You are receiving this because you commented.Message ID: @.***>

jbruce12000 commented 1 year ago

I'm glad it's alleviated the need for cones for you. I guess I'm just doing what I was taught.

No idea if commercial potteries use cones. I'm just a small art potter that did not want to pay $600 or $700 for a digital controller.

MeltTechAu commented 1 year ago

hi i have tried a few things using chatGPT to do some bit of programming it seem to think its possible to do cones with this sofware but also can we add a timmer on catch up mode for shut off after a timer is flag activated also i was looking at adaptive tunning option save people tunning make it more plug and play

To automatically calculate heat work from the collected data and apply it when extending the profile, you'll need to keep track of the heat work for each segment of your profile. Here's a modified version of your Profile class that does this:

pythonCopy code import jsonimport os class Profile(): def init(self, json_data):

... (your existing init method) ...

    # Initialize the heat work recording file
    self.heat_work_record_file = "heat_work_record.json"
    self.initialize_heat_work_record()

    # Load configuration
    self.load_config()

def load_config(self):
    try:
        with open("config.json", "r") as config_file:
            config = json.load(config_file)
            self.temperature_drop = config.get("temperature_drop", 0)
    except FileNotFoundError:
        print("Config file not found. Using default temperature drop of 0.")
        self.temperature_drop = 0
    except Exception as e:
        print(f"Failed to load configuration: {e}")
        self.temperature_drop = 0

# ... (your existing Profile class code) ...

def extend_time(self, extra_time_seconds, delay_seconds=0):
    # Calculate the last time point in the existing profile
    last_time = self.data[-1][0]

    # Calculate the new time points based on the extension
    new_time_points = list(range(int(last_time) + 1,

int(last_time) + extra_time_seconds + 1))

    # Calculate the corresponding temperatures for the new time points
    constant_temperature = 200 - self.temperature_drop  # Adjust

this value as needed new_temp_points = [constant_temperature] * len(new_time_points)

    # Append the new time-temperature points to the existing profile data
    self.data.extend(zip(new_time_points, new_temp_points))

def add_time_delay(self, delay_seconds):
    # Add a delay to the existing time points
    self.data = [(time + delay_seconds, temp) for time, temp in self.data]

def calculate_heat_work(self, data_segment):
    # Calculate heat work for a given data segment
    heat_work = 0
    for i in range(1, len(data_segment)):
        delta_time = data_segment[i][0] - data_segment[i - 1][0]
        average_temp = (data_segment[i][1] + data_segment[i - 1][1]) / 2
        heat_work += delta_time * average_temp
    return heat_work

def add_time_delay_for_remaining_heat_work(self):
    # Calculate remaining heat work from the recorded data
    remaining_heat_work = self.calculate_remaining_heat_work()

    # Add time delay to match the remaining heat work
    if remaining_heat_work > 0:
        delay_seconds = remaining_heat_work / self.average_temperature()
        self.add_time_delay(int(delay_seconds))

def calculate_remaining_heat_work(self):
    # Calculate remaining heat work by subtracting the recorded heat work
    # from the total heat work of the profile
    recorded_heat_work = self.load_heat_work_record()
    total_heat_work = self.calculate_heat_work(self.data)
    remaining_heat_work = total_heat_work - recorded_heat_work
    return remaining_heat_work

def average_temperature(self):
    # Calculate the average temperature of the profile data
    total_temp = sum(temp for _, temp in self.data)
    return total_temp / len(self.data)

def record_heat_work(self, heat_work):
    # Record heat work to the heat work recording file
    heat_work_record = self.load_heat_work_record()
    heat_work_record.append(heat_work)
    with open(self.heat_work_record_file, "w") as record_file:
        json.dump(heat_work_record, record_file)

def load_heat_work_record(self):
    # Load the heat work record from the recording file
    try:
        with open(self.heat_work_record_file, "r") as record_file:
            heat_work_record = json.load(record_file)
        return heat_work_record
    except FileNotFoundError:
        return []

def initialize_heat_work_record(self):
    # Initialize the heat work record file
    if not os.path.exists(self.heat_work_record_file):
        with open(self.heat_work_record_file, "w") as record_file:
            json.dump([], record_file)

# ... (other methods and class code) ...

Usage example:

json_data = '{"name": "Example Profile", "data": [[0, 100], [10, 200], [20, 300]], "TempUnit": "C", "TimeUnit": "s"}' profile = Profile(json_data)

Extend the profile time by 30 seconds with a 10-second delay and

apply temperature drop extra_time_seconds = 30 delay_seconds = 10 profile.extend_time(extra_time_seconds, delay_seconds)

Calculate and add time delay for the remaining heat work,

considering temperature drop profile.add_time_delay_for_remaining_heat_work()

Print the updated profile datafor point in profile.data:

print(f"Time: {point[0]} seconds, Temperature: {point[1]}°C")you are

In this updated code:

-

The calculate_heat_work method calculates the heat work for a given data segment.

The add_time_delay_for_remaining_heat_work method calculates the remaining heat work based on the recorded data and adds a time delay to match it.

The calculate_remaining_heat_work method calculates the remaining heat work by subtracting the recorded heat work from the total heat work of the profile.

The record_heat_work method records heat work to

i put in chatgpt parts of your code then ask it to write it then add features still playing around but it just might help you as a programmer On Thu, Sep 14, 2023 at 10:37 PM Jason Bruce @.***> wrote:

I'm glad it's alleviated the need for cones for you. I guess I'm just doing what I was taught.

No idea if commercial potteries use cones. I'm just a small art potter that did not want to pay $600 or $700 for a digital controller.

— Reply to this email directly, view it on GitHub https://github.com/jbruce12000/kiln-controller/issues/153#issuecomment-1719372205, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2CVZ432LLD7EIYZYCSYZSLX2L3B3ANCNFSM6AAAAAA4U2E7UE . You are receiving this because you authored the thread.Message ID: @.***>

MeltTechAu commented 11 months ago

HI ALL GIVE MY VERSION A TRY , CONE MODE

https://github.com/MeltTechAu/kiln-controller/tree/Cone-Mode

IT worked once for me but only once it extended the timer it first finished timer then it restarted the timer to 8hr s something to continue heatwork it will push off the graph and keep going i observed once grrrrr this was not tested on a kiln it happened in my programing and testing phase on and RPI4 . Can some one else have a try ad look at it. its on port 8082

i think i have added some code in the wrong spots and i have duplicates in oven.py and ovenwatcher.py also we have a main.py app.py not 100%how they are used hmmm Anyone want cone mode i know i do just not sure i got it right especially weird how it only worked once then i cleared my browser history and it never worked after that????? Chip Jbruce ANYONE!!! Help i ve been trying not sure about my button clicks maybe i added to many duplicates???? turn down volume i turned it into a talking kiln controller aswell only on thermocouple brocken error i also added touch to the edit graph join the cause to get this off the ground so anyone can have this function on there kiln controller its a must have in the industry even the home potter needs this saves you having to figure programing firing schedules out all the time this is done automatically great for worn ot elements Bartlett have it so can we if we can get it to dam work! thankyou if you do try it out be worth it if it does check out libs ovenwacther.py and oven.py ill continue to work on it cheers in advance let me know if you get it working again its the holly grail of kiln controllers at present AI will be next to control it

https://github.com/MeltTechAu/kiln-controller/tree/Cone-Mode

Please share your work like i am ,would love to see this as standard in jbruces controller

captaincaden commented 9 months ago

I know it has been a while since this was commented on. Was thinking idly on it recently and curiosity made look into how commercial controllers achieved it.

I found in a Skutt manual:

"Cone Fire Mode is incredibly easy to use however, the software itself is extremely advanced. Cone Fire Mode uses complex algorithms to simulate the heatwork of a Pyrometric Cone. What is impressive is that it automatically makes adjustments to the firing profile based on your kilns performance. Cone values are based on heatwork and heatwork is a function of time and temperature. Therefore, if your kiln is firing slow due to a heavy load or aging elements, Cone Fire Mode automatically adjusts the peak temperature down so you get the perfect amount of heatwork. There are very few reasons not to use this mode of programming."

and

"It automatically measures the rate of firing during the last hour of the heating program and adjusts the final temperature based on the observed firing rate"

I haven't found anything else relative to what the formula and 'complex algorithms' would be to determine that, but those two pieces of information relative to it at least helped me think more about how the commercial controllers are thinking. Thought it may be helpful info to include here. @chipgarner @jbruce12000

Orton cone chart gives us some examples though, so if in the last hour of the firing the kiln was firing at a rate of 270 degrees f/hr, then the top temperature would be 2232 degrees f.

Just haven't figured out how the controller would determine if the rate isn't steady or otherwise isn't one of the rates Orton give's as an example or what the formula to calculate that would look like.

Again, just some thinking out loud and research for thought.

MeltTechAu commented 8 months ago

Hi all I’ve just spent 3 weeks of my holidays working on it I think it’s complete coding just not sure it talks to it yet will be testing it soon see if it works I’ll put it online working or not soon but It starts with set mode cone or normal mode I used the monitoring loop in ovenwatcher may modulize it yet code has been embedded hopefully I also added a pause mode to pause timer hold temp hoping it works too I even put in fall back To estimate if calculations if main calculations or log files don’t work which they are currently not don’t know y

pay for gpt chat it’s finishes off code know wot it’s talking about pretty much with picoreflow u just need to ask it the write questions I hope it will work or if I can’t make it work hope one of you can I have even put in as well hardware spi driver for the thermocouples try’s look for hardware spi falls back to software for the max 31855 and 56 also adddd a dht11 sensor humidity sensor a safety switch currently comentout as I vant import pin module for sun reason but it was working don’t know wot happened there if that’s not working using same config settings I have run it through AI today to check and sort the files out syntax errors code blocks etc hopefully everything is where it spose to be I’m. Learner coder But AI said coding is 100% complete and from wot I have learnt is awesome hope it’s right not tested yet just in codeI have it activating 1 minute before end of profile if it lags by a certain amount also at end of profile should activate it starting by setting the set cone mode in kiln controller file and a few things in oven file any way I will run it through the test it see if the thing will even load if you pay for got chat u get extra dedicated programming gpt chat 4 also ability to upload files that then can be read in detail and know what is doing apparel it knows everything about raspberry pi kiln controllers picoreflow apparently just need the right terminology to get the correct answer and know jbruces code Complex calculations have been done I used the most complex More can be added up to your imagination it does everything puts buttons in index html file routes in the kiln controller files just up load files not just text when u pay for it AI it programs spits out download finished just rename file back to original adding a feature is easy apparently like cone mode is pretty comprehensiveanyhow I have the code might take me a week or so to put it up Woking or not sooner the better when I put it through AI it’s says it’s complete and should work as expected come mode but does say it’s not always right oh it also drops temp gradually dynamically so not to cause thermal shock the drop happens start of cone mode saves elements stops the it being on flat out extends time based on complex formula it reckons Anyhow I get back to it the code is quiet extensive compared to the current uploaded version I’ll get uploading nearly lost my missus over this been on my phone months so far been a great learning how to code experience I been messing around on it make temp larger etc adding soon not finished speed control , live editing fast forward rewind slider bar skip stages and move to point in time etc, large temp display on a modal camera for the pi cams oroptional normal pid automatic running AI adaptive tunning and AI tunning pid it puts in multiple pids for zone control it reckons even mind control possible you can add ubi dots for online logging or home assistant for businesses google home or Alexis it has the code lost wax calculator which work straight up etc just ask it to intergate the files intertwine code or imbed modulize but as of yet I have gota lot of experience menu bars for pottery glass etc I did get numerical order of json files working but when i refresh browser cleared history list would go back out of Order and never do it again lol it knows picoreflow pretty well it has code to set up gmail alerts phone alerts are files kilncontroller py oven py oven watcher py index html file config and picoreflow css picoreflow Js file logging and tunning And wot Eva else is needed u think u might need Please take a look at my files and see if you can make it work if I can’t I will upload current updates will working on it where where it says master in GitHub click that select cone mode I’ve put in all the temps information the cone mapping in degs c maybe I can ask it to have another reference list in deg f I haven’t tried that one yet let’s just get cone mode operational first 3 weeks of typing questions and answers 24 7 hope jbruces software expands big time after probably 4 months of getting the right way to do it If you dl the program it comes with full cone list of firing profiles they are in deg c though but they work for glaze or biscuit they are spot on tooooo tested at a kiln factory asI only have standard medium speed profiles see my website for fast profiles so via zip or individually I still had to write slow ones but speed control next after cone mode I tried messing with that experimenting happy to share my code back to all if not working it may just need a few tweaks like having right code in correct positions or something I can’t dam see probably be obvious though boot touch screen working for editing the profile graph and talking lol yep a talking kiln controller on no connection came out echoey lol it goes wwwwww warning warning please connect your thermocouple lol Talk soon just things hopefully to all come to this awesome program other As I assemble other brands kiln controllers in to a box that connect to your kiln via 4 pin sockets and plug through ones as well by day as my day job they mostly all have cone mode in them which saves u manually changing the firing rates when you kiln starts to degrade in elements I also make elements and whole kilns from scratch in my day job at the family business by night love this project I sold 6 raspberry pi controllers to my customers they love the idea of freeware over being business owned freeware’s where it’s at that’s my take let’s make it better I’m elicited about all the possibilities there are let’s hope cone mode works then I will move on the software been around for say 15 years or so which 15 years ago it’s time it was 15 year advanced than the current Hopefully cone mode works I have seen this version click over the extend timer yet or say activate cone mode in thonny logging window and not sure when to select front end cone number as button not doing anything think I need to get rid of flask framework and back to bottle also some how some thing happened to the server html side thonny told me the server is experimental don’t use in production not sure wot is did there when I was error checking manual for indents thing came up error on oven file so I will look into this may have to transfer manually the code to jbruces last version I have saved because I tried to many ai experiments Blinks had problem on reading temperature some time you had to reboot decide several times I tried on different pi s software comes straight up every time that’s the only reason I haven’t moved there yet but u can still use the code if this works in blinka I did leave out remote monitoring and controller there’s a comment in the code where it belongs lol this is for future business I also will add to security updates AI can add that as well eco mode the list goes on

I let you know when I upload code to GitHub Cone mode the set cone mode in kiln control py is the beginning then activate then hopefully engage or at least load up lol config has settings in it to set the cone mode to true if the program doesn’t work I will upload where I’m at anyway it will be in those main files mentioned before just copy paste them over originals in jbruces .then run it

Excited about the possibility’s Better then Facebook ing any day I’ll upload soon all code is commented so you know what’s happening it may if not software not working may need log debug statements added log statements added Without cone mode sucks hopefully we can fix this issue and also the daylight saving bug maybe ad a software timer even have a fail safe timer backup reference to the log to know which one is correct if need be shit ya read al that I could of had it online by now but I’m hungry enough talking more action as my woman’s telling me MeltTech Brett

On Mon, 15 Jan 2024 at 10:40 am, captaincaden @.***> wrote:

I know this has been a while since it was commented on. Was thinking idly on it recently and curiosity made look into how commercial controllers achieved it.

I found in a Skutt manual:

"Cone Fire Mode is incredibly easy to use however, the software itself is extremely advanced. Cone Fire Mode uses complex algorithms to simulate the heatwork of a Pyrometric Cone. What is impressive is that it automatically makes adjustments to the firing profile based on your kilns performance. Cone values are based on heatwork and heatwork is a function of time and temperature. Therefore, if your kiln is firing slow due to a heavy load or aging elements, Cone Fire Mode automatically adjusts the peak temperature down so you get the perfect amount of heatwork. There are very few reasons not to use this mode of programming."

and

"It automatically measures the rate of firing during the last hour of the heating program and adjusts the final temperature based on the observed firing rate"

I haven't found anything else relative to what the formula and 'complex algorithms' would be to determine that, but those two pieces of information relative to it at least helped me think more about how the commercial controllers are thinking. Thought it may be helpful info to include here. @chipgarner https://github.com/chipgarner @jbruce12000 https://github.com/jbruce12000

— Reply to this email directly, view it on GitHub https://github.com/jbruce12000/kiln-controller/issues/153#issuecomment-1891113145, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2CVZ44WMV3NO67LDT3NLTTYORUG3AVCNFSM6AAAAAA4U2E7UGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJRGEYTGMJUGU . You are receiving this because you authored the thread.Message ID: @.***>

chipgarner commented 8 months ago

@captaincaden More cone data sure would help! The best I can find is cone temperatures for 3 rates, e.g. 15, 60, and 150 C/hr. Interpolating between these would be straightforward and should work well for constant rates. 150 C/hr is probably plenty fast for anyone. 15 C/hr is very slow, but it might be desirable to go slower than this for, say, the last half hour. As you point out, the rate is likely to be a curve.

I have tried fooling around with some hand drawn graphs and calculations after seeing your post. I think we can interpolate for constant rates but need to somehow weight non-constant rates more toward the later times - the rate at the end of the hour is more important than the rate at the start of the hour. This definitely requires some thought.

Coding a curve, say, for weighting non-constant rates would also be straightforward, but calibrating it is not. One approach would be to come up with a curve with one parameter that needs calibration and then try it. This would not be difficult to code but we could definitely call it complex!

I am trying to figure out of there is some way to calculate this from first principals or known data about melting and fusing in complex mixtures. Simplifying assumptions might be not crossing a melting point or eutectic temperature for any of the ingredients during the hour .

chipgarner commented 8 months ago

@MeltTechAu I am afraid that you are going to discover that artificial intelligence is not intelligent at all.

Are you still using temperature times time? How are you relating this to cone number?

captaincaden commented 8 months ago

@chipgarner Do you think the commercial controllers are more so monitoring to make for certain the kiln is following the curve exactly? For example, I know that Skutt's top temp in the controller for Cone 6 is 2232 degrees F. Which, probably not coincidentally, Orton says Cone 6 = 2232 F at 108 F/hour.

Basically, what I'm wondering is if the focus for the commercial controllers running cone mode is to do it's best to follow a 108 degree/hour profile in the last hour, and then if there's minor variations in time, making small adjustments in the top temperature, or if it's really far off, just erroring (Err1 for Skutt, L&L, etc.).

If there was a perfect curve in cone temps and degrees/hour and cone number this would be a lot easier. But at least from my quick checks the other day, there isn't an obvious pattern going on in the charts.

chipgarner commented 8 months ago

@captaincaden They may well be doing that or something similar. It is a pretty simple way to go, and then you can just call it complex in the sales literature.

I am thinking of two cases. In one case the kiln is heating slowly on full power and and the temperature is an arch. This makes it difficult to compute heat work without some defining equation. This is a tough problem that we may not be able to solve without a huge amount of data. (It's a fun problem though and seems related to lava.)

In the second case the kiln is still capable of heating at a constant rate within the range of the charts. You could just limit to 108 F/hr or error out as you suggest. They could also drop to the next available point in the charts. This could be a very slow rate (15 C or 27 F/hr) but would work well. Skutt claims to work with degrading elements, so I doubt if they simply quit at 108F/hr but maybe at something lower.

When I plot degrees per hour vs completion temperature from the charts (I only looked at a four cones, 04, 5, 5.5 and 6) it looks to me like you will be very close to correct if you assume the charted points are a straight line or a 2nd order curve. This allows a simple interpolation of the points for any given rate within the rate range given by the charts. You could see that the kiln is on max power and heating at only 100F/hr. Drop the rate to 80F/hr and the max temperature for this rate. I suspect Skutt and others may be doing this.

I also would not be surprised if they implemented it in the 1980's with tables. They have had little or no reason to upgrade what works well.

rondoc commented 8 months ago
I like this simpler approach , look at what the cone makers give as data and use that. i.e. if the rate of heating is this then so many degrees is a full cone. Since you are not a commercial ceramicist where they check on exact chemistry of clay and glazes please don’t make an extremely useful controller into a mess of code that we just don’t need. Reliability is critical and as you add more detail reliability will reduce. IF you really want to be useful think of using a dual system with full redundancy. Its not a space craft!{Off topic: I just built a pug mill that works for the small studio potter..if anyone wants details ask me off line. }Ronald. Sent from Mail for Windows From: Chip GarnerSent: Tuesday, January 16, 2024 4:06 PMTo: jbruce12000/kiln-controllerCc: rondoc; CommentSubject: Re: [jbruce12000/kiln-controller] Not an issue but can we get cone mode added heat work (Issue ***@***.*** They may well be doing that or something similar. It is a pretty simple way to go, and then you can just call it complex in the sales literature.I am thinking of two cases. In one case the kiln is heating slowly on full power and and the temperature is an arch. This makes it difficult to compute heat work without some defining equation. This is a tough problem that we may not be able to solve without a huge amount of data. (It's a fun problem though and seems related to lava.)In the second case the kiln is still capable of heating at a constant rate within the range of the charts. You could just limit to 108 F/hr or error out as you suggest. They could also drop to the next available point in the charts. This could be a very slow rate (15 C or 27 F/hr) but would work well. Skutt claims to work with degrading elements, so I doubt if they simply quit at 108F/hr but maybe at something lower.When I plot degrees per hour vs completion temperature from the charts (I only looked at a four cones, 04, 5, 5.5 and 6) it looks to me like you will be very close to correct if you assume the charted points are a straight line or a 2nd order curve. This allows a simple interpolation of the points for any given rate within the rate range given by the charts. You could see that the kiln is on max power and heating at only 100F/hr. Drop the rate to 80F/hr and the max temperature for this rate. I suspect Skutt and others may be doing this.I also would not be surprised if they implemented it in the 1980's with tables. They have had little or no reason to upgrade what works well.—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: ***@***.***> 
captaincaden commented 8 months ago

I agree with @rondoc that if implemented, it should be in a way where you have the option, preferably somewhere on the front end to chose between running a profile, and running cone mode (just how commercial controllers do it.)

Skutt has the option to do just cone fire mode (cone number, slow/med/high speeds, and holds at top temp), just ramp/hold (which is essentially the same as profiles, just inputting temps over time for the kiln to fire to) and custom cone fire programs which gives the ability to fire a custom ramp rate profile, and a specific cone. But, one or the other would be a nice feature to have.

@chipgarner I think you're probably right that the algorithm they mention is something like how you described. Something that can alter the ending temperature based on the ramp rate in the last 180 degrees, relative the cone chart, with a limit of it firing too fast or too slow within a certain rate to error if it can't achieve it.

Also, just a note on the mention of tables, Skutt also has a "Cone Table" key on their controllers that lets you look up by cone what the equivalent temperature is when writing a ramp/hold program.

jbruce12000 commented 8 months ago

I have not expressed my opinion on this because of focus on other things. I'm gonna mention what I think is an elegant solution to the problem and get feedback from y'all.

when creating profile:

At start of a kiln run:

While running:

Benefits:

MeltTechAu commented 8 months ago

I ended puting up 2 oven watcher files up one that still loads and the other I’ve been working on they may not need much more to get them working please have a look hope they are useful and gives u guys ideas I’ll keep at it till it flips time over to extend and for the correct amount Have a great day all

On Thu, 18 Jan 2024 at 7:18 am, Jason Bruce @.***> wrote:

I have not expressed my opinion on this because of focus on other things. I'm gonna mention what I think is an elegant solution to the problem and get feedback from y'all.

when creating profile:

  • pick cone in UI

At start of a kiln run:

  • lookup heat work total at maturation for the given cone
  • lookup peak temp in profile and go back one hour from that to find where I start recording heat work

While running:

  • calculate total heat work every duty cycle (temp X time)
  • store heat work this duty cycle (if within hour window)
  • if heat work total exceeds heat work total for this cone, then done. done could mean a few things... end the run or drop the temp by 100 degrees and ignore the profile until it's below that. Some folks will want to control cooling for crystals to form.

Benefits:

  • heating rates don't have to be specific (like 108F/hour or whatever). you can heat at any rate you want and it can vary over time.
  • a colored dot could show the estimated maturation point in the profile during creation. this way, you know if you're making a profile that will work for the cone you're trying to achieve. You'll be able to see how long it will take to reach maturation.

— Reply to this email directly, view it on GitHub https://github.com/jbruce12000/kiln-controller/issues/153#issuecomment-1896625764, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2CVZ47IFCPOF6BQSBGHPBLYPAWZBAVCNFSM6AAAAAA4U2E7UGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJWGYZDKNZWGQ . You are receiving this because you were mentioned.Message ID: @.***>

MeltTechAu commented 8 months ago

I forgot to put up cone py just did it then it’s for the second oven file that actually loads up just rename to oven py the second oven file hope one of you guys have a clue don’t think to much more is need for my one that uses cone py file Cheers guys Brett

On Thu, 18 Jan 2024 at 8:20 am, brett probert @.***> wrote:

I ended puting up 2 oven watcher files up one that still loads and the other I’ve been working on they may not need much more to get them working please have a look hope they are useful and gives u guys ideas I’ll keep at it till it flips time over to extend and for the correct amount Have a great day all

On Thu, 18 Jan 2024 at 7:18 am, Jason Bruce @.***> wrote:

I have not expressed my opinion on this because of focus on other things. I'm gonna mention what I think is an elegant solution to the problem and get feedback from y'all.

when creating profile:

  • pick cone in UI

At start of a kiln run:

  • lookup heat work total at maturation for the given cone
  • lookup peak temp in profile and go back one hour from that to find where I start recording heat work

While running:

  • calculate total heat work every duty cycle (temp X time)
  • store heat work this duty cycle (if within hour window)
  • if heat work total exceeds heat work total for this cone, then done. done could mean a few things... end the run or drop the temp by 100 degrees and ignore the profile until it's below that. Some folks will want to control cooling for crystals to form.

Benefits:

  • heating rates don't have to be specific (like 108F/hour or whatever). you can heat at any rate you want and it can vary over time.
  • a colored dot could show the estimated maturation point in the profile during creation. this way, you know if you're making a profile that will work for the cone you're trying to achieve. You'll be able to see how long it will take to reach maturation.

— Reply to this email directly, view it on GitHub https://github.com/jbruce12000/kiln-controller/issues/153#issuecomment-1896625764, or unsubscribe https://github.com/notifications/unsubscribe-auth/A2CVZ47IFCPOF6BQSBGHPBLYPAWZBAVCNFSM6AAAAAA4U2E7UGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJWGYZDKNZWGQ . You are receiving this because you were mentioned.Message ID: @.***>

chipgarner commented 8 months ago

@jbruce12000 I hope your brother is doing well

chipgarner commented 8 months ago

@jbruce12000@captaincaden@MeltTechAu I cannot figure out how to relate cones to heat X time. Where does one lookup heat work total at maturation for the given cone?

Cone charts all seem to show the same 3 heating rates, 15C/27F per hour, 60C/108F per hour, and 140C/270F per hour. Various charts limit the time of interest in various ways, e.g the last hour, the last 90 to 100 minutes, and the last 100C.

The chart on the Orton site says the cone final temperature numbers are valid when the rates are held for the last 100C/180F. If I calculate the area under the triangle for the last part of the firing,, i.e. for the last 15C over 6.66667 hours or for the last 150C over the last 0.66667 hours, I get a constant 50Chr / 90Fhr for all cones at all rates. This is of no help.

Adding in the rectangle, down to say zero or the start temperature, I get very different times*temperature "heat work" for a given cone at different rates.

What have I missed?

jbruce12000 commented 8 months ago

@chipgarner here's what I've done so far. This is kinda complex, so ask questions...

I've used python to simulate a cone such that for a cone with the 3 rates and corresponding maturation temps as input, I can find the maturation temp for any heating rate [within reason 10C/hr through 300C/hr]. I use some math libraries to curve fit the three points. The fitted curve equation can be used to get the maturation temp for any rate.

When I iterate over all the reasonable rates [like 15C/hr to 250C/hr] by 1 degree C for a given cone [like cone6]... for each rate, if I calculate the total heat work using a 2s cycle time [so that's 2 seconds X temp for that 2 secs] iterating every 2s from 1 hour in the past to maturation [to get the total heat work for those 1800 samples], I get a deviation of just a few percent across that for total heat work comparing different rates. This few percent equates to a minute or less actual firing time.

As an example, here are two different heat rates for a cone6 cone...

name,heating rate in C/hr, maturation temp, temp to start measuring, total heat work to bend cone (in degrees C X secs) cone6,30,1203.09,1173.09,4277147 cone6,89,1230.61,1141.61,4270090

So this data says when I heat at 30C/hr from 1173C to 1203C [cone fully bent], the cone6 cone absorbs the same energy as when I heat at 89C/hr from 1141C to 1230C [cone fully bent]. I can get these stats for any rate.

The difference in total heat work (4277147 and 4270090) represents just a few seconds in kiln run time for these two examples. I think having total heat work numbers so close validates the model.

Using this ability, I think I can examine a profile and estimate the spot in the profile when a specific cone would bend. A proper estimate requires only a constant heat rate during the last hour.

chipgarner commented 8 months ago

@jbruce12000 Ah, this makes sense. The curve fit is the same idea I was suggesting above, you explain it better.

So, no relating of cone to temp * time in the model, just a sanity check.

rondoc commented 8 months ago

I am beginning to rethink this cone vs. heat work issue. Historically the cones were developed as the ONLY way that a ceramicist could determine what was happening to their pieces in the kilns. That was long before thermocouples and temperature measurements were readily available. Now we have thermal profiles and kilns that follow these thanks to all your work. Isn't this enough? I occasionally put a cone in my kiln and the result is always the same. So for me no cones is fine...Commercial ceramicists don't use cones at least those I can find on line. Who wants to peer through a hole in the kiln anyway! This is in no way to belittle the expert coders out there ( not me) who are trying to match historical processes with current tech achievements. ronald.

On Thu, Jan 18, 2024 at 5:15 PM Chip Garner @.***> wrote:

@jbruce12000 https://github.com/jbruce12000 Ah, this makes sense. The curve fit is the same idea I was suggesting above, you explain it better.

So, no relating of cone to temp * time in the model, just a sanity check.

— Reply to this email directly, view it on GitHub https://github.com/jbruce12000/kiln-controller/issues/153#issuecomment-1899477657, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXA65G5VSXMKYWIHIVATZ63YPHCLDAVCNFSM6AAAAAA4U2E7UGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJZGQ3TONRVG4 . You are receiving this because you were mentioned.Message ID: @.***>

-- Anger is usually regrettable, kindness rarely.

captaincaden commented 8 months ago

@jbruce12000 you mentioned in your outline that you'd want there to be an option to choose a cone in the front end while creating a profile, what would that look like ideally? I'm just curious how the inputs in create a profile would change or what would be added to achieve that information input.

Some kind of automatic profile generator to specific cone numbers would be pretty cool too, just like a cone number, and a fast, medium, slow option that just makes a profile related to that info, but that could come later.

@rondoc I think that having the option to relate to heat work in general for most makes things easier (because commercial clays, glazes, etc. are all rated and tested in relation to pyrometric cones in the US) which provides more consistent results when firing for a lot of people. Firing specific thermal profiles results in the same thing, but if you're firing the to same heat work every time, in theory results would be more consistent over time as elements age vs. using a set profile, especially if the controller allows for time to sway if the kiln can't catch up (as the elements age, when the kiln takes longer to fire, if the kiln just keeps firing your profile, and it takes forever to get to the final temperature of the profile, you may have hit maturity for your clays/glazes a potentially long amount of time before your profile actually ends. Some clays / glazes don't mind getting a good bit more heat work than their ratings, but the mid range porcelain I use for example, will bloat even at an early cone 7). That being said, it's really personal preference, and what you like to use, how you like to fire your kiln, and how your brain thinks about the firing and everything in relation to it best. It's just nice to have the option, especially for those who do use cones for anything else, which at least in the US, is a good percentage of people who fire kilns.

jbruce12000 commented 8 months ago

@chipgarner I am making a DIRECT relationship between a cone and total heat work (temp X time).

In the examples above, the total heat work were the very large numbers at the end of each row of data. Note that the total heat work at different heating rates is nearly the same. I think this verifies the model. The total heat work stays nearly the same for a given cone, but the temperature range where it's recorded changes with heating rate.

@rondoc I think, for beginners, it'd be easy to pick a cone number, a rate, and bam... you have a profile.

@captaincaden I have no idea what the UI would look like for this. I'm trying to figure out how to model a cone for now. I'll worry about the UI after the cone model is complete.

Note that this feature is extremely complex... not just from a technical standpoint, but also a usability standpoint. Think about automatic restarts. Think about kiln_must_catch_up. Think about non-ceramicists that don't care about cones... or even ceramicists that don't care about cones.

MeltTechAu commented 8 months ago

ive upload to where i am currently at with cone mode thia one loads up just wont activate cone mode or aet it to normal mode or cone mode at least this one loads needs a professional coder to take a look i think i got everthing right but obvisally not it may only need some slight chages to match original code it says it should work through AI anyhow i spent some aerios tome on this to get it this far all i ask is have a quick look it may not need the aeparate cone file as i put it back into ovenwatcher help complete this feature that will make this software number 1 it may take a couple of hours out of ya life to see if a goer or not please help me make this possible for all of us i was also looking into profile speed control and also use startat function with a slider bar and an update button ao u can start at any minutte in the scheduele a fast fowards and rewind mexhniam so sit diwn have a beer and make cone mode possible for ia all

MeltTechAu commented 8 months ago

yup

jbruce12000 commented 3 months ago

I think if someone wants to tackle cone mode, it should be a fork.