<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Elevator Controller on ErrorZap</title><link>https://errorzap.com/tags/elevator-controller/</link><description>Recent content in Elevator Controller on ErrorZap</description><image><title>ErrorZap</title><url>https://errorzap.com/og.png</url><link>https://errorzap.com/og.png</link></image><generator>Hugo</generator><language>en-US</language><copyright>ErrorZap</copyright><lastBuildDate>Sat, 26 Sep 2026 17:03:00 -0600</lastBuildDate><atom:link href="https://errorzap.com/tags/elevator-controller/index.xml" rel="self" type="application/rss+xml"/><item><title>From Relay Rooms to Circuit Boards</title><link>https://errorzap.com/elevators/the-brain/</link><pubDate>Sat, 26 Sep 2026 17:03:00 -0600</pubDate><guid>https://errorzap.com/elevators/the-brain/</guid><description>Elevator control went from human operators to rooms of clicking relays to microprocessors and variable-frequency drives. What each generation decided, how the modern stack is wired, and what a technician sees when they plug in.</description><content:encoded><![CDATA[<div class="ez-dossier-lede"><span>ELEVATORS · FLOOR 03 · THE CONTROLLER</span><p>For most of the 20th century, the elevator's program was a wiring diagram. You could hear it think.</p></div>
<h2 id="the-short-version">The short version</h2>
<ul>
<li>Early electric elevators had a <strong>human operator</strong> running a lever. Automation didn&rsquo;t take over until the 1940s and &rsquo;50s.</li>
<li>For about 90 years, smooth speed control came from <strong>Ward Leonard motor-generator sets</strong>: a motor spinning a DC generator whose output drove the hoist motor.</li>
<li>Logic lived in <strong>walls of relays</strong>. Floor selectors, timers, and interlocks were all mechanical and electrical, and techs debugged them by ear.</li>
<li>Microprocessor controllers arrived in the 1980s, and <strong>variable-frequency drives</strong> replaced the motor-generators.</li>
<li>A modern elevator is a small network: car controllers, a group supervisor, a drive, door operators, and fixtures, talking over <strong>CAN bus, serial links, and Ethernet</strong>.</li>
</ul>
<figure class="el-fig el-timeline"><figcaption><b>TIMELINE</b>A century of elevator brains</figcaption>
  <ol>
    <li><time>1880</time><b>First electric elevator</b><p>Werner von Siemens shows an electric elevator in Mannheim, Germany.</p></li>
    <li><time>1891</time><b>Ward Leonard control patented</b><p>A constant-speed motor spins a DC generator; varying the generator&rsquo;s field gives smooth, stepless speed. Elevators use it for roughly 90 years.</p></li>
    <li><time>1920s–40s</time><b>Relay logic grows up</b><p>Automatic &ldquo;collective&rdquo; controls answer calls in order without an operator, built entirely from relays, timers, and mechanical floor selectors.</p></li>
    <li><time>1945</time><b>New York&rsquo;s elevator strike</b><p>About 15,000 elevator operators and building workers walk out, stranding much of Manhattan. Building owners start shopping for automatic elevators in earnest.</p></li>
    <li><time>1980s</time><b>Microprocessors move in</b><p>Solid-state controllers replace relay racks. Thyristor and then AC variable-frequency drives replace motor-generator sets.</p></li>
    <li><time>1996</time><b>The machine room disappears</b><p>Flat permanent-magnet motors fit inside the shaft, and the controller moves to a closet.</p></li>
    <li><time>2010s–now</time><b>The elevator joins the network</b><p>Controllers get Ethernet, remote monitoring gateways, and cloud dashboards. See Floor 6.</p></li>
  </ol>
</figure>

<h2 id="when-you-could-hear-it-think">When you could hear it think</h2>
<p>Walk into an old machine room and the controller is a steel cabinet, or a whole
wall, of relays. Each floor has relays that latch when you press its button.
A mechanical <strong>floor selector</strong>, basically a scale model of the shaft driven by
the machine, tracks where the car is and trips contacts to slow it down at the
right place. Timers are dashpots and thermal relays. When a call gets answered,
you hear a cascade of clacks.</p>
<p>Troubleshooting meant a meter, the wiring diagram, and a good ear. The upside:
everything was visible, and a skilled mechanic could fix almost anything with
parts off the shelf.</p>
<div class="el-videos">

<figure class="el-yt">
  <button type="button" class="el-yt-play" data-yt="TJM1rwMyhjQ" aria-label="Play video: Old relay elevator controller: complete run-through">
    <img src="https://i.ytimg.com/vi/TJM1rwMyhjQ/hqdefault.jpg" alt="" loading="lazy" width="480" height="360">
    <span class="el-yt-btn" aria-hidden="true">▶</span>
  </button>
  <figcaption><b>Old relay elevator controller: complete run-through</b><span>mrmattandmrchay</span><small>A British relay controller that&rsquo;s still in service, explained circuit by circuit.</small>
    <a href="https://www.youtube.com/watch?v=TJM1rwMyhjQ" rel="noopener" target="_blank">Watch on YouTube ↗</a></figcaption>
