226 (edited by hydronaut 2016-01-09 03:44:18)

Re: DaVinci Junior cartridge reset

I thought repetier was designed for arm with experimental support for avr. Isn't the DaVinci 1.0 an arm too?


DocD7 wrote:

After skimming the data sheet for SAM4E chip, as long as we have a valid FW from XYZ there should be little worry about bricking the printer. There are provisions built into the chip for in-situ flash programming via USB as well as standard serial comms. Not to say everyone will be able to "unbrick" a failed flash all by themselves, but there are definitely options for a bricked machine.

Also found in the data sheet there are options for JTAG programming and even cascaded programming of multiple chips at one time. Not sure the latter would be particularly useful, but just pointing out that even if a flash fails all is not lost. Of course most of the target market for this machine probably won't want to risk it at least until a new firmware flash is proven and somewhat stable, but those of us with at least a little knowhow, some hardware, and a little courage (liquid or otherwise) could quite easily revert back to standard FW and effectively unbrick anything that went wrong.

On a side note, the chip is pretty much a full ARM processor - no AVR. So a modified AVR repetier FW won't work. Has to be ARM FW. Also, there is some great info in the data sheet for the memory-mapped peripherals including the addresses for I2C, USART, and GPIOs. If we can get the XYZ FW decompiled correctly, searching for references to those addresses could lead somewhere useful.

227

Re: DaVinci Junior cartridge reset

DocD7 wrote:

I really don't think an NFC reset scheme will solve the most significant issues. Sure, you could print with whatever PLA you want (to a point), but still couldn't change temps, easily use non-XYZ softwares, or mod the machine at all (ABS with heated bed anyone?). FW is definitely the final solution.

I'm starting to think that an ARM port of repetier or the like along with pin traces of the XYZ mainboard will be the most solid hack. I don't think a complete rewrite of FW is the way to go - no sense in starting from scratch and replicating work already done.

Couldn't agree more. Anybody here involved with the port port if the original 1.0?  Maybe they can lend a hand.

228

Re: DaVinci Junior cartridge reset

hydronaut wrote:
jakecrowley wrote:
DocD7 wrote:

Provided we can get this thing licked, is the stock hot end up to the task of ABS? Can it handle the temps? Are there any specs on the hot end at all? Just thinking ahead and out loud as it were.

I can't really find anything on the hot end. I can see if it can get up to the temp abs were to melt at, I already can print fine at 230.

There is lots if pla that will melt at 190. Just depends on the brand.

I have makerbot pla that would only melt at 230. I was stupid and used the stock spool nfc chip so now I'm just going to have wasted filament because my chip is going to run out.

229

Re: DaVinci Junior cartridge reset

I really don't know anything about repetier to begin with. I saw that it was able to be flashed to ATMEGA 2560 AVR using the Arduino IDE. I believe this is exactly the setup that RAMPS uses. I assumed it was for AVR only. Since the Jr. is the only printer I know anything about, I really have no idea what's been done on the DaVinci 1.0, 1.0a, or the 2.0. Further, it doesn't HAVE to be repetier - Could be Marlin or any of the other reasonable FWs out there. I really don't know what's available. I've just seen repetier everywhere so that was the first to come to mind.

As far as filaments go: everything I've read so far about all kinds of different brands, sizes, colors, etc., can pretty much be summed up in 4 words - Your Mileage May Vary. There are just too many variables to account for. So, let's make it really simple - if it works for you, then it's great! If it doesn't, try something else! Different brand, different temp, kaptan tape, heated bed, glue stick, aquanet, whatever! Simply put there's a filament out there for every person, every purpose, and every combination of hardware and settings. Okay, mini-rant over. smile

230

Re: DaVinci Junior cartridge reset

DocD7 wrote:

I really don't know anything about repetier to begin with. I saw that it was able to be flashed to ATMEGA 2560 AVR using the Arduino IDE. I believe this is exactly the setup that RAMPS uses. I assumed it was for AVR only. Since the Jr. is the only printer I know anything about, I really have no idea what's been done on the DaVinci 1.0, 1.0a, or the 2.0. Further, it doesn't HAVE to be repetier - Could be Marlin or any of the other reasonable FWs out there. I really don't know what's available. I've just seen repetier everywhere so that was the first to come to mind.

