Heathkit HERO Jr (RT-1) · Volume 2

Hardware Architecture — A 6808, a Big ROM, and Room to Grow

The shape of the machine

Strip away the red plastic body, the sensor head, and the keypad, and the HERO Jr is a small single-board computer that happens to drive wheels and talk. At its centre sits a Motorola 6808, an 8-bit processor clocked at 1 MHz — the same processor family that runs the earlier HERO 1 (HERO FAQ, hero.dsavage.net; partofthething.com, “The Hero Jr. personal robot from HeathKit”). Around that processor Heathkit’s consumer division arranged just enough memory to be useful and no more: 2 KB of RAM, a deliberately large 32 KB ROM, and a set of memory-mapped peripherals that connect the processor to the robot’s sonar, its speech chip, its motors, and its keypad.

The architecture tells the whole product story in miniature. The HERO 1 spent its silicon budget on a bare programming environment and left the cleverness to the owner; the HERO Jr spends it the other way — a modest scratchpad RAM, but a ROM big enough to hold a fully worked-out robot personality the moment power is applied. The trade is explicit: the HERO Jr drops the HERO 1’s manipulator arm and rotating head and reinvests in a large behaviour ROM instead (HERO FAQ; theoldrobots.com). The volumes that follow open each peripheral on the far side of the bus; this one covers the processor, the memory, and the power that feeds them.

Figure 1 — Block view of the HERO Jr's architecture: a 1 MHz Motorola 6808 on a
shared 8-bit data / 16-bit address bus, with 2 KB RAM, a 32 KB ROM, and the
memory-mapped peripheral ports that reach…
Figure 1 — Block view of the HERO Jr's architecture: a 1 MHz Motorola 6808 on a shared 8-bit data / 16-bit address bus, with 2 KB RAM, a 32 KB ROM, and the memory-mapped peripheral ports that reach the keypad, the Votrax speech synthesizer, the LED display, the sonar and light/sound sensors, and the drive and steering motors. Interpretive diagram drawn from documented HERO Jr specifications.

The processor — a Motorola 6808 at 1 MHz

The HERO Jr is built around the Motorola 6808, an 8-bit microprocessor of the 6800 family running at a 1 MHz clock (HERO FAQ; Dilettante). It is the same basic processor that powers the HERO 1, which is why the two robots share so much of their low-level software character despite their very different aims — a HERO Jr is, at the instruction-set level, a cousin of the HERO 1 rather than a different machine (theoldrobots.com).

In 6800-family terms the 6808 is a stripped, externally-fed member of the line: an 8-bit data path and a 16-bit address bus, which by definition lets the processor reach a 64 KB address space. Everything the HERO Jr’s CPU can touch — its RAM, its ROM, and every peripheral — has to live somewhere inside that 64 KB window, and the way Heathkit divided the window is what the memory map (below) describes. The 6808 carries no useful on-chip memory of its own, so the robot’s RAM and ROM are external devices on the bus; the processor is, in effect, the conductor, and the memory and peripherals are the orchestra it reads from and writes to one byte at a time at a 1 MHz beat.

At that clock the HERO Jr is not fast by any modern measure, and it was not fast in 1984 either. But a personal robot’s real-time demands are gentle — read a sonar echo, decide whether to turn, push a phoneme to the speech chip, blink an LED — and an 8-bit processor stepping through a tight ROM loop at a microsecond per cycle is entirely adequate to roam a living room and react to it. The design point was never raw throughput; it was doing something sensible, reliably, out of the box.

Memory — a small RAM and a very large ROM

The memory subsystem is where the HERO Jr most clearly diverges from its educational sibling. It pairs a small read/write scratchpad with an unusually large read-only store, and the asymmetry is the whole design.

