351

Re: DaVinci Junior cartridge reset

errorinspelling wrote:

Attacking the problem from a different point of view. I know someone earlier had discussed emulating the pn512 Chip. At this point we have all sorts of images for the rfid chips, so what if we did the emulation? Apparently the Atmel will do 400Khz I2C (http://forum.arduino.cc/index.php?topic=16793.0) We have the communication protocols for the pn512 (https://www.nxp.com/documents/data_sheet/PN512.pdf)  I haven't seen what Address the pn512 is at on the i2c bus but I'm sure that has been sniffed already. Soooo, (and I am slowly trying to get all this together myself) given all the chip info we have already, how about programming an atmel (arduino) to respond as the pn512 with specifically the data we want it to? Better yet tie in a Bluetooth interface so you can hide the whole mess inside the Junior and make changes with your smart phone? Some additional benefits could be, presenting different UID's to the Junior and collecting all the passwords so you can get the password for a chip without having to ever read it except from your nfc reader on your phone, or if someone would like to know the passwords for their chip. Maybe I'm insane, but does it sound feasible to anyone else?


Twenty or more registers, hundreds of commands, no you would need pla or fpga to simulate the rfid reader chip.  It's an idea, but once you see how many commands you would have to handle it would not be fun.

Go pull the data sheet, and let me know if that is still what you want to build.  I don't want to do commercial IC design to break a 200 dollar printer.

-C

352 (edited by 81TTA 2016-01-24 18:14:53)

Re: DaVinci Junior cartridge reset

I started looking through one of the I2C data streams to see if emulating the entire PN512 would be an option.  Crcasey hit the nail on the head.  What the PN512 is doing would be very complicated to emulate.  Not impossible.  Just a LOT of work.  In addition to the I2C communications, the interface also has a configurable hardware interrupt that's enabled/disabled throughout the printers initialization.  And, I assume, also happens during printing.

Rather than trying to emulate the whole thing, I was wondering if it would be possible to set up some sort of "pass-through" or monitor device (probably an Arduino, maybe not) that sat between the micro and the PN512.  Under normal operation, the Arduino would literally pass everything directly back-and-forth as it normally would.  However, it would be set up to grab the password when it's sent (look for 1B+4 bytes).  It would also have the length reset bytes preprogrammed.  Then, with the printer powered off, the pass-through/PN512 could be powered up separately, the pass-through could communicate just like the micro.  The PN512 would only have to be initialized for the write (rather than having to emulate everything) and the length information sent.

This would eliminate the need for an I2C analyzer and PN532 shield.  Just need a convenient way to insert the pass-through into the wiring.  And, decipher enough of the PN512 interface to allow the NFC to be written.  It should be noted someone on this thread tried that before getting the 532 shield.  I think the reason he went with the shield is because he couldn't get the direct write to work....

Anyway, another option to think about....

353

Re: DaVinci Junior cartridge reset

crcasey wrote:

Twenty or more registers, hundreds of commands, no you would need pla or fpga to simulate the rfid reader chip.  It's an idea, but once you see how many commands you would have to handle it would not be fun.

Go pull the data sheet, and let me know if that is still what you want to build.  I don't want to do commercial IC design to break a 200 dollar printer.

-C

Well seeing how I am an incredibly lazy hack, My first intention was to default all commands to the bit bucket and then add in ones to respond to as needed. I suppose I am using the term Emulator rather loosely. I think as I get a better look at the data stream that may help form how much I want to do this. I am presuming that a large portion of the communication is static and repeatable and can be handled as "if you see this, respond with this", with little to no logic control.  I just have to figure out where my arduinos and raspberry pie have gone to set up a bit of Man in the middle hacking.

354

Re: DaVinci Junior cartridge reset

Hi, I bought a DaVinci Jr 6 months ago and I got awesome results. However, I bought several filaments that came bad. They completely jammed the extruder and the plastic doesn't flow. It is impossible to print. Printer is aligned and working. If I change the cartridge to the one that was working I have no problem to print, but I have 10 meter left. Also, I used another filament PLA from another company (keeping the DaVinci Jr catridge in position to read the RFID) and there is no problem either. Do you know how to fix that? I think that the company is selling very bad PLA or is ABS. One of my fimalents came labeled inside as ABS, packed in a Da VInci Jr filament box. Amazon returned the money, but I need to print!!! I got problem with the last 3 filaments that I bought.
Can you help me?

Thanks,
F

355

Re: DaVinci Junior cartridge reset

fcoaltamirano wrote:

Hi, I bought a DaVinci Jr 6 months ago and I got awesome results. However, I bought several filaments that came bad. They completely jammed the extruder and the plastic doesn't flow. It is impossible to print. Printer is aligned and working. If I change the cartridge to the one that was working I have no problem to print, but I have 10 meter left. Also, I used another filament PLA from another company (keeping the DaVinci Jr catridge in position to read the RFID) and there is no problem either. Do you know how to fix that? I think that the company is selling very bad PLA or is ABS. One of my fimalents came labeled inside as ABS, packed in a Da VInci Jr filament box. Amazon returned the money, but I need to print!!! I got problem with the last 3 filaments that I bought.
Can you help me?

Thanks,
F

If there is FL+ABS or something marked on the filament there is an indicator on the spool that indicates that is PLA. I am going off of memory because I am not home so the letters might be different. You can try raising the temperature by using cura or slic3r to slice the model and setting the temp in those programs then using the program ThreeDubber posted earlier in this forum to convert the gcode to 3w then either sending it to the printer through XYZWare or loading it onto an sd card and printing it off there.

356

Re: DaVinci Junior cartridge reset

One of my fimalents came labeled inside as ABS, packed in a Da VInci Jr filament box.

The Jr isn't designed to print ABS.  Seems like I've read a few posts on this board where the filament label on the spool didn't match what was printed on the box.  I don't know of a solution beyond shipping boxes back-and-forth until they send you a real spool of PLA.

If your intent is to only print PLA with the Jr, it sounds like you're all set assuming the filament you use is really PLA.  I've used one other 3rd party PLA filament in my Jr with excellent results.  I understand the XYZ filament is designed with a lower melting point than most PLA filaments.  I made sure to choose a vendor (Hatchbox) with an advertised temperature range of 180-210degC.

If your intent is to try some out-of-the-box testing of ABS printing with the Jr, jakecrowley has outlined one of the steps you'd likely have to make (increasing the extruder temperature).  However, without a heated bed, I'm not sure ABS printing would work very well?  I get the impression this isn't really what you want, though?

357 (edited by 81TTA 2016-01-27 05:18:37)

Re: DaVinci Junior cartridge reset

I finally got my Arduino shield!  Managed to reset the spool length in the chip that came with the spool/printer I previously ran to 0m. 

Now, I'm seeing something interesting....  I rewrote the chip using the password I'd grabbed earlier and crcasey's scripts.  This set Page 10/11 to 200m length.  Since then, I've been dumping the NFC chip after each (well, almost each, I get excited to start the next print sometimes!) print.  For each dump since the first reset, only pages 20->23 are updated.  Pages 10 and 11 (where the original length information was found) stay exactly the same.

When I check the spool stats on the LCD, it shows the value decrementing as expected.  After looking at the dumps, it appears Page 20 is formatted like Page 10/11.  But, it contains the remaining length.  Here are my values :

192m remaining : Page 20 = E4 F0 02 => 2F0E4 = 192740
175m remaining : Page 20 = 1E AF 02 => 2AF1E = 175902
168m remaining : Page 20 = C2 92 02 => 292C2 = 168642
0m remaining : Page 20 = 00 00 00 => 000000 = 0 

The 0m dump I did before the length reset.  Page 10/11 indicated 100m rather than 200m.  I'm thinking Page 10/11 might not be so important?

EDIT : Just went back and re-read the previous posts.  The Page 20 stuff was already figured out.  On to deciphering 21-23...

358

Re: DaVinci Junior cartridge reset

Sounds like you guys are getting close to cracking this. Could it be as simple as a program that uses the password discovered to re-write the chips with a very large amount of starting filament then when it goes to zero re-write it again? It sounds like from what others are saying there are other brands of PLA that are printing better than Davinci's without editing the print temperature.

Thanks for everyone's work!

359

Re: DaVinci Junior cartridge reset

While working through the rest of the information on the NFC card might be interesting, I'm guessing what most people would like is a single system (i.e. don't need logic analyzers *and* arduinos *and* special shields) that can reset the length parameters.  We have most of the pieces of the puzzle already.  Just the specifics of the implementation are left to work through.