As far as filaments go: everything I've read so far about all kinds of different brands, sizes, colors, etc., can pretty much be summed up in 4 words - Your Mileage May Vary. There are just too many variables to account for. So, let's make it really simple - if it works for you, then it's great! If it doesn't, try something else! Different brand, different temp, kaptan tape, heated bed, glue stick, aquanet, whatever! Simply put there's a filament out there for every person, every purpose, and every combination of hardware and settings. Okay, mini-rant over. smile


The Jr. uses the same processor as all other Da Vinci printers. It does have unique board which means the pins are probably different from the other flavors. Repetier firmware is the only firmware that has been ported to XYZ machines and would be the best option as the only thing neede would be to change pin assignments for the most part. Others like Marlin would need to be done from scratch.

Printing since 2009 and still love it!
Anycubic 4MAX best $225 ever invested.
Voxelabs Proxima SLA. 6 inch 2k Mono LCD.
Anycubic Predator, massive Delta machine. 450 x 370 print envelope.

231

Re: DaVinci Junior cartridge reset

carl_m1968 wrote:
DocD7 wrote:

I really don't know anything about repetier to begin with. I saw that it was able to be flashed to ATMEGA 2560 AVR using the Arduino IDE. I believe this is exactly the setup that RAMPS uses. I assumed it was for AVR only. Since the Jr. is the only printer I know anything about, I really have no idea what's been done on the DaVinci 1.0, 1.0a, or the 2.0. Further, it doesn't HAVE to be repetier - Could be Marlin or any of the other reasonable FWs out there. I really don't know what's available. I've just seen repetier everywhere so that was the first to come to mind.

As far as filaments go: everything I've read so far about all kinds of different brands, sizes, colors, etc., can pretty much be summed up in 4 words - Your Mileage May Vary. There are just too many variables to account for. So, let's make it really simple - if it works for you, then it's great! If it doesn't, try something else! Different brand, different temp, kaptan tape, heated bed, glue stick, aquanet, whatever! Simply put there's a filament out there for every person, every purpose, and every combination of hardware and settings. Okay, mini-rant over. smile


The Jr. uses the same processor as all other Da Vinci printers. It does have unique board which means the pins are probably different from the other flavors. Repetier firmware is the only firmware that has been ported to XYZ machines and would be the best option as the only thing neede would be to change pin assignments for the most part. Others like Marlin would need to be done from scratch.

So, if I've read everything right: There's already a FW for this chipset and a pin trace is really all that stands between XYZ and our sanity!?

232

Re: DaVinci Junior cartridge reset

DocD7 wrote:
carl_m1968 wrote:
DocD7 wrote:

I really don't know anything about repetier to begin with. I saw that it was able to be flashed to ATMEGA 2560 AVR using the Arduino IDE. I believe this is exactly the setup that RAMPS uses. I assumed it was for AVR only. Since the Jr. is the only printer I know anything about, I really have no idea what's been done on the DaVinci 1.0, 1.0a, or the 2.0. Further, it doesn't HAVE to be repetier - Could be Marlin or any of the other reasonable FWs out there. I really don't know what's available. I've just seen repetier everywhere so that was the first to come to mind.

As far as filaments go: everything I've read so far about all kinds of different brands, sizes, colors, etc., can pretty much be summed up in 4 words - Your Mileage May Vary. There are just too many variables to account for. So, let's make it really simple - if it works for you, then it's great! If it doesn't, try something else! Different brand, different temp, kaptan tape, heated bed, glue stick, aquanet, whatever! Simply put there's a filament out there for every person, every purpose, and every combination of hardware and settings. Okay, mini-rant over. smile


The Jr. uses the same processor as all other Da Vinci printers. It does have unique board which means the pins are probably different from the other flavors. Repetier firmware is the only firmware that has been ported to XYZ machines and would be the best option as the only thing neede would be to change pin assignments for the most part. Others like Marlin would need to be done from scratch.

So, if I've read everything right: There's already a FW for this chipset and a pin trace is really all that stands between XYZ and our sanity!?


For the most part, yes. There might be some minor nuances to work out but it still should be close. I think the issue is there are not that many people with the Jr. so people like luc that did the port for the other versions probably don't see enough demand to make the effort.

Printing since 2009 and still love it!
Anycubic 4MAX best $225 ever invested.
Voxelabs Proxima SLA. 6 inch 2k Mono LCD.
Anycubic Predator, massive Delta machine. 450 x 370 print envelope.

233

