LZWDecode a PDF File

Today I wanted to dissect a PDF file. Running pdf2ps quickly showed some big lumps of binary data. Looking a bit closer I found out that it is run through the filters ASCII85Decode and LZWDecode. After failing to decode this myself I searched again on the net and found the following blog entry:

Converting a PDF to PS without the LZWDecode filter

So just run the following commands:

qpdf --stream-data=uncompress original.pdf decoded.pdf
pdftops decoded.pdf decoded.ps

Avrdude Prints Part ID

Yesterday I saw the following error message of avrdude a bit too often:

avrdude: Device signature = 0x1e930f
avrdude: Expected signature for ATmega168 is 1E 94 06
Double check chip, or use -F to override this check.

Since I have a random mix of atmega 48, 88 and 168 and even some ‘p’ and ‘pa’ versions I often just try and get the error message. Then I try avrdude with some other part ID and often get more errors.

That’s why I wrote a patch (and log message) for avrdude (trunk @r1298). It just adds the device id to the output after the signature which has been found:

avrdude: Device signature = 0x1e930f (probably m88p)
avrdude: Expected signature for ATmega168 is 1E 94 06
Double check chip, or use -F to override this check.

This looks much better :)

Yes, I could use a microscope to read the part number from the chip but that’s too cumbersome. I prefer a solution where the software is telling me which part it is.