726

Re: DaVinci Junior cartridge reset

I assume that you mean firmware 2.2.4, not 1.2.4. I have been using 2.2.4 for over a month without issue. That doesn't mean that they couldn't make a simple change in the firmware that would prevent the current method of resetting the NFC chip from working, but I haven't seen that on 2.2.4 yet. I also reset before hitting zero, so I don't know if that is a factor. I haven't tried changing from the 200M maximum either, as I didn't see that it got me anything.

For what it's worth.

727

Re: DaVinci Junior cartridge reset

crcasey- could you please post the contents of the tag you are having issues with, so that we can see if something happened to it or possibly just help to let you know what you might want to update or try?

728

Re: DaVinci Junior cartridge reset

ese318 wrote:

I assume that you mean firmware 2.2.4, not 1.2.4. I have been using 2.2.4 for over a month without issue. That doesn't mean that they couldn't make a simple change in the firmware that would prevent the current method of resetting the NFC chip from working, but I haven't seen that on 2.2.4 yet. I also reset before hitting zero, so I don't know if that is a factor. I haven't tried changing from the 200M maximum either, as I didn't see that it got me anything.

For what it's worth.

Yes 2.2.4.  And I am not saying that something else is not going on.  But the printer only uses 10 bytes to verify the length remaining for any spool of any color or length (allowed).

In the page by decimal count 20:  The little indian count of the length left.
Page 21 - 23 the first two bytes on each of these pages hash the count given on page 20.

If these 10 bytes agree with each other the printer used to just work. 

Now since the firmware update it will not let me take this tag back to 200/200.

Not sure why that is, but I do know when the behavior changed.

My guess is that it is storing the ID found in page 0-1 and the used length on page 20 in flash now.  If page 20 for that ID is > than the stored value it has a cow.  But ESE you say you have no problem setting back to 200/200?

Strange.

GreatOne, I will pull the config after my next print finishes.


Now for a more positive update. 

I have been using RioRand 1.75mm PLA Filament 1kg/2.2lb for 3D Printers Reprap, MakerBot Replicator 2, Afinia, Solidoodle etc. (Yellow) off from Amazon at $17 and have been getting the best prints the last day or two since I got the printer.

I never knew what a dogs breakfast the PLA from XYZ was.

Using the XYZware set to high quality, walls set to thick, infill set to 20% (it switches from a linear infill at 30% to a zig zag at 20% that prints much faster).  Blue tape and quick spritz of aqua net and wipe dry.  No lifting of parts, no raft needed, and noticeably less banding on the layers.  Temp set for Nature at 190.

Please still keep an eye out for the FirmwareLast.bin or other .bin files hiding on your hard drive, still would like to dump the 2.2.4 out the window.  If you do a search for "firmware.bin" from the windows start button you may find something.

Thanks All!
-Cecil

729

Re: DaVinci Junior cartridge reset

@crcasey. this might help my printer was 1.0 and is 2.2.4

there are 3 files in the zip.
firmware
firmwarelast
firmwareforpro

https://dl.dropboxusercontent.com/u/232 … relast.zip

hope it helps

730

Re: DaVinci Junior cartridge reset

crcasey wrote:
greatone76 wrote:

We know Pages 21 to 23 change as the chip is used.  I think from the start we should be resetting those values to the default full 200m numbers.  I think 21 to 23 are check sums.  I think they are the reason you can't change the reels that came with the printer that 100m long to 300 m reels.  I think the check sum goes negative or is otherwise screwed up.  crcasey reset Pages 21 to 23 with the default full values.  I think you just resetting page 20 is the problem.  There also could be a point where once you use the reel for 100m the check sum no longer works.  Again the check sum probably goes negative and gives errors.  I think pages 21 to 23 need to be played with cause I think those are what limits the reels lengths.  I think if we could catch on to Pages 21 to 23 I think then we could look at resetting to 999m ect.

