Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
DaVinci 1.0 with 3F10A SN - Important Firmware info
Attention all. Any printer purchased after 6/2014 could potentially be a new model that is not compatible with existing firmwares. These printers use a different mainboard than the older revisions documented on this forum, one which is more similar to what is used in the AIO. There are physical changes in the board of this model, and DaVinci has it on a completely separate firmware track than what is discussed otherwise.

The telltale sign you have a printer with the new board is if the serial number starts with 3F10A. All known official firmware for are of the format 1.0.X. If your printer has a 1.1.X or 1.2.X firmware from the factory, or has a serial number starting with any other 5 digits, it is not this model of printer.

It has been discovered that shorting unpopulated connector J37 on this board will erase the microcontroller and allow changing the firmware, however as said above, existing firmware for older revisions are not compatible. They will flash onto the printer, but the Z-axis will not move up, the heater bed will not heat up, and there may be additional unknown issues. As of yet there is no XYZ firmware for this printer that will allow cartridge resetting. Additionally, once the printer has been flashed with a firmware for the older model, no official firmware for this model has been found that can be reflashed to make the printer work properly with XYZware again. To repeat any firmware version starting with 1.1.X or 1.2.X should not be flashed to this printer. Do not use this hardware flash method to change the firmware without fully understanding it may be an irreversible operation.

I have been working on adapting Luc's repetier to work on the new hardware. Currently I have posted an experimental build which will allow printing but has some issues with the LCD (intermittently, most of the time it works), case LED, and has very poorly calibrated temperature control. However until a copy of the official XYZware firmware is found that can be flashed back to this printer and actually works, it is currently the only option to print on a printer that has been flashed. I hope to fix as many of these issues as possible and eventually get these changes integrated into Luc's existing repetier code as a new model option.

Most of the discoveries on this printer have been logged in this thread:
I have documented my progress on changes and problems adapting to the new revision in the thread above as well as in

I'd would appreciate if any commentary on this new printer continues in this thread from this point on so that I can update the first post as necessary. Technical commentary on repetier firmware adaptation will continue to happen in luc's thread as it his firmware project, but please feel free to post problems with the experimental build in here until any changes are merged into his official repo.

As for restoring official firmware, it would be helpful if anyone who has not flashed their printer with this SN could please post a copy of the FW_upgrade.dat from their sd card. This file could potentially be the original firmware which is needed to restore back to official software for those who choose to do so.

Update: luc has started to integrate some of the necessary changes to support this model onto his github, however the temperature tables still needed some tuning to work properly on this board's different configuration. I've made a new build of repetier for this model with properly calibrated temperature tables based on lucs .92. You can find it here:
New build (based on lucs .92):
Hi ogremustcrush, I'll try your firmware later tonight; I have just bought the Velleman Vertex in order to have a backup printer, but if you need help in measuring the different I/Os, please tell me...

Btw, I think the jumper is named J37, not J39 as far as I remember from my own...

Maybe it would be fruitful to make a github fork to document your progress; this would also make it easier for the rest of us to help you (if you need help, that is :-)).

Yes, it is J37. For some reason I always want to call it J39, I did it multiple times in the original thread as well, as well as P39 at least once. I'd prefer not to fork the firmware as the only files that really need changed are configuration.h and userpins.h and luc could easily add these changed values as an option through a define. I'm only handling the necessary parameter changes at this point as luc can't test a printer he doesn't have. Any time I post a new build I will of course post any files I modified however.

Most of the important pins that were incorrect I have already probed, things like door sensors and the filament sensor I just didn't care enough to bother with yet until I get more time and frankly they are more annoyances than features for advanced users. My biggest current concern is correcting the thermistor tables as they definitely aren't accurate at the moment.
I have added pins modifications to
I have added a new define in configuration.h
#define MODEL  0//"0" for first generation (jumper JP1 to reset ) , "1" for new generation   (jumper J37 to reset)
use 1 for AiO based
I think it is more easy to handle than create a new DAVINCI number as changes are only on pins not on features

I did not changed the thermistor table yet as you may have a try with the current modified one, for lowest temperatures values (under 25 degres) it generated defect temperature error

Feel free to push updates/corrections
ogremustcrush/luc: Regarding thermistor values: Do we know the pullup/pulldown value for the thermistor as well as the adc reference voltage? If that is the case it would be relatively simple for me to take out the bed/extruder assemblies and make reference measurements of the thermistor values at various temperatures.
I do not have
Check here : - David did some tries and I did some measurement but results were not really good until now
That is why I modified by experiment and by extrapolation the missing values for tables that give a working result