Re: DaVinci Junior cartridge reset

carl_m1968 wrote:
DocD7 wrote:
carl_m1968 wrote:

The Jr. uses the same processor as all other Da Vinci printers. It does have unique board which means the pins are probably different from the other flavors. Repetier firmware is the only firmware that has been ported to XYZ machines and would be the best option as the only thing neede would be to change pin assignments for the most part. Others like Marlin would need to be done from scratch.

So, if I've read everything right: There's already a FW for this chipset and a pin trace is really all that stands between XYZ and our sanity!?


For the most part, yes. There might be some minor nuances to work out but it still should be close. I think the issue is there are not that many people with the Jr. so people like luc that did the port for the other versions probably don't see enough demand to make the effort.

Well, I have one and several of the folks on this thread have one - that's enough demand for me! smile Unfortunately, I have my EMT refresher this weekend and a 48-hour shift Monday and Tuesday. But I can get a start on things Wednesday maybe.

234 (edited by hydronaut 2016-01-09 06:13:28)

Re: DaVinci Junior cartridge reset

If somebody can port it and at least print I am willing to flash mine to help test and tweak.


DocD7 wrote:
carl_m1968 wrote:
DocD7 wrote:

So, if I've read everything right: There's already a FW for this chipset and a pin trace is really all that stands between XYZ and our sanity!?


For the most part, yes. There might be some minor nuances to work out but it still should be close. I think the issue is there are not that many people with the Jr. so people like luc that did the port for the other versions probably don't see enough demand to make the effort.

Well, I have one and several of the folks on this thread have one - that's enough demand for me! smile Unfortunately, I have my EMT refresher this weekend and a 48-hour shift Monday and Tuesday. But I can get a start on things Wednesday maybe.

235 (edited by jakecrowley 2016-01-09 16:04:22)

Re: DaVinci Junior cartridge reset

hydronaut wrote:

If somebody can port it and at least print I am willing to flash mine to help test and tweak.


DocD7 wrote:
carl_m1968 wrote:

For the most part, yes. There might be some minor nuances to work out but it still should be close. I think the issue is there are not that many people with the Jr. so people like luc that did the port for the other versions probably don't see enough demand to make the effort.

Well, I have one and several of the folks on this thread have one - that's enough demand for me!
smile Unfortunately, I have my EMT refresher this weekend and a 48-hour shift Monday and Tuesday. But I can get a start on things Wednesday maybe.

Omg yes!! I will DEFINITELY be willing to flash my jr, especially since I have two spools of wasted PLA that I bought, not knowing about this whole proprietary thing. I have been looking around on the logic board and have been unable to find a jumper that connects directly to reset/flash. Please let me know any progress on this!

236

Re: DaVinci Junior cartridge reset

One question, How would the repetier flash affect the auto bed leveling? I know the older, bigger da Vincis don't have that feature, so that will have to be added, if it is not already there because the printer does not have any manual bed adjustments.

237

Re: DaVinci Junior cartridge reset

As far as I've been able to tell, there really isn't a bed leveling function on the Jr. At least not one that matters. The bed is actually fixed to the y axis and not really adjustable. I did have to prop up the right side of the x axis to get it mostly level WRT the bed. So no big deal as far as I'm concerned.

238

Re: DaVinci Junior cartridge reset

Hello All:

I thought I would share some info and kind of summarize about the DaVinci Jr.

Q: Can the daVinci Jr physically print with non XYZ filament?
A: Yes.  I have been printing with many diff filaments with the unit for some time and have gotten what I consider excellent results.

Q: Do I need to use the XYZ software to slice?
A: No.  Using Slic3r or another slicer you can slice your object to Gcode. This Gcode can be converted to a .3W file and printed to the unit. I will post a utility for doing this shortly ( I have to clean it up).

Q: Whats the deal with running out of filament, ie the chip that comes with the filament roll.
A:  WORKING ON IT NOW.  The end solution is to write a chip with 999999 meters and use it forever

The long and short of it is, that there is an NFC chip that is read and written to by the printer.
This chip decrements the count of filament and eventually will get to zero, thereby no longer printing.

This NFC technology has many features, and there is info that can be read without a Key and some that can be read with a key.  It is this key that will allow us to work around this protection scheme.

To solve this I have started with the simplest attempts and will continue to take stronger measures.

The key we need is a 12 digit Hex string or 6 bytes. Sounds like a simple thing but its like 268million combinations. 