I have reset it FULLY, to factory length.  SW Version 1.2.4 that my idiot friend helped me by upgrading to is storing the used length now.  If you reset the chip, even with perfect numbers that worked just fine before IT DOES NOT WORK.

Oh and if you had looked at my scripts they always reset all the pages that change.

LET me state once again.

DO NOT UPGRADE TO FIRMWARE 1.2.4!!!

And the plea still stands, if anyone can find a good firmwarelast.bin on their computer PLEASE let me know.

I will try using the firmware wipe on the CPU pin 130 and use the AVR bootloader to downgrade.

Maybe you mean firmware 2.2.4   my is 2.2.0  and have bin file

731

Re: DaVinci Junior cartridge reset

JustBen wrote:

@crcasey. this might help my printer was 1.0 and is 2.2.4

there are 3 files in the zip.
firmware
firmwarelast
firmwareforpro

https://dl.dropboxusercontent.com/u/232 … relast.zip

hope it helps

Thanks Ben, I will take a look.

732

Re: DaVinci Junior cartridge reset

vienisas wrote:
crcasey wrote:
greatone76 wrote:

We know Pages 21 to 23 change as the chip is used.  I think from the start we should be resetting those values to the default full 200m numbers.  I think 21 to 23 are check sums.  I think they are the reason you can't change the reels that came with the printer that 100m long to 300 m reels.  I think the check sum goes negative or is otherwise screwed up.  crcasey reset Pages 21 to 23 with the default full values.  I think you just resetting page 20 is the problem.  There also could be a point where once you use the reel for 100m the check sum no longer works.  Again the check sum probably goes negative and gives errors.  I think pages 21 to 23 need to be played with cause I think those are what limits the reels lengths.  I think if we could catch on to Pages 21 to 23 I think then we could look at resetting to 999m ect.

I have reset it FULLY, to factory length.  SW Version 1.2.4 that my idiot friend helped me by upgrading to is storing the used length now.  If you reset the chip, even with perfect numbers that worked just fine before IT DOES NOT WORK.

Oh and if you had looked at my scripts they always reset all the pages that change.

LET me state once again.

DO NOT UPGRADE TO FIRMWARE 1.2.4!!!

And the plea still stands, if anyone can find a good firmwarelast.bin on their computer PLEASE let me know.

I will try using the firmware wipe on the CPU pin 130 and use the AVR bootloader to downgrade.

Maybe you mean firmware 2.2.4   my is 2.2.0  and have bin file

Yea avoid 2.2.4.  Typo.

733

Re: DaVinci Junior cartridge reset

@crcasey. np. i'll always help ppl that share smile

do report back if one of the files works and the way you got it downgraded.

/Ben

734 (edited by crcasey 2016-03-22 04:14:25)

Re: DaVinci Junior cartridge reset

Just to let you all know, the program dotPeek32_10.0.2 can de-complie the XYZ.exe into readable format.  But it is big.  So need some eyes on this.

Let me just say there are a LOT more options in XYZware that you have never seen.

If we look at this enough we may be able to find the way the filament hash is being tested.

At the least we should be able to write our own serial transfer interface that has more options.

For example you can see the file encoding/decoding chains for the .W3 files. 

So maybe we can find how to unpack the firmware files.  Which would put us on the start of porting real software without tracing the board.

Or it shows the Version 3 communications protocol that the serial port is using to get status and set options.  One of which shows all the colors and filament types, and the numbers they use.

Just a small taste of what I have seen.  I just wish I knew more of what to do with it, but some of our code heads may be able to help.  I know enough to be dangerous. smile

-Cecil

735

Re: DaVinci Junior cartridge reset

Here are a couple of examples.

   public void translateMaterial()
    {
      if (this.gHashtableMaterial.ContainsKey((object) (byte) 41.ToString()))
        this.gHashtableMaterial.Clear();
      this.gHashtableMaterial.Add((object) (byte) 41.ToString(), (object) "L_ABS");
      this.gHashtableMaterial.Add((object) (byte) 50.ToString(), (object) "L_PLA");
      this.gHashtableMaterial.Add((object) (byte) 56.ToString(), (object) "L_WATER_SOLUBLE");
      this.gHashtableMaterial.Add((object) (byte) 46.ToString(), (object) "L_FLEXIBLE");
    }

