Heathkit HERO 2000 (ET-19) · Volume 5
Sensing — A 360° Ring
The idea: perceive in every direction at once
The single most distinctive thing about the HERO 2000’s senses is not any one
transducer — it is the geometry. Where the HERO 1 and the HERO Jr each carried a
single forward-facing sonar that read range along one line of sight, the HERO 2000
samples its surroundings on 24 bearings spaced 15 degrees apart, which is a full
360-degree circle (24 × 15° = 360°), and it does so for two senses at once: range
(sonar) and light (hero.dsavage.net HERO 2000 spec sheet; theoldrobots.com). The
result is less a “look ahead” sensor than a map of the room around the robot,
refreshed without the machine ever turning its body.
That distinction matters for how the robot behaves. A single-bearing robot must rotate its head, or pivot its whole base, and integrate readings over time to build any picture of its surroundings — and while it turns it is partly blind to where it is not pointed. The HERO 2000 instead reads all 24 directions and presents the program with a vector of 24 numbers, one per bearing. Obstacle avoidance, “follow the brightest light,” and “which way is the open doorway” become array operations over that vector rather than a search that requires moving the hardware (HERO 2000 spec sheet).

The sonar ring
Transducers and bearings
The HERO 2000’s ultrasonic ranging uses two transducers to cover the 24 bearings, 15 degrees apart that make up the 360-degree ring (HERO 2000 spec sheet; theoldrobots.com). The documented record gives the bearing spacing — 15 degrees per step — but does not publish a per-transducer beam angle or the transducer part numbers, and this deep dive does not invent them: the only angular figure that can be stated as fact is the 15-degree bearing-to-bearing spacing of the ring. How the two transducers are physically aimed and sequenced to land readings on all 24 headings is a detail for the factory ET-19 Technical Manual; it is left unclaimed here.
The sonar transducers ride on the robot’s head, the same head that carries the row of status LEDs (see Vol. 8) — the sonar turret is the prominent feature visible at the top of the machine in Figure 2.
Range — and a near-range conflict to flag
The far limit of the sonar is documented consistently: the ring reads out to about 10.5 feet (HERO 2000 spec sheet; theoldrobots.com). The near limit is where the sources disagree, and the disagreement is small but worth flagging rather than papering over:
- the HERO 2000 spec sheet (
hero.dsavage.net) gives a near range of 4 inches; - theoldrobots.com gives 4.5 inches.
Both readings are presented here and attributed; this deep dive does not silently pick one. The half-inch gap is most plausibly a rounding or transcription difference between the two secondary records — but absent the factory ET-19 Technical Manual in hand, the honest statement is that the documented near range is 4 inches per the spec sheet and 4.5 inches per theoldrobots, with the far range about 10.5 feet on both. A program should treat anything inside roughly four inches as below the sonar’s reliable floor.
How the ring is read
The 24-bearing sonar map is produced by a dedicated slave processor — the sonar UPI — not by the main 8088 working the transducers directly. Vol. 2 covers the multiprocessor architecture in full; the relevant fact for sensing is that one of the Intel 8042 UPI peripheral processors is assigned to the sonar subsystem (HERO 2000 spec sheet; Wikipedia, “HERO (robot)”). That slave handles the real-time work of firing the transducers, timing the echoes across the bearings, and handing the finished range vector up to the master, so the user program reads a map rather than juggling echo timing itself. The slave type is gated to the spec sheet’s 8042 UPI; a secondary claim that the slaves are “Z-80” parts is contradicted by the spec sheet and is not adopted here (see Vol. 2 for that conflict).
The light ring
Light sensing follows the same 360-degree, 24-bearing geometry as the sonar. At each of the 24 bearings, 15 degrees apart, the robot reads a light level on a scale of 255 levels — that is, an 8-bit brightness reading per heading, producing a 360-degree light map of the room (HERO 2000 spec sheet). A program can therefore ask not just “how bright is it” but “which direction is brightest,” turning the light ring into a coarse bearing-finder for a lamp, a window, or a doorway spilling light — again without the robot having to rotate to scan.
The pairing of a 24-bearing range map with a 24-bearing light map is the heart of the HERO 2000’s sensing story: two independent 360-degree pictures of the surroundings, aligned bearing-for-bearing, available to the program at once.
The sound sensor
Beyond the two ringed senses, the HERO 2000 carries a sound sensor that reports on a scale of 255 levels (HERO 2000 spec sheet). Unlike the sonar and light, the documented record presents sound as a level reading rather than a 24-bearing ring — i.e. an ambient loudness measurement, 8-bit resolution. The record does not document a directional sound array, so none is claimed here: the sound sensor is gated as a 255-level magnitude reading.
The temperature sensor
The robot reads ambient temperature over a documented span of +60 °F to +90 °F (HERO 2000 spec sheet). That narrow, room-comfort band is consistent with a sensor meant to report the environment a robot would actually operate in rather than an instrument-grade thermometer; it lets a program respond to “the room is warm/cool” within the range a home, classroom, or lab would normally sit in.
Battery and voltage sensing
The HERO 2000 can also sense its own state — it monitors battery / supply voltage (HERO 2000 spec sheet). This is the introspective sense that lets the robot know when it is running low and needs to return to its docking charger. The power subsystem itself — the 12 V battery and the conflict in its rating (14 Ah per the spec sheet vs 24 Ah per theoldrobots) and runtime — is covered in Vol. 4 and Vol. 9; here it is enough to note that battery voltage is one of the quantities the sensing system reports back to the program.
A base-mounted stationary rangefinder
In addition to the head-mounted 360-degree sonar ring, the record notes a stationary rangefinder mounted on the base (HERO 2000 spec sheet). The documented detail is its existence and its base location; the spec sheet does not give it a separate range figure, so none is invented here. Functionally a fixed, body-level ranging sensor complements the head ring well — the head ring reads at head height across all bearings, while a base-level sensor watches the ground plane the wheels are about to cross — but the only claim made here is the documented one: a stationary rangefinder is fitted to the base.
Sensor summary
The HERO 2000’s sensing complement, with each row gated to its source:
Table 1 — The HERO 2000's sensing complement, with each row gated to its source
| Sensor | Documented spec | Source |
|---|---|---|
| Sonar ring | 2 transducers; 24 bearings, 15° apart (360°); ~4 in (spec sheet) / 4.5 in (theoldrobots) to 10.5 ft | spec sheet; theoldrobots |
| Light ring | 255 levels at each of 24 bearings, 15° apart (360° light map) | spec sheet |
| Sound | 255 levels (ambient, non-directional) | spec sheet |
| Temperature | +60 °F to +90 °F | spec sheet |
| Battery / voltage | Supply-voltage / battery-state sensing | spec sheet |
| Base rangefinder | Stationary rangefinder mounted on the base (no separate range published) | spec sheet |
| Dedicated processor | One Intel 8042 UPI slave runs the sonar ring (see Vol. 2) | spec sheet; Wikipedia |
The near-range row is the one open conflict in the sensing record — 4 in (spec sheet) vs 4.5 in (theoldrobots) — and it is flagged rather than resolved. Everything else in the table is consistent across the sources that report it; quantities the record does not publish (transducer part numbers, beam angles beyond the 15-degree bearing spacing, a separate range for the base rangefinder, a directional sound array) are deliberately left unclaimed.

Why the ring matters — the HERO-line contrast
The 360-degree ring is the clearest place to see how far the HERO 2000 moved past its
siblings. The HERO 1 ranged on a single bearing out to about 8 feet, and the HERO Jr
used a single-bearing Polaroid sonar the same way (_shared/comparison.md; HERO 1 and
HERO Jr dives). Both perceived along one line and had to move the hardware — swivel
the head, pivot the base — to learn about any other direction. The HERO 2000, by
contrast, reads all 24 directions at once, for both range and light, and adds
sound, temperature, battery, and a base rangefinder on top (HERO 2000 spec sheet).
That is a qualitative change, not just a longer range. A single-bearing robot builds a picture of its surroundings sequentially and while partly blind; the HERO 2000 is handed a complete 360-degree picture in parallel, the same way its multiprocessor architecture hands off real-time work to dedicated slaves (Vol. 2). The sensing ring and the multiprocessor design are really the same design philosophy expressed twice: do the work in parallel, in dedicated hardware, and present the program with a finished result. Vol. 6 takes up the optional arm — the actuator that lets the robot act on what the ring tells it.