Ideas for software temperature control.
As we all know we are probably never going to get temperature control on our UP! printers. I have done the resistor mod and I could extend this to a pot if I wanted but ever since I got mine I have been thinking about ways which we could potentially achieve adjustable temperature from software control.
To this end there is a whole bunch questions which need to be answered but I think I have a few ideas as to how this could be done.
The first thing we really need to know is where is the temperature of the nozzle set? There is two settings one for ABS and one for PLA on all of the printers. Now the question is, is this setting stored in the firmware (ROM), stored on the microcontrollers flash or stored on the SD card.
If its stored in the ROM essentially it is never changed while the printer is running. This means that a software solution would only be possible if we were to modify the ROM file which is downloaded to the printer. While this is not impossible it is made very difficult without know what the microcontroller the board uses. I have some experience with disassembly of hex files but without a data sheet or instruction set to work from it is going to be very difficult. If you open the back of your printer you will see a warranty sticker stuck over this chip and if you peel this sticker off you can then see its been sanded. So unless someone has a chip which they are willing to peel the warranty sticker off and doesn't happen to have its part number sanded off I am thinking we are completely out of luck here.
So what about Flash or SD card, well these still offer some hope. One of the key points I would suggest anyone interested in this investigates is what happens when you switch the roll from ABS to PLA. I am unsure at this stage if it changes the default temperature in the printers Flash or SD card of if it just changes a setting from ABS to PLA. If it changes the temperature then a custom bit of software which sends a fake new roll, with a different temperature would be more than possible. If this just sets a flag this once again means that the actual temperature number could be stored on the Microcontroller.
Another possibility is that the there is no temperature setting stored anywhere on the Mini. Rather it has the state of what sort of plastic it has which is then used by the host software to determine what temperatures it should send. For example if the printers states has that it has PLA then the printer sends a command which says heat to 190C otherwise if its ABS it says heat to 260C. This would also mean that these temperatures are then sent and stored on the SD card for the prints.
So what makes me think that it might be possible via software to change the temperature. Well the most exciting thing I read recently was that for PLA 1.15 prints at a lower temperature. While I haven't really had time to test this, I was wondering. If this is specific to 1.15 and no other settings are changed in between prints this lends itself to the idea that the temperature is stored on the SD card, inside the print settings.
If this was the case how could we potentially find these differences. Well with prints we can use the "print again" feature which means the entire print is stored on the SD card. So one way to investigate this would be to print with PLA, dump the SD card and then print with ABS and dump the SD again. Any differences would correspond to the differences between the two materials. Hopefully this would just be the temperatures. I don't know if ABS and PLA vary in the movements but I would hope not. We could also then look for these sections in 1.15 vs .1.18 and see if the temperatures for PLA were slightly different.
If we could work out what parts of the files on the SD card where the temperature then the easiest way to test if we could modify them would be to modify a file on a PC dump it back to an SD then use print again. For a slightly more day to day usage (depending on where the temperature is set) we could potentially overwrite part of the file by resending. If the temperature is only contained in the first header as it heats up this could be done by overwriting the start of the file, sending the stop all maintenance command, and then printing again. This is supported by this thread http://www.pp3dp.com/forum/viewtopic.php?f=19&t=5373
Anyway this is not something I will probably have any time to work on but I think its possible. It would take a lot of USB log dumping and SD card dumping and plenty of staring blankly at hex codes but I think it could be done.
Steve
To this end there is a whole bunch questions which need to be answered but I think I have a few ideas as to how this could be done.
The first thing we really need to know is where is the temperature of the nozzle set? There is two settings one for ABS and one for PLA on all of the printers. Now the question is, is this setting stored in the firmware (ROM), stored on the microcontrollers flash or stored on the SD card.
If its stored in the ROM essentially it is never changed while the printer is running. This means that a software solution would only be possible if we were to modify the ROM file which is downloaded to the printer. While this is not impossible it is made very difficult without know what the microcontroller the board uses. I have some experience with disassembly of hex files but without a data sheet or instruction set to work from it is going to be very difficult. If you open the back of your printer you will see a warranty sticker stuck over this chip and if you peel this sticker off you can then see its been sanded. So unless someone has a chip which they are willing to peel the warranty sticker off and doesn't happen to have its part number sanded off I am thinking we are completely out of luck here.
So what about Flash or SD card, well these still offer some hope. One of the key points I would suggest anyone interested in this investigates is what happens when you switch the roll from ABS to PLA. I am unsure at this stage if it changes the default temperature in the printers Flash or SD card of if it just changes a setting from ABS to PLA. If it changes the temperature then a custom bit of software which sends a fake new roll, with a different temperature would be more than possible. If this just sets a flag this once again means that the actual temperature number could be stored on the Microcontroller.
Another possibility is that the there is no temperature setting stored anywhere on the Mini. Rather it has the state of what sort of plastic it has which is then used by the host software to determine what temperatures it should send. For example if the printers states has that it has PLA then the printer sends a command which says heat to 190C otherwise if its ABS it says heat to 260C. This would also mean that these temperatures are then sent and stored on the SD card for the prints.
So what makes me think that it might be possible via software to change the temperature. Well the most exciting thing I read recently was that for PLA 1.15 prints at a lower temperature. While I haven't really had time to test this, I was wondering. If this is specific to 1.15 and no other settings are changed in between prints this lends itself to the idea that the temperature is stored on the SD card, inside the print settings.
If this was the case how could we potentially find these differences. Well with prints we can use the "print again" feature which means the entire print is stored on the SD card. So one way to investigate this would be to print with PLA, dump the SD card and then print with ABS and dump the SD again. Any differences would correspond to the differences between the two materials. Hopefully this would just be the temperatures. I don't know if ABS and PLA vary in the movements but I would hope not. We could also then look for these sections in 1.15 vs .1.18 and see if the temperatures for PLA were slightly different.
If we could work out what parts of the files on the SD card where the temperature then the easiest way to test if we could modify them would be to modify a file on a PC dump it back to an SD then use print again. For a slightly more day to day usage (depending on where the temperature is set) we could potentially overwrite part of the file by resending. If the temperature is only contained in the first header as it heats up this could be done by overwriting the start of the file, sending the stop all maintenance command, and then printing again. This is supported by this thread http://www.pp3dp.com/forum/viewtopic.php?f=19&t=5373
Anyway this is not something I will probably have any time to work on but I think its possible. It would take a lot of USB log dumping and SD card dumping and plenty of staring blankly at hex codes but I think it could be done.
Steve
Re: Ideas for software temperature control.
Or, the manufacturer could bring out a software update with variable temperature control, that they CHARGE for, I for one would be willing to pay say US $70 for such an update. But, as others have said, they seem to be of the mindset that with-holding the feature gets them loads of bucks by selling OEM material at inflated prices.
cheers
Peter
cheers
Peter
Re: Ideas for software temperature control.
Good point Mr6K but, after, what is it? 3 weeks as an Up! Mini owner I'm pretty sure my next 3D printer won't be an Up! so they'll have to sell a whole bunch of filament to make up for that.
Ho hum!
Cheerz!
R
tz
Ho hum!
Cheerz!
R