Or

    public string GetColorByFilamentSN(string filamentSN)
    {
      string str1 = string.Empty;
      if (!string.IsNullOrEmpty(filamentSN))
      {
        string str2 = string.Empty;
        if (filamentSN.Length >= 4)
        {
          string str3 = filamentSN.Substring(4, 1);
          Hashtable hashtable = new Hashtable();
          hashtable.Add((object) "A", (object) System.Drawing.Color.Purple.Name);
          hashtable.Add((object) "B", (object) System.Drawing.Color.Blue.Name);
          hashtable.Add((object) "C", (object) System.Drawing.Color.OrangeRed.Name);
          hashtable.Add((object) "D", (object) System.Drawing.Color.Cyan.Name);
          hashtable.Add((object) "E", (object) System.Drawing.Color.DarkSeaGreen.Name);
          hashtable.Add((object) "F", (object) System.Drawing.Color.Yellow.Name);
          hashtable.Add((object) "G", (object) System.Drawing.Color.Green.Name);
          hashtable.Add((object) "H", (object) System.Drawing.Color.Chartreuse.Name);
          hashtable.Add((object) "I", (object) System.Drawing.Color.DarkGray.Name);
          hashtable.Add((object) "J", (object) System.Drawing.Color.Gold.Name);
          hashtable.Add((object) "K", (object) System.Drawing.Color.Black.Name);
          hashtable.Add((object) "L", (object) System.Drawing.Color.Violet.Name);
          hashtable.Add((object) "M", (object) System.Drawing.Color.MediumPurple.Name);
          hashtable.Add((object) "N", (object) System.Drawing.Color.Purple.Name);
          hashtable.Add((object) "O", (object) System.Drawing.Color.Gold.Name);
          hashtable.Add((object) "P", (object) System.Drawing.Color.SeaGreen.Name);
          hashtable.Add((object) "Q", (object) System.Drawing.Color.Orange.Name);
          hashtable.Add((object) "R", (object) System.Drawing.Color.Red.Name);
          hashtable.Add((object) "S", (object) System.Drawing.Color.Salmon.Name);
          hashtable.Add((object) "T", (object) System.Drawing.Color.DarkOrange.Name);
          hashtable.Add((object) "U", (object) System.Drawing.Color.DarkBlue.Name);
          hashtable.Add((object) "V", (object) System.Drawing.Color.Silver.Name);
          hashtable.Add((object) "W", (object) System.Drawing.Color.White.Name);
          hashtable.Add((object) "X", (object) System.Drawing.Color.Magenta.Name);
          hashtable.Add((object) "Y", (object) System.Drawing.Color.Yellow.Name);
          hashtable.Add((object) "Z", (object) System.Drawing.Color.White.Name);
          if (hashtable[(object) str3] != null)
            str1 = hashtable[(object) str3].ToString();
        }
      }
      return str1;
    }

Oh and one other thing I have seen, is that the software is expecting dual exturders.  So that is why there are two copies of the lengths even on the Jr.

Did I mention the scattering everywhere of the code for a laser extruder?  Etching...

-C

736

Re: DaVinci Junior cartridge reset

i'm no dev.

but i did find a few ref's for firmware upgrade using that dotpeek tool

take a look at XYZ.view ->FirmwareUpgrade
you can also use it as a search term that shows a few more results.

i hope it can help point others in the right direction.
and i'll keep looking arround

737

Re: DaVinci Junior cartridge reset

crcasey wrote:

I have reset it FULLY, to factory length.  SW Version 1.2.4 that my idiot friend helped me by upgrading to is storing the used length now.  If you reset the chip, even with perfect numbers that worked just fine before IT DOES NOT WORK.

Oh and if you had looked at my scripts they always reset all the pages that change.

LET me state once again.

