{"id":17204,"date":"2023-05-22T12:50:46","date_gmt":"2023-05-22T16:50:46","guid":{"rendered":"https:\/\/scruss.com\/blog\/?p=17204"},"modified":"2023-05-22T12:50:46","modified_gmt":"2023-05-22T16:50:46","slug":"using-the-ibm-wheelwriter-10-series-ii-typewriter-as-a-printer","status":"publish","type":"post","link":"https:\/\/scruss.com\/blog\/2023\/05\/22\/using-the-ibm-wheelwriter-10-series-ii-typewriter-as-a-printer\/","title":{"rendered":"Using the IBM Wheelwriter 10 Series II Typewriter as a printer"},"content":{"rendered":"\n<p>I can&#8217;t believe I&#8217;m having to write this article again. Back in 2004, I picked up an identical model of typewriter on Freecycle, also complete with the parallel printer option board. The one I had back then had an incredible selection of printwheels. And I gave it all away! Aaargh! Why?<\/p>\n\n\n\n<p>Last month, I ventured out to a Value Village in more affluent part of town. On the shelf for $21 was a familiar boxy shape, another Wheelwriter 10 Series II Typewriter model 6783. This one also has the <a href=\"https:\/\/archive.org\/details\/pww-printer\/DSC_0013.jpg\">printer option<\/a> board, but it only has one printwheel, Prestige Elite. It powered on enough at the test rack enough for me to see it mostly worked, so I bought it.<\/p>\n\n\n\n<p>Once I got it home, though, I could see it needed some work. The platen was covered in ink and correction fluid splatters. Worse, <a href=\"https:\/\/www.youtube.com\/shorts\/tp77Vvv4vRM\">the carriage would jam<\/a> in random places. It was full of dust and paperclips. But the printwheel did make crisp <a href=\"https:\/\/mltshp.com\/p\/1OWG6\">marks on paper<\/a>, so it was worth looking at a repair.<\/p>\n\n\n\n<p>Thanks to <a href=\"https:\/\/www.phoenixtypewriter.com\/\">Phoenix Typewriter&#8217;s<\/a> repair video \u201c<a href=\"https:\/\/www.youtube.com\/watch?v=I3tNqnEa3bU\">IBM Wheelwriter Typewriter Repair Fix Carriage Carrier Sticks Margins Reset Makes Noise<\/a>\u201d, I got it going again. I&#8217;m not sure how much life I&#8217;ve got left in the film ribbon, but for now it&#8217;s doing great.<\/p>\n\n\n\n<p>Note that there are lots of electronics projects \u2014 such as <a href=\"https:\/\/github.com\/tofergregg\/IBM-Wheelwriter-Hack\">tofergregg\/IBM-Wheelwriter-Hack: Turning an IBM Wheelwriter into a unique printer<\/a> \u2014 that use an Arduino or similar to drive the printer. This is not that (or those). Here I&#8217;m using the Printer Option board plus a USB to Parallel cable. There&#8217;s almost nothing out there about how these work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Connecting the printer<\/h2>\n\n\n\n<p>You&#8217;ll need a USB to Parallel adapter, something like this: <a href=\"https:\/\/www.startech.com\/en-us\/cards-adapters\/icusb128410\">StarTech 10 ft USB to Parallel Printer Adapter &#8211; M\/M<\/a>. You need the kind with the big Centronics connector, not the 25-pin D-type. My one (old) has a chunky plastic case that won&#8217;t fit into the port on the Wheelwriter unless you remove part of the cable housing. On my Linux box, the port device is <strong>\/dev\/usb\/lp0<\/strong>. You might want to add yourself to the <em>lp<\/em> group so you can send data to the printer without using sudo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo adduser <em>user<\/em> lp<\/code><\/pre>\n\n\n\n<p>The Wheelwriter needs to be switched into printer mode manually by pressing the <kbd>Code<\/kbd> + <kbd>Printer Enable<\/kbd> keys.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Printer Codes<\/h2>\n\n\n\n<p>As far as I can tell, the Wheelwriter understands a subset of <a href=\"https:\/\/web.archive.org\/web\/20131228120201\/http:\/\/www.undocprint.org\/formats\/page_description_languages\/proprinter\">IBM ProPrinter<\/a> codes. Like most simple printers, most control codes start with an <em>Esc<\/em> character (ASCII 27). Lines need to end with both a Carriage Return (ASCII 13) and newline (ASCII 10). Sending only CRs allows overprinting, while sending only newlines gives stair-step output.<\/p>\n\n\n\n<p>The codes I&#8217;ve found to work so far are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Emphasized printing<\/strong> \u2014 <em>Esc<\/em> E<\/li>\n\n\n\n<li><strong>Cancel emphasized printing<\/strong> \u2014 <em>Esc<\/em> F<br>(double strike printing [<em>Esc<\/em> G, <em>Esc<\/em> H] might also work, but I haven&#8217;t tried them)<\/li>\n\n\n\n<li><strong>Continuous underscore<\/strong> \u2014 <em>Esc<\/em> &#8211; 1<\/li>\n\n\n\n<li><strong>Cancel continuous underscore<\/strong> \u2014 <em>Esc<\/em> &#8211; 0<br>(technically, these are <em>Esc<\/em> &#8211; <em>n<\/em>, where <em>n<\/em> = ASCII 1 or 0, not character &#8220;1&#8221; or &#8220;0&#8221;.  But the characters seem to work, too)<\/li>\n\n\n\n<li><strong>7\/72&#8243; inch line spacing<\/strong> \u2014 <em>Esc<\/em> 1<\/li>\n\n\n\n<li><strong>Set text line spacing to <em>n<\/em> \/ 72&#8243; units<\/strong> \u2014 <em>Esc<\/em> A <em>n<\/em><br>(this one really matters: if you send &#8220;6&#8221; (ASCII 66) instead of 6, you&#8217;ll get 66\/72 = 11\/12&#8243; [= 28.3 mm] line spacing instead of the 1\/12&#8243; [= 2.1 mm] you expected)<\/li>\n\n\n\n<li><strong>Start text line spacing<\/strong> \u2014 <em>Esc<\/em> 2<\/li>\n<\/ul>\n\n\n\n<p>Text functions such as italics and extended text aren&#8217;t possible with a daisywheel printer. You can attempt dot-matrix graphics using full stops and micro spacing, but I don&#8217;t want to know you if you&#8217;d try.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sending codes from the command line<\/h2>\n\n\n\n<p><em>echo<\/em> is about the simplest way of doing it. Some systems provide an echo built-in that doesn&#8217;t support the <em>-e<\/em> (interpret special characters) and <em>-n<\/em> (don&#8217;t send newline) options. You may have to call <em>\/usr\/bin\/echo<\/em> instead.<\/p>\n\n\n\n<p>To print emphasized:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo -en 'well \\eEhello\\eF there!\\r\\n' > \/dev\/usb\/lp0<\/code><\/pre>\n\n\n\n<p>which prints<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>well <strong>hello<\/strong> there!<\/code><\/pre>\n\n\n\n<p>To print underlined:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo -en 'well \\e-1hello\\e-0 there!\\r\\n' > \/dev\/usb\/lp0<\/code><\/pre>\n\n\n\n<p>which types<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>well <span style=\"text-decoration: underline;\">hello<\/span> there!<\/code><\/pre>\n\n\n\n<p>To set the line spacing to a (very cramped) 1\/12&#8243; [= 2.1 mm] and print a horizontal line of dots and a vertical line of dots, both equally spaced (if you&#8217;re using Prestige Elite):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo -en '\\eA\\x05\\e2\\r\\n..........\\r\\n.\\r\\n.\\r\\n.\\r\\n.\\r\\n.\\r\\n.\\r\\n.\\r\\n.\\r\\n.\\r\\n\\r\\n' > \/dev\/usb\/lp0<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Character set issues<\/h2>\n\n\n\n<p>IBM daisywheels typically can&#8217;t represent the whole ASCII character set. Here&#8217;s what an attempt to print codes 33 to 126 in Prestige Elite looks like:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/wheelwriter_PrestigeElite-1024x510.webp\" alt=\"tabulation of printable ASCII characters on orange background. Some characters are clearly missing\" class=\"wp-image-17205\" srcset=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/wheelwriter_PrestigeElite-1024x510.webp 1024w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/wheelwriter_PrestigeElite-320x159.webp 320w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/wheelwriter_PrestigeElite-160x80.webp 160w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/wheelwriter_PrestigeElite-768x382.webp 768w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/wheelwriter_PrestigeElite-1536x764.webp 1536w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/wheelwriter_PrestigeElite-2048x1019.webp 2048w, https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/wheelwriter_PrestigeElite-1568x780.webp 1568w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The following characters are missing:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt; > \\ ^ ` { | } ~<\/code><\/pre>\n\n\n\n<p>So printing your HTML or Python is right out. FORTRAN, as ever, is safe.<\/p>\n\n\n\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Prestige_Elite\">Prestige Elite<\/a> is a 12 character per inch font (\u201c12 pitch\u201d, or even \u201cElite\u201d in typewriter parlance) that&#8217;s mostly been overshadowed by Courier (typically 10 characters per inch) in computer usage. This is a shame, as it&#8217;s a much prettier font.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related, yet misc.<\/h2>\n\n\n\n<p>There&#8217;s very little out there about printing with IBM daisywheels. This is a dump of the stuff I&#8217;ve found that may help other people:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/archive.org\/details\/wheelwriter10siitypewriter6783\/mode\/2up\">Wheelwriter 10 Series II Typewriter 6783 Operator&#8217;s Guide<\/a> (Internet Archive; nothing about the printer option)<\/li>\n\n\n\n<li>IBM didn&#8217;t make too many daisywheel printers. Two models were the <em>5216 Wheelprinter<\/em> and <em>5223 Wheelprinter E<\/em>, possibly intended for larger IBM machines. The 5216 Wheelprinter looks like it may use similar character codes. Here&#8217;s a (Printer Definition File?? An IBM thing, I think) for that printer that might help the interested: <a href=\"https:\/\/scruss.com\/wordpress\/wp-content\/uploads\/2023\/05\/ibm5216_pdf.zip\">ibm5216_pdf<\/a><\/li>\n\n\n\n<li>The <a href=\"https:\/\/deskthority.net\/viewtopic.php?f=62&amp;t=26076\">IBM 6901 \u201cPersonal Typing System\u201d<\/a> included a daisywheel printer (<a href=\"https:\/\/www.reddit.com\/r\/vintagecomputing\/comments\/m7qvw4\/ibm_6901_personal_typing_system\/\">Correcting Wheelwriter Printer<\/a> 6902) that looks almost identical to a Wheelwriter 10 Series II with the keyboard lopped off. But I can find nothing about it.<\/li>\n\n\n\n<li>Word Perfect 5 may have had a driver for this typewriter\/printer, but that doesn&#8217;t help me with the control codes.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>I can&#8217;t believe I&#8217;m having to write this article again. Back in 2004, I picked up an identical model of typewriter on Freecycle, also complete with the parallel printer option board. The one I had back then had an incredible selection of printwheels. And I gave it all away! Aaargh! Why? Last month, I ventured [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[3318,887,922,1806,3317],"class_list":["post-17204","post","type-post","status-publish","format-standard","hentry","category-computers-suck","tag-daisywheel","tag-ibm","tag-printer","tag-typewriter","tag-wheelwriter"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pQNZZ-4tu","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17204","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/comments?post=17204"}],"version-history":[{"count":3,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17204\/revisions"}],"predecessor-version":[{"id":17209,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/posts\/17204\/revisions\/17209"}],"wp:attachment":[{"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/media?parent=17204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/categories?post=17204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scruss.com\/blog\/wp-json\/wp\/v2\/tags?post=17204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}