Yahoo Groups archive

Homebrew PCBs

Index last updated: 2026-04-28 23:05 UTC

Message

Back to the reason why I want G3 compression

2006-05-03 by Andrew

> Russell wrote:
> 
> At the data rates needed, you'll need
> to store the whole file in the machine
> controller.

I was only planning on storing 1 row/
scanline of data at a time.

> A 300mm drum has a circumference around
> 1000mm.  Assume a pixel size of 0.01mm.
> If it rotates at 600rpm, the pixel rate
> is 1Mpixel/sec.   A 100mm x 100mm plot
> will need 1000s or 17mins to scan. The
> averaged pixel rate will be 100k pixels
> /sec.  The file size will be 100Meg
> pixels, which is impractical.

> The pc could send bitmap data while the
> machine is running, if the data rate is
> higher than 100k bits/sec.  Fast rs-232,
> usb, or ethernet could do that.

I was planing on a 16.384 inch active
area on a 20 inch or so round drum that
is 10 inches long.

(no prizes for guessing why I chose the
active area to be 16.384 inches)

2000 dpi (about 0.01mm) resolution.

It ends up being a file size of 35
megabytes.

I think the data rate I worked out I
wanted was 800 kilo baud RAW.

An FT232 sitting on a USB port can do
this.  But its going to be a strain on
the poor Atmel to keep the throughput.

Most PCB files compress better than
10:1 with G3.

If I G3 compress it I can get by with
much lower baud rates (sub 100 kilobaud)

CRC on a 1 megabaud link will take
more time than CRC on a 100kilobaud
link and G3 decompression together.

I think the ATMEL has enough omph
for either - but i like the idea of
keeping horsepower spare in case I find
there is something else I need to do.

Worst case senario and I am prting out
a bit map for a T-Shirt and I don't
get 10:1 compression - it just runs
slow.

Because the atmel has enough memory to
buffer one full scan line - it wont
BREAK the thing - it just will mean it
has to pause between scanlines. (one
hour to print instead of 10 minutes)

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.