</figure>
<script>
document.addEventListener('click', e => {
  const b = e.target.closest('.el-yt-play'); if (!b) return;
  const f = document.createElement('iframe');
  f.src = 'https://www.youtube-nocookie.com/embed/' + b.dataset.yt + '?autoplay=1&rel=0';
  f.title = b.getAttribute('aria-label'); f.allow = 'autoplay; encrypted-media; picture-in-picture'; f.allowFullscreen = true;
  f.className = 'el-yt-frame'; b.replaceWith(f);
});
</script>


<figure class="el-yt">
  <button type="button" class="el-yt-play" data-yt="Ia4RV3JYWGg" aria-label="Play video: 1971 vintage Otis with relay logic controllers in action">
    <img src="https://i.ytimg.com/vi/Ia4RV3JYWGg/hqdefault.jpg" alt="" loading="lazy" width="480" height="360">
    <span class="el-yt-btn" aria-hidden="true">▶</span>
  </button>
  <figcaption><b>1971 vintage Otis with relay logic controllers in action</b><span>JimLiElevators</span><small>Watch the relays move as calls come in.</small>
    <a href="https://www.youtube.com/watch?v=Ia4RV3JYWGg" rel="noopener" target="_blank">Watch on YouTube ↗</a></figcaption>
</figure>

</div>
<h2 id="the-modern-stack">The modern stack</h2>
<p>Today the same job is split into layers, and each layer is its own computer.</p>
<figure class="el-fig el-stack">
  <figcaption><b>FIG. 3</b>Who decides what. Commands flow down the stack. The cloud only watches, and the safety chain can overrule everyone.</figcaption>
  <svg viewBox="0 0 360 540" role="img" aria-labelledby="el-stack-t">
    <title id="el-stack-t">Layered diagram: hall buttons and destination kiosks feed a group supervisor, which assigns calls to car controllers, which command the drive and the motor and brake. A cloud box receives a one-way dashed data line from a car controller. A hardwired safety chain box can cut power to the motor and brake.</title>
    <defs><marker id="el-ah" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M0 0L10 5L0 10z" class="ah"/></marker></defs>
    <rect width="360" height="540" class="bg"/>
    <g class="box in"><rect x="10" y="14" width="165" height="56" rx="8"/><text x="22" y="38">HALL BUTTONS</text><text x="22" y="56" class="sub">up / down</text></g>
    <g class="box in"><rect x="185" y="14" width="165" height="56" rx="8"/><text x="197" y="38">DEST. KIOSK</text><text x="197" y="56" class="sub">badge, phone, keypad</text></g>
    <g class="box brain"><rect x="10" y="108" width="220" height="60" rx="8"/><text x="22" y="133">GROUP SUPERVISOR</text><text x="22" y="153" class="sub">who gets which call</text></g>
    <g class="box cloud"><rect x="246" y="108" width="104" height="60" rx="28"/><text x="266" y="133">CLOUD</text><text x="266" y="153" class="sub">watches</text></g>
    <g class="box"><rect x="10" y="206" width="165" height="60" rx="8"/><text x="22" y="231">CAR CTRL A</text><text x="22" y="251" class="sub">doors, leveling</text></g>
    <g class="box"><rect x="185" y="206" width="165" height="60" rx="8"/><text x="197" y="231">CAR CTRL B</text><text x="197" y="251" class="sub">one per car</text></g>
    <g class="box"><rect x="10" y="304" width="165" height="56" rx="8"/><text x="22" y="328">VVVF DRIVE</text><text x="22" y="346" class="sub">speed, torque, regen</text></g>
    <g class="box"><rect x="10" y="398" width="165" height="56" rx="8"/><text x="22" y="422">MOTOR + BRAKE</text><text x="22" y="440" class="sub">spring-applied brake</text></g>
    <g class="box safe"><rect x="185" y="304" width="165" height="222" rx="8"/><text x="197" y="328">SAFETY CHAIN</text><text x="197" y="352" class="sub">door locks</text><text x="197" y="370" class="sub">governor switch</text><text x="197" y="388" class="sub">pit + car-top stops</text><text x="197" y="406" class="sub">final limits</text><text x="197" y="438" class="sub">one series loop:</text><text x="197" y="456" class="sub">any open contact</text><text x="197" y="474" class="sub">= no power,</text><text x="197" y="492" class="sub">brake drops</text></g>
    <g class="flow">
      <path d="M92 70V108" marker-end="url(#el-ah)"/><path d="M230 70L180 108" marker-end="url(#el-ah)"/>
      <path d="M92 168V206" marker-end="url(#el-ah)"/><path d="M190 168L250 206" marker-end="url(#el-ah)"/>
      <path d="M92 266V304" marker-end="url(#el-ah)"/><path d="M92 360V398" marker-end="url(#el-ah)"/>
    </g>
    <path d="M320 206V168" class="tap" marker-end="url(#el-ah)"/>
    <path d="M185 426H177" class="kill" marker-end="url(#el-ah)"/>
    <text x="10" y="484" class="sub killtxt">← the safety chain can</text>
    <text x="10" y="502" class="sub killtxt">cut power at any time</text>
    <circle r="4" class="pkt"><animateMotion dur="3.4s" repeatCount="indefinite" path="M92 70V108V168V206V266V304V360V398"/></circle>
    <circle r="4" class="pkt"><animateMotion dur="2.8s" begin="1.2s" repeatCount="indefinite" path="M230 70L180 108L190 168L250 206"/></circle>
    <circle r="3.5" class="pkt2"><animateMotion dur="2.2s" repeatCount="indefinite" path="M320 206V168"/></circle>
  </svg>
