Pen plotters: not just output devices (2016)
scruss.com
scruss.com
What I could never adequately explain is just how nicely made these digitizing sights are. They give a very bright, crisply magnified image of the point immediately under the pen position. This contrasts with how massively fiddly it is to try to operate exactly the right buttons on a pen plotter while squinting down a tiny optical sight.
Even though pen plotters weren't rare in the 1980s and early 1990s, I've never found any software (beyond the terrible script I wrote for that article) that uses this capability. There's probably some HP BASIC code lurking on a half-forgotten instrumentation archive that does the job, though.
We also had an HP plotter connected to one of those large (typewriter-sized) HP calculators, and I also wrote code to graph on that, too.
All of this was pretty low-level stuff, but not difficult, and the rewards were high for a grad student trying to get science done.
Fun times. And a step up from summer work preceding it, when I had to boot my machine by toggling binary switches for certain binary sequence that had to be loaded before it would start to read paper tape.
I think I'm old.
No. We’re vintage.
Things like that were a weird combination of cool and hilarious, but in some cases you could turn it doubly cool.
When I was an intern, there was an old poster-size (D?) HP X-Y color pen plotter. Probably someone got for EDA/ECAD by our in-circuit emulator business, but someone had made a tool to make it work with CASE platform.
Being able to put a poster-size view of your system in team's area was pretty cool. (Though a Gantt diagram on the wall, of your team's entire project, to projected completion, was even cooler.)
The problem, like with those axis ticks, was that the HP-GL from our software wasn't very aware of the implications of a pen plotter, especially not the usual kind, which had to return home to change pens. Which made it almost comically slow to watch printing (though still impressive that it could draw one color for a few seconds, go change a pen for a few seconds, and then possibly return to approximately the same place, and repeat).
So, as one of my energetic intern midnight unofficial projects was to write an optimizer that read in that HP-GL and spit out HP-GL that would print faster. Rather than solve hard optimization problems, IIRC, I tried this very simple approach:
1. Do all the drawing for a single pen color in one go, before you switch pens. (Even with a rolling plotter, rather than a bed plotter, the mechanics of the pen change seemed to make it the most expensive operation.)
2. When you're done with one drawing operation, pick the next operation based on which has the nearest start point to the current pen position. (Greatly reduce the duration of pen-up movements that are not due to pen changes.)
The speedup from that very simple approach was dramatic, as you might be able to imagine, even if you've never seen a pen plotter work.
(If it hadn't worked so well, I'd have had to be smarter about optimization, like looking ahead multiple steps in a plan rather than just looking for the nearest start point, and getting more flexibility, like being able to reverse the direction that a pen-down movement is drawn. Or maybe you'd even even sometimes break up an atomic movement, for a really big win, like in the hypothetical of a few-foot border segment drawn along a page, and near midpoint of that border axis has a little adornment drawn. In that hypothetical, you could draw the half the border, pick up the adornment, and then resume the border, gaining speed at the cost of your border looking slightly less perfect.)
See HP Latex cutter: https://www8.hp.com/us/en/printers/large-format/latex-plus-c...
EDIT Oh, and they still speak HP-GL!
Fun fact: HP-GL is equally compatible with metric and US customary measure as it uses 1/40 mm as its base unit. This just happens to be 1/1016 inches: not a tremendously useful integer factor, but every bit of integer goodness mattered back when peripherals were 8-bit.
That’s a brilliant hack.
The inch is defined as 2.54 cm, since 1959. You might know this, just thought I'd add this note.
Some related history of input/output in physics: At the time, the "Bubblies" (bubble chamber particle physicists) used "flying spot digitizers" on their photos; I don't know how they worked, and to what degree they were automated. In contrast to that sophisticated input, HEP output was mainly histograms on line printer paper, stacked high, occasionally the grotty Tektronix 401x storage tube. Fortunately, nuclear physics had fast direct manipulation vector graphics and Benson roll pen plotters -- from whose song you could recognize types of plot across the room. Later the colour plots were sacrificed to faster monochrome Versatec electrostatics. (The Versatec printed my thesis, the first I knew produced electronically locally, long before we had an implementation of TeX.)
I eventually came up with routines to speed up the scanning (left to right, move up, right to left, move up ...) and even hit upon using the "judder" from the repositioning of the pen to, properly timed, grab a point. This saved me from having to fully stop, I could just vibrate the pen forward. This ... probably did not do much for the lifetime of the plotter.
Man, that was a hot mess.
I recently found a partial printout of my "software," so I am looking at code three decades old. And it still had my style.
My boss said “interesting project for you – hook this up to the PDP 11 make it work and then go and talk to Dave so he can use it to digitize the droplet cloud from an experimental rig”
First order of business was to get my soldering iron out and make up a suitable cable
I got a copy of AutoCAD from a warez site (downloaded over dial-up, obviously!), and learned how to use it, using the plotter to print my masterpieces - things like floor plans and building elevations - yeah, I was a weird teenager, and went through a phase of being interested in technical drawing. I thought I'd end up as a draftsman or an architectural technologist.
Anyway, it was absolutely fascinating to watch the plotter at work! The pen would fly across the page at high speed to the next target site, then make all these incredibly quick, tiny, precise movements, before flying off to another part of the page. I can still remember the pleasing electrical whine of the motor as it worked. Wonderful bit of kit :)
In my case, I was doing precision sheet metal and would often produce 1:1 layout plots for various purposes.
They sound amazing, and the better ones can really move and repeat to crazy good precision.
All these approaches are worse than the standard photolithography process with plated through holes. It's so cheap and easy to get boards made now. Upload files, pay a few dollars, boards come back.
Welp now I feel very old.
Your username is a reference to colossal cave adventure; I'd be disappointed if you were younger than me (40).
https://www.folklore.org/StoryView.py?project=Macintosh&stor...
In the most recent reference guide I found just now, it seems you can draw a segment of a pie chart using a single EW (Edge Wedge) instruction but, for a complete pie chart, this method would require you to calculate the angles of each segment yourself. And of course to add the labels yourself. Perhaps I'm looking in the wrong place or perhaps the instruction to draw a whole pie chart has been deprecated.
Anyway, the HP pen plotter we had in the early 1980s was a very impressive device, when what we had were Z80 based computers driving them.
Yeah, but which had more? :) Reminds me of that time in the 90s(?) when people connected printers to computers, but the printers had more powerful processors than the computers. (Or later, when someone poked into the WiFi board on their arduino and realized that it was a more powerful microcontroller, but that's not so directly related)
There is a feature in HP-GL that does make certain types of XY plotting simpler. While it's not a programming language like PostScript, you can scale, rotate and offset the plot by arbitrary amounts. HP instrumentation manuals claimed it was possible to directly plot experimental data by feeding it straight to the plotter after setting the scale. I feel this was a highly aspirational statement, and one not seeing much real use.
That said, most professional graphics software knew how to break down their elaborate output into HP-GL primitives with an appropriate output driver for the plotter. So few users actually had to do this unless they were talking to the plotter directly through a BASIC program or something.
And at least on the 74xx, I have never experienced out-of-order execution of instructions, I'm skeptical that any plotters other than very recently implemented this as it would break assumptions made by a number of plotting packages if the plotter executed out of order. Many HPGL commands are highly stateful, considering how slow the on-board processor on these plotters was it'd probably make them net slower if they even tried to optimize.
The buffer is also very small in 'compatibility mode' but modern packages should be fine with the 'extended' buffer size that can sometimes fit a whole document if it's not too complex.
Feed it the ops, and they do those ops with precision and speed and will repeat all of that a zillion times.
Optimization was a front end process, if it was one at all.
For actual optimization of input files, [vpype](https://github.com/abey79/vpype)'s the one most people use.
Going back to really old/simple plotters, there wasn't enough code space to do any optimization. For example, the (fairly terrible) Commodore 1520 roll paper plotter had 2KB of ROM for all the 6502-compatible code its micro-controller used. When I first looked into the [firmware](https://e4aws.silverdr.com/hacks/6500_1/), I was pretty shocked that it printed text by scanning a table of character data from the start every time. Then I realized that even storing pointers for each character would use up about ⅛ of total storage, and the mechanical plotter mechanism was always way behind anything the code could do. So small mattered more than efficient
Here is my CNC router with a paint pen also zooming along: https://www.instagram.com/p/CMT56JwA9sA/?igshid=15p9mru3f5ug...
if you want to get into this, the way to go is the Axidraw from Evil Mad Scientist Labs
So definitely worth looking around a bit before going with new!
I love people that post to #plottertwitter and similar content, so pretty-please, don't post on IG or platforms that do this if your aim is to SHARE.
I don't have an account there, not planning to make one or to use an app to get it.
Yet more reason to get my Draftmaster II up and running.
I wonder, is this command also what's used by vinyl cutters with the laser-sight for doing contour-cuts around vinyl printed in a different machine?