So, the key can either be simple; a fixed 6 bytes like '010203040506' or algorithmic; meaning it is calculated based on the readable info from the chip based on some algorithm.

a fixed key is unlikely however, I have been attempting to walk the hex code from the firmware in a 6 byte shift all weekend anyway.

the next step will involve more drastic measures, sniffing the RF communication between the printer and spool. 
This would allow us to possible re-write existing chips and change the filament value.

I am confident that we will be able to work around this NFC issue fairly soon.

239 (edited by hydronaut 2016-01-09 20:50:24)

Re: DaVinci Junior cartridge reset

DocD7 wrote:

As far as I've been able to tell, there really isn't a bed leveling function on the Jr. At least not one that matters. The bed is actually fixed to the y axis and not really adjustable. I did have to prop up the right side of the x axis to get it mostly level WRT the bed. So no big deal as far as I'm concerned.

There is no auto bed leveling.  They just state no calibration needed which is also not really true.

240

Re: DaVinci Junior cartridge reset

charleshyman wrote:

Hello All:

I thought I would share some info and kind of summarize about the DaVinci Jr.

Q: Can the daVinci Jr physically print with non XYZ filament?
A: Yes.  I have been printing with many diff filaments with the unit for some time and have gotten what I consider excellent results.

Q: Do I need to use the XYZ software to slice?
A: No.  Using Slic3r or another slicer you can slice your object to Gcode. This Gcode can be converted to a .3W file and printed to the unit. I will post a utility for doing this shortly ( I have to clean it up).

Q: Whats the deal with running out of filament, ie the chip that comes with the filament roll.
A:  WORKING ON IT NOW.  The end solution is to write a chip with 999999 meters and use it forever

The long and short of it is, that there is an NFC chip that is read and written to by the printer.
This chip decrements the count of filament and eventually will get to zero, thereby no longer printing.

This NFC technology has many features, and there is info that can be read without a Key and some that can be read with a key.  It is this key that will allow us to work around this protection scheme.

To solve this I have started with the simplest attempts and will continue to take stronger measures.

The key we need is a 12 digit Hex string or 6 bytes. Sounds like a simple thing but its like 268million combinations. 

So, the key can either be simple; a fixed 6 bytes like '010203040506' or algorithmic; meaning it is calculated based on the readable info from the chip based on some algorithm.

a fixed key is unlikely however, I have been attempting to walk the hex code from the firmware in a 6 byte shift all weekend anyway.

the next step will involve more drastic measures, sniffing the RF communication between the printer and spool. 
This would allow us to possible re-write existing chips and change the filament value.

I am confident that we will be able to work around this NFC issue fairly soon.

Or as others have been discussing and seems much more favorable is to port the already existing version of Repetier Firmware to this printer as well..

There are two main reasons you would want to do this.

1) calibration, these printers are calibrated but not well.. Try printing a cube that is 50mm x 50mm x 50mm and see what you get. You need to be able to tweak the firmware to get those values closer if you plan to print parts that need to be design precise.

2) XYZ is notorious for running too much current to their motors on all variations of printers. This cause excessive noise and wear. Using stock firmware your motors will last much less time then they would with properly regulated firmware.

Then of course you can change all print variables on the fly and don't have to deal with transcoding your files.

If you guys are trying to avoid a warranty bust, that is fine but know that the XYZ warranty requires you to ship the machine back to Taiwan at your expense if it needs work or parts that are beyond you  performing or acquiring. So the warranty for the most part does not exist.

Printing since 2009 and still love it!
Anycubic 4MAX best $225 ever invested.
Voxelabs Proxima SLA. 6 inch 2k Mono LCD.
Anycubic Predator, massive Delta machine. 450 x 370 print envelope.

241

Re: DaVinci Junior cartridge reset

carl:

I couldn't agree with you more.  I would love to see an 'open' firmware running on this device.

Unfortunately, that's outside my wheelhouse....LOL.

242

Re: DaVinci Junior cartridge reset

hydronaut wrote:
DocD7 wrote:

As far as I've been able to tell, there really isn't a bed leveling function on the Jr. At least not one that matters. The bed is actually fixed to the y axis and not really adjustable. I did have to prop up the right side of the x axis to get it mostly level WRT the bed. So no big deal as far as I'm concerned.

There is no auto bed leveling.  They just state no calibration needed which is also not really true.

