Posts Tagged ‘printer’
I was playing around with Windows 98 drivers and found a combination of settings that printed the slowest, loudest, darkest black line I’ve ever seen this dot matrix printer print. And then a second one on top of the first one, just in case it wasn’t dark enough already.
I’d guess that that’s about a week’s worth of wear in 30 seconds.
And now, I’m enjoying random fainter black parts in my prints because that part of the ribbon’s worn much more than the rest, lol.
(Printer is an Epson LQ-300+II)
Showing off a couple more things not possible with the Epson driver: multi-strike printing and “quiet” (not really) mode, along with CMYK colour correction which is nearly invisible to my camcorder, so that part was a waste of video…
This is a program I’m casually working on every now and then to print images on any 24-pin ESC/P2 dot matrix printer (ESC/P2 is Epson’s control language for their dot matrix printers). It directly controls the printer by sending raw commands to it; you just need to tell Windows that it’s a “Generic / Text Only” printer on Windows, not using the official Epson driver, and Windows will pass the commands straight on to the printer without trying to translate them.
This is a standalone program for printing image files, not a driver for printing from any program. I’ve not yet released it, but I intend to some time. Compared to the driver, it currently allows:
- Printing in (lower) resolutions for high speed (down to 60 DPI).
- Detailed control over colour dithering/thresholding.
- Very tall print-outs not restricted to a paper length (e.g. for continuous paper).
- Printing only individual component colour(s) of an image.
- * Faster colour printing by doing large blocks of each colour at once.
- * Multi-strike printing (optionally offsetting each one to fill in the gaps between the earlier ones’ dots).
- * “Quiet” (multi-pass) printing (unfortunately, I can’t control the actual speed).
*The last three are somewhat “hacks”, abusing commands to try to force unofficial behaviour, and as such, they rarely work properly in combination with each other. In particular, the last two often don’t work when printing colour.
By the way, printing in blocks of colour is no longer done by relying on sending commands with the correct timing (as it did in the previous video), which means it’s now much more reliable and doesn’t get messed-up by pausing the printer, image content, etc.
It actually works! Well, its first ever print-out could certainly do with some improvements, but to be honest, I’m happy it’s even intelligible at all! Part 7 in my super-basic, Arduino-controlled printer project.
It should be better when I at least have a stable and level tray for the paper (or whatever) to sit on. I have an idea for an alternative to a heavy sheet of steel, which you should be able to see in the next video. Perhaps the PSU fan will have arrived by then, too… <_<
Also, enjoy the in-sync 50 FPS if you can! That pen flicks back and forth at stupid speeds, so a high frame rate is actually useful here.
Time for some real progress this time! The sixth part in this series where I make a super-basic printer with an Arduino.
It’s pretty much ready to print – just a little hot glue and a sheet of paper and it’s all set! But unfortunately, this video is already ~8 minutes long, so that’ll have to wait.
After trying out solenoids and ruling out floppy drive motors because of speed, I looked at servos as a way of moving the pen up and down. I settled on Hitec’s second-fastest micro servo, which is digital (means it’s not limited to 50 Hz update intervals) and has metal gears (means it won’t destroy itself quickly). It’s designed for use in R/C helicopters, so I’m hoping this will handle the fast motions over a small range of travel, with a light load, well. I’m certainly impressed by it so far.
The most boring video in this series of me making a super-basic, Arduino-controlled printer. I made it at 50 FPS to try to make it more interesting to people who can play that, but that ended up making it out-of-sync at times. *Sigh*
This is what happens when I don’t plan everything through before I start making something (i.e. all the time). Sorry. Stuff will actually happen in the next one, I promise!
I’m experimenting with making a program to print an image to my dot matrix printer much faster than when using the Epson driver (it avoids changing print colour often), and with a lot more options. Here’s a speed comparison, plus an extra video at the end showing it being the fastest I’ve ever seen it print a colour image.
Not shown in this video are the program’s extra options for dithering, and being able to print very long images. Well, the program’s not really shown at all here, since it’s nowhere near complete yet (or even working properly), so this video just shows off the things that… sort-of-work so far.
The program sends raw ESC/P2 data (Epson’s printer control codes) to any printer port that you have installed (including USB-to-printer adaptors), with no need for the Epson driver. It bypasses the page limit length enforced by the driver, provides detailed dithering options (including error diffusion, used in this video), and takes a different approach to printing colours. This approach is designed to be much faster than colour printing using the Epson driver, but my program has to fight against the printer’s urge to merge everything internally and print all 4 colours slowwwwwly on every line. It seems to all depend on timing – wait a moment so that it starts printing – which I’m very disappointed in, because different printers will print at different speeds. This means it’ll be hard to make a program that works well with any ESC/P2-compatible printer. It will at least end up with the correct ink on the paper – it just might take 10 minutes to print. Oh well~
EDIT: Newer progress can be seen here.
Part four in this series of “making of” videos where I make a super-basic printer controlled by an Arduino.
There’s still no pen, so I stuck an LED where the pen will go and made it turn on when the pen should be drawing, as a test. Then, I took a long-exposure photo while it “printed” with the LED, pointing the camera upwards slightly after it finished each row. What I ended up with was a photo of the image that it tried to print, with inverted colours and stretched a bit because I didn’t move the camera at the right speed.
It can also now print bidirectionally, and it’s much faster to receive the data for the next row of pixels, because they’re no longer sent one at a time.
Part three in this series of “making of” videos where I make a super-basic printer controlled by an Arduino.
Although it still doesn’t look like a printer, I’ve been working on the software. Here, you can see the first stages of having the printer be controlled by the computer. The image data is actually being sent, but very slowly (think of it as a “compatibility mode”) – I wanted to make sure I had two-way communication working perfectly before making things faster. As such, there are still debugging messages being displayed on the Arduino’s LCD, too, left over from me trying to get things to work.
The next stage will be to prove that the Arduino is really receiving the image data correctly, even though there’s no mechanism to move a pen yet!
P.S. This video editor is bloody awful.
Part two in this series of “making of” videos where I make a super-basic printer controlled by an Arduino.
Sorry for being really lazy about uploading this. Also, the upload itself finished a little quicker than I thought it would, so yay, the date at the end is in the future.
Blue is actually violet, but oh well. This is using the Epson Windows graphic-mode driver and OpenOffice Writer – nothing made by me, this time. I had to boost the saturation by a stupid amount in editing to make the colours on the paper be visible to the camcorder, for some reason.
I was messing around while editing a past video and thought that it sounded cool when slowed down, so I decided to record it in higher quality and show how secondary colours are mixed from cyan/magenta/yellow at the same time.
I intend to record another (normal-speed) video of it printing images, using dithering to make other shades of colours.
The printer’s an Epson LQ-300+II. I recorded it with a Quad-Capture sound interface at 192KHz using two NT1-A mics, and slowed it down to 48KHz (25% speed).