Figure 2 — Interpretive memory layout: a 64 KB address space (the reach of the
6808's 16-bit address bus) populated by a 32 KB ROM holding the robot monitor and the
built-in personality programs, a…
Figure 2 — Interpretive memory layout: a 64 KB address space (the reach of the 6808's 16-bit address bus) populated by a 32 KB ROM holding the robot monitor and the built-in personality programs, a 2 KB base RAM expandable to 24 KB, and the memory-mapped I/O region through which the processor reaches the robot's peripherals. Exact addresses are deferred to the HERO Jr Programmer's Guide; this view is qualitative. Interpretive diagram drawn from documented HERO Jr specifications.

RAM — 2 KB, growing to 24 KB

The HERO Jr ships with 2 KB of RAM, implemented as a single 6116 static RAM device (HERO FAQ; theoldrobots.com). The 6116 is the standard 2 KB × 8 static RAM of the era — fast, simple, and needing no refresh — and one of them is all the base robot carries for variables, stack, and any program a user enters from the keypad. For the out-of-the-box experience that is enough, because the behaviours an owner invokes with the personality keys live in ROM and need the RAM only as working scratch.

For owners who wanted to write longer programs, the RAM is expandable to 24 KB (HERO FAQ; theoldrobots.com) — a twelve-fold growth over the base. The expansion is part of the consumer-friendly accessory model rather than a soldering project: the RTA-1-5 cartridge/RAM adapter adds 8 KB as a snap-in upgrade (theoldrobots.com), and the cartridge ecosystem (Vol 7) is the route by which the memory grows. The exact partition of the 24 KB ceiling across base RAM and added modules, and the addresses at which each block appears, are matters the HERO Jr Programmer’s Guide documents in full; they are not reproduced here, and no specific address is asserted.

ROM — 32 KB, and why it is so large

The headline number in the HERO Jr’s memory is its 32 KB ROM (HERO FAQ; theoldrobots.com). For a 1984 home robot that is a large read-only store, and the size is the direct, physical expression of the product’s consumer philosophy. The ROM holds two things at once: the robot monitor — the low-level firmware that brings the machine up, scans the keypad, and arbitrates the peripherals — and the built-in personality programs, the ready-made behaviours that the labelled keys invoke (HERO FAQ; theoldrobots.com).

Those personality programs are the reason the ROM is so big. Each labelled key on the head — Sing, Play, Poet, Gab, Alarm, Guard, Help, Plan (theoldrobots.com; HERO FAQ; Dilettante) — starts a program that already lives in this ROM; pressing the key does not load code from anywhere, it merely runs a routine that was burned in at the factory. A robot that sings, recites, stands guard, and patters has to carry the scripts for all of that, and 32 KB is what carrying them costs. Vol 5 opens these behaviours one by one; the architectural point here is simply that the ROM is large because the personality is resident in it, not bolted on as an afterthought.

This is the single sharpest contrast with the HERO 1. The HERO 1 carried roughly a 2 KB monitor ROM — just enough firmware to run a hexadecimal programming front-end — and left the robot’s behaviour to programs the owner wrote and stored in RAM (see the HERO 1 deep dive; _shared/comparison.md). The HERO Jr inverts that allocation: a 32 KB ROM holds a complete set of behaviours, so the 2 KB RAM can stay small. The HERO 1 is a robot you teach; the HERO Jr is a robot that already knows a repertoire and lets you select from it. The memory map is that thesis rendered in silicon.

Memory-mapped I/O — the bridge to the body

The 6808, like the rest of the 6800 family, has no separate I/O instructions: peripherals are reached as if they were memory. A read or a write to a particular address in the 64 KB space does not touch RAM or ROM at all but instead talks to a hardware port — a latch that drives the LED display, a register inside the Votrax speech chip, a control line to a motor, a status bit from a sensor. This is memory-mapped I/O, and on the HERO Jr it is the bridge between the computer at the centre and the robot wrapped around it.

Every subsystem covered in the volumes ahead sits on the far side of this bridge. The drive and steering electronics (Vol 3) are commanded by writing to their mapped ports; the sonar, light, and sound sensors (Vol 4) are read back through theirs; the Votrax SC-01/SC-01A speech synthesizer and the LED display (Vol 5) are driven the same way, the processor pushing phoneme codes to the speech chip and bit patterns to the LEDs; and the keypad that the owner presses is itself scanned through mapped ports. From the processor’s point of view there is no difference between writing a byte to memory and steering the robot — both are stores to an address — which is exactly what makes a small 8-bit CPU sufficient to run a whole machine.

Because the peripheral registers are simply addresses, they too consume part of the 64 KB window, alongside the ROM and the RAM. The precise port addresses — which location reads the sonar, which writes the speech chip — are documented in the HERO Jr Programmer’s Guide, the reference an owner consulted to drive the hardware from HJPL or BASIC (Vol 6). They are deliberately not invented here: the architecture is described in terms of what connects to the bus, not the specific addresses at which each port appears, which the factory guide is the authority for.

Power — two batteries and about four hours

The whole assembly runs from a self-contained battery system. The base HERO Jr carries two 6 V, 4.0 Ah rechargeable batteries, good for roughly 4 hours of runtime during normal exploring (theoldrobots.com). Those four hours describe a robot doing what the HERO Jr was built to do — roaming, sensing, talking, reacting — rather than a bench-idle figure; the actual endurance varies with how hard the motors and the speech chip are worked, as it does on any battery robot.

For owners who wanted longer sessions, the RTA-1-4 accessory doubles the capacity by adding two more batteries (theoldrobots.com), taking the robot from two cells to four and the runtime up accordingly. Like the RAM and cartridge expansions, this is a plug-in upgrade in keeping with the consumer model — no rewiring, just more energy storage in the same body.

The two 6 V cells are sealed lead-acid batteries typical of mid-1980s mobile robots, and they are also the part of the architecture that ages least gracefully: a unit found today will almost certainly need them replaced, and the chemistry carries the usual sealed-lead-acid cautions for charging and storage. Those are restoration and safety matters rather than architectural ones; Vol 8 takes them up and cross-references _shared/safety.md for the battery and charger cautions. The architectural fact here is simply that the HERO Jr is an untethered machine that carries its own power and runs about four hours on a charge, doubling that with the RTA-1-4.

How the architecture compares to the HERO 1

It is worth gathering the architectural contrast with the HERO 1 into one place, because nearly every choice in the HERO Jr’s hardware is best read as a deliberate re-aiming of the older robot’s silicon rather than a simple cost-down.

Table 1 — How the architecture compares to the HERO 1

Architectural elementHERO 1 (ET-18)HERO Jr (RT-1)Source
ProcessorMotorola 6808-class, 1 MHzMotorola 6808, 8-bit, 1 MHzHERO FAQ; Dilettante
Base RAM4 KB2 KB (a 6116)HERO FAQ; theoldrobots.com
RAM expansionAccessory RAMTo 24 KB (incl. RTA-1-5 +8 KB)HERO FAQ; theoldrobots.com
ROM~2 KB monitor32 KB (monitor + personality programs)HERO FAQ; theoldrobots.com
I/O modelMemory-mapped peripheralsMemory-mapped peripheralsHERO FAQ
Out-of-box behaviourProgram it firstPersonality programs resident in ROMtheoldrobots.com; HERO FAQ
PowerInternal rechargeable batteriesTwo 6 V 4.0 Ah; ~4 h; RTA-1-4 doublestheoldrobots.com

The same processor at the same clock anchors both machines, and both use memory-mapped I/O to reach their peripherals — that shared skeleton is why software ideas and even sensor families carry across the HERO line (_shared/comparison.md). What changes is where the memory budget goes. The HERO 1 gives the owner more read/write room (4 KB of RAM) and almost no resident behaviour (a ~2 KB monitor), because the owner is expected to supply the behaviour. The HERO Jr halves the base RAM to 2 KB and spends the difference, many times over, on a 32 KB ROM full of ready-made personality — then offers RAM growth to 24 KB and battery growth via the RTA-1-4 for owners who outgrow the defaults.

That is the architecture in one sentence: a 1 MHz 6808 with a small scratchpad RAM and a large behaviour ROM, talking to its body through memory-mapped ports, powered by two rechargeable batteries — a HERO 1’s silicon re-spent to make a robot that does something the instant it is switched on. The peripherals on the far side of the bus are the subject of the volumes that follow: the rear-driven three-wheel base and fixed head in Vol 3, the Polaroid sonar and light/sound/IR sensing in Vol 4, and the built-in Votrax speech and the personality programs themselves in Vol 5.