</figure>

<ul>
<li><strong>Car controller.</strong> One per car. Runs the doors, leveling, direction,
special modes (Floor 5), fault handling, and the speed profile sent to the drive.</li>
<li><strong>Group supervisor.</strong> Owns the bank. Decides which car answers which call,
parks idle cars, and switches strategies for morning rush, lunch, and
evening (Floor 4).</li>
<li><strong>Drive.</strong> A variable-voltage, variable-frequency (VVVF) inverter that
synthesizes three-phase power for the motor. It follows jerk-limited
&ldquo;S-curve&rdquo; speed profiles, which is why a good elevator starts and stops
without that stomach lurch. An encoder closes the speed loop.</li>
<li><strong>Position.</strong> Absolute encoders and landing-system magnets or tape in the
shaft. After installation, the car does a slow <strong>learning trip</strong> to map
every floor height into memory.</li>
<li><strong>Buses.</strong> CAN bus, RS-485, and proprietary serial links to car panels, hall
fixtures, door operators, and load-weighing sensors. Ethernet between cars
and the group computer.</li>
</ul>
<p>Open-architecture controller makers publish enough to show how this is
organized. MCE&rsquo;s Motion series, for example, splits the car into operation
control, motion control, and power control boards, with CAN ports where a
handheld tool plugs in and Ethernet for a PC monitoring app.</p>
<h2 id="what-the-technician-sees">What the technician sees</h2>
<p>On a modern controller, the &ldquo;machine room&rdquo; is a small screen or a handheld
tool. Typical menus include live car status (position, speed, direction, door
state, safety chain inputs), a <strong>fault log</strong> with codes and timestamps, drive
parameters (contract speed, acceleration, jerk, encoder counts, motor
nameplate), hoistway learning, mode overrides for inspection and testing, raw
I/O monitoring, and group screens showing every hall call and car assignment.</p>
<p>Some tools are physical keys to the kingdom. This video shows a technician
restoring a Mitsubishi controller board&rsquo;s program with the manufacturer&rsquo;s
service card, a rare look at OEM maintenance software.</p>

<figure class="el-yt">
  <button type="button" class="el-yt-play" data-yt="jdjjbWRdus4" aria-label="Play video: Restoring a Mitsubishi elevator board&#39;s program with the service tool">
    <img src="https://i.ytimg.com/vi/jdjjbWRdus4/hqdefault.jpg" alt="" loading="lazy" width="480" height="360">
    <span class="el-yt-btn" aria-hidden="true">▶</span>
  </button>
  <figcaption><b>Restoring a Mitsubishi elevator board&#39;s program with the service tool</b><span>Elevator Vip</span><small>Firmware as a physical object: the board, the card, the procedure.</small>
    <a href="https://www.youtube.com/watch?v=jdjjbWRdus4" rel="noopener" target="_blank">Watch on YouTube ↗</a></figcaption>
</figure>

<p>Who gets those tools is a live fight. More on that on Floor 5.</p>
<h2 id="sources">Sources</h2>
<ol class="ez-sources">
<li><a href="https://en.wikipedia.org/wiki/Ward_Leonard_control">Wikipedia: Ward Leonard control</a></li>
<li><a href="https://en.wikipedia.org/wiki/Elevator">Wikipedia: Elevator (history, Siemens 1880)</a></li>
<li><a href="https://en.wikipedia.org/wiki/Elevator_Strikes">Wikipedia: Elevator Strikes (New York, 1945)</a></li>
<li><a href="https://www.kone.com/en/news-and-insights/stories/making-room-for-more-since-1996.aspx">KONE: MonoSpace and EcoDisc, 1996</a></li>
<li><a href="https://www.kebamerica.com/blog/regenerative-drives-for-elevator-applications/">KEB America: regenerative drives for elevators</a></li>
<li><a href="https://www.nidec-elevator.com/">Nidec Elevator / MCE: Motion controller documentation</a></li>
</ol>
]]></content:encoded></item></channel></rss>