CINXE.COM

Ken Shirriff's blog: analog

<!DOCTYPE html> <html class='v2' dir='ltr' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <meta content='width=1100' name='viewport'/> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href="https://www.righto.com/favicon.ico" rel='icon' type='image/x-icon' /> <link href="https://www.righto.com/search/label/analog" rel='canonical' /> <link rel="alternate" type="application/atom+xml" title="Ken Shirriff&#39;s blog - Atom" href="https://www.righto.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Ken Shirriff&#39;s blog - RSS" href="https://www.righto.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Ken Shirriff&#39;s blog - Atom" href="https://draft.blogger.com/feeds/6264947694886887540/posts/default" /> <link rel="me" href="https://draft.blogger.com/profile/08097301407311055124" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='http://www.righto.com/search/label/analog' property='og:url'/> <meta content='Ken Shirriff&#39;s blog' property='og:title'/> <meta content='Computer history, restoring vintage computers, IC reverse engineering, and whatever' property='og:description'/> <title>Ken Shirriff's blog: analog</title> <style type='text/css'>@font-face{font-family:'Play';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/play/v19/6aez4K2oVqwIvtU2Gw.eot);}</style> <style id='page-skin-1' type='text/css'><!-- /* ----------------------------------------------- Blogger Template Style Name: Simple Designer: Blogger URL: www.blogger.com ----------------------------------------------- */ /* Variable definitions ==================== <Variable name="keycolor" description="Main Color" type="color" default="#66bbdd"/> <Group description="Page Text" selector="body"> <Variable name="body.font" description="Font" type="font" default="normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="body.text.color" description="Text Color" type="color" default="#222222"/> </Group> <Group description="Backgrounds" selector=".body-fauxcolumns-outer"> <Variable name="body.background.color" description="Outer Background" type="color" default="#66bbdd"/> <Variable name="content.background.color" description="Main Background" type="color" default="#ffffff"/> <Variable name="header.background.color" description="Header Background" type="color" default="transparent"/> </Group> <Group description="Links" selector=".main-outer"> <Variable name="link.color" description="Link Color" type="color" default="#2288bb"/> <Variable name="link.visited.color" description="Visited Color" type="color" default="#888888"/> <Variable name="link.hover.color" description="Hover Color" type="color" default="#33aaff"/> </Group> <Group description="Blog Title" selector=".header h1"> <Variable name="header.font" description="Font" type="font" default="normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="header.text.color" description="Title Color" type="color" default="#3399bb" /> </Group> <Group description="Blog Description" selector=".header .description"> <Variable name="description.text.color" description="Description Color" type="color" default="#777777" /> </Group> <Group description="Tabs Text" selector=".tabs-inner .widget li a"> <Variable name="tabs.font" description="Font" type="font" default="normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="tabs.text.color" description="Text Color" type="color" default="#999999"/> <Variable name="tabs.selected.text.color" description="Selected Color" type="color" default="#000000"/> </Group> <Group description="Tabs Background" selector=".tabs-outer .PageList"> <Variable name="tabs.background.color" description="Background Color" type="color" default="#f5f5f5"/> <Variable name="tabs.selected.background.color" description="Selected Color" type="color" default="#eeeeee"/> </Group> <Group description="Post Title" selector="h3.post-title, .comments h4"> <Variable name="post.title.font" description="Font" type="font" default="normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> </Group> <Group description="Date Header" selector=".date-header"> <Variable name="date.header.color" description="Text Color" type="color" default="#222222"/> <Variable name="date.header.background.color" description="Background Color" type="color" default="transparent"/> <Variable name="date.header.font" description="Text Font" type="font" default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="date.header.padding" description="Date Header Padding" type="string" default="inherit"/> <Variable name="date.header.letterspacing" description="Date Header Letter Spacing" type="string" default="inherit"/> <Variable name="date.header.margin" description="Date Header Margin" type="string" default="inherit"/> </Group> <Group description="Post Footer" selector=".post-footer"> <Variable name="post.footer.text.color" description="Text Color" type="color" default="#666666"/> <Variable name="post.footer.background.color" description="Background Color" type="color" default="#f9f9f9"/> <Variable name="post.footer.border.color" description="Shadow Color" type="color" default="#eeeeee"/> </Group> <Group description="Gadgets" selector="h2"> <Variable name="widget.title.font" description="Title Font" type="font" default="normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif"/> <Variable name="widget.title.text.color" description="Title Color" type="color" default="#000000"/> <Variable name="widget.alternate.text.color" description="Alternate Color" type="color" default="#999999"/> </Group> <Group description="Images" selector=".main-inner"> <Variable name="image.background.color" description="Background Color" type="color" default="#ffffff"/> <Variable name="image.border.color" description="Border Color" type="color" default="#eeeeee"/> <Variable name="image.text.color" description="Caption Text Color" type="color" default="#222222"/> </Group> <Group description="Accents" selector=".content-inner"> <Variable name="body.rule.color" description="Separator Line Color" type="color" default="#eeeeee"/> <Variable name="tabs.border.color" description="Tabs Border Color" type="color" default="#eeeeee"/> </Group> <Variable name="body.background" description="Body Background" type="background" color="#f6fbf6" default="$(color) none repeat scroll top left"/> <Variable name="body.background.override" description="Body Background Override" type="string" default=""/> <Variable name="body.background.gradient.cap" description="Body Gradient Cap" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/> <Variable name="body.background.gradient.tile" description="Body Gradient Tile" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/body_gradient_tile_light.png)"/> <Variable name="content.background.color.selector" description="Content Background Color Selector" type="string" default=".content-inner"/> <Variable name="content.padding" description="Content Padding" type="length" default="10px" min="0" max="100px"/> <Variable name="content.padding.horizontal" description="Content Horizontal Padding" type="length" default="10px" min="0" max="100px"/> <Variable name="content.shadow.spread" description="Content Shadow Spread" type="length" default="40px" min="0" max="100px"/> <Variable name="content.shadow.spread.webkit" description="Content Shadow Spread (WebKit)" type="length" default="5px" min="0" max="100px"/> <Variable name="content.shadow.spread.ie" description="Content Shadow Spread (IE)" type="length" default="10px" min="0" max="100px"/> <Variable name="main.border.width" description="Main Border Width" type="length" default="0" min="0" max="10px"/> <Variable name="header.background.gradient" description="Header Gradient" type="url" default="none"/> <Variable name="header.shadow.offset.left" description="Header Shadow Offset Left" type="length" default="-1px" min="-50px" max="50px"/> <Variable name="header.shadow.offset.top" description="Header Shadow Offset Top" type="length" default="-1px" min="-50px" max="50px"/> <Variable name="header.shadow.spread" description="Header Shadow Spread" type="length" default="1px" min="0" max="100px"/> <Variable name="header.padding" description="Header Padding" type="length" default="30px" min="0" max="100px"/> <Variable name="header.border.size" description="Header Border Size" type="length" default="1px" min="0" max="10px"/> <Variable name="header.bottom.border.size" description="Header Bottom Border Size" type="length" default="0" min="0" max="10px"/> <Variable name="header.border.horizontalsize" description="Header Horizontal Border Size" type="length" default="0" min="0" max="10px"/> <Variable name="description.text.size" description="Description Text Size" type="string" default="140%"/> <Variable name="tabs.margin.top" description="Tabs Margin Top" type="length" default="0" min="0" max="100px"/> <Variable name="tabs.margin.side" description="Tabs Side Margin" type="length" default="30px" min="0" max="100px"/> <Variable name="tabs.background.gradient" description="Tabs Background Gradient" type="url" default="url(https://resources.blogblog.com/blogblog/data/1kt/simple/gradients_light.png)"/> <Variable name="tabs.border.width" description="Tabs Border Width" type="length" default="1px" min="0" max="10px"/> <Variable name="tabs.bevel.border.width" description="Tabs Bevel Border Width" type="length" default="1px" min="0" max="10px"/> <Variable name="post.margin.bottom" description="Post Bottom Margin" type="length" default="25px" min="0" max="100px"/> <Variable name="image.border.small.size" description="Image Border Small Size" type="length" default="2px" min="0" max="10px"/> <Variable name="image.border.large.size" description="Image Border Large Size" type="length" default="5px" min="0" max="10px"/> <Variable name="page.width.selector" description="Page Width Selector" type="string" default=".region-inner"/> <Variable name="page.width" description="Page Width" type="string" default="auto"/> <Variable name="main.section.margin" description="Main Section Margin" type="length" default="15px" min="0" max="100px"/> <Variable name="main.padding" description="Main Padding" type="length" default="15px" min="0" max="100px"/> <Variable name="main.padding.top" description="Main Padding Top" type="length" default="30px" min="0" max="100px"/> <Variable name="main.padding.bottom" description="Main Padding Bottom" type="length" default="30px" min="0" max="100px"/> <Variable name="paging.background" color="#ffffff" description="Background of blog paging area" type="background" default="transparent none no-repeat scroll top center"/> <Variable name="footer.bevel" description="Bevel border length of footer" type="length" default="0" min="0" max="10px"/> <Variable name="mobile.background.overlay" description="Mobile Background Overlay" type="string" default="transparent none repeat scroll top left"/> <Variable name="mobile.background.size" description="Mobile Background Size" type="string" default="auto"/> <Variable name="mobile.button.color" description="Mobile Button Color" type="color" default="#ffffff" /> <Variable name="startSide" description="Side where text starts in blog language" type="automatic" default="left"/> <Variable name="endSide" description="Side where text ends in blog language" type="automatic" default="right"/> */ /* Content ----------------------------------------------- */ body { font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #222222; background: #f6fbf6 none repeat scroll top left; padding: 0 40px 40px 40px; } html body .region-inner { min-width: 0; max-width: 100%; width: auto; } h2 { font-size: 22px; } a:link { text-decoration:none; color: #121fb3; } a:visited { text-decoration:none; color: #121fb3; } a:hover { text-decoration:underline; color: #1a00ff; } .body-fauxcolumn-outer .fauxcolumn-inner { background: transparent url(//www.blogblog.com/1kt/simple/body_gradient_tile_light.png) repeat scroll top left; _background-image: none; } .body-fauxcolumn-outer .cap-top { position: absolute; z-index: 1; height: 400px; width: 100%; } .body-fauxcolumn-outer .cap-top .cap-left { width: 100%; background: transparent url(//www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll top left; _background-image: none; } .content-outer { -moz-box-shadow: 0 0 40px rgba(0, 0, 0, .15); -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .15); -goog-ms-box-shadow: 0 0 10px #333333; box-shadow: 0 0 40px rgba(0, 0, 0, .15); margin-bottom: 1px; } .content-inner { padding: 10px 10px; } .content-inner { background-color: #ffffff; } /* Header ----------------------------------------------- */ .header-outer { background: #f6fbf7 url(//www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll 0 -400px; _background-image: none; } .Header h1 { font: normal normal 42px Play; color: #666666; text-shadow: 1px 2px 3px rgba(0, 0, 0, .2); } .Header h1 a { color: #666666; } .Header .description { font-size: 140%; color: #666666; } .header-inner .Header .titlewrapper { padding: 22px 30px; } .header-inner .Header .descriptionwrapper { padding: 0 30px; } /* Tabs ----------------------------------------------- */ .tabs-inner .section:first-child { border-top: 0 solid #eeeeee; } .tabs-inner .section:first-child ul { margin-top: -0; border-top: 0 solid #eeeeee; border-left: 0 solid #eeeeee; border-right: 0 solid #eeeeee; } .tabs-inner .widget ul { background: #f5f5f5 url(//www.blogblog.com/1kt/simple/gradients_light.png) repeat-x scroll 0 -800px; _background-image: none; border-bottom: 1px solid #eeeeee; margin-top: 0; margin-left: -30px; margin-right: -30px; } .tabs-inner .widget li a { display: inline-block; padding: .6em 1em; font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #999999; border-left: 1px solid #ffffff; border-right: 1px solid #eeeeee; } .tabs-inner .widget li:first-child a { border-left: none; } .tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover { color: #000000; background-color: #eeeeee; text-decoration: none; } /* Columns ----------------------------------------------- */ .main-outer { border-top: 0 solid #eeeeee; } .fauxcolumn-left-outer .fauxcolumn-inner { border-right: 1px solid #eeeeee; } .fauxcolumn-right-outer .fauxcolumn-inner { border-left: 1px solid #eeeeee; } /* Headings ----------------------------------------------- */ div.widget > h2, div.widget h2.title { margin: 0 0 1em 0; font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif; color: #000000; } /* Widgets ----------------------------------------------- */ .widget .zippy { color: #999999; text-shadow: 2px 2px 1px rgba(0, 0, 0, .1); } .widget .popular-posts ul { list-style: none; } /* Posts ----------------------------------------------- */ h2.date-header { font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif; } .date-header span { background-color: transparent; color: transparent; padding: inherit; letter-spacing: inherit; margin: inherit; } .main-inner { padding-top: 30px; padding-bottom: 30px; } .main-inner .column-center-inner { padding: 0 15px; } .main-inner .column-center-inner .section { margin: 0 15px; } .post { margin: 0 0 25px 0; } h3.post-title, .comments h4 { font: normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif; margin: .75em 0 0; } .post-body { font-size: 110%; line-height: 1.4; position: relative; } .post-body img, .post-body .tr-caption-container, .Profile img, .Image img, .BlogList .item-thumbnail img { padding: 2px; background: #ffffff; border: 1px solid #ffffff; -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); } .post-body img, .post-body .tr-caption-container { padding: 5px; } .post-body .tr-caption-container { color: #222222; } .post-body .tr-caption-container img { padding: 0; background: transparent; border: none; -moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1); -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1); box-shadow: 0 0 0 rgba(0, 0, 0, .1); } .post-header { margin: 0 0 1.5em; line-height: 1.6; font-size: 90%; } .post-footer { margin: 20px -2px 0; padding: 5px 10px; color: #666666; background-color: #f9f9f9; border-bottom: 1px solid #eeeeee; line-height: 1.6; font-size: 90%; } #comments .comment-author { padding-top: 1.5em; border-top: 1px solid #eeeeee; background-position: 0 1.5em; } #comments .comment-author:first-child { padding-top: 0; border-top: none; } .avatar-image-container { margin: .2em 0 0; } #comments .avatar-image-container img { border: 1px solid #ffffff; } /* Comments ----------------------------------------------- */ .comments .comments-content .icon.blog-author { background-repeat: no-repeat; background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==); } .comments .comments-content .loadmore a { border-top: 1px solid #999999; border-bottom: 1px solid #999999; } .comments .comment-thread.inline-thread { background-color: #f9f9f9; } .comments .continue { border-top: 2px solid #999999; } /* Accents ---------------------------------------------- */ .section-columns td.columns-cell { border-left: 1px solid #eeeeee; } .blog-pager { background: transparent none no-repeat scroll top center; } .blog-pager-older-link, .home-link, .blog-pager-newer-link { background-color: #ffffff; padding: 5px; } .footer-outer { border-top: 0 dashed #bbbbbb; } /* Mobile ----------------------------------------------- */ body.mobile { background-size: auto; } .mobile .body-fauxcolumn-outer { background: transparent none repeat scroll top left; } .mobile .body-fauxcolumn-outer .cap-top { background-size: 100% auto; } .mobile .content-outer { -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15); box-shadow: 0 0 3px rgba(0, 0, 0, .15); } .mobile .tabs-inner .widget ul { margin-left: 0; margin-right: 0; } .mobile .post { margin: 0; } .mobile .main-inner .column-center-inner .section { margin: 0; } .mobile .date-header span { padding: 0.1em 10px; margin: 0 -10px; } .mobile h3.post-title { margin: 0; } .mobile .blog-pager { background: transparent none no-repeat scroll top center; } .mobile .footer-outer { border-top: none; } .mobile .main-inner, .mobile .footer-inner { background-color: #ffffff; } .mobile-index-contents { color: #222222; } .mobile-link-button { background-color: #121fb3; } .mobile-link-button a:link, .mobile-link-button a:visited { color: #ffffff; } .mobile .tabs-inner .section:first-child { border-top: none; } .mobile .tabs-inner .PageList .widget-content { background-color: #eeeeee; color: #000000; border-top: 1px solid #eeeeee; border-bottom: 1px solid #eeeeee; } .mobile .tabs-inner .PageList .widget-content .pagelist-arrow { border-left: 1px solid #eeeeee; } .content-outer { max-width: 1400px !important; } /* fix header */ #header-inner { width: 100% !important; background-position: right !important; } .titlewrapper { padding: 11px 30px 0 !important; } .descriptionwrapper { margin-bottom: 0 !important; } .description { font-size: 120% !important; } /* suppress things */ .date-header { display: none; } #Attribution1 { display: none; } .post-author, .post-timestamp, .reaction-buttons { display: none; } /* h2: sidebar titles */ /* h3: post title */ .post-title , .entry-title { font-size: 180% !important; margin-top: 0 !important; } .entry-title a:link, .entry-title a:visited, .entry-title a:active{ color: #a03; } #main h2 { color:#333; margin-bottom:.4em; margin-top: 13px; font-size:140%; } #main h3 { color:#333; margin-bottom:.4em; margin-top: 13px; font-size:110%; } #main h4 { color:#333; margin-bottom:.5em; } #sidebar-right-1 a:link, #sidebar-right-1 a:visited, #sidebar-right-1 a:active { color: #666; } #sidebar-right-1 h2 { font-size: 100%; color: #666; } /* disable image box */ element.style { } table.chargers img { height: 18px; } table.chargers img { height: 18px; } .post-body img, .post-body .tr-caption-container { padding: 5px; } .post-body img, .post-body .tr-caption-container, .Profile img, .Image img, .BlogList .item-thumbnail img { padding: 0; background: #ffffff; border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; } /* Special items */ a:link img.hilite, a:visited img.hilite { color: #fff; } a:hover img.hilite, a:hover img.hilite2 { color: #f66; } a:active img.hilite { color: #33c; } .hilite {cursor:zoom-in} pre {color:#000000;border:1px solid #000000;} pre.repl { background-color:#e0e0f0; font-size:120%;} pre.arc { background-color:#e0e0f0; font-size:120%;} pre.code { background-color:#e0f0e0; font-size:120%; white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;text-wrap:unrestricted;} code { font-size: 100%;} blockquote { font-size: 110%; background: transparent url("//static.righto.com/images/blockquote.gif") no-repeat 0 0; margin: 20px 0px; padding: 0px 40px;} div.cite {font-size: .8em;.; font-style: italic; color: #888; margin-bottom: 9px;} a.ref { color: gray;vertical-align: super; text-decoration: none; font-size:60%;margin-left: 2px;} a img.hilite { border: 1px solid; color: #888; z-index: 2; } a img.hilite2, a:active img.hilite2 { border: 1px solid; color: #f6fbf6; } table.chargers { border-width: 1px; border-spacing: 2px; border-style: outset; border-color: gray; border-collapse: collapse; background-color: white; } table.chargers th.maker { padding-right: 5px; text-align: right; } table.chargers th { border-width: 1px; padding: 3px; border-style: inset; border-color: gray; background-color: white; text-align: center; } table.chargers img { height: 18px; } table.chargers td { text-align: center; border-width: 1px; padding: 2px 8px; border-style: inset; border-color: gray; background-color: white; } --></style> <style id='template-skin-1' type='text/css'><!-- body { min-width: 750px; } .content-outer, .content-fauxcolumn-outer, .region-inner { min-width: 750px; max-width: 750px; _width: 750px; } .main-inner .columns { padding-left: 0px; padding-right: 240px; } .main-inner .fauxcolumn-center-outer { left: 0px; right: 240px; /* IE6 does not respect left and right together */ _width: expression(this.parentNode.offsetWidth - parseInt("0px") - parseInt("240px") + 'px'); } .main-inner .fauxcolumn-left-outer { width: 0px; } .main-inner .fauxcolumn-right-outer { width: 240px; } .main-inner .column-left-outer { width: 0px; right: 100%; margin-left: -0px; } .main-inner .column-right-outer { width: 240px; margin-right: -240px; } #layout { min-width: 0; } #layout .content-outer { min-width: 0; width: 800px; } #layout .region-inner { min-width: 0; width: auto; } --></style> <meta content='width=device-width, initial-scale=1.0, maximum-scale=12.0, minimum-scale=.25, user-scalable=yes' name='viewport'/> <meta content='mw8ww70r3jW0GzXY6j1d' name='follow_it-verification-code'/> <link href='https://draft.blogger.com/dyn-css/authorization.css?targetBlogID=6264947694886887540&amp;zx=3c6b5127-1bf4-49a7-9645-31cfcd883d0b' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://draft.blogger.com/dyn-css/authorization.css?targetBlogID=6264947694886887540&amp;zx=3c6b5127-1bf4-49a7-9645-31cfcd883d0b' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> </head> <body class='loading'> <div class='navbar no-items section' id='navbar'> </div> <div itemscope='itemscope' itemtype='http://schema.org/Blog' style='display: none;'> <meta content='Ken Shirriff&#39;s blog' itemprop='name'/> </div> <div class='body-fauxcolumns'> <div class='fauxcolumn-outer body-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content'> <div class='content-fauxcolumns'> <div class='fauxcolumn-outer content-fauxcolumn-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <div class='content-outer'> <div class='content-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left content-fauxborder-left'> <div class='fauxborder-right content-fauxborder-right'></div> <div class='content-inner'> <header> <div class='header-outer'> <div class='header-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left header-fauxborder-left'> <div class='fauxborder-right header-fauxborder-right'></div> <div class='region-inner header-inner'> <div class='header section' id='header'><div class='widget Header' data-version='1' id='Header1'> <div id='header-inner' style='background-image: url("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-4KXwYe0lQ4HFzhAye9vvRlij2ZYvMbfPCnqEE__1o85Fjo3XgefxJQhWRdwR3EzNWNMWT3yMaj2QZaT9GazqQx3C6oWa3-hBNlRHG7f-Oib-lv1Wq_C2_A0rt8xZgs87iNqzRVKK7H0A/s800/background.jpg"); background-position: left; width: 550px; min-height: 105px; _height: 105px; background-repeat: no-repeat; '> <div class='titlewrapper' style='background: transparent'> <h1 class='title' style='background: transparent; border-width: 0px'> <a href="https://www.righto.com/"> Ken Shirriff's blog </a> </h1> </div> <div class='descriptionwrapper'> <p class='description'><span>Computer history, restoring vintage computers, IC reverse engineering, and whatever</span></p> </div> </div> </div></div> </div> </div> <div class='header-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </header> <div class='tabs-outer'> <div class='tabs-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left tabs-fauxborder-left'> <div class='fauxborder-right tabs-fauxborder-right'></div> <div class='region-inner tabs-inner'> <div class='tabs no-items section' id='crosscol'></div> <div class='tabs no-items section' id='crosscol-overflow'></div> </div> </div> <div class='tabs-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='main-outer'> <div class='main-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left main-fauxborder-left'> <div class='fauxborder-right main-fauxborder-right'></div> <div class='region-inner main-inner'> <div class='columns fauxcolumns'> <div class='fauxcolumn-outer fauxcolumn-center-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-left-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <div class='fauxcolumn-outer fauxcolumn-right-outer'> <div class='cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left'> <div class='fauxborder-right'></div> <div class='fauxcolumn-inner'> </div> </div> <div class='cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <!-- corrects IE6 width calculation --> <div class='columns-inner'> <div class='column-center-outer'> <div class='column-center-inner'> <div class='main section' id='main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='blog-posts hfeed'> <div class='status-msg-wrap'> <div class='status-msg-body'> Showing posts with label <b>analog</b>. <a href="https://www.righto.com/">Show all posts</a> </div> <div class='status-msg-border'> <div class='status-msg-bg'> <div class='status-msg-hidden'>Showing posts with label <b>analog</b>. <a href="https://www.righto.com/">Show all posts</a></div> </div> </div> </div> <div style='clear: both;'></div> <div class="date-outer"> <div class="date-posts"> <div class='post-outer'> <div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://static.righto.com/images/bendix-mach/cadc-side-w600.jpg' itemprop='image_url'/> <meta content='6264947694886887540' itemprop='blogId'/> <meta content='4399278445047699785' itemprop='postId'/> <a name='4399278445047699785'></a> <h3 class='post-title entry-title' itemprop='name'> <a href="https://www.righto.com/2024/02/reverse-engineering-analog-bendix-air.html">Reverse-engineering an analog Bendix air data computer: part 4, the Mach section</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-4399278445047699785' itemprop='description articleBody'> <script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script> <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script> <script> MathJax = { tex: { inlineMath: [['$', '$'], ['\\(', '\\)']] }, svg: { fontCache: 'global' }, chtml: { displayAlign: 'left' } }; </script> <script type="text/x-mathjax-config"> MathJax.Hub.Config({ "HTML-CSS": { scale: 175} }); </script> <style type="text/css"> .MathJax {font-size: 1em !important} </style> <p>In the 1950s, many fighter planes used the Bendix Central Air Data Computer (CADC) to compute airspeed, Mach number, and other "air data". The CADC is an analog computer, using tiny gears and specially-machined cams for its mathematics. In this article, part 4 of my series,<span id="fnref:series"><a class="ref" href="#fn:series">1</a></span> I reverse engineer the Mach section of the CADC and explain its calculations. (In the photo below, the Mach section is the middle section of the CADC.)</p> <p><a href="https://static.righto.com/images/bendix-mach/cadc-side.jpg"><img alt="The Bendix MG-1A Central Air Data Computer with the case removed, showing the compact gear mechanisms inside. Click this image (or any other) for a larger version." class="hilite" height="330" src="https://static.righto.com/images/bendix-mach/cadc-side-w600.jpg" title="The Bendix MG-1A Central Air Data Computer with the case removed, showing the compact gear mechanisms inside. Click this image (or any other) for a larger version." width="600" /></a><div class="cite">The Bendix MG-1A Central Air Data Computer with the case removed, showing the compact gear mechanisms inside. Click this image (or any other) for a larger version.</div></p> <p>Aircraft have determined airspeed from air pressure for over a century. A port in the side of the plane provides the static air pressure,<span id="fnref:static"><a class="ref" href="#fn:static">2</a></span> the air pressure outside the aircraft. A pitot tube points forward and receives the "total" air pressure, a higher pressure due to the air forced into the tube by the speed of the airplane. The airspeed can be determined from the ratio of these two pressures, while the altitude can be determined from the static pressure.</p> <p>But as you approach the speed of sound, the fluid dynamics of air change and the calculations become very complicated. With the development of supersonic fighter planes in the 1950s, simple mechanical instruments were no longer sufficient. Instead, an analog computer calculated the "air data" (airspeed, air density, Mach number, and so forth) from the pressure measurements. This computer then transmitted the air data electrically to the systems that needed it: instruments, weapons targeting, engine control, and so forth. Since the computer was centralized, the system was called a Central Air Data Computer or CADC, manufactured by Bendix and other companies.</p> <p><a href="https://static.righto.com/images/bendix-mach/gears.jpg"><img alt="A closeup of the numerous gears inside the CADC. Three differential gear mechanisms are visible." class="hilite" height="367" src="https://static.righto.com/images/bendix-mach/gears-w600.jpg" title="A closeup of the numerous gears inside the CADC. Three differential gear mechanisms are visible." width="600" /></a><div class="cite">A closeup of the numerous gears inside the CADC. Three differential gear mechanisms are visible.</div></p> <p>Each value in the Bendix CADC is indicated by the rotational position of a shaft. Compact electric motors rotate the shafts, controlled by the pressure inputs. Gears, cams, and differentials perform computations, with the results indicated by more rotations. Devices called synchros converted the rotations to electrical outputs that are connected to other aircraft systems. The CADC is said to contain 46 synchros, 511 gears, 820 ball bearings, and a total of 2,781 major parts (but I haven't counted). These components are crammed into a compact cylinder: just 15 inches long and weighing 28.7 pounds.</p> <p>The equations computed by the CADC are impressively complicated. For instance, one equation is:</p> <p>\[~~~\frac{P_t}{P_s} = \frac{166.9215M^7}{( 7M^2-1)^{2.5}}\]</p> <p>It seems incredible that these functions could be computed mechanically, but three techniques make this possible. The fundamental mechanism is the differential gear, which adds or subtracts values. Second, logarithms are used extensively, so multiplications and divisions are implemented by additions and subtractions performed by a differential, while square roots are calculated by gearing down by a factor of 2. Finally, specially-shaped cams implement functions: logarithm, exponential, and application-specific functions. By combining these mechanisms, complicated functions can be computed mechanically, as I will explain below.</p> <!-- Aerodynamics for Naval Aviators (1965) https://www.faa.gov/sites/faa.gov/files/regulations_policies/handbooks_manuals/aviation/00-80T-80.pdf --> <h3>The differential</h3> <p>The differential gear assembly is the mathematical component of the CADC, as it performs addition or subtraction.<span id="fnref:gearing"><a class="ref" href="#fn:gearing">3</a></span> The differential takes two input rotations and produces an output rotation that is the sum or difference of these rotations.<span id="fnref:differential"><a class="ref" href="#fn:differential">4</a></span> Since most values in the CADC are expressed logarithmically, the differential computes multiplication and division when it adds or subtracts its inputs.</p> <p><a href="https://static.righto.com/images/bendix-mach/differential-closeup.png"><img alt="A closeup of a differential mechanism." class="hilite" height="332" src="https://static.righto.com/images/bendix-mach/differential-closeup-w350.png" title="A closeup of a differential mechanism." width="350" /></a><div class="cite">A closeup of a differential mechanism.</div></p> <p>While the differential functions like the differential in a car, it is constructed differently, with a <a href="https://en.wikipedia.org/wiki/Differential_(mechanical_device)#Spur-gear_design">spur-gear</a> design. This compact arrangement of gears is about 1 cm thick and 3 cm in diameter. The differential is mounted on a shaft along with three co-axial gears: two gears provide the inputs to the differential and the third provides the output. In the photo, the gears above and below the differential are the input gears. The entire differential body rotates with the sum, connected to the output gear at the top through a concentric shaft. (In practice, any of the three gears can be used as the output.) The two thick gears inside the differential body are part of the mechanism.</p> <h3>The cams</h3> <p>The CADC uses cams to implement various functions. Most importantly, cams compute logarithms and exponentials. Cams also implement complicated functions of one variable such as ${M}/{\sqrt{1 + .2 M^2}}$. The function is encoded into the cam's shape during manufacturing, so a hard-to-compute nonlinear function isn't a problem for the CADC. The photo below shows a cam with the follower arm in front. As the cam rotates, the follower moves in and out according to the cam's radius.</p> <p><a href="https://static.righto.com/images/bendix-mach/cam.jpg"><img alt="A cam inside the CADC implements a function." class="hilite" height="444" src="https://static.righto.com/images/bendix-mach/cam-w500.jpg" title="A cam inside the CADC implements a function." width="500" /></a><div class="cite">A cam inside the CADC implements a function.</div></p> <p>However, the shape of the cam doesn't provide the function directly, as you might expect. The main problem with the straightforward approach is the discontinuity when the cam wraps around. For example, if the cam implemented an exponential directly, its radius would spiral exponentially and there would be a jump back to the starting value when it wraps around. Instead, the CADC uses a clever <a href="https://patents.google.com/patent/US2969910A&quot;">patented</a> method: the cam encodes the <em>difference</em> between the desired function and a straight line. For example, an exponential curve is shown below (blue), with a line (red) between the endpoints. The height of the gray segment, the difference, specifies the radius of the cam (added to the cam's fixed minimum radius). The point is that this difference goes to 0 at the extremes, so the cam will no longer have a discontinuity when it wraps around. Moreover, this technique significantly reduces the size of the value (i.e. the height of the gray region is smaller than the height of the blue line), increasing the cam's accuracy.<span id="fnref:cam-shape"><a class="ref" href="#fn:cam-shape">5</a></span></p> <p><a href="https://static.righto.com/images/bendix-mach/exponential.png"><img alt="An exponential curve (blue), linear curve (red), and the difference (gray)." class="hilite" height="216" src="https://static.righto.com/images/bendix-mach/exponential-w300.png" title="An exponential curve (blue), linear curve (red), and the difference (gray)." width="300" /></a><div class="cite">An exponential curve (blue), linear curve (red), and the difference (gray).</div></p> <p>To make this work, the cam position must be added to the linear value to yield the result. This is implemented by combining each cam with a differential gear; watch for the paired cams and differentials below. As the diagram below shows, the input (23) drives the cam (30) and the differential (25, 37-41). The follower (32) tracks the cam and provides a second input (35) to the differential. The sum from the differential produces the desired function (26).</p> <p><a href="https://static.righto.com/images/bendix-mach/differential-patent.png"><img alt="This diagram, from Patent 2969910, shows how the cam and follower are connected to a differential." class="hilite" height="312" src="https://static.righto.com/images/bendix-mach/differential-patent-w350.png" title="This diagram, from Patent 2969910, shows how the cam and follower are connected to a differential." width="350" /></a><div class="cite">This diagram, from <a href="https://patents.google.com/patent/US2969910A">Patent 2969910</a>, shows how the cam and follower are connected to a differential.</div></p> <h3>The synchro outputs</h3> <p>A synchro is an interesting device that can transmit a rotational position electrically over three wires. In appearance, a synchro is similar to an electric motor, but its internal construction is different, as shown below. Before digital systems, synchros were very popular for transmitting signals electrically through an aircraft. For instance, a synchro could transmit an altitude reading to a cockpit display or a targeting system. Two synchros at different locations have their stator windings connected together, while the rotor windings are driven with AC. Rotating the shaft of one synchro causes the other to rotate to the same position.<span id="fnref:synchro"><a class="ref" href="#fn:synchro">6</a></span></p> <p><a href="https://static.righto.com/images/bendix-mach/synchro-cutaway.png"><img alt="Cross-section diagram of a synchro showing the rotor and stators." class="hilite" height="306" src="https://static.righto.com/images/bendix-mach/synchro-cutaway-w350.png" title="Cross-section diagram of a synchro showing the rotor and stators." width="350" /></a><div class="cite">Cross-section diagram of a synchro showing the rotor and stators.</div></p> <p>For the CADC, most of the outputs are synchro signals, using compact synchros that are about 3 cm in length. For improved resolution, many of the CADC outputs use two synchros: a coarse synchro and a fine synchro. The two synchros are typically geared in an 11:1 ratio, so the fine synchro rotates 11 times as fast as the coarse synchro. Over the output range, the coarse synchro may turn 180&deg;, providing the approximate output unambiguously, while the fine synchro spins multiple times to provide more accuracy.</p> <h2>Examining the Mach section of the CADC</h2> <p><a href="https://static.righto.com/images/bendix-mach/side.jpg"><img alt="Another view of the CADC." class="hilite" height="343" src="https://static.righto.com/images/bendix-mach/side-w600.jpg" title="Another view of the CADC." width="600" /></a><div class="cite">Another view of the CADC.</div></p> <p>The Bendix CADC is constructed from modular sections. In this blog post, I'm focusing on the middle section, called the "Mach section" and indicated by the arrow above. This section computes log static pressure, impact pressure, pressure ratio, and Mach number and provides these outputs electrically as synchro signals. It also provides the log pressure ratio and log static pressure to the rest of the CADC as shaft rotations. The left section of the CADC computes values related to airspeed, air density, and temperature.<span id="fnref:left"><a class="ref" href="#fn:left">7</a></span> The right section has the pressure sensors (the black domes), along with the servo mechanisms that control them.</p> <p>I had feared that any attempt at disassembly would result in tiny gears flying in every direction, but the CADC was designed to be taken apart for maintenance. Thus, I could remove the left section of the CADC for analysis. Unfortunately, we lost the gear alignment between the sections and don't have the calibration instructions, so the CADC no longer produces accurate results.</p> <p>The diagram below shows the internal components of the Mach section after disassembly. The synchros are in pairs to generate coarse and fine outputs; the coarse synchros can be distinguished because they have spiral anti-backlash springs installed. These springs prevent wobble in the synchro and gear train as the gears change direction. The gears and differentials are not visible from this angle as they are underneath the metal plate. The Pressure Error Correction (PEC) subsystem has a motor to drive the shaft and a control transformer for feedback. The Mach section has two D-sub connectors. The one on the right links the Mach section and pressure section to the front section of the CADC. The Position Error Correction (PEC) servo amplifier board plugs into the left connector. The static pressure and total pressure input lines have fittings so the lines can be disconnected from the lines from the front of the CADC.<span id="fnref:connectors"><a class="ref" href="#fn:connectors">8</a></span></p> <p><a href="https://static.righto.com/images/bendix-mach/mach-labeled.jpg"><img alt="The Mach section with components labeled." class="hilite" height="490" src="https://static.righto.com/images/bendix-mach/mach-labeled-w600.jpg" title="The Mach section with components labeled." width="600" /></a><div class="cite">The Mach section with components labeled.</div></p> <p>The photo below shows the left section of the CADC. This section meshes with the Mach section shown above. The two sections have parts at various heights, so they join in a complicated way. Two gears receive the pressure signals \( log ~ P_t / P_s \) and \( log ~ P_s \) from the Mach section. The third gear sends the log total temperature to the rest of the CADC. The electrical connector (a standard 37-pin D-sub) supplies 120 V 400 Hz power to the Mach section and pressure transducers and passes synchro signals to the output connectors.</p> <p><a href="https://static.righto.com/images/bendix-mach/back-labeled.jpg"><img alt="The left part of the CADC that meshes with the Mach section." class="hilite" height="480" src="https://static.righto.com/images/bendix-mach/back-labeled-w500.jpg" title="The left part of the CADC that meshes with the Mach section." width="500" /></a><div class="cite">The left part of the CADC that meshes with the Mach section.</div></p> <h2>The position error correction servo loop</h2> <!-- The Bendix CADC has two pneumatic inputs through tubes: the static pressure and the total pressure. It also receives the total temperature from a platinum temperature probe. From these, it computes many outputs: true air speed, Mach number, log static pressure, differential pressure, air density, air density &times; the speed of sound, total temperature, and log true free air temperature. --> <p>The CADC receives two pressure inputs and two pressure transducers convert the pressures into rotational positions, providing the indicated static pressure \( P_{si} \) and the total pressure \( P_t \) as shaft rotations to the rest of the CADC. (I explained the pressure transducers in detail in the <a href="https://www.righto.com/2024/01/bendix-cadc-pressure-transducers.html">previous article</a>.)</p> <p>There's one complication though. The static pressure \( P_s \) is the atmospheric pressure outside the aircraft. The problem is that the static pressure measurement is perturbed by the airflow around the aircraft, so the measured pressure (called the indicated static pressure \( P_{si} \)) doesn't match the real pressure. This is bad because a "static-pressure error manifests itself as errors in indicated airspeed, altitude, and Mach number to the pilot."<span id="fnref:pec"><a class="ref" href="#fn:pec">9</a></span></p> <p>The solution is a correction factor called the Position Error Correction. This factor gives the ratio between the real pressure \( P_s \) and the measured pressure \( P_{si} \). By applying this correction factor to the indicated (i.e. measured) pressure, the true pressure can be obtained. Since this correction factor depends on the shape of the aircraft, it is generated outside the CADC by a separate cylindrical unit called the Compensator, customized to the aircraft type. The position error computation depends on two parameters: the Mach number provided by the CADC and the angle of attack provided by an aircraft sensor. The compensator determines the correction factor by using a three-dimensional cam. The vintage photo below shows the components inside the compensator.</p> <p><a href="https://static.righto.com/images/bendix-mach/compensator.jpg"><img alt="&quot;Static Pressure and Angle of Attack Compensator Type X1254115-1 (Cover Removed)&quot; from Air Data Computer Mechanization." class="hilite" height="438" src="https://static.righto.com/images/bendix-mach/compensator-w350.jpg" title="&quot;Static Pressure and Angle of Attack Compensator Type X1254115-1 (Cover Removed)&quot; from Air Data Computer Mechanization." width="350" /></a><div class="cite">"Static Pressure and Angle of Attack Compensator Type X1254115-1 (Cover Removed)" from Air Data Computer Mechanization.</div></p> <p>The correction factor is transmitted from the compensator to the CADC as a synchro signal over three wires. To use this value, the CADC must convert the synchro signal to a shaft rotation. The CADC uses a motorized servo loop that rotates the shaft until the shaft position matches the angle specified by the synchro input.</p> <p><a href="https://static.righto.com/images/bendix-mach/servo-diagram.png"><img alt="The servo loop ensures that the shaft position matches the input angle." class="hilite" height="226" src="https://static.righto.com/images/bendix-mach/servo-diagram-w500.png" title="The servo loop ensures that the shaft position matches the input angle." width="500" /></a><div class="cite">The servo loop ensures that the shaft position matches the input angle.</div></p> <p>The key to the servo loop is a <em>control transformer</em>. This device looks like a synchro and has five wires like a synchro, but its function is different. Like the synchro motor, the control transformer has three stator wires that provide the angle input. Unlike the synchro, the control transformer also uses the shaft position as an input, while the rotor winding generates an output voltage indicating the error. This output voltage indicates the error between the control transformer's shaft position and the three-wire angle input. The control transformer provides its error signal as a 400 Hz sine wave, with a larger signal indicating more error.<span id="fnref:phase"><a class="ref" href="#fn:phase">10</a></span></p> <p>The amplifier board (below) drives the motor in the appropriate direction to cancel out the error. The power transformer in the upper left is the largest component, powering the amplifier board from the CADC's 115-volt, 400 Hertz aviation power. Below it are two transformer-like components; these are the magnetic amplifiers. The relay in the lower-right corner switches the amplifier into test mode. The rest of the circuitry consists of transistors, resistors, capacitors, and diodes. The construction is completely different from modern printed circuit boards. Instead, the amplifier uses point-to-point wiring between plastic-insulated metal pegs. Both sides of the board have components, with connections between the sides through the metal pegs.</p> <p><a href="https://static.righto.com/images/bendix-mach/pec-amplifier.jpg"><img alt="The amplifier board for the position error correction." class="hilite" height="466" src="https://static.righto.com/images/bendix-mach/pec-amplifier-w500.jpg" title="The amplifier board for the position error correction." width="500" /></a><div class="cite">The amplifier board for the position error correction.</div></p> <p>The amplifier board is implemented with a transistor amplifier driving two magnetic amplifiers, which control the motor.<span id="fnref:schematic"><a class="ref" href="#fn:schematic">11</a></span> (Magnetic amplifiers are an old technology that can amplify AC signals, allowing the relatively weak transistor output to control a larger AC output.<span id="fnref:magamps"><a class="ref" href="#fn:magamps">12</a></span>) The motor is a "Motor / Tachometer Generator" unit that also generates a voltage based on the motor's speed. This speed signal provides negative feedback, limiting the motor speed as the error becomes smaller and ensuring that the feedback loop doesn't overshoot. The photo below shows how the amplifier board is mounted in the middle of the CADC, behind the static pressure tubing.</p> <!-- The CADC is powered by standard avionics power of 115 volts AC, 400 hertz. The servo circuit has a simple power supply running off this AC, using a multi-winding power transformer. One winding and diode produce DC for the transistor amplifier. Other windings supply AC (controlled by the magnetic amplifiers) to power the motor, and AC for the magnetic amplifier control signal. The transformer ensures that the transducer circuitry is electrically isolated from other parts of the CADC and the aircraft. --> <p><a href="https://static.righto.com/images/bendix-mach/side-with-board.jpg"><img alt="Side view of the CADC." class="hilite" height="310" src="https://static.righto.com/images/bendix-mach/side-with-board-w600.jpg" title="Side view of the CADC." width="600" /></a><div class="cite">Side view of the CADC.</div></p> <h2>The equations</h2> <p>Although the CADC looks like an inscrutable conglomeration of tiny gears, it is possible to trace out the gearing and see exactly how it computes the air data functions. With considerable effort, I have reverse-engineered the mechanisms to create the diagram below, showing how each computation is broken down into mechanical steps. Each line indicates a particular value, specified by a shaft rotation. The &#8853; symbol indicates a differential gear, adding or subtracting its inputs to produce another value. The cam symbol indicates a cam coupled to a differential gear. Each cam computes either a specific function or an exponential, providing the value as a rotation. At the right, the outputs are either shaft rotations to the rest of the CADC or synchro outputs.</p> <p><a href="https://static.righto.com/images/bendix-mach/dataflow.png"><img alt="This diagram shows how the values are computed. The differential numbers are my own arbitrary numbers. Click for a larger version." class="hilite" height="331" src="https://static.righto.com/images/bendix-mach/dataflow-w800.png" title="This diagram shows how the values are computed. The differential numbers are my own arbitrary numbers. Click for a larger version." width="800" /></a><div class="cite">This diagram shows how the values are computed. The differential numbers are my own arbitrary numbers. Click for a larger version.</div></p> <p>I'll go through each calculation briefly.</p> <h3>log static pressure</h3> <p>The static pressure is calculated by dividing the indicated static pressure by the pressure error correction factor. Since these values are all represented logarithmically, the division turns into a subtraction, performed by a differential gear. The output goes to two synchros, geared to provide coarse and fine outputs.<span id="fnref:coarse"><a class="ref" href="#fn:coarse">13</a></span></p> <p>\[log ~ P_s = log ~ P_{si} - log ~ P_{si} / P_s \]</p> <!-- https://apps.dtic.mil/sti/pdfs/ADA614715.pdf --> <h3>Impact pressure</h3> <p>The impact pressure is the pressure due to the aircraft's speed, the difference between the total pressure and the static pressure. To compute the impact pressure, the log pressure values are first converted to linear values by exponentiation, performed by cams. The linear pressure values are then subtracted by a differential gear. Finally, the impact pressure is output through two synchros, coarse and fine in an 11:1 ratio.</p> <p>\[ P_t - P_s = exp(log ~ P_t) - exp(log ~ P_s) \]</p> <h3>log pressure ratio</h3> <p>The log pressure ratio \( P_t/P_s \) is the ratio of total pressure to static pressure. This value is important because it is used to compute the Mach number, true airspeed, and log free air temperature. The Mach number is computed in the Mach section as described below. The true airspeed and log free air temperature are computed in the left section. The left section receives the log pressure ratio as a rotation. Since the left section and Mach section can be separated for maintenance, a direct shaft connection is not used. Instead, each section has a gear and the gears mesh when the sections are joined.</p> <p>Computing the log pressure ratio is straightforward. Since the log total pressure and log static pressure are both available, subtracting the logs with a differential yields the desired value. That is,</p> <p>\[log ~ P_t/P_s = log ~ P_t - log ~ P_s \]</p> <h3>Mach number</h3> <p>The Mach number is defined in terms of \(P_t/P_s \), with separate cases for subsonic and supersonic:<span id="fnref:equations"><a class="ref" href="#fn:equations">14</a></span></p> <p>\[M&lt;1:\] \[~~~\frac{P_t}{P_s} = ( 1+.2M^2)^{3.5}\]</p> <p>\[M &gt; 1:\]</p> <p>\[~~~\frac{P_t}{P_s} = \frac{166.9215M^7}{( 7M^2-1)^{2.5}}\]</p> <p>Although these equations are very complicated, the solution is a function of one variable \(P_t/P_s\) so M can be computed with a single cam. In other words, the mathematics needed to be done when the CADC was manufactured, but once the cam exists, computing M is easy, using the log pressure ratio computed earlier:</p> <p>\[ M = f(log ~ P_t / P_s) \]</p> <h2>Conclusions</h2> <p>The CADC performs nonlinear calculations that seem way too complicated to solve with mechanical gearing. But reverse-engineering the mechanism shows how the equations are broken down into steps that can be performed with cams and differentials, using logarithms for multiplication and division. The diagram below shows the complex gearing in the Mach section. Each differential below corresponds to a differential in the earlier equation diagram.</p> <p><a href="https://static.righto.com/images/bendix-mach/mach-gearing.jpg"><img alt="A closeup of the gears and cams in the Mach section. The differential for the pressure ratio is hidden in the middle." class="hilite" height="389" src="https://static.righto.com/images/bendix-mach/mach-gearing-w800.jpg" title="A closeup of the gears and cams in the Mach section. The differential for the pressure ratio is hidden in the middle." width="800" /></a><div class="cite">A closeup of the gears and cams in the Mach section. The differential for the pressure ratio is hidden in the middle.</div></p> <p>Follow me on Twitter <a href="https://twitter.com/kenshirriff">@kenshirriff</a> or <a href="https://www.righto.com/feeds/posts/default">RSS</a> for more reverse engineering. I'm also on Mastodon as <a href="https://oldbytes.space/@kenshirriff">@oldbytes.space@kenshirriff</a>. Thanks to Joe for providing the CADC. Thanks to Nancy Chen for obtaining a hard-to-find document for me.<span id="fnref:refs"><a class="ref" href="#fn:refs">15</a></span> Marc Verdiell and Eric Schlaepfer are working on the CADC with me. CuriousMarc's video shows the CADC in action: </p> <p> <iframe width="560" height="315" src="https://www.youtube.com/embed/LQkDi3cjY3U?si=67_xTUBMCdxaQahX" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> </p> <!-- AiResearch F-14A air data computer with solid state pressure sensor https://www.google.com/books/edition/Aircraft_Yearbook/KnVGAAAAYAAJ?hl=en&gbpv=1&pg=PA85&printsec=frontcover F-104 lawsuit over whether CADC is essential: https://www.google.com/books/edition/United_States_Customs_Court_Reports/7p1ypJhUYukC?hl=en&gbpv=1&dq=electronic+air+data+computer&pg=PA331&printsec=frontcover Bendix digital air data computer https://patentimages.storage.googleapis.com/ae/55/07/f72bf49c914d2c/US3564222.pdf https://www.google.com/books/edition/Aircraft_Yearbook/KnVGAAAAYAAJ?hl=en&gbpv=1&dq=%22digital+air+data+computer%22&pg=RA1-PA190&printsec=frontcover https://patents.google.com/patent/US3564222A/en --> <h2>Notes and references</h2> <div class="footnote"> <ol> <li id="fn:series"> <p>My articles on the CADC are: <ul> <li><a href="https://www.righto.com/2023/02/bendix-central-air-data-computer-cadc.html">Overview</a> <li><a href="https://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html">Top section</a> <li><a href="https://www.righto.com/2024/01/bendix-cadc-pressure-transducers.html">Pressure transducers</a> </ul></p> <p>There is a lot of overlap between the articles, so skip over parts that seem repetitive :-)&#160;<a class="footnote-backref" href="#fnref:series" title="Jump back to footnote 1 in the text">&#8617;</a></p> </li> <li id="fn:static"> <p>The static air pressure can also be provided by holes in the side of the pitot tube; this is the typical approach in fighter planes.&#160;<a class="footnote-backref" href="#fnref:static" title="Jump back to footnote 2 in the text">&#8617;</a></p> </li> <li id="fn:gearing"> <p>Multiplying a rotation by a constant factor doesn't require a differential; it can be done simply with the ratio between two gears. (If a large gear rotates a small gear, the small gear rotates faster according to the size ratio.) Adding a constant to a rotation is even easier, just a matter of defining what shaft position indicates 0. For this reason, I will ignore constants in the equations.&#160;<a class="footnote-backref" href="#fnref:gearing" title="Jump back to footnote 3 in the text">&#8617;</a></p> </li> <li id="fn:differential"> <p>Strictly speaking, the output of the differential is the sum of the inputs divided by two. I'm ignoring the factor of 2 because the gear ratios can easily cancel it out. It's also arbitrary whether you think of the differential as adding or subtracting, since it depends on which rotation direction is defined as positive.&#160;<a class="footnote-backref" href="#fnref:differential" title="Jump back to footnote 4 in the text">&#8617;</a></p> </li> <li id="fn:cam-shape"> <p>The diagram below shows a typical cam function in more detail. The input is \(log~ dP/P_s\) and the output is \(log~M / \sqrt{1+.2KM^2}\). The small humped curve at the bottom is the cam correction. Although the input and output functions cover a wide range, the difference that is encoded in the cam is much smaller and drops to zero at both ends.</p> <p><a href="https://static.righto.com/images/bendix-mach/cam-diagram.jpg"><img alt="This diagram, from Patent 2969910, shows how a cam implements a complicated function." class="hilite" height="439" src="https://static.righto.com/images/bendix-mach/cam-diagram-w350.jpg" title="This diagram, from Patent 2969910, shows how a cam implements a complicated function." width="350" /></a><div class="cite">This diagram, from <a href="https://patents.google.com/patent/US2969910A">Patent 2969910</a>, shows how a cam implements a complicated function.</div></p> <p><!-- -->&#160;<a class="footnote-backref" href="#fnref:cam-shape" title="Jump back to footnote 5 in the text">&#8617;</a></p> </li> <li id="fn:synchro"> <p>Internally, a synchro has a moving rotor winding and three fixed stator windings. When AC is applied to the rotor, voltages are developed on the stator windings depending on the position of the rotor. These voltages produce a torque that rotates the synchros to the same position. In other words, the rotor receives power (26 V, 400 Hz in this case), while the three stator wires transmit the position. The diagram below shows how a synchro is represented schematically, with rotor and stator coils.</p> <p><a href="https://static.righto.com/images/bendix-mach/synchro-symbol.jpg"><img alt="The schematic symbol for a synchro." class="hilite" height="240" src="https://static.righto.com/images/bendix-mach/synchro-symbol-w250.jpg" title="The schematic symbol for a synchro." width="250" /></a><div class="cite">The schematic symbol for a synchro.</div></p> <p>A control transformer has a similar structure, but the rotor winding provides an output, instead of being powered.&#160;<a class="footnote-backref" href="#fnref:synchro" title="Jump back to footnote 6 in the text">&#8617;</a></p> </li> <li id="fn:left"> <p>Specifically, the left part of the CADC computes true airspeed, air density, total temperature, log true free air temperature, and air density &times; speed of sound. I discussed the left section in detail <a href="https://www.righto.com/2023/10/bendix-cadc-reverse-engineering.html">here</a>.&#160;<a class="footnote-backref" href="#fnref:left" title="Jump back to footnote 7 in the text">&#8617;</a></p> </li> <li id="fn:connectors"> <p>From the outside, the CADC is a boring black cylinder, with no hint of the complex gearing inside. The CADC is wired to the rest of the aircraft through round military connectors. The front panel interfaces these connectors to the D-sub connectors used internally. The two pressure inputs are the black cylinders at the bottom of the photo.</p> <p><a href="https://static.righto.com/images/bendix-mach/exterior.jpg"><img alt="The exterior of the CADC. It is packaged in a rugged metal cylinder. It is sealed by a soldered metal band, so we needed a blowtorch to open it." class="hilite" height="470" src="https://static.righto.com/images/bendix-mach/exterior-w300.jpg" title="The exterior of the CADC. It is packaged in a rugged metal cylinder. It is sealed by a soldered metal band, so we needed a blowtorch to open it." width="300" /></a><div class="cite">The exterior of the CADC. It is packaged in a rugged metal cylinder. It is sealed by a soldered metal band, so we needed a blowtorch to open it.</div></p> <p><!-- -->&#160;<a class="footnote-backref" href="#fnref:connectors" title="Jump back to footnote 8 in the text">&#8617;</a></p> </li> <li id="fn:pec"> <p>The concepts of position error correction are described <a href="https://apps.dtic.mil/sti/pdfs/ADA614715.pdf">here</a>.&#160;<a class="footnote-backref" href="#fnref:pec" title="Jump back to footnote 9 in the text">&#8617;</a></p> </li> <li id="fn:phase"> <p>The phase of the signal is 0&deg; or 180&deg;, depending on the direction of the error. In other words, the error signal is proportional to the driving AC signal in one direction and flipped when the error is in the other direction. This is important since it indicates which direction the motor should turn. When the error is eliminated, the signal is zero.&#160;<a class="footnote-backref" href="#fnref:phase" title="Jump back to footnote 10 in the text">&#8617;</a></p> </li> <li id="fn:schematic"> <p>I reverse-engineered the circuit board to create the schematic below for the amplifier. The idea is that one magnetic amplifier or the other is selected, depending on the phase of the error signal, causing the motor to turn counterclockwise or clockwise as needed. To implement this, the magnetic amplifier control windings are connected to opposite phases of the 400 Hz power. The transistor is connected to both magnetic amplifiers through diodes, so current will flow only if the transistor pulls the winding low during the half-cycle that the winding is powered high. Thus, depending on the phase of the transistor output, one winding or the other will be powered, allowing that magnetic amplifier to pass AC to the motor.</p> <p><a href="https://static.righto.com/images/bendix-mach/schematic.png"><img alt="This reverse-engineered schematic probably has a few errors. Click the schematic for a larger version." class="hilite" height="358" src="https://static.righto.com/images/bendix-mach/schematic-w600.png" title="This reverse-engineered schematic probably has a few errors. Click the schematic for a larger version." width="600" /></a><div class="cite">This reverse-engineered schematic probably has a few errors. Click the schematic for a larger version.</div></p> <p>The CADC has four servo amplifiers: this one for pressure error correction, one for temperature, and two for pressure. The amplifiers have different types of inputs: the temperature input is the probe resistance, the pressure error correction uses an error voltage from the control transformer, and the pressure inputs are voltages from the inductive pickups in the sensor. The circuitry is roughly the same for each amplifier&mdash;a transistor amplifier driving two magnetic amplifiers&mdash;but the details are different. The largest difference is that each pressure transducer amplifier drives two motors (coarse and fine) so each has two transistor stages and four magnetic amplifiers.&#160;<a class="footnote-backref" href="#fnref:schematic" title="Jump back to footnote 11 in the text">&#8617;</a></p> </li> <li id="fn:magamps"> <p>The basic idea of a magnetic amplifier is a controllable inductor. Normally, the inductor blocks alternating current. But applying a relatively small DC signal to a control winding causes the inductor to saturate, permitting the flow of AC. Since the magnetic amplifier uses a small signal to control a much larger signal, it provides amplification.</p> <p>In the early 1900s, magnetic amplifiers were used in applications such as dimming lights. Germany improved the technology in World War II, using magnetic amplifiers in ships, rockets, and trains. The magnetic amplifier had a resurgence in the 1950s; the Univac Solid State computer used magnetic amplifiers (rather than vacuum tubes or transistors) as its logic elements. However, improvements in transistors made the magnetic amplifier obsolete except for specialized applications. (See my IEEE Spectrum article on <a href="https://spectrum.ieee.org/the-vacuum-tubes-forgotten-rival">magnetic amplifiers</a> for more history of magnetic amplifiers.)&#160;<a class="footnote-backref" href="#fnref:magamps" title="Jump back to footnote 12 in the text">&#8617;</a></p> </li> <li id="fn:coarse"> <p>The CADC specification defines how the parameter values correspond to rotation angles of the synchros. For instance, for the log static pressure synchros, the CADC supports the parameter range 0.8099 to 31.0185 inches of mercury. The spec defines the corresponding synchro outputs as 16,320&deg; rotation of the fine synchro and 175.48&deg; rotation of the coarse synchro over this range. The synchro null point corresponds to 29.92 inches of mercury (i.e. zero altitude). The fine synchro is geared to rotate 93 times as fast as the coarse synchro, so it rotates over 45 times during this range, providing higher resolution than a single synchro would provide. The other synchro pairs use a much smaller 11:1 ratio; presumably high accuracy of the static pressure was important.&#160;<a class="footnote-backref" href="#fnref:coarse" title="Jump back to footnote 13 in the text">&#8617;</a></p> </li> <li id="fn:equations"> <p>Although the CADC's equations may seem <em>ad hoc</em>, they can be derived from fluid dynamics principles. These equations were standardized in the 1950s by various government organizations including the National Bureau of Standards and NACA (the precursor of NASA).&#160;<a class="footnote-backref" href="#fnref:equations" title="Jump back to footnote 14 in the text">&#8617;</a></p> </li> <li id="fn:refs"> <p>It was very difficult to find information about the CADC. The official military specification is MIL-C-25653C(USAF). After searching everywhere, I was finally able to get a copy from the Technical Reports &amp; Standards unit of the Library of Congress. The other useful document was in an obscure conference proceedings from 1958: "Air Data Computer Mechanization" (Hazen), Symposium on the USAF Flight Control Data Integration Program, Wright Air Dev Center US Air Force, Feb 3-4, 1958, pp 171-194.&#160;<a class="footnote-backref" href="#fnref:refs" title="Jump back to footnote 15 in the text">&#8617;</a></p> </li> </ol> </div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'><span class='post-comment-link'> <a class='comment-link' href='https://draft.blogger.com/comment/fullpage/post/6264947694886887540/4399278445047699785' onclick=''> 1 comment: </a> </span> <span class='post-icons'> <span class='item-action'> <a href='https://draft.blogger.com/email-post/6264947694886887540/4399278445047699785' title='Email Post'> <img alt='' class='icon-action' height='13' src='http://img1.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-1138732533'> <a href='https://draft.blogger.com/post-edit.g?blogID=6264947694886887540&postID=4399278445047699785&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <span class='post-backlinks post-comment-link'> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=4399278445047699785&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=4399278445047699785&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=4399278445047699785&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=4399278445047699785&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=4399278445047699785&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'><span class='post-labels'> Labels: <a href="https://www.righto.com/search/label/analog" rel='tag'>analog</a>, <a href="https://www.righto.com/search/label/reverse-engineering" rel='tag'>reverse-engineering</a> </span> </div> <div class='post-footer-line post-footer-line-3'></div> </div> </div> </div> </div></div> <div class="date-outer"> <div class="date-posts"> <div class='post-outer'> <div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://static.righto.com/images/globus-gearing/globus-w600.jpg' itemprop='image_url'/> <meta content='6264947694886887540' itemprop='blogId'/> <meta content='8868607841305902549' itemprop='postId'/> <a name='8868607841305902549'></a> <h3 class='post-title entry-title' itemprop='name'> <a href="https://www.righto.com/2023/03/reverse-engineering-globus-ink-soviet.html">Reverse-engineering the Globus INK, a Soviet spaceflight navigation computer</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-8868607841305902549' itemprop='description articleBody'> <style> .hilite {cursor:zoom-in} </style> <p>One of the most interesting navigation instruments onboard Soyuz spacecraft was the Globus INK,<span id="fnref:ink"><a class="ref" href="#fn:ink">1</a></span> which used a rotating globe to indicate the spacecraft's position above the Earth. This electromechanical analog computer used an elaborate system of gears, cams, and differentials to compute the spacecraft's position. The globe rotates in two dimensions: it spins end-over-end to indicate the spacecraft's orbit, while the globe's hemispheres rotate according to the Earth's daily rotation around its axis.<span id="fnref:day"><a class="ref" href="#fn:day">2</a></span> The spacecraft's position above the Earth was represented by the fixed crosshairs on the plastic dome. The Globus also has latitude and longitude dials next to the globe to show the position numerically, while the light/shadow dial below the globe indicated when the spacecraft would enter or leave the Earth's shadow.</p> <p><a href="https://static.righto.com/images/globus-gearing/globus.jpg"><img alt="The INK-2S &quot;Globus&quot; space navigation indicator." class="hilite" height="457" src="https://static.righto.com/images/globus-gearing/globus-w600.jpg" title="The INK-2S &quot;Globus&quot; space navigation indicator." width="600" /></a><div class="cite">The INK-2S "Globus" space navigation indicator.</div></p> <p>Opening up the Globus reveals that it is packed with complicated gears and mechanisms. It's amazing that this mechanical technology was used from the 1960s into the 21st century. But what are all those gears doing? How can orbital functions be implemented with gears? To answer these questions, I reverse-engineered the Globus and traced out its system of gears.</p> <p><a href="https://static.righto.com/images/globus-gearing/opened-end.jpg"><img alt="The Globus with the case removed, showing the complex gearing inside." class="hilite" height="496" src="https://static.righto.com/images/globus-gearing/opened-end-w500.jpg" title="The Globus with the case removed, showing the complex gearing inside." width="500" /></a><div class="cite">The Globus with the case removed, showing the complex gearing inside.</div></p> <p>The diagram below summarizes my analysis. The Globus is an analog computer that represents values by rotating shafts by particular amounts. These rotations control the globe and the indicator dials. The flow of these rotational signals is shown by the lines on the diagram. The computation is based around addition, performed by ten differential gear assemblies. On the diagram, each "&#10753;" symbol indicates one of these differential gear assemblies. Other gears connect the components while scaling the signals through various gear ratios. Complicated functions are implemented with three specially-shaped cams. In the remainder of this blog post, I will break this diagram down into functional blocks and explain how the Globus operates.</p> <p><a href="https://static.righto.com/images/globus-gearing/diagram.png"><img alt="This diagram shows the interconnections of the gear network in the Globus." class="hilite" height="370" src="https://static.righto.com/images/globus-gearing/diagram-w700.png" title="This diagram shows the interconnections of the gear network in the Globus." width="700" /></a><div class="cite">This diagram shows the interconnections of the gear network in the Globus.</div></p> <!-- ## The overall network I've created the diagram below to show how the mechanical components of the Globus are connected. This diagram focuses on the ten differentials, numbered 1 through 10. The orbital motion is controlled by differentials 1 through 3. This block is driven by the orbit solenoid, which provides a small rotation once every second. The cam provides an adjustment to the orbital speed, which varies depending on altitude. The orbit knob on the front panel allows the position to be adjusted by hand. Differential 4 handles this input and produces the orbital position signal. For the "landing position" mode, differential 5 allows the landing motor to rotate the position. The output from differential 5 indicates the orbital position and rotates the globe. It also rotates a potentiometer to provide an output signal and drives the light/shadow wheel. The second motion is the Earth's rotation around its axis. This is driven by a second solenoid that pulses onces a second. There is also a knob to manually rotate the globe around its axis. These signals are combined by differential 6. Differential 7 adds the signal from the landing motor and differential 8 adds the signal from the orbital rotation; these cancel out the mechanical effect of the orbital rotation on the earth rotation. Differentials 9 and 10 compute the longitude, combining the effect of the Earth's rotation with the orbital motion, corrected by a cam. --> <p>For all its complexity, though, the functionality of the Globus is pretty limited. It only handles a fixed orbit at a specific angle, and treats the orbit as circular. The Globus does not have any navigation input such as an inertial measurement unit (IMU). Instead, the cosmonauts configured the Globus by turning knobs to set the spacecraft's initial position and orbital period. From there, the Globus simply projected the current position of the spacecraft forward, essentially <a href="https://en.wikipedia.org/wiki/Dead_reckoning">dead reckoning</a>.</p> <p><a href="https://static.righto.com/images/globus-gearing/gears.jpg"><img alt="A closeup of the gears inside the Globus." class="hilite" height="374" src="https://static.righto.com/images/globus-gearing/gears-w500.jpg" title="A closeup of the gears inside the Globus." width="500" /></a><div class="cite">A closeup of the gears inside the Globus.</div></p> <h2>The globe</h2> <p>On seeing the Globus, one might wonder how the globe is rotated. It may seem that the globe must be free-floating so it can rotate in two axes. Instead, a clever mechanism attaches the globe to the unit. The key is that the globe's equator is a solid piece of metal that rotates around the horizontal axis of the unit. A second gear mechanism inside the globe rotates the globe around the North-South axis. The two rotations are controlled by concentric shafts that are fixed to the unit. Thus, the globe has two rotational degrees of freedom, even though it is attached at both ends.</p> <p>The photo below shows the frame that holds and controls the globe. The dotted axis is fixed horizontally in the unit and rotations are fed through the two gears at the left. One gear rotates the globe and frame around the dotted axis, while the gear train causes the globe to rotate around the vertical polar axis (while the equator remains fixed).</p> <p><a href="https://static.righto.com/images/globus-gearing/axis.jpg"><img alt="The axis of the globe is at 51.8&#176; to support that orbital inclination." class="hilite" height="331" src="https://static.righto.com/images/globus-gearing/axis-w500.jpg" title="The axis of the globe is at 51.8&#176; to support that orbital inclination." width="500" /></a><div class="cite">The axis of the globe is at 51.8&deg; to support that orbital inclination.</div></p> <p>The angle above is 51.8&deg; which is very important: this is the inclination of the standard Soyuz orbit. As a result, simply rotating the globe around the dotted line causes the crosshair to trace the orbit.<span id="fnref:orbit"><a class="ref" href="#fn:orbit">3</a></span> Rotating the two halves of the globe around the poles yields the different paths over the Earth's surface as the Earth rotates. An important consequence of this design is that the Globus only supports a circular orbit at a fixed angle.</p> <h2>Differential gear mechanism</h2> <p>The primary mathematical element of the Globus is the differential gear mechanism, which can perform addition or subtraction. A differential gear takes two rotations as inputs and produces the (scaled) sum of the rotations as the output. The photo below shows one of the differential mechanisms. In the middle, the spider gear assembly (red box) consists of two bevel gears that can spin freely on a vertical shaft. The spider gear assembly as a whole is attached to a horizontal shaft, called the spider shaft. At the right, the spider shaft is attached to a spur gear (a gear with straight-cut teeth). The spider gear assembly, the spider shaft, and the spider's spur gear rotate together as a unit.</p> <p><a href="https://static.righto.com/images/globus-gearing/differential-diagram.jpg"><img alt="Diagram showing the components of a differential gear mechanism." class="hilite" height="384" src="https://static.righto.com/images/globus-gearing/differential-diagram-w500.jpg" title="Diagram showing the components of a differential gear mechanism." width="500" /></a><div class="cite">Diagram showing the components of a differential gear mechanism.</div></p> <p>At the left and right are two end gear assemblies (yellow). The end gear is a bevel gear with angled teeth to mesh with the spider gears. Each end gear is locked to a spur gear and these gears spin freely on the horizontal spider shaft. In total, there are three spur gears: two connected to the end gears and one connected to the spider assembly. In the diagrams, I'll use the symbol below to represent the differential gear assembly: the end gears are symmetric on the top and bottom, with the spider shaft on the side. Any of the three spur gears can be used as an output, with the other two serving as inputs.</p> <p><a href="https://static.righto.com/images/globus-gearing/differential-symbol.jpg"><img alt="The symbol for the differential gear assembly." class="hilite" height="117" src="https://static.righto.com/images/globus-gearing/differential-symbol-w120.jpg" title="The symbol for the differential gear assembly." width="120" /></a><div class="cite">The symbol for the differential gear assembly.</div></p> <p>To understand the behavior of the differential, suppose the two end gears are driven in the same direction at the same rate, say upwards.<span id="fnref:directions"><a class="ref" href="#fn:directions">4</a></span> These gears will push on the spider gears and rotate the spider gear assembly, with the entire differential rotating as a fixed unit. On the other hand, suppose the two end gears are driven in opposite directions. In this case, the spider gears will spin on their shaft, but the spider gear assembly will remain stationary. In either case, the spider gear assembly motion is the average of the two end gear rotations, that is, the sum of the two rotations divided by 2. (I'll ignore the factor of 2 since I'm ignoring all the gear ratios.) If the operation of the differential is still confusing, <a href="https://youtu.be/mQhmmTX5f9Y?t=68">this vintage Navy video</a> has a detailed explanation.</p> <h2>The controls and displays</h2> <p>The diagram below shows the controls and displays of the Globus. The rotating globe is the centerpiece of the unit. Its plastic cover has a crosshair that represents the spacecraft's position above the Earth's surface. Surrounding the globe itself are dials that show the longitude, latitude, and the time before entering light and shadow. The cosmonauts manually initialize the globe position with the concentric globe rotation knobs: one rotates the globe along the orbital path while the other rotates the hemispheres. The mode switch at the top selects between the landing position mode, the standard Earth orbit mode, and turning off the unit. The orbit time adjustment configures the orbital time period in minutes while the orbit counter below it counts the number of orbits. Finally, the landing point angle sets the distance to the landing point in degrees of orbit.</p> <p><a href="https://static.righto.com/images/globus-gearing/globus-labeled.jpg"><img alt="The Globus with the controls labeled." class="hilite" height="466" src="https://static.righto.com/images/globus-gearing/globus-labeled-w700.jpg" title="The Globus with the controls labeled." width="700" /></a><div class="cite">The Globus with the controls labeled.</div></p> <h2>Computing the orbit time</h2> <p>The primary motion of the Globus is the end-over-end rotation of the globe showing the movement of the spacecraft in orbit. The orbital motion is powered by a solenoid at the top of the Globus that receives pulses once a second and advances a ratchet wheel (<a href="https://twitter.com/kenshirriff/status/1628118949421363201">video</a>).<span id="fnref:torque"><a class="ref" href="#fn:torque">5</a></span> This wheel is connected to a complicated cam and differential system to provide the orbital motion.</p> <p><a href="https://static.righto.com/images/globus-gearing/orbit-solenoid.jpg"><img alt="The orbit solenoid (green) has a ratchet that rotates the gear to the right. The shaft connects it to differential gear assembly 1 at the bottom right." class="hilite" height="404" src="https://static.righto.com/images/globus-gearing/orbit-solenoid-w500.jpg" title="The orbit solenoid (green) has a ratchet that rotates the gear to the right. The shaft connects it to differential gear assembly 1 at the bottom right." width="500" /></a><div class="cite">The orbit solenoid (green) has a ratchet that rotates the gear to the right. The shaft connects it to differential gear assembly 1 at the bottom right.</div></p> <p>Each orbit takes about 92 minutes, but the orbital time can be adjusted by a few minutes in steps of 0.01 minutes<span id="fnref:time"><a class="ref" href="#fn:time">6</a></span> to account for changes in altitude. The Globus is surprisingly inflexible and this is the only orbital parameter that can be adjusted.<span id="fnref:parameters"><a class="ref" href="#fn:parameters">7</a></span> The orbital period is adjusted by the three-position orbit time switch, which points to the minutes, tenths, or hundredths. Turning the central knob adjusts the indicated period dial.</p> <p>The problem is how to generate the variable orbital rotation speed from the fixed speed of the solenoid. The solution is a special cam, shaped like a cone with a spiral cross-section. Three followers ride on the cam, so as the cam rotates, the follower is pushed outward and rotates on its shaft. If the follower is near the narrow part of the cam, it moves over a small distance and has a small rotation. But if the follower is near the wide part of the cam, it moves a larger distance and has a larger rotation. Thus, by moving the follower to a particular point on the cam, the rotational speed of the follower is selected. One follower adjusts the speed based on the minutes setting with others for the tenths and hundredths of minutes.</p> <p><a href="https://static.righto.com/images/globus-gearing/cone-diagram.jpg"><img alt="A diagram showing the orbital speed control mechanism. The cone has three followers, but only two are visible from this angle. The &quot;transmission&quot; gears are moved in and out by the outer knob to select which follower is adjusted by the inner knob." class="hilite" height="533" src="https://static.righto.com/images/globus-gearing/cone-diagram-w600.jpg" title="A diagram showing the orbital speed control mechanism. The cone has three followers, but only two are visible from this angle. The &quot;transmission&quot; gears are moved in and out by the outer knob to select which follower is adjusted by the inner knob." width="600" /></a><div class="cite">A diagram showing the orbital speed control mechanism. The cone has three followers, but only two are visible from this angle. The "transmission" gears are moved in and out by the outer knob to select which follower is adjusted by the inner knob.</div></p> <p>Of course, the cam can't spiral out forever. Instead, at the end of one revolution, its cross-section drops back sharply to the starting diameter. This causes the follower to snap back to its original position. To prevent this from jerking the globe backward, the follower is connected to the differential gearing via a slip clutch and ratchet. Thus, when the follower snaps back, the ratchet holds the drive shaft stationary. The drive shaft then continues its rotation as the follower starts cycling out again. Each shaft output is accordingly a (mostly) smooth rotation at a speed that depends on the position of the follower.</p> <p><a href="https://static.righto.com/images/globus-gearing/diagram-orbit.png"><img alt="A cam-based system adjusts the orbital speed using three differential gear assemblies." class="hilite" height="353" src="https://static.righto.com/images/globus-gearing/diagram-orbit-w500.png" title="A cam-based system adjusts the orbital speed using three differential gear assemblies." width="500" /></a><div class="cite">A cam-based system adjusts the orbital speed using three differential gear assemblies.</div></p> <p>The three adjustment signals are scaled by gear ratios to provide the appropriate contribution to the rotation. As shown above, the adjustments are added to the solenoid output by three differentials to generate the orbit rotation signal, output from differential 3.<span id="fnref:loop"><a class="ref" href="#fn:loop">8</a></span> This signal also drives the odometer-like orbit counter on the front of the Globus. The diagram below shows how the components are arranged, as viewed from the back.</p> <p><a href="https://static.righto.com/images/globus-gearing/diagram-back2.jpg"><img alt="A back view of the Globus showing the orbit components." class="hilite" height="584" src="https://static.righto.com/images/globus-gearing/diagram-back2-w600.jpg" title="A back view of the Globus showing the orbit components." width="600" /></a><div class="cite">A back view of the Globus showing the orbit components.</div></p> <h2>Displaying the orbit rotation</h2> <p>Since the Globus doesn't have any external position input such as inertial guidance, it must be initialized by the cosmonauts. A knob on the front of the Globus provides manual adjustment of the orbital position. Differential 4 adds the knob signal to the orbit output discussed above.</p> <p><a href="https://static.righto.com/images/globus-gearing/diagram-orbit2.png"><img alt="The orbit controls drive the globe&#39;s motion." class="hilite" height="334" src="https://static.righto.com/images/globus-gearing/diagram-orbit2-w700.png" title="The orbit controls drive the globe&#39;s motion." width="700" /></a><div class="cite">The orbit controls drive the globe's motion.</div></p> <p>The Globus has a "landing point" mode where the globe is rapidly rotated through a fraction of an orbit to indicate where the spacecraft would land if the retro-rockets were fired. Turning the mode switch caused the globe to rotate until the landing position was under the crosshairs and the cosmonauts could evaluate the suitability of this landing site. This mode is implemented with a landing position motor that provides the rapid rotation. This motor also rotates the globe back to the orbital position. The motor is driven through an electronics board with relays and a transistor, controlled by limit switches. I discussed the electronics in a <a href="https://www.righto.com/2023/03/reverse-engineering-electronics-in.html">previous post</a> so I won't go into more details here. The landing position motor feeds into the orbit signal through differential 5, producing the final orbit signal.</p> <p><a href="https://static.righto.com/images/globus-gearing/landing-motor.jpg"><img alt="The landing position motor and its associated gearing. The motor speed is geared down and then fed through a worm gear (upper center)." class="hilite" height="382" src="https://static.righto.com/images/globus-gearing/landing-motor-w400.jpg" title="The landing position motor and its associated gearing. The motor speed is geared down and then fed through a worm gear (upper center)." width="400" /></a><div class="cite">The landing position motor and its associated gearing. The motor speed is geared down and then fed through a worm gear (upper center).</div></p> <p>The orbit signal from differential 5 is used in several ways. Most importantly, the orbit signal provides the end-over-end rotation of the globe to indicate the spacecraft's travel in orbit. As discussed earlier, this is accomplished by rotating the globe's metal frame around the horizontal axis. The orbital signal also rotates a potentiometer to provide an electrical indication of the orbital position to other spacecraft systems.</p> <h2>The light/shadow indicator</h2> <p>Docking a spacecraft is a tricky endeavor, best performed in daylight, so it is useful to know how much time remains until the spacecraft enters the Earth's shadow. The light/shadow dial under the globe provides this information. This display consists of two nested wheels. The outer wheel is white and has two quarters removed. Through these gaps, the partially-black inner wheel is exposed, which can be adjusted to show 0% to 50% dark. This display is rotated by the orbital signal, turning half a revolution per orbit. As the spacecraft orbits, this dial shows the light/shadow transition and the time to the transistion.<span id="fnref:scale"><a class="ref" href="#fn:scale">9</a></span></p> <p><a href="https://static.righto.com/images/globus-gearing/light-shadow-dials.jpg"><img alt="The light/shadow indicator, viewed from the underside of the Globus. The shadow indicator has been set to 35% shadow. Near the hub, a pin restricts motion of the inner wheel relative to the outer wheel." class="hilite" height="348" src="https://static.righto.com/images/globus-gearing/light-shadow-dials-w500.jpg" title="The light/shadow indicator, viewed from the underside of the Globus. The shadow indicator has been set to 35% shadow. Near the hub, a pin restricts motion of the inner wheel relative to the outer wheel." width="500" /></a><div class="cite">The light/shadow indicator, viewed from the underside of the Globus. The shadow indicator has been set to 35% shadow. Near the hub, a pin restricts motion of the inner wheel relative to the outer wheel.</div></p> <p>You might expect the orbit to be in the dark 50% of the time, but because the spacecraft is about 200 km above the Earth's surface, it will sometimes be illuminated when the surface of the Earth underneath is dark.<span id="fnref:iss"><a class="ref" href="#fn:iss">10</a></span> In the ground track below, the dotted part of the track is where the spacecraft is in the Earth's shadow; this is considerably less than 50%. Also note that the end of the orbit doesn't match up with the beginning, due to the Earth's rotation during the orbit.</p> <p><a href="https://static.righto.com/images/globus-gearing/orbitdisplay4.png"><img alt="Ground track of an Apollo-Soyuz Test Project orbit, corresponding to this Globus. Image courtesy of heavens-above.com." class="hilite" height="300" src="https://static.righto.com/images/globus-gearing/orbitdisplay4-w600.png" title="Ground track of an Apollo-Soyuz Test Project orbit, corresponding to this Globus. Image courtesy of heavens-above.com." width="600" /></a><div class="cite">Ground track of an Apollo-Soyuz Test Project orbit, corresponding to this Globus. Image courtesy of <a href="https://www.heavens-above.com/orbit.aspx?satid=08032">heavens-above.com</a>.</div></p> <h2>The latitude indicator</h2> <p>The latitude indicator to the left of the globe shows the spacecraft's latitude. The map above shows how the latitude oscillates between 51.8&deg;N and 51.8&deg;S, corresponding to the launch inclination angle. Even though the path around the globe is a straight (circular) line, the orbit appears roughly sinusoidal when projected onto the map.<span id="fnref:sinusoid"><a class="ref" href="#fn:sinusoid">11</a></span> The exact latitude is a surprisingly complicated function of the orbital position.<span id="fnref:formulas"><a class="ref" href="#fn:formulas">12</a></span> This function is implemented by a cam that is attached to the globe. The varying radius of the cam corresponds to the function. A follower tracks the profile of the cam and rotates the latitude display wheel accordingly, providing the non-linear motion.</p> <p><a href="https://static.righto.com/images/globus-gearing/latitude-cam.jpg"><img alt="A cam is attached to the globe and rotates with the globe." class="hilite" height="353" src="https://static.righto.com/images/globus-gearing/latitude-cam-w400.jpg" title="A cam is attached to the globe and rotates with the globe." width="400" /></a><div class="cite">A cam is attached to the globe and rotates with the globe.</div></p> <h2>The Earth's rotation</h2> <p>The second motion of the globe is the Earth's daily rotation around its axis, which I'll call the Earth rotation. The Earth rotation is fed into the globe through the outer part of a concentric shaft, while the orbital rotation is provided through the inner shaft. The Earth rotation is transferred through three gears to the equatorial frame, where an internal mechanism rotates the hemispheres. There's a complication, though: if the globe's orbital shaft turns while the Earth rotation shaft remains stationary, the frame will rotate, causing the gears to turn and the hemispheres to rotate. In other words, keeping the hemispheres stationary requires the Earth shaft to rotate with the orbit shaft.</p> <p><a href="https://static.righto.com/images/globus-gearing/globe-closeup.jpg"><img alt="A closeup of the gear mechanisms that drive the Globus, showing the concentric shafts that control the two rotations." class="hilite" height="464" src="https://static.righto.com/images/globus-gearing/globe-closeup-w400.jpg" title="A closeup of the gear mechanisms that drive the Globus, showing the concentric shafts that control the two rotations." width="400" /></a><div class="cite">A closeup of the gear mechanisms that drive the Globus, showing the concentric shafts that control the two rotations.</div></p> <p>The Globus solves this problem by adding the orbit rotation to the Earth rotation, as shown in the diagram below, using differentials 7 and 8. Differential 8 adds the normal orbit rotation, while differential 7 adds the orbit rotation due to the landing motor.<span id="fnref:landing"><a class="ref" href="#fn:landing">14</a></span></p> <p><a href="https://static.righto.com/images/globus-gearing/diagram-earth.png"><img alt="The mechanism to compute the Earth&#39;s rotation around its axis." class="hilite" height="391" src="https://static.righto.com/images/globus-gearing/diagram-earth-w350.png" title="The mechanism to compute the Earth&#39;s rotation around its axis." width="350" /></a><div class="cite">The mechanism to compute the Earth's rotation around its axis.</div></p> <p>The Earth motion is generated by a second solenoid (below) that is driven with one pulse per second.<span id="fnref:solenoid"><a class="ref" href="#fn:solenoid">13</a></span> This motion is simpler than the orbit motion because it has a fixed rate. The "Earth" knob on the front of the Globus permits manual rotation around the Earth's axis. This signal is combined with the solenoid signal by differential 6. The sum from the three differentials is fed into the globe, rotating the hemispheres around their axis.</p> <p><a href="https://static.righto.com/images/globus-gearing/earth-solenoid.jpg"><img alt="This solenoid, ratchet, and gear on the underside of the Globus drive the Earth rotation." class="hilite" height="286" src="https://static.righto.com/images/globus-gearing/earth-solenoid-w350.jpg" title="This solenoid, ratchet, and gear on the underside of the Globus drive the Earth rotation." width="350" /></a><div class="cite">This solenoid, ratchet, and gear on the underside of the Globus drive the Earth rotation.</div></p> <p>The solenoid and differentials are visible from the underside of the Globus. The diagram below labels these components as well as other important components.</p> <p><a href="https://static.righto.com/images/globus-gearing/diagram-underside.jpg"><img alt="The underside of the Globus." class="hilite" height="665" src="https://static.righto.com/images/globus-gearing/diagram-underside-w700.jpg" title="The underside of the Globus." width="700" /></a><div class="cite">The underside of the Globus.</div></p> <h2>The longitude display</h2> <p><a href="https://static.righto.com/images/globus-gearing/longitude-cam.jpg"><img alt="The longitude cam and the followers that track its radius." class="hilite" height="383" src="https://static.righto.com/images/globus-gearing/longitude-cam-w350.jpg" title="The longitude cam and the followers that track its radius." width="350" /></a><div class="cite">The longitude cam and the followers that track its radius.</div></p> <p>The longitude display is more complicated than the latitude display because it depends on both the Earth rotation and the orbit rotation. Unlike the latitude, the longitude doesn't oscillate but increases. The longitude increases by 360&deg; every orbit according to a complicated formula describing the projection of the orbit onto the globe. Most of the time, the increase is small, but when crossing near the poles, the longitude changes rapidly. The Earth's rotation provides a smaller but steady negative change to the longitude.</p> <p><a href="https://static.righto.com/images/globus-gearing/diagram-earth2.png"><img alt="The computation of the longitude." class="hilite" height="245" src="https://static.righto.com/images/globus-gearing/diagram-earth2-w220.png" title="The computation of the longitude." width="220" /></a><div class="cite">The computation of the longitude.</div></p> <p>The diagram above shows how the longitude is computed by combining the Earth rotation with the orbit rotation. Differential 9 adds the linear effect of the orbit on longitude (360&deg; per orbit) and subtracts the effect of the Earth's rotation (360&deg; per day). The nonlinear effect of the orbit is computed by a cam that is rotated by the orbit signal. The shape of the cam is picked up and fed into differential 10, computing the longitude that is displayed on the dial. The differentials, cam, and dial are visible from the back of the Globus (below).</p> <p><a href="https://static.righto.com/images/globus-gearing/diagram-back.jpg"><img alt="A closeup of the differentials from the back of the Globus." class="hilite" height="621" src="https://static.righto.com/images/globus-gearing/diagram-back-w450.jpg" title="A closeup of the differentials from the back of the Globus." width="450" /></a><div class="cite">A closeup of the differentials from the back of the Globus.</div></p> <p>The time-lapse video below demonstrates the behavior of the rotating displays. The latitude display on the left oscillates between 51.8&deg;N and 51.8&deg;S. The longitude display at the top advances at a changing rate. Near the equator, it advances slowly, while it accelerates near the poles. The light/shadow display at the bottom rotates at a constant speed, completing half a revolution (one light/shadow cycle) per orbit.</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/nDHtJy9cpC0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> <h2>Conclusions</h2> <p>The Globus INK is a remarkable piece of machinery, an analog computer that calculates orbits through an intricate system of gears, cams, and differentials. It provided astronauts with a high-resolution, full-color display of the spacecraft's position, way beyond what an electronic space computer could provide in the 1960s.</p> <p>The drawback of the Globus is that its functionality is limited. Its parameters must be manually configured: the spacecraft's starting position, the orbital speed, the light/shadow regions, and the landing angle. It doesn't take any external guidance inputs, such as an IMU (inertial measurement unit), so it's not particularly accurate. Finally, it only supports a circular orbit at a fixed angle. While a more modern digital display lacks the physical charm of a rotating globe, the digital solution provides much more capability.</p> <p>I recently wrote blog posts providing a <a href="https://www.righto.com/2023/01/inside-globus-ink-mechanical-navigation.html">Globus overview</a> and <a href="https://www.righto.com/2023/03/reverse-engineering-electronics-in.html">the Globus electronics</a>. Follow me on Twitter <a href="https://twitter.com/kenshirriff">@kenshirriff</a> or <a href="https://www.righto.com/feeds/posts/default">RSS</a> for updates. I've also started experimenting with Mastodon recently as <a href="https://oldbytes.space/@kenshirriff">@<span class="__cf_email__" data-cfemail="deb5bbb0adb6b7acacb7b8b89eb1b2babca7aabbadf0adaebfbdbb">[email&#160;protected]</span></a>. Many thanks to Marcel for providing the Globus. I worked on this with CuriousMarc, so check out his <a href="https://www.youtube.com/@CuriousMarc/videos">Globus videos</a>.</p> <h2>Notes and references</h2> <div class="footnote"> <ol> <li id="fn:ink"> <p>In Russian, the name for the device is "袠薪写懈泻邪褌芯褉 袧邪胁懈谐邪褑懈芯薪薪褘泄 袣芯褋屑懈褔械褋泻懈泄" abbreviated as 袠袧袣 (INK). This translates to "space navigation indicator." but I'll use the more descriptive nickname "Globus" (i.e. globe). The Globus has a long history, back to the beginnings of Soviet crewed spaceflight. The first version was simpler and had the Russian acronym 袠袦袩 (IMP). Development of the IMP started in <a href="https://web.mit.edu/slava/space/essays/essay-tiapchenko1.htm">1960</a> for the Vostok (1961) and Voshod (1964) spaceflights. The more complex INK model (described in this blog post) was created for the Soyuz flights, starting in 1967. The landing position feature is the main improvement of the INK model. The Soyuz-TMA (2002) upgraded to the Neptun-ME system which used digital display screens and abandoned the Globus.&#160;<a class="footnote-backref" href="#fnref:ink" title="Jump back to footnote 1 in the text">&#8617;</a></p> </li> <li id="fn:day"> <p>According to <a href="https://astronaut.ru/bookcase/article/article152.htm?reload_coolmenus">this document</a>, one revolution of the globe relative to the axis of daily rotation occurs in a time equal to a sidereal day, taking into account the precession of the orbit relative to the earth's axis, caused by the asymmetry of the Earth's gravitational field. (A sidereal day is approximately 4 minutes shorter than a regular 24-hour day. The difference is that the sidereal day is relative to the fixed stars, rather than relative to the Sun.)&#160;<a class="footnote-backref" href="#fnref:day" title="Jump back to footnote 2 in the text">&#8617;</a></p> </li> <li id="fn:orbit"> <p>To see how the angle between the poles and the globe's rotation results in the desired orbital inclination, consider two limit cases. First, suppose the angle between is 90&deg;. In this case, the globe is "straight" with the equator horizontal. Rotating the globe along the horizontal axis, flipping the poles end-over-end, will cause the crosshair to trace a polar orbit, giving the expected inclination of 90&deg;. On the other hand, suppose the angle is 0&deg;. In this case, the globe is "sideways" with the equator vertical. Rotating the globe will cause the crosshair to remain over the equator, corresponding to an equatorial orbit with 0&deg; inclination.&#160;<a class="footnote-backref" href="#fnref:orbit" title="Jump back to footnote 3 in the text">&#8617;</a></p> </li> <li id="fn:directions"> <p>There is a bit of ambiguity when describing the gear motions. If the end gears are rotating upwards when viewed from the front, the gears are both rotating clockwise when viewed from the right, so I'm referring to them as rotating in the same direction. But if you view each gear from its own side, the gear on the left is turning counterclockwise, so from that perspective they are turning in opposite directions.&#160;<a class="footnote-backref" href="#fnref:directions" title="Jump back to footnote 4 in the text">&#8617;</a></p> </li> <li id="fn:torque"> <p>The solenoids are important since they provide all the energy to drive the globe. One of the problems with gear-driven analog computers is that each gear and shaft has a bit of friction and loses a bit of torque, and there is nothing to amplify the signal along the way. Thus, the 27-volt solenoids need to provide enough force to run the entire system.&#160;<a class="footnote-backref" href="#fnref:torque" title="Jump back to footnote 5 in the text">&#8617;</a></p> </li> <li id="fn:time"> <p>The orbital time can be adjusted between 86.85 minutes and 96.85 minutes according to <a href="https://astronaut.ru/bookcase/article/article152.htm?reload_coolmenus">this detailed page</a> that describes the Globus in Russian.&#160;<a class="footnote-backref" href="#fnref:time" title="Jump back to footnote 6 in the text">&#8617;</a></p> </li> <li id="fn:parameters"> <p>The Globus is manufactured for a particular orbital inclination, in this case 51.8&deg;. The Globus assumes a circular orbit and does not account for any variations. The Globus does not account for any maneuvering in orbit.&#160;<a class="footnote-backref" href="#fnref:parameters" title="Jump back to footnote 7 in the text">&#8617;</a></p> </li> <li id="fn:loop"> <p>The outputs from the orbit cam are fed into the overall orbit rotation, which drives the orbit cam. This may seem like an "infinite loop" since the outputs from the cam turn the cam itself. However, the outputs from the cam are a small part of the overall orbit rotation, so the feedback dies off.&#160;<a class="footnote-backref" href="#fnref:loop" title="Jump back to footnote 8 in the text">&#8617;</a></p> </li> <li id="fn:scale"> <p>The scales on the light/shadow display are a bit confusing. The inner scale (blue) is measured in percentage of an orbit, up to 100%. The fixed outer scale (red) measures minutes, indicating how many minutes until the spacecraft enters or leaves shadow. The spacecraft completes 100% of an orbit in about 90 minutes, so the scales almost, but not quite, line up. The wheel is driven by the orbit mechanism and turns half a revolution per orbit.</p> <p><a href="https://static.righto.com/images/globus-gearing/light-dark.jpg"><img alt="The light and shadow indicator is controlled by two knobs." class="hilite" height="175" src="https://static.righto.com/images/globus-gearing/light-dark-w500.jpg" title="The light and shadow indicator is controlled by two knobs." width="500" /></a><div class="cite">The light and shadow indicator is controlled by two knobs.</div></p> <p><!-- -->&#160;<a class="footnote-backref" href="#fnref:scale" title="Jump back to footnote 9 in the text">&#8617;</a></p> </li> <li id="fn:iss"> <p>The Internation Space Station illustrates how an orbiting spacecraft is illuminated more than 50% of the time due to its height. You can often see the ISS illuminated in the nighttime sky close to sunset and sunrise (<a href="https://spotthestation.nasa.gov/">link</a>).&#160;<a class="footnote-backref" href="#fnref:iss" title="Jump back to footnote 10 in the text">&#8617;</a></p> </li> <li id="fn:sinusoid"> <p>The ground track on the map is roughly, but not exactly, sinusoidal. As the orbit swings further from the equator, the track deviates more from a pure sinusoid. The shape will depend, of course, on the rectangular map projection. For more information, see <a href="https://math.stackexchange.com/questions/1843444/how-do-great-circles-project-on-the-mercator-projection">this StackExcahnge post</a>.&#160;<a class="footnote-backref" href="#fnref:sinusoid" title="Jump back to footnote 11 in the text">&#8617;</a></p> </li> <li id="fn:formulas"> <p>To get an idea of how the latitude and longitude behave, consider a polar orbit with 90&deg; angle of inclination, one that goes up a line of longitude, crosses the North Pole, and goes down the opposite line of latitude. Now, shift the orbit away from the poles a bit, but keeping a great circle. The spacecraft will go up, nearly along a constant line of longitude, with the latitude increasing steadily. As the spacecraft reaches the peak of its orbit near the North Pole, it will fall a bit short of the Pole but will still rapidly cross over to the other side. During this phase, the spacecraft rapidly crosses many lines of longitude (which are close together near the Pole) until it reaches the opposite line of longitude. Meanwhile, the latitude stops increasing short of 90&deg; and then starts dropping. On the other side, the process repeats, with the longitude nearly constant while the latitude drops relatively constantly.</p> <p>The latitude and longitude are generated by complicated trigonometric functions. The latitude is given by arcsin(sin i * sin (2蟺t/T)), while the longitude is given by 位 = arctan (cos i * tan(2蟺t/T)) + 惟t + 位<sub>0</sub>, where t is the spaceship's flight time starting at the equator, i is the angle of inclination (51.8&#176;), T is the orbital period, 惟 is the angular velocity of the Earth's rotation, and 位<sub>0</sub> is the longitude of the ascending node.&#160;<a class="footnote-backref" href="#fnref:formulas" title="Jump back to footnote 12 in the text">&#8617;</a></p> </li> <li id="fn:solenoid"> <p>An important function of the gears is to scale the rotations as needed by using different gear ratios. For the most part, I'm ignoring the gear ratios, but the Earth rotation gearing is interesting. The gear driven by the solenoid has 60 teeth, so it rotates exactly once per minute. This gear drives a shaft with a very small gear on the other end with 15 teeth. This gear meshes with a much larger gear with approximately 75 teeth, which will thus rotate once every 5 minutes. The other end of that shaft has a gear with approximately 15 teeth, meshed with a large gear with approximately 90 teeth. This divides the rate by 6, yielding a rotation every 30 minutes. The sequence of gears and shafts continues, until the rotation is reduced to once per day. (The tooth counts are approximate because the gears are partially obstructed inside the Globus, making counting difficult.)&#160;<a class="footnote-backref" href="#fnref:solenoid" title="Jump back to footnote 13 in the text">&#8617;</a></p> </li> <li id="fn:landing"> <p>There's a potential simplification when canceling out the orbital shaft rotation from the Earth rotation. If the orbit motion was taken from differential 5 instead of differential 4, the landing motor effect would get added automatically, eliminating the need for differential 7. I think the landing motor motion was added separately so the mechanism could account for the Earth's rotation during the landing descent.&#160;<a class="footnote-backref" href="#fnref:landing" title="Jump back to footnote 14 in the text">&#8617;</a></p> </li> </ol> </div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'><span class='post-comment-link'> <a class='comment-link' href='https://draft.blogger.com/comment/fullpage/post/6264947694886887540/8868607841305902549' onclick=''> 2 comments: </a> </span> <span class='post-icons'> <span class='item-action'> <a href='https://draft.blogger.com/email-post/6264947694886887540/8868607841305902549' title='Email Post'> <img alt='' class='icon-action' height='13' src='http://img1.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-1138732533'> <a href='https://draft.blogger.com/post-edit.g?blogID=6264947694886887540&postID=8868607841305902549&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <span class='post-backlinks post-comment-link'> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=8868607841305902549&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=8868607841305902549&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=8868607841305902549&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=8868607841305902549&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=8868607841305902549&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'><span class='post-labels'> Labels: <a href="https://www.righto.com/search/label/analog" rel='tag'>analog</a>, <a href="https://www.righto.com/search/label/globus" rel='tag'>globus</a>, <a href="https://www.righto.com/search/label/reverse-engineering" rel='tag'>reverse-engineering</a>, <a href="https://www.righto.com/search/label/space" rel='tag'>space</a> </span> </div> <div class='post-footer-line post-footer-line-3'></div> </div> </div> </div> </div></div> <div class="date-outer"> <div class="date-posts"> <div class='post-outer'> <div class='post hentry' itemprop='blogPost' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'> <meta content='https://static.righto.com/images/globus-electronics/globus-w600.jpg' itemprop='image_url'/> <meta content='6264947694886887540' itemprop='blogId'/> <meta content='6097486051589556772' itemprop='postId'/> <a name='6097486051589556772'></a> <h3 class='post-title entry-title' itemprop='name'> <a href="https://www.righto.com/2023/03/reverse-engineering-electronics-in.html">Reverse-engineering the electronics in the Globus analog navigational computer</a> </h3> <div class='post-header'> <div class='post-header-line-1'></div> </div> <div class='post-body entry-content' id='post-body-6097486051589556772' itemprop='description articleBody'> <style> .hilite {cursor:zoom-in} </style> <p>In the Soyuz space missions, cosmonauts tracked their position above the Earth with a remarkable electromechanical device with a rotating globe. This navigation instrument was an analog computer that used an elaborate system of gears, cams, and differentials to compute the spacecraft's position. Officially, the unit was called a "space navigation indicator" with the Russian acronym 袠袧袣 (INK),<span id="fnref:ink"><a class="ref" href="#fn:ink">1</a></span> but I'll use the nickname "Globus".</p> <p><a href="https://static.righto.com/images/globus-electronics/globus.jpg"><img alt="The INK-2S &quot;Globus&quot; space navigation indicator." class="hilite" height="457" src="https://static.righto.com/images/globus-electronics/globus-w600.jpg" title="The INK-2S &quot;Globus&quot; space navigation indicator." width="600" /></a><div class="cite">The INK-2S "Globus" space navigation indicator.</div></p> <p>We recently received a Globus from a collector and opened it up for repair and reverse engineering. Although the Globus does all its calculations mechanically, it has some electronics to control the motors. Inconveniently, all the wires in the wiring harness to the external connector had been cut so I had to do some reverse engineering before we could power it up. In this blog post, I explain how the electronics operate. (For an overview of the mechanical components inside the Globus, see my <a href="https://www.righto.com/2023/01/inside-globus-ink-mechanical-navigation.html">previous article</a>.)</p> <p><a href="https://static.righto.com/images/globus-electronics/gears.jpg"><img alt="A closeup of the gears inside the Globus. It performed calculations with gears, cams, and differentials." class="hilite" height="375" src="https://static.righto.com/images/globus-electronics/gears-w500.jpg" title="A closeup of the gears inside the Globus. It performed calculations with gears, cams, and differentials." width="500" /></a><div class="cite">A closeup of the gears inside the Globus. It performed calculations with gears, cams, and differentials.</div></p> <!-- ![A closeup of the differential gears inside the Globus. It performed calculations with gears, cams, and differentials.](differentials.jpg "w600") --> <h2>Functionality</h2> <p>The primary purpose of the Globus is to indicate the spacecraft's position. The globe rotated while fixed crosshairs on the plastic dome indicated the spacecraft's position. Thus, the globe matched the cosmonauts' view of the Earth, allowing them to confirm their location. Latitude and longitude dials next to the globe provided a numerical indication of location. The light/shadow dial at the bottom showed when the spacecraft would be illuminated by the sun or in shadow.</p> <p>The mode of the Globus is controlled by a three-position rotary switch near the top of the Globus. The middle position "袟" (袟械屑谢褟, Earth) shows the position of the spacecraft over the Earth. The left position, "袦袩" (屑械褋褌芯 锌芯褋邪写泻懈, landing site) selects the landing position mode. The third position "袨褌泻谢" (off) turns off most of the Globus. This rotary switch is surprisingly complicated with three wafers, each with two poles. Most of the electronics go through this switch, so this switch will appear often in the schematics below.</p> <p><a href="https://static.righto.com/images/globus-electronics/rotary-switch.jpg"><img alt="The rotary switch to select the landing angle mode." class="hilite" height="204" src="https://static.righto.com/images/globus-electronics/rotary-switch-w300.jpg" title="The rotary switch to select the landing angle mode." width="300" /></a><div class="cite">The rotary switch to select the landing angle mode.</div></p> <p>In the landing position mode, the Globus rotates to show where the spacecraft would land if you fired the retrorockets now. This allowed the cosmonauts to evaluate the suitability of this landing site. This position is computed simply by rapidly rotating the globe through a fraction of an orbit, since the landing position will be on the current orbital track. Most of the electronics in the Globus control the motor that performs this rotation.</p> <h2>Overview of the electronics</h2> <p>The Globus is primarily mechanical, but it has more electrical and electronic components than you might expect. The mechanical motion is powered by two solenoids with ratchets to turn gears. The landing site mode is implemented with a motor to rotate to the landing position, controlled by two limit switches. An electroluminescent light indicates the landing position mode. A potentiometer provides position feedback to external devices.</p> <p>To control these components, the Globus has an electronics board with four relays, along with a germanium power transistor and some resistors and diodes.<span id="fnref:flyback"><a class="ref" href="#fn:flyback">2</a></span> Bundles of thin white wires with careful lacing connect the electronics board to the other components.</p> <p><a href="https://static.righto.com/images/globus-electronics/electronics.jpg"><img alt="The electronics circuit board." class="hilite" height="267" src="https://static.righto.com/images/globus-electronics/electronics-w700.jpg" title="The electronics circuit board." width="700" /></a><div class="cite">The electronics circuit board.</div></p> <p>The back of the circuit board has a few more diodes. The wiring is all point-to-point; it is not a printed-circuit board. I will explain the circuitry in more detail below.</p> <p><a href="https://static.righto.com/images/globus-electronics/board-back.jpg"><img alt="The back of the circuit board." class="hilite" height="272" src="https://static.righto.com/images/globus-electronics/board-back-w700.jpg" title="The back of the circuit board." width="700" /></a><div class="cite">The back of the circuit board.</div></p> <h2>The drive solenoids</h2> <p><a href="https://static.righto.com/images/globus-electronics/upper-solenoid.jpg"><img alt="The green cylinder at the front is the upper solenoid, driving the orbital motion. The digit wheels to indicate orbital time are at the left." class="hilite" height="256" src="https://static.righto.com/images/globus-electronics/upper-solenoid-w400.jpg" title="The green cylinder at the front is the upper solenoid, driving the orbital motion. The digit wheels to indicate orbital time are at the left." width="400" /></a><div class="cite">The green cylinder at the front is the upper solenoid, driving the orbital motion. The digit wheels to indicate orbital time are at the left.</div></p> <p>The Globus contains two ratchet solenoids: one for the orbital rotation and one for the Earth's rotation. The complex gear trains and the motion of the globe are driven by these solenoids. These solenoids take 1-hertz pules of 27 volts and 100ms duration. Each pulse causes the solenoid to advance the gear by one tooth; a pawl keeps the gear from slipping back. These small rotations drive the gears throughout the Globus and result in a tiny movement of the globe.</p> <p><a href="https://static.righto.com/images/globus-electronics/solenoid2.jpg"><img alt="The lower driving solenoid powers the Earth rotation." class="hilite" height="281" src="https://static.righto.com/images/globus-electronics/solenoid2-w300.jpg" title="The lower driving solenoid powers the Earth rotation." width="300" /></a><div class="cite">The lower driving solenoid powers the Earth rotation.</div></p> <p>As the schematic shows, the solenoids are controlled by two switches that are closed in the 袦袩 (landing position) and 袟 (Earth orbit) modes. The solenoids are powered through three pins. The wiring doesn't entirely make sense to me. If powered through pins 2A and 7A, the Earth motor is switched while the orbit motor is always powered. But if powered through pins 2A and 5B, both motors are switched. Maybe pin 7A monitors the on/off status of the Globus.</p> <p><a href="https://static.righto.com/images/globus-electronics/schematic-solenoids.jpg"><img alt="Schematic diagram of the solenoid wiring." class="hilite" height="283" src="https://static.righto.com/images/globus-electronics/schematic-solenoids-w200.jpg" title="Schematic diagram of the solenoid wiring." width="200" /></a><div class="cite">Schematic diagram of the solenoid wiring.</div></p> <p>By powering the solenoids with 1 hertz pulses, we caused the Globus to rotate. The motion is very slow (90 minutes for an orbit and one day for the Earth's rotation), so we tried overclocking it at 10 hertz. This made the motion barely visible; Marc used a time-lapse to speed it up in the video below.</p> <iframe width="560" height="315" src="https://www.youtube.com/embed/vCogLM-R8FU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> <h2>The landing location mechanism</h2> <p>The Globus can display where the spacecraft would land if you started a re-entry burn now, with an accuracy of 150 km. This is computed by projecting the current orbit forward for a particular distance, specified as an angle. The cosmonaut specifies this value with the landing angle knob (<a href="http://www.svengrahn.pp.se/histind/Ugol/Ugol.html">details</a>). Rotating the globe to this new position is harder than you might expect, using a motor, limit switches, and the majority of the electronics in the Globus.</p> <p><a href="https://static.righto.com/images/globus-electronics/landing-angle.jpg"><img alt="The landing angle control." class="hilite" height="146" src="https://static.righto.com/images/globus-electronics/landing-angle-w300.jpg" title="The landing angle control." width="300" /></a><div class="cite">The landing angle control.</div></p> <p>The landing angle knob pivots the angle limit switch, shown below. The swing arm moves as the globe rotates to the landing position and hits the angle limit switch when the landing position is reached. When returning to Earth orbit mode, the swing arm swings back until it hits the fixed limit switch. Thus, the globe is rotated by the selected amount when displaying the landing position.</p> <p><a href="https://static.righto.com/images/globus-electronics/landing-angle-diagram.jpg"><img alt="The landing angle function uses a complex mechanism." class="hilite" height="471" src="https://static.righto.com/images/globus-electronics/landing-angle-diagram-w450.jpg" title="The landing angle function uses a complex mechanism." width="450" /></a><div class="cite">The landing angle function uses a complex mechanism.</div></p> <p>To control the motor, the rotary switch reverses the DC motor based on the mode, while the limit switches and power transistor turn the motor on and off. In landing position mode (袦袩), the motor spins the globe forward. The mode switch controls the direction of current flow: from upper right, through the motor, through the angle limit switch, through the transistor, and to ground at the bottom. The motor will rotate the globe and the arm until it hits the "landing position" limit switch, cutting power to the motor and activating the path to the light circuit, which I will discuss below. The diode prevents current flowing backward through the motor to the relay. The power transistor apparently acts as a current sink, regulating the current through the motor. </p> <p><a href="https://static.righto.com/images/globus-electronics/schematic-landing.jpg"><img alt="Schematic diagram of the landing location mechanism." class="hilite" height="591" src="https://static.righto.com/images/globus-electronics/schematic-landing-w400.jpg" title="Schematic diagram of the landing location mechanism." width="400" /></a><div class="cite">Schematic diagram of the landing location mechanism.</div></p> <p>In Earth orbit mode (袟), the motor spins the globe back to its regular position. The mode switch reverses the current flow through the motor: from the upper-left, through the diode and the motor, and out the lower-right to the transistor. At the bottom, the relay completes the circuit until the moving arm hits the fixed orbit limit switch. This opens the normally-closed contact, cutting power to the relay, opening the relay contact, and stopping the motor.</p> <h2>The landing place light</h2> <p>The upper-left corner of the Globus has an electroluminescent light labeled "袦械褋褌芯 锌芯褋邪写泻懈" (Landing place). This light illuminates when the globe indicates the landing place rather than the orbital position. The light is powered by AC provided on two external pins and is controlled by two relays. One relay is activated by the landing circuit described above, when the limit switch closes. The second relay is driven by an external pin. I don't know if this is for a "lamp test" or control from an external system.</p> <p><a href="https://static.righto.com/images/globus-electronics/schematic-light.jpg"><img alt="Schematic diagram of the circuitry that controls the electroluminescent light." class="hilite" height="361" src="https://static.righto.com/images/globus-electronics/schematic-light-w400.jpg" title="Schematic diagram of the circuitry that controls the electroluminescent light." width="400" /></a><div class="cite">Schematic diagram of the circuitry that controls the electroluminescent light.</div></p> <p>We powered the light with an EL inverter from <a href="http://adafru.it/448">Adafruit</a>, which produces 100 VAC at 2KHz, perhaps. The spacecraft used a "Static Inverter" to power the light, but I don't have any details on it. The display provides a nice blue glow.</p> <!-- ![The Adafruit inverter. ](inverter.jpg "w300") --> <p><a href="https://static.righto.com/images/globus-electronics/illuminated.jpg"><img alt="The landing position indicator, illuminated." class="hilite" height="230" src="https://static.righto.com/images/globus-electronics/illuminated-w300.jpg" title="The landing position indicator, illuminated." width="300" /></a><div class="cite">The landing position indicator, illuminated.</div></p> <h2>The potentiometer</h2> <p>A 360&deg; potentiometer (below) converts the spacecraft's orbital position into a resistance. Sources indicate that the Globus provides this signal to other units on the spacecraft, but I don't know specifically what these devices are. The potentiometer appears to linearly track the spacecraft's position through the orbital cycle. Note that this is not the same as the latitude, which oscillates, or the longitude, which is non-linear.</p> <p><a href="https://static.righto.com/images/globus-electronics/rheostat.jpg"><img alt="The potentiometer converts the orbital position into a voltage. To the right is the cam that produces the longitude display. Antarctica is visible on the globe." class="hilite" height="351" src="https://static.righto.com/images/globus-electronics/rheostat-w400.jpg" title="The potentiometer converts the orbital position into a voltage. To the right is the cam that produces the longitude display. Antarctica is visible on the globe." width="400" /></a><div class="cite">The potentiometer converts the orbital position into a voltage. To the right is the cam that produces the longitude display. Antarctica is visible on the globe.</div></p> <p>As the schematic below shows, the potentiometer has a resistor on one leg for some reason.</p> <p><a href="https://static.righto.com/images/globus-electronics/schematic-pot.jpg"><img alt="Schematic diagram of the orbital-position potentiometer." class="hilite" height="206" src="https://static.righto.com/images/globus-electronics/schematic-pot-w230.jpg" title="Schematic diagram of the orbital-position potentiometer." width="230" /></a><div class="cite">Schematic diagram of the orbital-position potentiometer.</div></p> <h2>The external connector</h2> <p>To connect the Globus to the rest of the spacecraft, the back of the Globus has a 32-pin connector, a standard RS32TV Soviet military design.</p> <p><a href="https://static.righto.com/images/globus-electronics/back.jpg"><img alt="The back of the Globus, with the connector at the upper left." class="hilite" height="289" src="https://static.righto.com/images/globus-electronics/back-w400.jpg" title="The back of the Globus, with the connector at the upper left." width="400" /></a><div class="cite">The back of the Globus, with the connector at the upper left.</div></p> <p>The connector was wired to nearby 5-pin and 7-pin terminal strips. In the schematics, I label these connectors as "B" and "A" respectively. Inconveniently, all the wires to the box's external connector were cut (the black wires), perhaps to decommission the unit. The pinout of the external connector is unknown so we can't easily reconnect the wires.</p> <p><a href="https://static.righto.com/images/globus-electronics/cut-wires.jpg"><img alt="A closeup of the back of the connector showing the cut black wires." class="hilite" height="295" src="https://static.righto.com/images/globus-electronics/cut-wires-w400.jpg" title="A closeup of the back of the connector showing the cut black wires." width="400" /></a><div class="cite">A closeup of the back of the connector showing the cut black wires.</div></p> <h2>Conclusions</h2> <p>By tracing out the wiring of the Globus, I determined its circuitry. This was more difficult than expected, since the wiring consists of bundles of identical white wires. Moreover, many things go through the mode switch, and its terminals were inaccessible. Between the mode switch and the limit switches, there were many cases to check.</p> <p>Once I determined the circuitry, we could power up the Globus. So far, we have powered the solenoids to turn the Globus. We also illuminated the landing position light. Finally, we ran the landing position motor.</p> <p>Follow me on Twitter <a href="https://twitter.com/kenshirriff">@kenshirriff</a> or <a href="https://www.righto.com/feeds/posts/default">RSS</a> for updates. I've also started experimenting with Mastodon recently as <a href="https://oldbytes.space/@kenshirriff">@oldbytes.space@kenshirriff</a>. Many thanks to Marcel for providing the Globus.</p> <h2>Notes and references</h2> <div class="footnote"> <ol> <li id="fn:ink"> <p>In Russian, the name for the device is "袠薪写懈泻邪褌芯褉 袧邪胁懈谐邪褑懈芯薪薪褘泄 袣芯褋屑懈褔械褋泻懈泄" abbreviated as 袠袧袣 (INK). This translates to "space navigation indicator."&#160;<a class="footnote-backref" href="#fnref:ink" title="Jump back to footnote 1 in the text">&#8617;</a></p> </li> <li id="fn:flyback"> <p>Most of the diodes are <a href="https://en.wikipedia.org/wiki/Flyback_diode">flyback diodes</a>, two diodes in series across each relay coil to eliminate the inductive kick when the coil is disconnected.&#160;<a class="footnote-backref" href="#fnref:flyback" title="Jump back to footnote 2 in the text">&#8617;</a></p> </li> </ol> </div> <div style='clear: both;'></div> </div> <div class='post-footer'> <div class='post-footer-line post-footer-line-1'><span class='post-comment-link'> <a class='comment-link' href='https://draft.blogger.com/comment/fullpage/post/6264947694886887540/6097486051589556772' onclick=''> 3 comments: </a> </span> <span class='post-icons'> <span class='item-action'> <a href='https://draft.blogger.com/email-post/6264947694886887540/6097486051589556772' title='Email Post'> <img alt='' class='icon-action' height='13' src='http://img1.blogblog.com/img/icon18_email.gif' width='18'/> </a> </span> <span class='item-control blog-admin pid-1138732533'> <a href='https://draft.blogger.com/post-edit.g?blogID=6264947694886887540&postID=6097486051589556772&from=pencil' title='Edit Post'> <img alt='' class='icon-action' height='18' src='https://resources.blogblog.com/img/icon18_edit_allbkg.gif' width='18'/> </a> </span> </span> <span class='post-backlinks post-comment-link'> </span> <div class='post-share-buttons goog-inline-block'> <a class='goog-inline-block share-button sb-email' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=6097486051589556772&target=email' target='_blank' title='Email This'><span class='share-button-link-text'>Email This</span></a><a class='goog-inline-block share-button sb-blog' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=6097486051589556772&target=blog' onclick='window.open(this.href, "_blank", "height=270,width=475"); return false;' target='_blank' title='BlogThis!'><span class='share-button-link-text'>BlogThis!</span></a><a class='goog-inline-block share-button sb-twitter' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=6097486051589556772&target=twitter' target='_blank' title='Share to X'><span class='share-button-link-text'>Share to X</span></a><a class='goog-inline-block share-button sb-facebook' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=6097486051589556772&target=facebook' onclick='window.open(this.href, "_blank", "height=430,width=640"); return false;' target='_blank' title='Share to Facebook'><span class='share-button-link-text'>Share to Facebook</span></a><a class='goog-inline-block share-button sb-pinterest' href='https://draft.blogger.com/share-post.g?blogID=6264947694886887540&postID=6097486051589556772&target=pinterest' target='_blank' title='Share to Pinterest'><span class='share-button-link-text'>Share to Pinterest</span></a> </div> </div> <div class='post-footer-line post-footer-line-2'><span class='post-labels'> Labels: <a href="https://www.righto.com/search/label/analog" rel='tag'>analog</a>, <a href="https://www.righto.com/search/label/globus" rel='tag'>globus</a>, <a href="https://www.righto.com/search/label/space" rel='tag'>space</a> </span> </div> <div class='post-footer-line post-footer-line-3'></div> </div> </div> </div> </div></div> </div> <div class='blog-pager' id='blog-pager'> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href="https://www.righto.com/search/label/analog?updated-max=2023-03-04T10:16:00-08:00&max-results=20&start=3&by-date=false" id='Blog1_blog-pager-older-link' title='Older Posts'>Older Posts</a> </span> <a class='home-link' href="https://www.righto.com/">Home</a> </div> <div class='clear'></div> </div></div> </div> </div> <div class='column-left-outer'> <div class='column-left-inner'> <aside> </aside> </div> </div> <div class='column-right-outer'> <div class='column-right-inner'> <aside> <div class='sidebar section' id='sidebar-right-1'><div class='widget HTML' data-version='1' id='HTML2'> <div class='widget-content'> <style> @import url('https://fonts.googleapis.com/css?family=Montserrat:300,400,500,700'); .form-preview { display: flex; flex-direction: column; justify-content: center; margin-top: 30px; padding: clamp(17px, 5%, 40px) clamp(17px, 7%, 50px); max-width: 350px; min-height: 200px; border-radius: 6px; box-shadow: 0 5px 25px rgba(34, 60, 47, 0.25); } .form-preview, .form-preview *{ box-sizing: border-box; } .form-preview .preview-heading { width: 100%; } .form-preview .preview-heading h5{ margin-top: 0; margin-bottom: 0; } .form-preview .preview-input-field { margin-top: 20px; width: 100%; } .form-preview .preview-input-field input { width: 100%; height: 40px; border-radius: 6px; border: 2px solid #e9e8e8; background-color: #fff; outline: none; } .form-preview .preview-input-field input::placeholder, .form-preview .preview-input-field input { opacity: 0.5; color: #000; font-family: "Montserrat"; font-size: 14px; font-weight: 500; line-height: 20px; text-align: center; } .form-preview .preview-submit-button { margin-top: 10px; width: 100%; } .form-preview .preview-submit-button button { width: 100%; height: 40px; border: 0; border-radius: 6px; line-height: 0px; } .form-preview .preview-submit-button button:hover { cursor: pointer; } </style><form data-v-4c58e686="" action="https://api.follow.it/subscription-form/U3NBTmZKVkI1YVpCa000a0RCZHFiQ3FYMko1cWRTZTN6K3hJdWM2QWxJbE1uVXdXUHZZVzJVQzVLZGh5Y0RCVXB2d2JSTzBobGhuY0FsZnlHbVdFZ2VTN2Q4Vy84RnIxUTgzVlcrbXNIR0Y0aW93d3REM2J6VS9RL0gxWURnV1d8ZWN0YStwUWdWWUFiOTIyWDVGWjdYYVdGZEVNcC9qODZacjlwWXRIcEJQRT0=/8" method="post"><div data-v-4c58e686="" class="form-preview" style="background-color: rgb(255, 255, 255); border-style: solid; border-width: 1px; border-color: rgb(204, 204, 204); position: relative;"><div data-v-4c58e686="" class="preview-heading"><h5 data-v-4c58e686="" style="font-family: Montserrat; font-weight: bold; color: rgb(0, 0, 0); font-size: 12px; text-align: center;">Get new posts by email:</h5></div> <div data-v-4c58e686="" class="preview-input-field"><input data-v-4c58e686="" type="email" name="email" placeholder="Enter your email" spellcheck="false" /></div> <div data-v-4c58e686="" class="preview-submit-button"><button data-v-4c58e686="" type="submit" style="font-family: Montserrat; font-weight: bold; color: rgb(255, 255, 255); font-size: 12px; text-align: center; background-color: rgb(0, 0, 0);">Subscribe</button></div></div></form> </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML3'> <h2 class='title'>About the site</h2> <div class='widget-content'> <a href="https://www.righto.com/p/index.html">Contact info and site index</a> </div> <div class='clear'></div> </div><div class='widget PopularPosts' data-version='1' id='PopularPosts1'> <h2>Popular Posts</h2> <div class='widget-content popular-posts'> <ul> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href="https://www.righto.com/2025/02/origin-of-mainframe-term.html" target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uUSLDU2931XuYvrrvqGycQOuaXlkpp8ov_PPpv38ooW8n-dxySEXVchhTlvbeKYTKYOOx5_KaOQScIA-QyYT_1kT8Q6he0rAstIK00H3AEWZ5YE6U01B76wDhEuKPQT59jMA=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href="https://www.righto.com/2025/02/origin-of-mainframe-term.html">The origin and unexpected evolution of the word "mainframe"</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href="https://www.righto.com/2024/05/blog-post.html" target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vKARwRFh7dj63gpeTj5RAqT9JZgTtgVX4TSs1QmgqO5ZBzObFwZk8xyR6t4WEub5vYhyCoVmwfzBAhWB_r8JoEiiDpE3Ew6hRzjnw_iyAPdSGhz3_lU9I3AZjyUbW2G0WKsZygj9KZk8qqiga01qSL=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href="https://www.righto.com/2024/05/blog-post.html">Inside a vintage aerospace navigation computer of uncertain purpose</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href="https://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html" target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uUAIn8nekPsJ_HMP8TTxeLj6KSgacauiuvnziiH3ErwXutz36tHOkMIwfqDv8q2_ZEC5dOGnkhieuUSLC25C84Y7yByQE8yRzVoM4-eF6V9ik=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href="https://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html">A Multi-Protocol Infrared Remote Library for the Arduino</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href="https://www.righto.com/2012/05/apple-iphone-charger-teardown-quality.html" target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t72EY6fouywsHxNGekIpRfeoa9ov1rofB3G8bq7OJAW9hfV1CxaF_qXYAcAC2oKlwV19w6CE6IyMcZdIH-ajXcdW3RBxoQTIsGObeauHkrcMcpmOG6FOSxUfoan2DYZ1fhj6aXkgQl9q4-9HWdBqSAIjY=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href="https://www.righto.com/2012/05/apple-iphone-charger-teardown-quality.html">Apple iPhone charger teardown: quality in a tiny expensive package</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href="https://www.righto.com/2014/12/inside-intel-1405-die-photos-of-shift.html" target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_s32DFYp635n0-RweMHo5hAm8Ly-6Hvf88sMRslAK-lNPVfLMbaWP4moDU7Vvbyt8eyNJoh5pAN7DcgArHFDZ6F02BfDnQhVH-q_v3RgruS-DucCy13_q8VgyHhMFHZhw=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href="https://www.righto.com/2014/12/inside-intel-1405-die-photos-of-shift.html">Inside the Intel 1405: die photos of a shift register memory from 1970</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href="https://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html" target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sct5h7PbshlEnfkugP4XiAfuUdGqlDglxkhCM-fBLbuHCCM9DFTSevNe1vAAAYVHlkchVmg0Xn-MwUV3ZrHpLkFtBu0YNhYEw_MEo16FGnsm7lr3iAcQHNUyOM78D1mQr6=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href="https://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html">Mining Bitcoin with pencil and paper: 0.67 hashes per day</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href="https://www.righto.com/2012/10/a-dozen-usb-chargers-in-lab-apple-is.html" target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tfp_WqVz8KzduLPXeFag1Uca8jmCJ4uo1fUPsfFG47cxY8VsC0KCXxwc0Fu517d2RBwUd1HDTiwU4MczFkoFUv_S9Sej_O0GgQx55cUX5Q33WrbwTSGOLjC-sedVI=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href="https://www.righto.com/2012/10/a-dozen-usb-chargers-in-lab-apple-is.html">A dozen USB chargers in the lab: Apple is very good, but not quite the best</a></div> </div> <div style='clear: both;'></div> </li> <li> <div class='item-thumbnail-only'> <div class='item-thumbnail'> <a href="https://www.righto.com/2025/01/its-time-to-abandon-cargo-cult-metaphor.html" target='_blank'> <img alt='' border='0' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vE6pB3GEyHwq4LeqW-fopQjM2z5hq-H2BiY8ul3Wl35jt7q-OspvFd7PXv68bXphaTAvAWthtpHhdY_sQmWfUfSgpPZvP8RI8oLvwjK1Bzq0T0btVHLqHGvqk8vuaMIw=w72-h72-p-k-no-nu'/> </a> </div> <div class='item-title'><a href="https://www.righto.com/2025/01/its-time-to-abandon-cargo-cult-metaphor.html">The origin of the cargo cult metaphor</a></div> </div> <div style='clear: both;'></div> </li> </ul> <div class='clear'></div> </div> </div><div class='widget BlogSearch' data-version='1' id='BlogSearch1'> <h2 class='title'>Search This Blog</h2> <div class='widget-content'> <div id='BlogSearch1_form'> <form action="https://www.righto.com/search" class='gsc-search-box' target='_top'> <table cellpadding='0' cellspacing='0' class='gsc-search-box'> <tbody> <tr> <td class='gsc-input'> <input autocomplete='off' class='gsc-input' name='q' size='10' title='search' type='text' value=''/> </td> <td class='gsc-search-button'> <input class='gsc-search-button' title='search' type='submit' value='Search'/> </td> </tr> </tbody> </table> </form> </div> </div> <div class='clear'></div> </div><div class='widget Label' data-version='1' id='Label1'> <h2>Labels</h2> <div class='widget-content cloud-label-widget-content'> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/386">386</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/6502">6502</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/8008">8008</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/8085">8085</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href="https://www.righto.com/search/label/8086">8086</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/8087">8087</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/8088">8088</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/aerospace">aerospace</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/alto">alto</a> </span> <span class='label-size label-size-3'> <span dir='ltr'>analog</span> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/Apollo">Apollo</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/apple">apple</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href="https://www.righto.com/search/label/arc">arc</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/arduino">arduino</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/arm">arm</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/beaglebone">beaglebone</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/bitcoin">bitcoin</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href="https://www.righto.com/search/label/c%23">c#</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/cadc">cadc</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/calculator">calculator</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href="https://www.righto.com/search/label/chips">chips</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/css">css</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href="https://www.righto.com/search/label/datapoint">datapoint</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/dx7">dx7</a> </span> <span class='label-size label-size-5'> <a dir='ltr' href="https://www.righto.com/search/label/electronics">electronics</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href="https://www.righto.com/search/label/f%23">f#</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href="https://www.righto.com/search/label/fairchild">fairchild</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/fpga">fpga</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/fractals">fractals</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/genome">genome</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/globus">globus</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href="https://www.righto.com/search/label/haskell">haskell</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href="https://www.righto.com/search/label/HP">HP</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/html5">html5</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/ibm">ibm</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/ibm1401">ibm1401</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/ibm360">ibm360</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href="https://www.righto.com/search/label/intel">intel</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/ipv6">ipv6</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/ir">ir</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/java">java</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/javascript">javascript</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/math">math</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/microcode">microcode</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/oscilloscope">oscilloscope</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/Pentium">Pentium</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/photo">photo</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href="https://www.righto.com/search/label/power%20supply">power supply</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href="https://www.righto.com/search/label/random">random</a> </span> <span class='label-size label-size-5'> <a dir='ltr' href="https://www.righto.com/search/label/reverse-engineering">reverse-engineering</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/sheevaplug">sheevaplug</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/snark">snark</a> </span> <span class='label-size label-size-3'> <a dir='ltr' href="https://www.righto.com/search/label/space">space</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/spanish">spanish</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/synth">synth</a> </span> <span class='label-size label-size-4'> <a dir='ltr' href="https://www.righto.com/search/label/teardown">teardown</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/theory">theory</a> </span> <span class='label-size label-size-1'> <a dir='ltr' href="https://www.righto.com/search/label/unicode">unicode</a> </span> <span class='label-size label-size-2'> <a dir='ltr' href="https://www.righto.com/search/label/Z-80">Z-80</a> </span> <div class='clear'></div> </div> </div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <h2>Blog Archive</h2> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> &#9660;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2025/"> 2025 </a> <span class='post-count' dir='ltr'>(5)</span> <ul class='hierarchy'> <li class='archivedate expanded'> <a class='toggle' href='javascript:void(0)'> <span class='zippy toggle-open'> &#9660;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2025/02/"> February </a> <span class='post-count' dir='ltr'>(1)</span> <ul class='posts'> <li><a href="https://www.righto.com/2025/02/origin-of-mainframe-term.html">The origin and unexpected evolution of the word &quot;m...</a></li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2025/01/"> January </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/"> 2024 </a> <span class='post-count' dir='ltr'>(21)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/12/"> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/11/"> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/10/"> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/09/"> September </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/08/"> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/07/"> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/06/"> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/05/"> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/04/"> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/03/"> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/02/"> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2024/01/"> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/"> 2023 </a> <span class='post-count' dir='ltr'>(35)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/12/"> December </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/11/"> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/10/"> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/09/"> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/08/"> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/07/"> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/05/"> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/04/"> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/03/"> March </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/02/"> February </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2023/01/"> January </a> <span class='post-count' dir='ltr'>(8)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/"> 2022 </a> <span class='post-count' dir='ltr'>(18)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/11/"> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/08/"> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/07/"> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/06/"> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/05/"> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/04/"> April </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/03/"> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/02/"> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2022/01/"> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/"> 2021 </a> <span class='post-count' dir='ltr'>(26)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/12/"> December </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/11/"> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/09/"> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/08/"> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/07/"> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/06/"> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/05/"> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/04/"> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/03/"> March </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/02/"> February </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2021/01/"> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/"> 2020 </a> <span class='post-count' dir='ltr'>(33)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/12/"> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/11/"> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/10/"> October </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/09/"> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/08/"> August </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/07/"> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/06/"> June </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/05/"> May </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/04/"> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/03/"> March </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2020/01/"> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/"> 2019 </a> <span class='post-count' dir='ltr'>(18)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/11/"> November </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/10/"> October </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/09/"> September </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/08/"> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/07/"> July </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/04/"> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/02/"> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2019/01/"> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/"> 2018 </a> <span class='post-count' dir='ltr'>(17)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/12/"> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/09/"> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/08/"> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/06/"> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/05/"> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/04/"> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/03/"> March </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/02/"> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2018/01/"> January </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/"> 2017 </a> <span class='post-count' dir='ltr'>(21)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/12/"> December </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/11/"> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/10/"> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/08/"> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/07/"> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/06/"> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/04/"> April </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/03/"> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/02/"> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2017/01/"> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/"> 2016 </a> <span class='post-count' dir='ltr'>(34)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/12/"> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/10/"> October </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/09/"> September </a> <span class='post-count' dir='ltr'>(8)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/08/"> August </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/07/"> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/06/"> June </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/05/"> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/04/"> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/03/"> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/02/"> February </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2016/01/"> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2015/"> 2015 </a> <span class='post-count' dir='ltr'>(12)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2015/12/"> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2015/11/"> November </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2015/10/"> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2015/08/"> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2015/05/"> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2015/03/"> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2015/02/"> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2014/"> 2014 </a> <span class='post-count' dir='ltr'>(13)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2014/12/"> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2014/10/"> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2014/09/"> September </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2014/05/"> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2014/03/"> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2014/02/"> February </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/"> 2013 </a> <span class='post-count' dir='ltr'>(24)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/11/"> November </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/09/"> September </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/08/"> August </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/07/"> July </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/06/"> June </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/04/"> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/03/"> March </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/02/"> February </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2013/01/"> January </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2012/"> 2012 </a> <span class='post-count' dir='ltr'>(10)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2012/12/"> December </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2012/11/"> November </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2012/10/"> October </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2012/05/"> May </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2012/03/"> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2012/02/"> February </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2011/"> 2011 </a> <span class='post-count' dir='ltr'>(11)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2011/12/"> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2011/07/"> July </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2011/05/"> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2011/04/"> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2011/03/"> March </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2011/02/"> February </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/"> 2010 </a> <span class='post-count' dir='ltr'>(22)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/12/"> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/11/"> November </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/10/"> October </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/08/"> August </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/06/"> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/05/"> May </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/04/"> April </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/03/"> March </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2010/01/"> January </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/"> 2009 </a> <span class='post-count' dir='ltr'>(22)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/12/"> December </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/11/"> November </a> <span class='post-count' dir='ltr'>(5)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/09/"> September </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/08/"> August </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/07/"> July </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/06/"> June </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/04/"> April </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/03/"> March </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/02/"> February </a> <span class='post-count' dir='ltr'>(2)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2009/01/"> January </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2008/"> 2008 </a> <span class='post-count' dir='ltr'>(27)</span> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2008/07/"> July </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2008/06/"> June </a> <span class='post-count' dir='ltr'>(1)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2008/05/"> May </a> <span class='post-count' dir='ltr'>(3)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2008/04/"> April </a> <span class='post-count' dir='ltr'>(4)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2008/03/"> March </a> <span class='post-count' dir='ltr'>(10)</span> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <a class='toggle' href='javascript:void(0)'> <span class='zippy'> &#9658;&#160; </span> </a> <a class='post-count-link' href="https://www.righto.com/2008/02/"> February </a> <span class='post-count' dir='ltr'>(6)</span> </li> </ul> </li> </ul> </div> </div> <div class='clear'></div> </div> </div></div> </aside> </div> </div> </div> <div style='clear: both'></div> <!-- columns --> </div> <!-- main --> </div> </div> <div class='main-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> <footer> <div class='footer-outer'> <div class='footer-cap-top cap-top'> <div class='cap-left'></div> <div class='cap-right'></div> </div> <div class='fauxborder-left footer-fauxborder-left'> <div class='fauxborder-right footer-fauxborder-right'></div> <div class='region-inner footer-inner'> <div class='foot no-items section' id='footer-1'></div> <table border='0' cellpadding='0' cellspacing='0' class='section-columns columns-2'> <tbody> <tr> <td class='first columns-cell'> <div class='foot no-items section' id='footer-2-1'></div> </td> <td class='columns-cell'> <div class='foot no-items section' id='footer-2-2'></div> </td> </tr> </tbody> </table> <!-- outside of the include in order to lock Attribution widget --> <div class='foot section' id='footer-3'><div class='widget Attribution' data-version='1' id='Attribution1'> <div class='widget-content' style='text-align: center;'> Powered by <a href='https://draft.blogger.com' target='_blank'>Blogger</a>. </div> <div class='clear'></div> </div></div> </div> </div> <div class='footer-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </footer> <!-- content --> </div> </div> <div class='content-cap-bottom cap-bottom'> <div class='cap-left'></div> <div class='cap-right'></div> </div> </div> </div> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script type='text/javascript'> window.setTimeout(function() { document.body.className = document.body.className.replace('loading', ''); }, 10); </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/2725212210-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY6fdygQOdA9O1ENhDd5RzOu7tc26Q:1740641426230';_WidgetManager._Init('//draft.blogger.com/rearrange?blogID\x3d6264947694886887540','//www.righto.com/search/label/analog','6264947694886887540'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '6264947694886887540', 'title': 'Ken Shirriff\x27s blog', 'url': 'http://www.righto.com/search/label/analog', 'canonicalUrl': 'http://www.righto.com/search/label/analog', 'homepageUrl': 'http://www.righto.com/', 'searchUrl': 'http://www.righto.com/search', 'canonicalHomepageUrl': 'http://www.righto.com/', 'blogspotFaviconUrl': 'http://www.righto.com/favicon.ico', 'bloggerUrl': 'https://draft.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': false, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-3782444-1', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Ken Shirriff\x26#39;s blog - Atom\x22 href\x3d\x22http://www.righto.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Ken Shirriff\x26#39;s blog - RSS\x22 href\x3d\x22http://www.righto.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Ken Shirriff\x26#39;s blog - Atom\x22 href\x3d\x22https://draft.blogger.com/feeds/6264947694886887540/posts/default\x22 /\x3e\n', 'meTag': '\x3clink rel\x3d\x22me\x22 href\x3d\x22https://draft.blogger.com/profile/08097301407311055124\x22 /\x3e\n', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/dbeedc0fc9862cb8', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'searchLabel': 'analog', 'pageName': 'analog', 'pageTitle': 'Ken Shirriff\x27s blog: analog'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Ken Shirriff\x27s blog', 'description': 'Computer history, restoring vintage computers, IC reverse engineering, and whatever', 'url': 'http://www.righto.com/search/label/analog', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': false, 'isSearch': true, 'isLabelSearch': true, 'search': {'label': 'analog', 'resultsMessage': 'Showing posts with the label analog', 'resultsMessageHtml': 'Showing posts with the label \x3cspan class\x3d\x27search-label\x27\x3eanalog\x3c/span\x3e'}}}]); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'navMessage': 'Showing posts with label \x3cb\x3eanalog\x3c/b\x3e. \x3ca href\x3d\x22http://www.righto.com/\x22\x3eShow all posts\x3c/a\x3e'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML2', 'sidebar-right-1', document.getElementById('HTML2'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML3', 'sidebar-right-1', document.getElementById('HTML3'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts1', 'sidebar-right-1', document.getElementById('PopularPosts1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'sidebar-right-1', document.getElementById('BlogSearch1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar-right-1', document.getElementById('Label1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar-right-1', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull')); </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10