DO NOT UPGRADE TO FIRMWARE 1.2.4!!!

And the plea still stands, if anyone can find a good firmwarelast.bin on their computer PLEASE let me know.

I will try using the firmware wipe on the CPU pin 130 and use the AVR bootloader to downgrade.

First, you can't erase the flash by jumping pin 130, wrong chip.  Second, the Jr is an ARM processor, not AVR.  Third, the firmware is encrypted.  If you erase the flash it is VERY likely you will never be able to use stock firmware again.

738

Re: DaVinci Junior cartridge reset

crcasey wrote:

Just to let you all know, the program dotPeek32_10.0.2 can de-complie the XYZ.exe into readable format.  But it is big.  So need some eyes on this.

Let me just say there are a LOT more options in XYZware that you have never seen.

If we look at this enough we may be able to find the way the filament hash is being tested.

At the least we should be able to write our own serial transfer interface that has more options.

For example you can see the file encoding/decoding chains for the .W3 files. 

So maybe we can find how to unpack the firmware files.  Which would put us on the start of porting real software without tracing the board.

Or it shows the Version 3 communications protocol that the serial port is using to get status and set options.  One of which shows all the colors and filament types, and the numbers they use.

Just a small taste of what I have seen.  I just wish I knew more of what to do with it, but some of our code heads may be able to help.  I know enough to be dangerous. smile

-Cecil

XYZWare does not decrypt the firmware bin files. It simply reads some meta data and plops the encrypted firmware onto the microcontroller.  Then it tells the Davinci software on the microcontroller to upgrade itself.  All decryption of the bin is done chip-side.

739

Re: DaVinci Junior cartridge reset

Well I did know that Atmel is the maker of the chip, and yes that it is a ARM core, all based off the Audrino Due platform.  And I did make an incorrect statement calling it AVR.  I still do believe the firmware reset is available, but I am not going to dump it, unless there is a way to have the decrypted ARM code first.

But even if XYZware does not pull open the firmware files there is still plenty to learn from browsing the code tree.

Also as an update, I think I found out what was screwing with my RFID cards.  I was mixing and matching things to freely with the color and temp up on code page 8,9 without being sure that byte 3 of pages 21-23 matched them.   2.2.2 did not care so much, it seems that 2.2.4 really checks that stuff.

And it was strange, I would get a card set up that the spool status would like, and give me the info back.  But when I told the printer to start the print from card it would come up with some type of "unknown spool" error and dump the print job.

So I went back to the beginning and put a complete fresh copy of a spool and it was like Mikey... It liked it.  So most of my issues were me just drawing outside the lines and getting away with it on the 2.2.2 firmware.  Told you I was dangerous wink.

Thanks to everyone that stepped up to give a hand. 

-C

740

Re: DaVinci Junior cartridge reset

crcasey wrote:

Well I did know that Atmel is the maker of the chip, and yes that it is a ARM core, all based off the Audrino Due platform.  And I did make an incorrect statement calling it AVR.  I still do believe the firmware reset is available, but I am not going to dump it, unless there is a way to have the decrypted ARM code first.

But even if XYZware does not pull open the firmware files there is still plenty to learn from browsing the code tree.

I hope I didn't come off as rude, I didn't mean to.  It's actually not the same chip as the Due (like the other Davincis) which makes things a bit trickier.  Take a look at the repetier port thread for my findings so far.

Absolutely plenty to learn looking at the XYZWare code!  Just thought I'd share what I found about the firmware upgrade portion.

741

Re: DaVinci Junior cartridge reset

XYLenTech wrote:
crcasey wrote:

Well I did know that Atmel is the maker of the chip, and yes that it is a ARM core, all based off the Audrino Due platform.  And I did make an incorrect statement calling it AVR.  I still do believe the firmware reset is available, but I am not going to dump it, unless there is a way to have the decrypted ARM code first.

But even if XYZware does not pull open the firmware files there is still plenty to learn from browsing the code tree.

