Page 1 of 2

Ideas for software temperature control.

Posted: Tue Jun 11, 2013 4:31 pm
by marto
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

Re: Ideas for software temperature control.

Posted: Tue Jun 11, 2013 5:29 pm
by mr6k
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

Re: Ideas for software temperature control.

Posted: Wed Jun 12, 2013 1:01 am
by Rootz
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 :shock: tz

Re: Ideas for software temperature control.

Posted: Wed Jun 12, 2013 1:06 am
by jeeplvr
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.

Posted: Wed Jun 12, 2013 2:52 am
by marto
@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

Re: Ideas for software temperature control.

Posted: Wed Jun 12, 2013 5:11 am
by roller
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

Re: Ideas for software temperature control.

Posted: Fri Jun 14, 2013 4:31 am
by marto
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

Re: Ideas for software temperature control.

Posted: Wed Jul 03, 2013 3:17 pm
by marto
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

Re: Ideas for software temperature control.

Posted: Thu Jul 04, 2013 11:21 am
by marto
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

Re: Ideas for software temperature control.

Posted: Thu Jul 04, 2013 4:13 pm
by mr6k
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

Re: Ideas for software temperature control.

Posted: Fri Jul 05, 2013 3:24 am
by roller
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.

Posted: Wed Jul 10, 2013 8:34 am
by Sourcery
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 :)

Re: Ideas for software temperature control.

Posted: Thu Jul 11, 2013 11:07 pm
by JuliaDee
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 :)
It's been done and is available for purchase:

http://www.artaylor.co.uk/pp3dp.html

Re: Ideas for software temperature control.

Posted: Tue Jul 23, 2013 1:24 am
by marto
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

Re: Ideas for software temperature control.

Posted: Tue Jul 23, 2013 1:35 am
by JuliaDee
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
It has always reported the temp until the heating completes and the print starts, then percentage thereafter if I remember correctly...

Re: Ideas for software temperature control.

Posted: Tue Jul 23, 2013 8:15 am
by wackojacko
I believe the temperature has always not been shown during printing

Re: Ideas for software temperature control.

Posted: Tue Jul 23, 2013 10:50 am
by mr6k
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

Re: Ideas for software temperature control.

Posted: Sat Aug 17, 2013 8:37 pm
by Michael_K
marto wrote: Managed to change my printers name from UP Mini to Up Mods. Really wish I knew what the chip was.
Steve
It should be one of Stellaris LM3S Family (at least the pinout looks very similar)
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.

Posted: Sun Sep 29, 2013 10:47 am
by Robin
marto wrote: Really wish I knew what the chip was.
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 Mrs :shock:

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.

Posted: Sun Sep 29, 2013 12:21 pm
by Michael_K
Robin wrote:
marto wrote: Really wish I knew what the chip was.
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.
Nope!