unexpectedmaker / reflowmaster Goto Github PK
View Code? Open in Web Editor NEWReflow Master is an open source Toaster Oven reflow controller that includes both hardware and software.
Home Page: http://unexpectedmaker.com
License: Other
Reflow Master is an open source Toaster Oven reflow controller that includes both hardware and software.
Home Page: http://unexpectedmaker.com
License: Other
I am trying to get the eagle files to work but it keeps giving me the same error
"Error:
line 8, column 16: This is not an EAGLE file.
"
I tried to download the GERBER file and found that the version is 2018-2. I noticed that the version on tindie is 2019-2. Please update the file. Thank you.
abort does not turn off heater immediately
SetRelayFrequency(0);
void AbortReflow()
{
SetRelayFrequency(0); // relay off
if ( state == 1 || state == 2 || state == 16 ) // if we are in warmup or reflow states
{
I think I found a bug, but I am hacking on my own fork and have not reproduced using upstream so was wondering if someone could confirm.
I noticed when I had sharp curves ( I am making some custom curves ) I was getting massive overshoots, 20-30C, and the heater would turn on randomly when way above wanted temp and even on cooldown, so I figured something might be wrong.
It looks like percent can be negative which causes duty to go above 0% and pulses the heater when it is not needed.
I added some sanity checking for perc and it seems to made a huge difference.
But if someone could check and test and make sure this is not going to break something.
change is below
MatchTemp()
// prevent perc less than 1 and negative and greater than 100
perc = constrain(wantedDiff - tempDiff,0,100);
if(perc < 1) perc = 0;
BAD log
(ignore the T stamp, I am using a holding pattern)
T: 70.00 Current: 125.30 Wanted: 105.00 T Diff: 0.00 W Diff: 0.00 Perc: 0.00 Delta: -20.30 Base: 0.00 -> SetRelayFrequency
RELAY Duty Cycle: write: 0.00 0.00% Using Power: 100%
Holding..
T: 70.00 Current: 125.68 Wanted: 105.00 T Diff: 0.37 W Diff: 0.00 Perc: 0.00 Delta: -20.68 Base: 0.00 -> SetRelayFrequency
RELAY Duty Cycle: write: 0.00 0.00% Using Power: 100%
Holding..
T: 70.00 Current: 125.60 Wanted: 105.00 T Diff: -0.08 W Diff: 0.00 Perc: 0.08 Delta: -20.60 Base: 0.00 -> SetRelayFrequency
RELAY Duty Cycle: write: 12.00 4.69% Using Power: 100% <------- HMMMM
Holding..
T: 70.00 Current: 125.39 Wanted: 105.00 T Diff: -0.21 W Diff: 0.00 Perc: 0.21 Delta: -20.39 Base: 0.00 -> SetRelayFrequency
RELAY Duty Cycle: write: 36.00 14.06% Using Power: 100%
Hey, I am trying to build this oven, but having a hard time finding the exact components. Can you please provide the MPNs of the components in the BOM File?
Thanks in advance!
Great project. Thanks for sharing it!
Might I suggest listing a BOM of the purchased parts?
Affiliate links are always welcome as well.
Also I support your decision to add a "Buy Me A Coffee" link. So many times I've found and used an open source project and have no way of expressing my thanks to the person that put all the hard work into it. I really wish GitHub had this integrated.
I've attached a PDF of the current schematic (Rev F) as I find this super handy when checking out a project.
Currently looks like ATSAMD21G-A are hard to source. How many of the SAM D21 family might be an optional drop-in replacement please? Based on, I guess, why you opted for that chip.
https://au.mouser.com/c/?q=ATSAMD21G seem to have various SAM D21G variants.
I can’t seen to figure out what voltage regulators you are using? The diode is also just the package type. Also the crystal is the same just the package. Kinda confused about the 12.5 pf 0805s also since they aren’t able to be bought. I’ve asked and searched a few suppliers and have been told such a part isn’t made.
I am surprised your environment doesn't crash because of this, esp32 does
baseCurve.setPoints(CurrentGraph().reflowGraphX, CurrentGraph().reflowGraphY, CurrentGraph().len);
baseCurve.setDegree( Hermite );
You specify Hermite, but provide no tangents to _m
void setPoints( float x[], float y[], float m[], int numPoints );
in spline, this causes exceptions on esp32, loadprohibited , since _m is unset
// calc()
// _m[i], _m[i+1]
return hermite( ((x-_x[i]) / (_x[i+1]-_x[i])), _y[i], _y[i+1], _m[i], _m[i+1], _x[i], _x[i+1] );
Oddly , The spline lib doesn't seem to catch this or ensure that _m is set for hermite sets..
No idea what memory this accesses on samd, maybe its safer, shrug.
Hi @UnexpectedMaker and thanks for your open-source projects and YouTube videos.
I am making a pretty similar project for a hot plate where I replace the original controller board with a custom one. Since there is just space for a segment display and some buttons, reflow profile will be configured from a smartphone using BLE. The hardware is mostly final and I am now working on the firmware using ESP-IDF.
I stumbled upon your project and found that you use the same thermocouple chip (MAX31855) than me and I am wondering how did you settle on the current temperature controller. I started working on a PID controller but saw that that you are only using a differential input:
ReflowMaster/Code/Reflow_Master_v2/Reflow_Master_v2.ino
Lines 997 to 998 in 29f8a3f
I did not try to tune the PID controller on the plate yet but was wondering how did you settle on a proportional-only controller? Does the temperature closely match the chosen profile? I also saw some recommendations to rather use bang-bang (on-off) controllers for heaters due to the large inertia.
Unfortunately the Link for buying the TFT on Ali Express is broken: AliExpress http://s.click.aliexpress.com/e/bQYyZYRe
If I set startFullBlast true, ( I expected startup to be 100% for a bit )
Instead it goes 100% and stays 100%
I can't see whats wrong here
// override for full blast at start
if ( set.startFullBlast && timeX < CurrentGraph().reflowGraphX[1] )
duty = 256;`
seems like it should only override the first graph point or reflow level but it keeps going
Anyone have ideas, I am still trying to understand the MatchTemp
function and timex graphing loop
According to the Adafruit guide on Arduino sketches on SAMD21, performing an AnalogWrite(255)
only sets the PWM to 255/256 rather than 255/255. As such, a special case is required to handle when it's at 255 and just digitally set the pin high. This is relevant to the SetRelayFrequency
function
Might be worth investigating this, as it will improve ramp-up (marginally) and stop the toaster getting cut off and then slammed on again in periods where it should just be happily humming away. Unfortunately I don't have any hardware with which I could test this sorry, so might be a red herring if the info is wrong or the SAMD21 Arduino core has been changed.
Thanks for sharing great Project. I need to know this code support for esp32. I need to buikd dIY but SAM IC dificult to find in my town. Thanks
Hope to add language setting option in the next version
I can help adapt to Simplified Chinese, Traditional Chinese, Japanese
Some BOM items are hard to identify, especially the Micro USB socket. What is the exact component used?
I tried two different components but they do not exactly fit the footprint. I noticed the two holes in the PCB, presumably for little bolts in the component (which would actually be very useful for manual pick and place).
Also, which exact MCU is used? The BOM just says ATSAMD21G-A, but there are dozens of variations of that chip in a 48pin package. Does it matter or can I pick any?
I ordered a board from you last year (thank you, by the way!) and it's labeled "2020-2". It looks like the EAGLE files in the repo are labeled "2018-3" and are missing the programing header.
Is there any chance you could update the board files in the repo to the latest version?
It is Reflow Master Pro ESP32 code available open source? I wanted to add some improvements to my oven.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.