I hope I didn't come off as rude, I didn't mean to.  It's actually not the same chip as the Due (like the other Davincis) which makes things a bit trickier.  Take a look at the repetier port thread for my findings so far.

Absolutely plenty to learn looking at the XYZWare code!  Just thought I'd share what I found about the firmware upgrade portion.

And I did appreciate it.  I have had the bottom cover off a few times, but I had not pulled the data sheet of the Jr's processor, so it never hit me that they had changed up the IC for the new rev of the board.

I will have to come over and read the porting thread, I can live with the work around set ups on the JR, but it will be nice to have normal open source under the hood.

-C

742

Re: DaVinci Junior cartridge reset

I am curious if these lines in the XYZ code base do what they seem to say they do?  I am away from my printer for a bit.

public void Send_Config_command(string command)
    {
      this.serialConnect = new SerialConnector();
      byte[] bytes = "XYZv3/config=" + command;
      this.serialConnect.serialwrite(bytes, 0, bytes.Length);
    }

public void UnlockFilament()
    {
      
        Main.ProtocolV3.Send_Config_command("pda:[1591]");
        Main.ProtocolV3.Send_Config_command("pdb:[4387]");
        Main.ProtocolV3.Send_Config_command("pdc:[7264]");
        Main.ProtocolV3.Send_Config_command("pde:[8046]");
      
    }

I did trim some of the more useless code from these sections.  But this is the basics for the Jr.

Anyone care to give this a try?

-C

743 (edited by Shelvak 2016-03-25 18:13:06)

Re: DaVinci Junior cartridge reset

Hi there, I'm trying to reset my Davinci filament, and I need the password to do this. Could someone help me and provide me the password please.

Anything that you need please, PM me smile

Thanks in advance. And thank you for the great work helping the community big_smile

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

744

Re: DaVinci Junior cartridge reset

Can someone please help?!?!?! This is my 4th time resetting my chip but this time after i reset it whenever i print it says Spool Error Unidentified Spool! This was my only nfc chip and i really dont want to buy a new pack of XYZ filament just so i can use my printer again. I am in the middle of a project where i need my printer and i dont have the time to wait for more filament to arrive.  Since i reset the spool the very first time i've never updated the firmware or even connected the printer to my computer (I use the SD Card).

745

Re: DaVinci Junior cartridge reset

@jakecrowley

Use the instructable and change all pages back to the default 200m numbers shown in the picture of the full tag readout.

http://www.instructables.com/id/XYZ-Da- … set-Hack/.

In particular Pages 21, 22, and 23 (15, 16, 17 in hex as used by the app) change as the reel is used.  Most likely these count down in some way and are added together to get a check sum.  I'm guessing after using them without resetting them the check sum numbers go negative or otherwise screw up the checksum. 

I think changes those back will fix your problem, but if need just keep going and make your tag match the default values of a full 200m reel and it should work again. 

In the near future I will be changing the reset direction to just use the a 200m reset and to change pages 21 to 23 back to default values.

If you keep having issues let me know and we can keep working.  This situation and seeing the spool error after a few reset has happened and all have followed the above directions of resetting everything to default and to my knowledge have solved the problem.

746 (edited by jakecrowley 2016-03-26 00:24:34)

Re: DaVinci Junior cartridge reset

greatone76 wrote:

@jakecrowley

Use the instructable and change all pages back to the default 200m numbers shown in the picture of the full tag readout.

http://www.instructables.com/id/XYZ-Da- … set-Hack/.

In particular Pages 21, 22, and 23 (15, 16, 17 in hex as used by the app) change as the reel is used.  Most likely these count down in some way and are added together to get a check sum.  I'm guessing after using them without resetting them the check sum numbers go negative or otherwise screw up the checksum. 

I think changes those back will fix your problem, but if need just keep going and make your tag match the default values of a full 200m reel and it should work again. 

In the near future I will be changing the reset direction to just use the a 200m reset and to change pages 21 to 23 back to default values.