As I mentioned in an earlier post, I'm a fan of having a separate microcontroller sitting on the I2C bus that can both grab the password information *and* communicate with the PN512 to reset the chip.  This would eliminate the need for logic analyzers and NFC card readers.  Just "push a button" on the microcontroller to reset the length.

It sounds like from what others are saying there are other brands of PLA that are printing better than Davinci's without editing the print temperature.

One additional part of the NFC decode that might be interesting is figuring out where it stores extruder temperature information.  I've had good luck using 3rd party PLA filament with a lower temperature range spec.  I'm very new to this so I'm not sure if the success is from the temperature range or from just having a better PLA material to work with.  It might be nice to be able to change the temperatures in the card rather than having to use the Advanced mode/G-code editor.

360

Re: DaVinci Junior cartridge reset

Hi,
Is anyone else using the threedubber converter successfully. Its would be really good except my prints want to start about 10mm off the build plate. Is there a knack to it I'm missing?
Many thanks
Dan

361

Re: DaVinci Junior cartridge reset

xfrNzyx wrote:

Hi,
Is anyone else using the threedubber converter successfully. Its would be really good except my prints want to start about 10mm off the build plate. Is there a knack to it I'm missing?
Many thanks
Dan

I'm using it perfectly fine with Cura. All I do is export the GCode, run it through ThreeDubber, load it up on an SD Card and pop it into my printer, then start the print. This is very useful because I don't have to have my printer plugged into my computer to slice a model, I don't understand why XYZWare does that. Anyway it works perfectly fine for me! What slicer are you using? It could be the settings of your slicer. Try adjusting the Z offset or the calibration screws.

