3D printer NFC key calculator

This service will calculate the valid key and PACK for your filament NFC tag.

Wohoo! The source code is freely available at GitHub.

The magic tool

UID

UID: 

or

Tag pages

  0: 
  1: 

Result

UID:  

KEY:  

PACK: 

Maybe you want to donate now?

Donate

Background & credit

Some 3D printers are using NFC chips inside the filament rolls to limit end users freedom of choice. To generate your own NFC tags and bypass this limitation you need to figure out a key and PACK code that corresponds to the unique ID of your tag.

The key and PACK is generated using a rather complex (until you know it, of course) algorithm inside a chip on the printer motherboard, and to retrive this algorithm I had to disassemble the printer, solder 10 cables to the motherboard, and buy some rather expansive equpment.

All toghether I spent more than $800 (yes, for real) on hardware tools: Chameleon Mini revG, Proxmark3, BusPirate v4, Atmel-ICE and Segger J-Link - plus a few NFC cards and cables.

Using these tools I investigated both the NFC tags and the printer motherboard. I dumped and debugged the primary chip (Atmel ATSAM4E8E) as well as the chip controlling the NFC reader (NXP LPC1115F). After locating the key and PACK algorthms in the NXP chip I converted the assembler code to more useful (readable) code. You are looking at the result.

I am providing this key/PACK calculation tool for free. However, if you find it useful you may show your gratitude by giving a small donation. I might just get encouraged to further investigate/hack this device, like decrypting the firmware bin and modifying the firmware to fully disable NFC checks - it should be possible.

Donate

Credit