the jr 1.0w has auto calibration

243

Re: DaVinci Junior cartridge reset

If the bed has a sensor and the Z can be adjusted per coordinate area like many Auto adjust systems then Repetier has the ability to support this function. Again it is just a matter of finding all the pins and assigning them in the firmware.

Printing since 2009 and still love it!
Anycubic 4MAX best $225 ever invested.
Voxelabs Proxima SLA. 6 inch 2k Mono LCD.
Anycubic Predator, massive Delta machine. 450 x 370 print envelope.

244

Re: DaVinci Junior cartridge reset

charleshyman wrote:

The key we need is a 12 digit Hex string or 6 bytes. Sounds like a simple thing but its like 268million combinations. 

So, the key can either be simple; a fixed 6 bytes like '010203040506' or algorithmic; meaning it is calculated based on the readable info from the chip based on some algorithm.

a fixed key is unlikely however, I have been attempting to walk the hex code from the firmware in a 6 byte shift all weekend anyway.

the next step will involve more drastic measures, sniffing the RF communication between the printer and spool. 
This would allow us to possible re-write existing chips and change the filament value.

The key is indeed based on readable data on the chip.  Go check out page 4 of this thread. Crgpgh was able to snag the passwords by capturing the communication over I2C.  They do in fact differ for each chip, meaning the key has to be calculated based on public data on the NTAG.

Also, I'd be curious to see your gcode -> 3w code.  I was able to get the gcode from the 3w files, but there was still some header data that I couldn't  figure out.

245

Re: DaVinci Junior cartridge reset

So I did have a chance to pull the board from my printer tonight. Found 4 quad drivers, one for each stepper on the board. Quick check of the data sheet for the drivers reveals they've ganged the drivers for more current handling - 1A and 1B tied together for ~double the current.

The board also seems to be only double-sided instead of multilayered which helps tracing the pins a bit. There are vias though so board flipping will be involved.

A quick run of a multimeter through the pins shows coupling to ground on most pins so simply tracing with a meter is going to be harder. Visual tracing is probably going to be more productive but also more tedious.

Just what I've found so far.

246

Re: DaVinci Junior cartridge reset

Decryption/Encryption Code File attached.

It works well so far... let me know if you need any of the DLLs.

Chas

Post's attachments

Program.cs 14.89 kb, 73 downloads since 2016-01-10 

You don't have the permssions to download the attachments of this post.

247 (edited by jakecrowley 2016-01-11 01:28:15)

Re: DaVinci Junior cartridge reset

It's just my opinion, but I'd much rather have a NFC hack than a firmware flash. First of all, I wouldn't have to go through the trouble of flashing my printer and worry about bricking it, not to mention voiding the warranty. I'd much rather just have a hacked chip with say 99999m on it or just a chip that i can reset back to full everytime it gets low. I already have an arduino NFC reader/writer, so I wouldn't have to buy anything. Unfortunately, I don't think I have enough people on my side so I might not have much of a choice.

248

Re: DaVinci Junior cartridge reset

Haven't had much time to tinker, but I did trace z-axis 1A/B controller input to pin 9 on the ARM.

249

Re: DaVinci Junior cartridge reset

I also just finished up a 3W encoder/decoder (written in C# - code borrowed from decompiled XYZWare).  I've attached the source (ThreeDubber_Src.zip) and the ready-to-run executable (ThreeDubber_Exe.zip).

Virus scan of compiled executable: https://virusscan.jotti.org/en-US/files … ve7dj9ykr7

The application can convert between gcode and 3w.  Only works with the Davinci Jr.

Pretty much the same code as charleshyman, just with a UI thrown in for the non-developers.

Post's attachments

ThreeDubber_Exe.zip 67.42 kb, 527 downloads since 2016-01-11 

ThreeDubber_Src.zip 83.36 kb, 146 downloads since 2016-01-11 

You don't have the permssions to download the attachments of this post.

250 (edited by jakecrowley 2016-01-11 21:10:13)

Re: DaVinci Junior cartridge reset

While fooling around in the XYZWare software, I found a 'Firmware Upgrade' button where you can select a BIN file to be put onto the printer. Since someone already released the firmware file, can you decompile it, remove the spool check bit, then write it onto the printer?

Also, here is a link to the latest firmware.
https://drive.google.com/file/d/0B76NYU … sp=sharing