362

Re: DaVinci Junior cartridge reset

Hey, I'm using cura as well as I use it for my old printrbot and kossel mini. I'll try is direct to SD card see if that helps at all. Which ver. of cura are you using out of interest, did u change the default start/end code at all in cura? Thanks

363 (edited by jakecrowley 2016-01-28 17:53:34)

Re: DaVinci Junior cartridge reset

xfrNzyx wrote:

Hey, I'm using cura as well as I use it for my old printrbot and kossel mini. I'll try is direct to SD card see if that helps at all. Which ver. of cura are you using out of interest, did u change the default start/end code at all in cura? Thanks

I am using Cura version 15.04.4 (the latest version). I actually have changed the default Start/End code because I was originally using a script called convert2DaVinci before ThreeDubber came out, and I forgot about it. Anyway here it is if you want to try it out.

start.gcode:

; --- MOVE THIS SECTION TO THE TOP AND DELETE THIS LINE ---
; filename = composition.3w
; machine = daVinciJR10
; material = pla
; layer_height = {layer_height}
; total_layers = 173
; total_filament = 0.00
; extruder = 1
; --- END SECTION ---
;Sliced at: {day} {date} {time}
;Basic settings: Layer height: {layer_height} Walls: {wall_thickness} Fill: {fill_density}
;Print time: {print_time}
;Filament used: {filament_amount}m {filament_weight}g
;Filament cost: {filament_cost}
;TEMPERATURES
G21        ;metric values
M107       ;start with the fan off
G90        ;absolute positioning
G92 E0     ;zero the extruded length
M82        ;set extruder to absolute mode
G1 Z0.00000 ;offset Z by 8? mm to bring bed up to nozzle
G92 Z0     ;zero Z axis
G1 F{travel_speed} E-1.00000
G92 E0     ;zero the extruded length again