Did you tried the latest tables ? Just to confirm they really change thermistors and it is not same bug as previous generation
Based on a quick plot I did with the temperature tables for this interpolated and the current kludge I am using for the new board type, I think the new printer needs to be about 50-150C hotter to achieve the same ADC value. So the hotend would have to be over 100C physically before the reading even started to become positive using the table for the old printers. Likewise, the hotend would already be over 200C physically when the printer was set to only heat it to 120C or so. Just based on experimental tests on the new printer, the raw ADC at 24C is about 4064, and the raw ADC at a temperature high enough to extrude and get good adhesion with ABS (likely somewhere between 225 and 260C) is around 1324. I double checked a few days ago when trying to get this to work, and indeed the voltage going to the ADC pin at 24C was something like 3.27V off of a reference voltage of 3.3V so that ADC reading is sane. I haven't been able to completely figure out what the pull-up and parallel resistor values are, measuring to 3.3V and ground from the ADC pin I get about 1.1K each way, but if there really was a 1.1K resistor in parallel with the thermistor the measured voltage when the thermistor is 100K at 25C would be much lower, so I assume this is an artifact from measuring in circuit. However there appears to be a bit too much linearity in the apparent temperature for there to be no parallel resistor at all.
Pmbdk, see directly above your post for what I have found on the resistors, I was posting that when yours came up. The current kludge table is based on a pullup resistor of something like 670ohm and a beta value of 6000 or so, but that was only found by adjusting parameters until I could get both room temp to read accurately and the printer to extrude properly when set to 230-250C. Using the 1.1K pullup value I measured resulted in room temperature values that were too low. I was actually going to do what you mentioned in the next few days, measure voltage/ADC value at various temperatures as measured by a thermocouple probe in order to build a new 20 point table. I would have done it already but didn't have any instruments that I could get good temperature readings from. I might do some curve fitting once I get the data it to see if I can get better estimates of those resistor parameters.
Cool! (or hot? ;-))
Just an update on getting the printer back to the official track. Luc had said that in some cases the original firmware is shipped on the sdcard in a file called FW_upgrade.dat. I checked on my printer, but it appears that in my case this file is the 1.2.3 firmware, I suspect XYZware replaces it any time it attempts to flash the printer, which I had tried several times by the time I made a backup of the sdcard. It would be helpful if someone else who has not flashed their printer yet could post this file, I can check it to see if it is a version which may allow those who have flashed to go back to the official firmware. Even better would be if you could post a full image of the sd card, just in case the firmware is looking for anything else, I have an image of 1.0.3, but it doesn't seem to work on my printer, quite possibly because it requires some specific information in the eeprom.bin to boot properly.
I pulled my micro sd card and copied the files on it and there was ........................ad_check_0001........................last_temperature.............Machine_Life.dat.......................offline_print.gcode and 3xsample.gcode files

i have find this files: [url=[/url]

I test it when i am back from work.
looks J firmware updater for 1.0 and 2.0 - no need to use Jumper with this tool- it uses XYZ_@3D:3 and XYZ_@3D:0 commands as described here

It does no check content of binary just the name - so can be used for any FW actually - I uploaded one using it it
So there is no need to reset the uP before flashing now? We can this software to flash Repetier for example - so long as we change the filename to match that of what it's expecting?
I spent the last while measuring both the extruder and heatbed at various temperatures with a thermocouple and got some good data to use. I've made a new build of repetier for this model with properly calibrated temperature tables based on lucs .92. You can find it here:
New build:
Would you be able to post your tables? or possibly even fork luc's repo and make a pull request?

I was actually looking for some good information on how to create the tables as luc's current firmware is admittedly off in temp. I would love to test any values people can come up with.
I posted my modified configuration.h in the firmware thread. Luc has pushed the changes to his repo, you just have to set model=1 in the configuration before compiling.
thermistor tables for bed looks very close, I used the new AiO ones on my Duo- at 18 degres it gave me 18 degres like current one.
David is also building a new table for old generation, so we will be able to compare - but I think old and new generation should be able to use same table for bed.

for extruder it is definitly different, at 18 degres sensors give me 142 degres on my duo ^_^
The bed wasn't hugely far off especially at low temps. It was only at temps 100c plus it really started to diverge, but even then no more than 10-20C.

I used ogremustcrush´s link to install the 0.92 repetier firmware. It runs fine and repetier host works.
Extruder and all axes work fine while controlling by hand.
After installing the software, I used the following link to set the configurations [url=[/url]
But when I started to print, no filament came out of the nozzle.
Can somebody help me please?

Forum Jump:

Users browsing this thread: 2 Guest(s)