If you keep having issues let me know and we can keep working.  This situation and seeing the spool error after a few reset has happened and all have followed the above directions of resetting everything to default and to my knowledge have solved the problem.

Thank you so much for your help, I will try this and check back in with my results!

Welp, nothing... Still unidentified spool even after I followed the tutorial and changed everything to what it said. Can someone please take a look at my values just to make sure I'm not missing anything? http://soliforum.com/i/?Eqgiocw.png

747

Re: DaVinci Junior cartridge reset

Change (pages in hex as the app uses)
15 to 081F3154
16 to 50B1E0CE
17 to 52E74F76

748

Re: DaVinci Junior cartridge reset

Just a note on temps.

210 Vs 190

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

Much less warping at 190.  On the lower part.

749

Re: DaVinci Junior cartridge reset

Try this dump with your password for the RFID put in.

/**************************************************************************/
/*! 
    @file     ntag2xx_write_With_PWD.pde
    @author   KTOWN (Adafruit Industries)
    @license  BSD (see license.txt)

    This example will wait for any NTAG203 or NTAG213 card or tag,
    and will attempt to erase the user data section of the card (setting
    all user bytes to 0x00)

    This is an example sketch for the Adafruit PN532 NFC/RFID breakout boards
    This library works with the Adafruit NFC breakout 
      ----> https://www.adafruit.com/products/364
 
    Check out the links above for our tutorials and wiring diagrams 
    These chips use SPI or I2C to communicate.

    Adafruit invests time and resources providing this open source code, 
    please support Adafruit and open-source hardware by purchasing 
    products from Adafruit!
*/
/**************************************************************************/
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_PN532.h>

// If using the breakout with SPI, define the pins for SPI communication.
//#define PN532_SCK  (2)
//#define PN532_MOSI (3)
//#define PN532_SS   (4)
//#define PN532_MISO (5)

// If using the breakout or shield with I2C, define just the pins connected
// to the IRQ and reset lines.  Use the values below (2, 3) for the shield!
#define PN532_IRQ   (2)
#define PN532_RESET (3)  // Not connected by default on the NFC Shield

// Uncomment just _one_ line below depending on how your breakout or shield
// is connected to the Arduino:

// Use this line for a breakout with a software SPI connection (recommended):
//Adafruit_PN532 nfc(PN532_SCK, PN532_MISO, PN532_MOSI, PN532_SS);

// Use this line for a breakout with a hardware SPI connection.  Note that
// the PN532 SCK, MOSI, and MISO pins need to be connected to the Arduino's
// hardware SPI SCK, MOSI, and MISO pins.  On an Arduino Uno these are
// SCK = 13, MOSI = 11, MISO = 12.  The SS line can be any digital IO pin.
//Adafruit_PN532 nfc(PN532_SS);

// Or use this line for a breakout or shield with an I2C connection:
Adafruit_PN532 nfc(PN532_IRQ, PN532_RESET);

#if defined(ARDUINO_ARCH_SAMD)
// for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
// also change #define in Adafruit_PN532.cpp library file
   #define Serial SerialUSB
#endif

void setup(void) {
  #ifndef ESP8266
    while (!Serial); // for Leonardo/Micro/Zero
  #endif
  Serial.begin(115200);
  Serial.println("Hello!");

  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (! versiondata) {
    Serial.print("Didn't find PN53x board");
    while (1); // halt
  }
  // Got ok data, print it out!
  Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX); 
  Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC); 
  Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
  
  // configure board to read RFID tags
  nfc.SAMConfig();
  
  Serial.println("Waiting for an ISO14443A Card ...");
}

