unifiedengineering / t-962-improvements Goto Github PK
View Code? Open in Web Editor NEWImprovements made to the cheap T-962 reflow oven utilizing the _existing_ controller HW
License: GNU General Public License v3.0
Improvements made to the cheap T-962 reflow oven utilizing the _existing_ controller HW
License: GNU General Public License v3.0
SystemFan_ValidateNV() is called in Setup_setValue() in setup.c. LPCXpresso is making mild complaints
../src/setup.c:60:2: warning: implicit declaration of function 'SystemFan_ValidateNV'
Solution is to add #include "systemfan.h" to setup.c
Is it OK to discuss general software and hardware issues here please?. If not, I don't now where else to go. I'll try to get away with 3 subjects and if I fail, just kick me out :)
only two thermocouple interfaces are actually used, but you have to have 4 because they are counted down from 3. When only 2 are attached, they become id 3 and 2.
Couple of little items.
The beeper should beep for about a second when the run is complete.
Leads to a missing dropbox file: https://github.com/UnifiedEngineering/T-962-improvements/wiki/T92A-Controller-Schematics
Hi, Duncan from Cape Town here.
Received my oven yesterday at 19:00 and by 22:00 had completed all the mods. Thanks to everyone here who contributed - an awesome difference in usability.
Now I'm trying to drill into the code a little bit and find I can't compile under LPCXpresso [V8.0.0 build 526] due to these annoying syntax errors in vic.c :
* asm("MRS %0,cpsr" : "=r" (state));*
../src/vic.c:43:20: error: expected ')' before ':' token
* asm("MSR cpsr_c,%0" : : "r" (mask));*
../src/vic.c:57:22: error: expected ')' before ':' token
I get by in C but I'm not a real expert. From what I can see this is some discrepancy between GCC and the syntax used by the compiler embedded into LCPXpresso and has me stumped.
Can anyone assist ?
Duncan
I'm not sure how to interpret the date code. Was it made in 2014 or 2015?
This unit was bought from an eBay supplier in the UK.
(The nominal UK mains supply is 230 V, 50 Hz).
The processor is marked LPC2134.
# FindingsThe Cold Junction Compensation modification and new software work great on this hardware.
As others have reported, a quick check with a multimeter showed that the metal case was not properly connected to the mains earth conductor. A modification was made to add an earth point on the main case and another on the lid.
This appears to be a relatively dangerous bit of equipment to work on, especially because mains voltage is present on the processor PCB. We should be careful!
I noticed X1 and X2 (from the MAX31850K interface) don't seem to be used for calculating the actual temperature shown in baking mode (shows 101.5C instead of 106C:
I can't say if X1/X2 are used when baking.
The X1/X2 temperature however seems to be taken into account when reflowing, here some tests I did. I ran every profile configuration several times with empty oven and minimum fan=12 and the graphs for each configuration are always similar:
L+R only used (L+R reversed in this picture) :
X1 between L+R but closer to the pcbs:
Does anyone have similar differences between L+R when the fan is on?
I just measured the distance from the tip of the sensors to the tray walls and they differ by 2cm with the right sensor being closer to the wall which would make sense as it takes longer to cool down (always has higher temperature when fan is on).
This could mean that the sensor placement is quite critical and I should readjust them. I will do some tests on replacing them now.
Hi,
I'm using the latest version 0.5.1 and I've wired in the cold junction compensation hardware (DS18B20) and cold junction composition is recognized when I turn on.
And, the TC gain and offset inputs on the setup screen don't seem to change the displayed values, either the "Oven temperature" reading on the display or the output on the debug.
If I use the 'about' command I get these values
Initializing improved reflow oven...
Part number: LPC2134
EEPROM contents:
0x0000: ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 64
0x0010: 00 00 00 00 00 64 00 00 00 00 00 00 00 00 00 00
0x0020: 00 00 00 c8 00 00 00 00 00 00 00 00 00 00 00 00
0x0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0040: 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0060: ff ff 4a 57 09 0a 03 64 64 64 64 09 00 1e ff ff
0x0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
0x0080: 56 57 00 16 00 23 00 32 00 41 00 50 00 5f 00 6e
0x0090: 00 7d 00 8c 00 9b 00 9b 00 9b 00 a5 00 a5 00 a5
0x00a0: 00 a5 00 a5 00 a5 00 aa 00 b9 00 c8 00 d7 00 e6
0x00b0: 00 f5 00 f6 00 f5 00 e6 00 d7 00 c8 00 b9 00 aa
0x00c0: 00 9b 00 8c 00 7d 00 6e 00 5f 00 50 00 41 00 00
0x00d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x00e0: 00 00 00 00 31 6a 00 00 3b 5d 00 00 00 11 00 00
0x00f0: 07 6f 00 00 40 00 00 00 16 00 00 00 07 00 58 59
Sensor values:
Left: 54.2degC
Right: 22.6degC
Cold junction: 22.0degC
So it looks like my sensors are not calibrated.
So I went into the setup screen and tried changing the Left and Right TC offsets, however it didn't make any difference to the values that were output to the debug terminal.
I know both thermocouples are working, because if I heat the oven for a 30 secs and check get 'values', the TC values change.
Left: 88.7degC
Right: 75.8degC
Cold junction: 22.0deg
I suspect that somehow I've stuffed the original factor calibration values, as one of my attempts to flash the firmware failed, but I'd like to be able to recalibrate and I presume its best to NOT mess around with the trimpots, and to just adjust the TC calibration values in the firmware ?
Leftovers from #62:
Hello
I received today my T962A. I installed firmware 0.51 using FTDI MM232R without any problems.
After that, i installed DS18B20 following instructions, but it´s DS18B20 is not detected by firmware. I have always the message "no cold-junction TS".
As i work normally with onewire devices, i removed DS18B20 and i connected it to my PC using "onewire viewer" software and the device is working showing 21.6 ºC (room temperature).
I soldered it again to T962A PCB and i started to measure the voltages on the pins. on Pin 1 and 3 i have 0V and on pin 2 i have 3.3V. This means the 4.7K pullup resistor is ok and gnd connection is ok.
There is good continuity betwen Pin2 (Dq) and LPC2134 pin31 (po.7). On this pin i have 3.3V (correct voltage driven by 4k7 puul up resistor).
On oven boot the firmware detects LPC2134(/01/) revision F.
Oven PCb is labeled as T962-2 New2
The production date of oven is 15.05
Anyone can help me to identify cause of problem?
thanks in advance
Howdy, great work everyone! I've just uploaded the latest firmware to my T-962 (small), but don't have time yet to implement the hardware mods. Can the oven, with this latest firmware, still do a decent job at reflowing leaded boards? I just need to pump out a couple of quick prototypes and then I'll circle back to doing the mods later. The serial output stream is showing a ColdJ value of zero (probably because I haven't done the mods yet), but is that a problem? In other words, what hardware mods, if any, is this firmware dependent on for "decent" reflow functionality? Or would I be better off, for the moment, reflashing the stock firmware? Thanks!
The new version always starts from power-up running the default profile - no logo screen, no main menu screen. Was this intentional?
It would be nice to have some indication the oven is in bootloader mode. Because the current code tries to avoid setting anything up (since you've got to undo most of it) before entering the bootloader, it made doing this more difficult.
Would about beeping the buzzer rapidly a few times if F1 is held down? That could be done without needing to enable advanced features (such as writing to the LCD would require). I wanted to get some input on what a reasonable indicator would be, that also wouldn't be too annoying if you DID get in a bootloader loop for some reason ;-)
First of all, Thanks for this awesome firmware.
When I flash the v0.5.1 pre release, everything works.
When I compile the V0.5.1 branch and flash the firmware (no errors when compiling) it looks like everything works. But when the t-962 wants to turn the Lamp on or when I am going to the settings menu, the micro-controller resets itself and boot again.
Is it a problem with my compiler? Or is there a bug in the source code?
If I compile the firmware the .hex looks different then the pre release hex.
This is my make log: http://pastebin.com/A5r4CGJw
If you enter Manual Bake
Set a temperature (e.g. 100 deg)
Press F3 to Select INF (I presume this means infinite)
(Temperature starts to rise)
Press S to exit to main menu (Do not press F4 to stop)
(Bake is stopped)
(Main menu is displayed)
Press F3 to enter Manual bake
(Note screen is displayed as if the bake is running in INF mode, however in reality its in STOP mode)
Just playing with the oven at this stage, trying to calibrate it. I would like to ask Mr. Werner Johansson of Unified Engineering, if he could squeeze it in, if he think it's practical.
Not really sure where to post this as it's not really an 'issue' as such , but I've done some experiments with my oven that are as scientific as I can make them with my set up and thought I would share them. Please feel free to move / edit / comment / delete as necessary.
I have a T-962 (not 'A') with the original analogue TC1 and Tc2 flashed with Werner's latest 'master' code as at 27/3/16.
I have not attempted to calibrate the TC's at all and all slopes and offsets are at 0.
Min Fan Speed is set to 12.
Using the serial protocol on the T-962 and an accurate temperature logger with the TC fixed to a small PCB in the centre of the oven (mounted on pcb standoffs and with a small amount of thermal paste between a track on the board and the TC junction), this is what I got -
Yellow is the setpoint tracking for SAC305.
Orange and Grey are the two TC's
Blue is the temp as reported by the oven (the average of TC1 and 2)
Green is the actual temperature at the board.
Interesting points are -
Between 55 and 115C and again at 163C to 217, the two thermocouples track almost perfectly, but outside that, they vary wildly with a really odd kink centered around 139C and in the cool down they are miles apart.
The actual board is slower to heat up than the setpoint by quite some margin, but does eventually reach the peak temp at about the right time.
With these settings, the board gets around 13C hotter than the intended peak.
The cool down rate of the board is way slower than the air temperature (which is to be expected), but means that you can't accurately rely on the oven reading to give you the cooling profile unless you have a TC on the actual board.
I have one of the 4 channel digital boards arriving soon and will try to repeat the exercise to see how it compares. I have a feeling that there's quite a bit of non linearity in the response of the analog TC circuit.
I'm thinking that the only real way to go is to have the two additional TC's permanently fixed to sacrificial PCB's either side of the one I'm baking.
Comments welcome.
Is it possible that the factory firmware places thermocouple calibration data in the EEPROM? If so, this could be read and used in the new firmware.
EDIT: I guess this is not possible since all 256 bytes are used by the custom profiles. There are some "unused" bytes that are written with values other than 0 and FF, but those are the same for both the t962.h file and my oven's EEPROM so whatever that is, it's probably not calibration. However, maybe the unused locations could be used for storing calibration data in the new firmware.
Hello,
I'm trying to first-flash my T-962 (purchased in summer 2015). A few moments after I hit Start Button Flash Magic Utility says "Operation Failed. Failed to autobaud. See http://www.flashmagictool.com/autobaud.html". LPC2000 says "Reading of PART ID Failed"
My COM port is OK, connection is done according to schematics you provide. I'm using jumpers to enter bootloader. Apparently LPC2134 is switching into bootloader mode. However flashing with LPC2000 v2.2.3 or Flash Magic v 9.20.3898 failed at the beginning because they cannot communicate with the board.
However, when I started Terminal in Flash Magic Tools and after manual reset / bootloader entering "?", I'm receiving responses, for example 0xC2B235C28DC38A7AC39A141A6A5A54C2BA2AC3AB. Thus it seems the communication is OK.
Please advice if I'm missing something specific for communicating with LPC2134.
I'm using Win 7 with SystemBase PCI to Serial Port card.
Best regards,
Rinat
Unit made 09- 07 (ordered in 2007) have the LPC2114FB064 controller.
This appear as LPC2144 in the LPC2000 flash utility.
.hex uploads ok, and the controller seems to work as it should.
Is it possible to reset the uC automagically after flashing the new software from the bootloader?
The oven should remember the last used profile and automatically select it at startup.
I've created a pull request for this, but there's two issues rammed together so just adding separate issues if you want to discuss.
I've added code that holding the F1 button when you power on the unit causes it to enter the bootloader. The fan & heater are turned off however, so it's a littler nicer/easier to use than the normal method. In theory you could run the bootloader faster too by leaving the chip on PLL, but I didn't do that. Is there any bad effects I'm missing by adding this?
Hi There,
I just received this morning my T962 and of course will try to mod and upgrade the firmware but I have 2 questions that may be some of you may clarify :
Thank you very much for any explanation.
On the main menu screen, the oven temperature display updates so fast it is hard to read. Suggest changing the update rate to 1 or 2 times per second.
Hello,
I have two Thermocouple Amplifier with 1-Wire Breakout Board - MAX31850K from Adafruit and would like to upgrade my T-692. As I understood MAX31855 is supported since firmware version v0.3.0. Is there a chance, that MAX31850 is also supported?
Regards,
Peter
This will solve #13 and will make it possible to adjust the length of reflow complete beep, the minimum fan speed during reflow and possibly PID tuning (if there's any interest). The PID adjust might solve #10 as well if it's not already reasonable.
F1 and F2 in main menu will be repurposed and the edit function will be embedded within F4/Select profile instead (when on one of the EEPROM profiles F3 will bring up the editor).
I've added a pull request with some initial serial buffering code, which will make parsing messages much easier. I've also changed the default baud rate - I don't know what the thoughts on this are? I'm going back to ye old 115200, as some (such as my) serial USB converter don't support 2MB/s.
This avoids using interrupts since some of the other code isn't interrupt-safe. But it's almost as good.
With the buffering code there's no problems about hanging in printf() statements. If you push too much data it will just drop it however - can change that to block if you want, but it's an easy way to check if the baud rate is sufficient...
Attempting to recompile to use DS1822 instead of DS18B20, 1 wire code should be compatible, however the family code of 0x28 is preventing the use of the DS1822 because it's family code is 0x22. Without 0x28 it assumes there is no temp IC. #define OW_FAMILY_TEMP (0x28)
simple solution change 0x28 to 0x22 and recompile.
Better solution:
and an OR statement to allow use of either device.
First attempting to recompile with zero changes, I get three errors in VIC.C
I get the following error on Lines 45, 51, 59
Type expected ')' before ':' token
LPCexpresso is in it's default directory, T962 in C:\t962 but I'm guessing this is path issue ?
Hi
Thanks for a great project!
I have some issues with the screen flickering in a strange way(see video below). I triead both to use my own build and the one available online but with the same results. I do not think it is a hw issue because the owen works normally when using the original fw.
Any ideas?
Video:
https://dl.dropboxusercontent.com/u/74192107/wp_20141206_10_41_20_pro.mp4
Best regards
/Fredrik (Sweden)
In general, the PID for the fan and lamp do a good job of making the actual temperature track the profile. However, at the peak of the profile when the temperature starts to go down, the fan startup is delayed and this results in a longer period of time spent at the peak temperature. Is it possible to change the fan PID to make the fan more responsive?
Just flashed it with the Thermocouple mod, never tried without. Pressing any of the buttons except info will make it crash after the display was updated.
Initializing improved reflow oven..
Reset reason(s): [WDTR]
Running on an LPC2134(/01) rev F
Waiting for keys to be released... Done!
Buzzer_Init
ADC_Init called
OneWire_Init called
Scanning 1-wire bus...
Found 1b4cdc03886ad03b [Thermocouple interface, ID 3]
Found 734cdc03886ae73b [Thermocouple interface, ID 2]
SPI_TC_Init called
SC18IS602B_Init - No chip found
bake setpoint values: 0, 1e, 30
SystemFan_Init
# Time, Temp0, Temp1, Temp2, Temp3, Set,Actual, Heat, Fan, ColdJ, Mode
bake setpoint values: 0, 1e, 30
Starting reflow with profile: 4300 63SN/37PB
bake setpoint values: 0, 1e, 30
# Time, Temp0, Temp1, Temp2, Temp3, Set,Actual, Heat, Fan, ColdJ, Mode
0.
%s: Incompatible bitmap format!
%s: Image won't fit on display!
bake setpoint values: %x, %x, %d
CUSTOM #2CUSTOM #1PID CONTROL TESTRAMP SPEED TEST4300 63SN/37PBNC-31 LOW- TEMP LFAMTECH SYNTECH- LFLPC2131(/01)LPC2132(/01)LPC2134(/01)LPC2136(/01)LPC2138(/01)LPC2141LPC2142LPC214 4LPC2146LPC2148Resetting bake setpoint to default.�@INFinfNANnan0123456789ABCDEF0123456789abcdefe%ld�5�����4�����������ؗ�Ҝ<3���#�I9=��D��2����[%Co�d(h ((((( �AAAAAABBBBBB InfinityNaN��POSIX���?$@Y@@�@��@j�@��.A�cA�חAe��A _�B�vH7B��mB@�0�B�ļ�B4&�kC��7y�AC�W4vC�Ngm�C=�`�X�C@��x�DP����KD��M��D�J��-�D���yCx�D��7y�ACn����F��?�O8M20�Hw�Z<�s�Ou}#-0+ hlLefgEFG���V�Y�\�A-Fa-f8901234567]+-00xX����+�5���������@����G�G�G�G�G�G�G�G�G��������������� %1.2fRight TC offset %+1.2f^��a?݃~ ��A��!�@_�>`��#}��B���]��<b��\߁c=|"�C��F�'y�ń�8f�Yۅg9��XG��x&Ěe;هZ��������������`
I want to thank you for your work at first. You saved me a lot of time.
I just opened my oven for the first time and i flashed latest version of firmware. However, I am not able to set the constants - probably there is a problem with reading the button status/button releasing. (I did not examine the code - I guess only). I have no problem with firmware 0.4.1
I would be very pleased to see the current temperature when entering constants.
Thank you, Tom
It would be nice if there was a better defined protocol for interacting with the computer. A simple one could for example prefix all current messages with some identifier indicating that they are free-form (a TUI/GUI could just pass those on to the user) but in addition have some messages that can be easily parsed and produced in a TUI/GUI/CLI tool. For example, "M Starting" or "P0", or "M Temperature 190.42 degrees", "P1 190.42".
Configuring profiles and monitoring the process could be much nicer from a work station.
It would be great to have a build environment that doesn't require the LPCXpresso environment, but would rather work with plain GCC tools. This would make it simpler (for Linux users with easily installable gcc-arm-none-eabi toolsets) to just take the source tree, run 'make' and then use https://gitorious.org/lpc2k_pgm/ for flashing it, without needing to download and register the 32-bit Eclipse-based IDE. lpc2k_pgm could be modified to run from command line simplifying the development process for non-IDE users.
I believe this should be possible as LPCXpresso itself uses gcc for compiling. And it's probably almost there, but the missing bits are:
I've identified the problem with the LCD being off:
Don't know what exactly happened...
Package marking is LTKF which seems to be a LT1617 micropower inverting DC/DC converter Will try to replace that part. Or find a compatible LCD module, which might be hard...
Hi all. Spent the last couple of slack days on a control interface for the T-962 based on the current serial interface in vb.net, I have a nice real time graphing interface going on (see attached pic). and I'm working on storing / retrieving the actual burn data for each batch of boards.
I can make the files available if anyone is interested in looking at / improving it.
This was a mod to a program I wrote to control the Beta V3 toaster oven controller, where I developed a way to read a text based config file and used it to set profiles in the controller.
Is anyone willing to collaborate at the NXP microcontroller end to develop a way to set new profiles into the EEPROM via the serial interface ? I've taken a look at the code and the it looks fairly straightforward, but it's too big a learning curve for me to get into at the moment.
I wonder how similar the SMTmax AS-5001 and the T-962 ovens are hardware wise. They certainly look very similar but the UI differs a lot. Any AS-5001 users that has disassembled their ovens that are reading this by any chance?
I screwed up the original blue pot setting and I wonder what is the best way of calibrating oven thermocouples from scratch. I calibrated my K thermocouple thermometer in boiling water corrected to barometric pressure to start with. Would it be OK to clip the thermometer thermocouple to the oven thermocouple to have accurate reference? Than setting offset and gain in V0.5.0 all to zero. Than run Bake at say 150 degC and adjust blue pots to the temperature readout of thermometer and then check it at 250 degC or vice versa? The temperature/voltage of K thermocouple should be reasonably linear, and main interest is in the region of 250 degC. Is this a correct way or would you suggest otherwise?
I've implemented some very crude serial command code in https://github.com/jieter/T-962-improvements/tree/serial-command, enabling me to run both test profiles on the T962A.
Hello, I recently ordered a T962A and expecting to receive it next week. I was prepared to take it apart and apply the most critical fixes like replacing masking tape and changing the firmware and so on. However the more I looked around the web the more potential problems I found that even if not critical it seems like they would be good to address to avoid future problems or improve the oven.
I think it would be a good idea to add to the wiki a list of all known problems (with info about which version it applies) as well as proven improvements along with ideas of improvements. The idea would be to collect as much info as possible in one place and reduce the need to trawl the web (HaD thread, various sites, youtube) to know what you get into when deciding to buy one and what you can do to make it better if you have one.
Since I don't have my T962A I don't want to start a wiki page just yet but I'll list my findings and it would be good to hear from those that have had the ovens for a while which issues are worth worrying about and any tips to get good results.
I really appreciate all the work you've done and I hope we can work together on collecting useful T962/T962A reflow oven information.
Anyone knows how to do that in an easy way? If I get some time I will try to search for a solution.
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.