end.gcode:

;End GCode
;M104 S0                     ;extruder heater off
;M140 S0                     ;heated bed heater off (if you have it)
;G1 E-1 F300                 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
;G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more
G92 E0
M107                        ;fan off
M84                         ;steppers off

364 (edited by jakecrowley 2016-01-28 17:59:42)

Re: DaVinci Junior cartridge reset

Hey guys! I'm all for this research and all. But I really want just would much rather have a firmware flash instead of all this nfc stuff. I really wish that there was someone on my side that would be willing to write a firmware flash for the printer that gets rid of all this nfc stuff.

365

Re: DaVinci Junior cartridge reset

I had the same problem with cura gcode, you have to convert the G0 commands to G1 as XYZ firmware doesn't handle them (according to another post on soliforum) doing this fixes the problem, but you have to make sure you don't kill the power during a print. Instead you should cancel the job via the menu. I made this mistake on a failed print and messed up one of my NFC cards. It now reads unidentified spool as I'm sure theres some mismatch on the card. It was already low anyway but I wish I had the NFC tools so I wouldn't have to deal with it. Are we documenting card passwords anywhere? I'd like to see if we can get the passwords without sniffing I2C traffic.

366

Re: DaVinci Junior cartridge reset

Are we documenting card passwords anywhere? I'd like to see if we can get the passwords without sniffing I2C traffic.

Unfortunately, a list of passwords from other cards won't help you.  The password is generated from information one each card.  While I'm sure there could mathematically be two identical cards with two identical passwords, in practical terms, each card/password is pretty much unique.

It now reads unidentified spool as I'm sure there's some mismatch on the card.

I'm starting to play with Slic3r and ThreeDubber.  Not sure this is caused by the same thing.  But, I get spool errors a layer or two into the print.  In my case, a reset of the machine (after painfully prying a couple layer's worth of plastic from the bed!) gets rid of the spool error.  When I convert the .stl through XYZware, the print goes all the way through.  If you try to grab the spool stats after a reboot, does it still give you an error?

I really wish that there was someone on my side that would be willing to write a firmware flash for the printer that gets rid of all this nfc stuff.

It would be great if someone could figure that out.  I'd imagine that's going to take a fair amount of time and some people with a lot of knowledge in that area to get done.  In the meantime, I'm happy to have removed the limitations on available PLA colors and have cheaper sources of PLA.  If my math is correct, the Arduino and shield will be paid for after using the equivalent of roughly 3 rolls of XYZ PLA.  There's still the cost of the logic analyzer needed to grab the PW.  But, if there's a way to use the Arduino without shield to read the PW and program the NFC, things are paid for in one roll!

367

Re: DaVinci Junior cartridge reset

Unfortunately, a list of passwords from other cards won't help you.  The password is generated from information one each card.  While I'm sure there could mathematically be two identical cards with two identical passwords, in practical terms, each card/password is pretty much unique.

Right, pardon me for being unclear. I meant to say that maybe we can determine the relationship between the password and the information on the card and I was wondering if this was being documented anywhere.

368

Re: DaVinci Junior cartridge reset

would any one be willing to get the password off a chip for me if i paid you?

then i would just need a Adafruit NFC shield right?

369

Re: DaVinci Junior cartridge reset

Yes its possible, first need get password, after that you can turn off password protection

370

Re: DaVinci Junior cartridge reset

Yes its possible, first need get password, after that you can turn off password protection

Has anyone successfully done this. I read in the chip spec it is possible, but this has been the first mention of it. By unlocking the chip you should also be able to read all pages if I read the chip spec correctly.

371

Re: DaVinci Junior cartridge reset

Not sure if it has been said before or looked into.  I had let the card get down to around 80m then went to rewrite and found that it would read unrecognized using the exact code and byte values I had used before. After some head scratching, comparing values and testing for about an hour I decided to copy all my original 200 or 200m pages back to the card but decremented the last byte on page 14 by 1 (was 38 and is now 37). Some reason it worked and I have a full card.