Re: Ideas for software temperature control.
I am working on a mod for the mini platform heater. The new heater will have an external digital temperature controller. I am waiting for parts so I got nothing much to add yet. Its basically a stand alone heater and controller. I plan on fully testing and comparing and posting the results soon.
Re: Ideas for software temperature control.
@Mr6K lol yeh not gunna happen. They are working towards your inkjet printer model.
@Rootz while I do realise the Up Mini still isn't perfect, it is still by far the best printer on the market. That's right better than Up Plus IMO.
But anyway back on topic.
Think I will try and do some SD card dumps when I get a chance. My plan is to erase the SD card on the pc. Then use up inspector to do a write test on it. (Dump SD 1). Then use maintainance and add a new roll. (Dump SD 2) If this still doesn't have anything saved on it we know that roll type/amount is stored in flash. Next would be to send model with PLA setting. (Dump SD) Then Send Model with ABS (Dump SD) Then do comparisons on all of these files.
Fun times.
Steve
@Rootz while I do realise the Up Mini still isn't perfect, it is still by far the best printer on the market. That's right better than Up Plus IMO.
But anyway back on topic.
Think I will try and do some SD card dumps when I get a chance. My plan is to erase the SD card on the pc. Then use up inspector to do a write test on it. (Dump SD 1). Then use maintainance and add a new roll. (Dump SD 2) If this still doesn't have anything saved on it we know that roll type/amount is stored in flash. Next would be to send model with PLA setting. (Dump SD) Then Send Model with ABS (Dump SD) Then do comparisons on all of these files.
Fun times.
Steve
Re: Ideas for software temperature control.
The setting is not stored in hardware at all. They will store the spool info you set as a record on the SD so if you swap software/PCs and the software can read the amount of plastic left on the printer and what type it is.
The temp setting for a particular job will be created and sent within the print job instructions by the software. The instructions created by the software simply say move X, Y, extrude this much at this temp etc. This way any upgrades to the software application can change the temp settings or even allow a new material. The printer itself is fairly dumb just doing what print instructions generated by the software and uploaded to the SD card.
So, the only way to control the temp without the feature being added to the software would be to be able to reverse engineer the instructions stored on the SD card prior to print and edit the temp settings or lie to the mainboard about what the temp of the hotend is (as many already do). If you want something more sophisticated check the ARTaylor kit/mod http://www.artaylor.co.uk/pp3dp.html
The temp setting for a particular job will be created and sent within the print job instructions by the software. The instructions created by the software simply say move X, Y, extrude this much at this temp etc. This way any upgrades to the software application can change the temp settings or even allow a new material. The printer itself is fairly dumb just doing what print instructions generated by the software and uploaded to the SD card.
So, the only way to control the temp without the feature being added to the software would be to be able to reverse engineer the instructions stored on the SD card prior to print and edit the temp settings or lie to the mainboard about what the temp of the hotend is (as many already do). If you want something more sophisticated check the ARTaylor kit/mod http://www.artaylor.co.uk/pp3dp.html
Re: Ideas for software temperature control.
Been messing about with the firmware a bit today. Just looking through instructions and strings.
Managed to change my printers name from UP Mini to Up Mods. Really wish I knew what the chip was.
Steve
Managed to change my printers name from UP Mini to Up Mods. Really wish I knew what the chip was.
Steve
Re: Ideas for software temperature control.
Fun times messing with SD card dumps.
So far have not located where the temperature is set for PLA or ABS but made lots of discoveries. Interesting times.
Steve
So far have not located where the temperature is set for PLA or ABS but made lots of discoveries. Interesting times.
Steve
Re: Ideas for software temperature control.
I sliced a PLA and ABS cube and dumped both of those cards. The files are less than 1mb and for anyone trying this themselves be aware that the files are offset by 100mb on the card.
There is approximately 2000 bytes different but considering the file size this is < 1%. This indicates that the files are relatively similar
The first 500bytes of code appears to be header. And the printer starts in a heat up mode. @ 275C regardless of whether you are using PLA or ABS. I kept shortening the code until there was no differences in the files and the printer still heated up. I am assuming it does the first layer of the raft at this temp and then turns the temp down. But I am not 100% sure. Needs more investigation
Oh and I have managed to mess with files and reload them onto my SD card. So if I can work out which bytes change the temperature it would mean pulling out the SD dump, modifying and then reloading before putting it back in the printer. I am using something similar to this http://dx.com/p/sd-to-microsd-transflas ... dule-27001 . If anyone would like PLA and ABS SD card dumps to look at compare, ect, hack up. PM me.
Steve
There is approximately 2000 bytes different but considering the file size this is < 1%. This indicates that the files are relatively similar
The first 500bytes of code appears to be header. And the printer starts in a heat up mode. @ 275C regardless of whether you are using PLA or ABS. I kept shortening the code until there was no differences in the files and the printer still heated up. I am assuming it does the first layer of the raft at this temp and then turns the temp down. But I am not 100% sure. Needs more investigation
Oh and I have managed to mess with files and reload them onto my SD card. So if I can work out which bytes change the temperature it would mean pulling out the SD dump, modifying and then reloading before putting it back in the printer. I am using something similar to this http://dx.com/p/sd-to-microsd-transflas ... dule-27001 . If anyone would like PLA and ABS SD card dumps to look at compare, ect, hack up. PM me.
Steve
Re: Ideas for software temperature control.
Interesting that you reckon the start temperature of the extruder is the same regardless of PLA / ABS. While I have not looked at the maintenance page extruder temp between PLA & ABS, I have when printing fine/normal/fast. In each mode the printer starts at a different temperature. Just watch the temperature value and note at what temperature the printer actually starts to move. Or was I dreaming this!! (Not able to try at the moment as other operations happening
cheers
Peter
cheers
Peter
Re: Ideas for software temperature control.
Doesn't surprise me they both start off at full temp to get maximum adhesion to the print bed.
Re: Ideas for software temperature control.
One idea to get "total control" over the extruder heater would be to connect an external microcontroller to the heater and thermometer. It "shouldnt" be that hard to just jack in on the cables and get an Arduino to read the values at the same time as you look at the values given by the program. Then you have the values. Then you just cut the cables for the extruder temp and thermometer (or put a switch so you still can give control to program) and then you set the temp on the arduino, and it will take care of the temp adjustement.
Just a thought... I still havent gotten a 3Dprinter yet so I am just shooting ideas
Just a thought... I still havent gotten a 3Dprinter yet so I am just shooting ideas

Re: Ideas for software temperature control.
It's been done and is available for purchase:Sourcery wrote:One idea to get "total control" over the extruder heater would be to connect an external microcontroller to the heater and thermometer. It "shouldnt" be that hard to just jack in on the cables and get an Arduino to read the values at the same time as you look at the values given by the program. Then you have the values. Then you just cut the cables for the extruder temp and thermometer (or put a switch so you still can give control to program) and then you set the temp on the arduino, and it will take care of the temp adjustement.
Just a thought... I still havent gotten a 3Dprinter yet so I am just shooting ideas
http://www.artaylor.co.uk/pp3dp.html
Re: Ideas for software temperature control.
Can anyone comment on whether in older versions of the software the UP said 100% once it was heated? Or if it reported the temp all the way through?
Steve
Steve
Re: Ideas for software temperature control.
It has always reported the temp until the heating completes and the print starts, then percentage thereafter if I remember correctly...marto wrote:Can anyone comment on whether in older versions of the software the UP said 100% once it was heated? Or if it reported the temp all the way through?
Steve
- wackojacko
- Posts:667
- Joined:Fri Nov 12, 2010 5:46 am
- Contact:
Re: Ideas for software temperature control.
I believe the temperature has always not been shown during printing
Bruce
http://www.3DPrintingSystems.com
Need help with your printer, check out our Youtube channel.
https://www.youtube.com/user/3dprinting ... /playlists
http://www.3DPrintingSystems.com
Need help with your printer, check out our Youtube channel.
https://www.youtube.com/user/3dprinting ... /playlists
Re: Ideas for software temperature control.
certainly earlier versions of software show actual temp until the print starts then the value shows 0.1 degree or something like that. i am away from my printer at present so cannot check, but think that applies up to version 1.16
cheers
peter
cheers
peter
Re: Ideas for software temperature control.
It should be one of Stellaris LM3S Family (at least the pinout looks very similar)marto wrote: Managed to change my printers name from UP Mini to Up Mods. Really wish I knew what the chip was.
Steve
Moreover the MCU module should have the JTAG port on the pins (I guess on JP2, near pin 10), so it shouldn't be a problem to know what the chip is.
As I can se the module also has the additional USART(JP1 pins 25, 26) - pins grounded on the main board. It can be debug or bootloader port.
It's also shouldn't be a big problem to make your own MCU module or to port some opensource firmware (4pi, r2c2 or similar) on stellaris MCU.
Good luck

Re: Ideas for software temperature control.
Stellaris is simply the ARM offering from TI, personally I use STM because there have cheap full featured dev boards available. I think the bargain prices are from Freescale but I could be out of date here. Nobody seems to like ARM code anymore because the Thumb16 instructions are half the size. Unfortunately the short offset memory addressing means you either copy your programs into RAM which is a royal pain in the bum, or, declare your local variables as volatile and accept the delay, or, hope the Flash memory can take it. Ooo'er Mrsmarto wrote: Really wish I knew what the chip was.

The free GNU compiler is the way to go. I got my geek brother to set up the GNU based Eclipse software on my PC with an example that I modify to do whatever I require. You really do need a total geek for this, I am a lesser geek which means I can read and understand a CPU tech ref manual but setting up a C compiler is beyond me.
The UP temperatures are controlled by the two switch mode PSU chips on the main PCB, the CPU can read the temperature and switch them on/off but it seems to leave the temperature set to whatever point the SMPSU is hard wired for.
Re: Ideas for software temperature control.
Nope!Robin wrote:The UP temperatures are controlled by the two switch mode PSU chips on the main PCB, the CPU can read the temperature and switch them on/off but it seems to leave the temperature set to whatever point the SMPSU is hard wired for.marto wrote: Really wish I knew what the chip was.