void loop(void) {
  uint8_t success;
  uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // Buffer to store the returned UID
  uint8_t uidLength;                        // Length of the UID (4 or 7 bytes depending on ISO14443A card type)
    
  // Wait for an NTAG203 card.  When one is found 'uid' will be populated with
  // the UID, and uidLength will indicate the size of the UUID (normally 7)
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
  
  if (success) {
    // Display some basic information about the card
    Serial.println("Found an ISO14443A card");
    Serial.print("  UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");
    Serial.print("  UID Value: ");
    nfc.PrintHex(uid, uidLength);
    Serial.println("");
    
    if (uidLength == 7)
    {
      // We probably have an NTAG2xx card (though it could be Ultralight as well)
      Serial.println("Seems to be an NTAG2xx tag (7 byte UID)");      
      
      // NTAG2x3 cards have 39*4 bytes of user pages (156 user bytes),
      // starting at page 4 ... larger cards just add pages to the end of
      // this range:
      
      // See: http://www.nxp.com/documents/short_data_sheet/NTAG203_SDS.pdf

      // TAG Type       PAGES   USER START    USER STOP
      // --------       -----   ----------    ---------
      // NTAG 203       42      4             39
      // NTAG 213       45      4             39
      // NTAG 215       135     4             129
      // NTAG 216       231     4             225      
    uint8_t data[45];
      byte pwd[] = {0xEE, 0x2A, 0xE3, 0x90};

      nfc.NFC_PWD_AUTH(pwd);
      
      Serial.println("");
      Serial.println("Reseting the spool.");
      Serial.println("");
      
      
      /*  Origional Values in example code.
      byte spoolLen[]={0xAB, 0x41, 0x01, 0x00};
      byte page21[]={0xE3, 0x53, 0x33, 0x54};
      byte page22[]={0x25, 0x4D, 0xE1, 0xCE};
      byte page23[]={0xBF, 0xBC, 0x49, 0x76};
      */
      
      // Dump to set 200M Lt Grn.
      byte page02[]={0x09, 0x48, 0x00, 0x00};
    byte page08[]={0x5A, 0x50, 0x50, 0x00};
      byte page09[]={0x00, 0x35, 0x34, 0x54};
      byte page10[]={0x40, 0x0D, 0x03, 0x00};
      byte page11[]={0x40, 0x0D, 0x03, 0x00};
    byte page14[]={0x30, 0x31, 0x32, 0x33};
    byte spoolLen[]={0x40, 0x0D, 0x03, 0x00};
    byte page21[]={0x08, 0x1F, 0x31, 0x54};
    byte page22[]={0x50, 0xB1, 0xE0, 0xCE};
    byte page23[]={0x52, 0xE7, 0x4F, 0x76};
      
      nfc.ntag2xx_WritePage(20,spoolLen);
      nfc.ntag2xx_WritePage(8,page08);
      nfc.ntag2xx_WritePage(9,page09);
      nfc.ntag2xx_WritePage(10,page10);
      nfc.ntag2xx_WritePage(11,page11);
    nfc.ntag2xx_WritePage(14,page14);
    nfc.ntag2xx_WritePage(21,page21);
    nfc.ntag2xx_WritePage(22,page22);
    nfc.ntag2xx_WritePage(23,page23);

    Serial.println("");
      Serial.println("Here is the read back.");
      Serial.println("");

      for (uint8_t i = 0; i < 45; i++) 
      {
        success = nfc.ntag2xx_ReadPage(i, data);
        
        // Display the current page number
        Serial.print("PAGE ");
        if (i < 10)
        {
          Serial.print("0");
          Serial.print(i);
        }
        else
        {
          Serial.print(i);
        }
        Serial.print(": ");

        // Display the results, depending on 'success'
        if (success) 
        {
          // Dump the page data
          nfc.PrintHexChar(data, 4);
        }
        else
        {
          Serial.println("Unable to read the requested page!");
        }
      }      
 
    }
    else
    {
      Serial.println("This doesn't seem to be an NTAG203 tag (UUID length != 7 bytes)!");
    }
    
    // Wait a bit before trying again
    Serial.println("\n\nSend a character to scan another tag!");
    Serial.flush();
    while (!Serial.available());
    while (Serial.available()) {
    Serial.read();
    }
    Serial.flush();    
  }
}

750

Re: DaVinci Junior cartridge reset

Dump works fine, still spool error though. Even after changing 15,16,and 17.