372

Re: DaVinci Junior cartridge reset

After seeing

vienisas wrote:  Yes its possible, first need get password, after that you can turn off password protection

I saw

8.5.1 UID/serial number
The unique 7-byte serial number (UID) and its two check bytes are programmed into the
first 9 bytes of memory covering page addresses 00h, 01h and the first byte of page 02h.
The second byte of page address 02h is reserved for internal data. These bytes are
programmed and write protected in the production test.

http://soliforum.com/i/?NUwSj6p.jpg

In accordance with ISO/IEC 14443-3 check byte 0 (BCC0) is defined as CT Å SN0 Å SN1
Å SN2 and check byte 1 (BCC1) is defined as SN3 Å SN4 Å SN5 Å SN6.
SN0 holds the Manufacturer ID for NXP Semiconductors (04h) in accordance with
ISO/IEC 14443-3.
8.5.2 Static lock bytes (NTAG21x)
The bits of byte 2 and byte 3 of page 02h represent the field programmable read-only
locking mechanism. Each page from 03h (CC) to 0Fh can be individually locked by setting
the corresponding locking bit Lx to logic 1 to prevent further write access. After locking,
the corresponding page becomes read-only memory.

But this is way over my head.

373 (edited by bretc 2016-01-31 15:55:06)

Re: DaVinci Junior cartridge reset

Hi! I am new to this topic. I just signed up here to ask a few questions about this. I have a Da Vinci Jr and would like to print with filaments such as wood that aren't given as an option from XYZ. From my understanding, you have to purchase a logic analyzer to capture the password coming from the I2C bus. I've looked into that and the cost of these analyzers such as the Salae Logic 4 is just way too high for my budget. Could you use an Arduino or Raspberry Pi as a logic analyzer? I've looked into them and there are some programs written to transform the raspberry pi/arduino into a logic analyzer but I don't know if any of them have to capabilities to read I2C and other important features as well as be fast enough to capture the password (I saw that you couldn't get the bus pirate to capture the password successfully). If there is no possible way to use an arduino or raspberry pi then are there any cheap analyzers that would be practical for this? ~$25

Edit: Was just looking around and found this. Would this be good? http://www.seeedstudio.com/depot/Logic- … -1750.html

374

Re: DaVinci Junior cartridge reset

Bozotclown1970 wrote:

After seeing

vienisas wrote:  Yes its possible, first need get password, after that you can turn off password protection

I saw

8.5.1 UID/serial number
The unique 7-byte serial number (UID) and its two check bytes are programmed into the
first 9 bytes of memory covering page addresses 00h, 01h and the first byte of page 02h.
The second byte of page address 02h is reserved for internal data. These bytes are
programmed and write protected in the production test.

http://soliforum.com/i/?NUwSj6p.jpg

In accordance with ISO/IEC 14443-3 check byte 0 (BCC0) is defined as CT Å SN0 Å SN1
Å SN2 and check byte 1 (BCC1) is defined as SN3 Å SN4 Å SN5 Å SN6.
SN0 holds the Manufacturer ID for NXP Semiconductors (04h) in accordance with
ISO/IEC 14443-3.
8.5.2 Static lock bytes (NTAG21x)
The bits of byte 2 and byte 3 of page 02h represent the field programmable read-only
locking mechanism. Each page from 03h (CC) to 0Fh can be individually locked by setting
the corresponding locking bit Lx to logic 1 to prevent further write access. After locking,
the corresponding page becomes read-only memory.

But this is way over my head.


Yes once a password has been set the byte to enable it cannot be rewritten and is set to read only in memory. Same with the ID and password itself.

375 (edited by vienisas 2016-02-01 03:28:24)

Re: DaVinci Junior cartridge reset

If somebody interested about unlock NTAG that it will be readable without Password, PM me. I have unlocked it