# HEART Track 1: Basic

**For products that watch themselves and tell a person: what to read, what to skip, and when you are done**

**Status:** Reading guide, November 2026. Part of the [HEART Standards Family](HEART-Standards-Family.md). It adds no requirements.
**Read first:** [Start Here](HEART-Start-Here.md), to check that this is your track.
**Next track:** [Track 2: Intermediate](HEART-Track-2-Intermediate.md).

---

## In one minute

Track 1 is the smallest HEART. Your product **knows when it is unwell and tells a person**. Nothing outside it can change it through HEART.

- **Feature Set:** `basic` (`card.level`).
- **Autonomy Level:** A1, "Aware".
- **Reading:** about 1 hour 45 minutes.
- **Code:** a template does almost all of it. You write one function: "is my product doing its main job?"
- **Claim when done:** *HEART Basic · A1 · self-tested*.

---

## 1. Who it is for

Products whose HEART **only watches and reports**:

| Kind | Examples |
|---|---|
| Small devices | A dog collar that reports its battery, GNSS and uplink; a birdhouse camera; a soil or water sensor; a smart plug that only reports |
| Microcontrollers | An Arduino, ESP32, RP2040 or Cortex-M board that can only send lines on a serial port |
| Simple appliances | A kettle, a fridge, a water heater that says "I am not heating" |
| Machines you must not control | A pump station PLC, a 3D printer, an EV charger, a pacemaker. The certified controller runs the machine. HEART watches, explains and tells a person. |
| Simple software | A script, a service or a web app that reports whether it is doing its job |

If anyone needs to **log in**, **change a setting**, **restart** the product or **approve** something through HEART, you need [Track 2](HEART-Track-2-Intermediate.md) as well.

---

## 2. What you will build

| Piece | What it does | Defined in |
|---|---|---|
| **Card** | Says who the product is, its Feature Set, modules and Autonomy Level | Part 3, Section 3.1 |
| **Pulse** | Says how it is right now: `healthy`, `degraded`, `failing` or `unknown`, with a counter | Part 3, Section 3.2 |
| **Arrhythmias** | Alerts, each with a standard fault code and a plain-language explanation | Part 3, Sections 3.4 and 5 |
| **Minimum Tending** | Notice loss of the main job, raise an alert, explain it, tell a person, and do all of it offline | Part 2, Section 4, "A1: Aware" (it prevails over API Standard, Section 6.1) |
| **The Valve** | Every field has a privacy level. Without logins, everyone sees only `public` fields | API Standard, Sections 4.1 to 4.3 |
| **One standard address** | `GET /.well-known/heart-card.json` on port 43278 (fallback 7685) | Part 4, Sections 3.1 and 3.2 |
| **Optional: HEART Hub** | The owner watches the product's health from anywhere | HEART Hub profile |
| **Optional: HEART Line** | A microcontroller sends one JSON line per event; a bridge serves the HEART | Part 4, Section 12 |

You will **not** build logins, history, approvals, actions, AI or fleets. Those are Tracks 2 and 3.

---

## 3. What to read, in order

| # | Document | Read these sections | Time | Why |
|---|---|---|---|---|
| 1 | [Start Here](HEART-Start-Here.md) | All | 5 min | Make sure Track 1 is enough |
| 2 | [Part 1: Basics](HEART-Part-1-Basics-1.0.md) | "In one minute", Sections 1, 2, 4, 5 (all of 5.1 to 5.7), 6, 7 and 10 | 20 min | The idea, and every word used later. Section 5 is the glossary: read it slowly. |
| 3 | [Part 2: Autonomy Levels](HEART-Part-2-Autonomy-Levels-1.0.md) | "In one minute", Sections 2 and 3; in Section 4, "A0: Unaware", "A1: Aware" and "A2: Explains"; in Section 5, Rules 2, 4 and 6; Section 8 | 12 min | What A1 asks of you. Read A2 to see what Track 2 adds. |
| 4 | [Part 3: Information Model](HEART-Part-3-Information-Model-1.0.md) | "In one minute", Sections 2, 3.1, 3.2, 3.4, 4, 5.1 to 5.4 (skim the code list in 5.4 for your product), 5.6, 5.7, 7 and 9 | 20 min | The exact shape of the Card, Pulse and alerts, and how to name things |
| 5 | [API Standard](HEART-API-Standard-1.0.md) | Sections 2, 2.1, 4.1, 4.2, 4.3 and 6.1 | 5 min | The Feature Sets and modules, the Valve (until Part 5 is written) and the five steps of Minimum Tending |
| 6 | [Part 4: Connections](HEART-Part-4-Connections-1.0.md) | "In one minute", Sections 1, 2, 3.1, 3.2, 3.3, 3.5, 4.1, 4.2, 4.3, 4.6, 5, 7.1 and 13 | 15 min | Ports, the first request, the headers and the error format |
| 7 | [Part 4: Connections](HEART-Part-4-Connections-1.0.md) | Section 12 (12.1 to 12.3), **only for a microcontroller** | 4 min | HEART Line v1 and what the bridge must do |
| 8 | [Part 6: Human Control and Safety](HEART-Part-6-Human-Control-and-Safety-1.0.md) | "In one minute" and Section 9 (not 9.1) | 4 min | HEART stays out of safety circuits and control loops. This applies to every product. |
| 9 | [HEART Hub](HEART-Monitor-1.0.md) | "In one minute", Sections 2, 3, 5, 6, 7 (not 7.1) and 8, **only if you report to a monitor site** | 13 min | Claim codes, what is reported, and why only public data leaves |
| 10 | [Part 9: Testing and Certification](HEART-Part-9-Testing-and-Certification-1.0.md) | "In one minute", Sections 2, 3.1, 5.1, 5.2, 7 and 8 (with 8.1) | 13 min | How to test, declare and rate what you built. The tests are listed in Section 6 below. |
| 11 | One guide close to your product | All | 20 min | A worked example from day 1 to *HEART Basic · A1*: [pacemaker](../guides/Pacemaker.md), [3D printer](../guides/3D-Printer.md), [EV charger](../guides/EV-Charger.md) or [water pump station](../guides/Water-Pump-Station.md) |

**Total:** about 1 hour 45 minutes without the guide, less if you skip items 7 and 9.

---

## 4. What you can skip, and why

| Skip | Why |
|---|---|
| Part 1, Sections 3, 8, 9 and 11 to 13 | Background and history. Section 8 is the start of Track 2, Section 9 of Track 3. |
| Part 2, A3 to A5, Rules 1, 3, 5 and 7, Sections 6, 7 and 9 to 12 | They are about systems that act. A Basic product takes no action, so it has nothing to stop. |
| Part 3, Sections 3.3 (Rhythm), 3.5 to 3.7, 5.8 (event types), 6, 8 and 10 to 14 | History and Receipts are Connected (Track 2). Capabilities and Actions are Full (Track 3). |
| Part 4, Sections 4.4, 4.5 and 6 to 11 | Paging, live streams, logins, identity keys, the Gateway, sockets and MQTT are Track 2. |
| Part 6, Sections 2 to 8, 9.1, 10 to 12 | The gate, approvals and stop are for products that change. |
| The rest of the API Standard | Where a drafted part covers the same ground, the part prevails. The rest is for Tracks 2 and 3. |
| [Core Standard](HEART-Core-Standard-1.0.md), [Command Center](HEART-Command-Center-1.0.md), [Design Note 1](HEART-Design-Note-1-Brain-and-Heart.md) | Only for products with a HEART Core or an AI brain (Track 3). |
| [Signal Tables](HEART-Signal-Tables-1.0.md) | Only when you serve many signals as properties (Track 2). |
| [Security Advisory](HEART-Security-Advisory-2026-001.md) | Its fixes are about logins, approvals and MQTT. A Basic product is already covered by the tests below. |

---

## 5. Where to start: templates and simulators

### Templates

Every one of the 16 HEART Basic templates already does all of Track 1: Card, Pulse, the 30-second check of the main job, the `system.main-function-lost` alert, escalation, standard errors and the standard port. Download them from [heartcortex.ai/downloads](https://heartcortex.ai/downloads).

| Your product | Template |
|---|---|
| An app or service on Linux, macOS or Windows | The server template for your language: `python`, `javascript-node`, `go`, `rust`, `c-posix`, `java`, `php` or `ruby` |
| An embedded Linux board | `c-posix`, `go` or `rust` |
| A microcontroller with a serial port | `c-baremetal`, `micropython`, `arduino` or an assembly port (`asm-x86-64-linux`, `asm-arm-cortex-m`, `asm-riscv32`), **plus** the `bridge` |
| A web page or a plug-in host | `wasm-wat` |
| Reporting to HEART Hub | `python` with `MONITOR = True`, or `esp32-full` with `HEART_MONITOR` |

### Simulators

All nine simulators claim *HEART Basic · A1* in their Card. Four of them show **only** Track 1 behaviour: they watch, explain and tell a person, and refuse every change.

| Simulator | What it shows |
|---|---|
| [Pacemaker](../pacemakerSimulator/README.md) | Monitoring only. A patient's condition is not a device fault. |
| [3D printer](../printer3dSimulator/README.md) | The firmware owns heating and thermal-runaway protection. HEART only watches. |
| [Water pump station](../pumpStationSimulator/README.md) | The PLC and its interlocks run the station. Every change is refused. |
| [EV charger](../evChargerSimulator/README.md) | The certified controller owns current and safety. When a car charges is private. |

The other five show Track 2 and Track 3 behaviour. Each track page lists them. You can watch every simulator live at [heartcortex.ai/monitor/demos](https://heartcortex.ai/monitor/demos).

---

## 6. The Part 9 tests that apply

These are the tests from [Part 9](HEART-Part-9-Testing-and-Certification-1.0.md), Section 6, for *HEART Basic · A1*. Weights: **critical** counts 5, **must** 3, **should** 1 (Part 9, Section 8.1). A failed critical test caps the rating at 3.9, *Unsafe*.

| Test | Weight | Applies to you when |
|---|---|---|
| `P2-AUTONOMY-DECLARED` | must | Always |
| `P2-A1-1`, `P2-A1-2`, `P2-A1-3`, `P2-A1-4` | must | Always (A1) |
| `P3-SCHEMA`, `P3-CARD`, `P3-CARD-PUBLIC-VIEW`, `P3-VERSION-HEADER` | must | Always |
| `P3-PULSE`, `P3-PULSE-PUBLIC-VIEW`, `P3-PULSE-SEQUENCE`, `P3-ARRHYTHMIAS` | must | Always |
| `P3-ERRORS`, `P3-UNKNOWN`, `P3-501` | must | Always |
| `P3-FAULT-CODES` | should | Always |
| `P4-DISCOVER`, `P4-RATE-LIMIT` | must | Always |
| `P4-PORT`, `P4-CACHE` | should | Always |
| `P4-TLS-SERVER` | must | It answers on a network address, not only on `127.0.0.1` |
| `P4-TLS-CLIENT` | must | It opens connections itself: a HEART Line bridge, or a HEART Hub link |
| `P4-LINE-BRIDGE` | must | It is a HEART Line bridge |
| `P4-OWNER-KEY` | must | It uses an owner key (Part 4, Section 6.6) |
| `P5-FILTER`, `P5-UNCLASSIFIED` | must | Always |
| `P5-NEVER` | **critical** | Always |
| `P6-SURVIVE` | must | Always |

That is up to 28 tests. Everything else in Part 9 is *not applicable* to a Track 1 product: write that on the test sheet, with the reason (Part 9, Section 5.1).

---

## 7. You are done when

- [ ] `GET /.well-known/heart-card.json` answers on port 43278 (or 7685) with no login, and the Card says `"level": "basic"` and `"autonomy": {"level": 1}`.
- [ ] Breaking the main job on purpose changes the Pulse and raises an alert with a standard fault code, within the time on your test sheet, **with the internet cut off**.
- [ ] The alert explains in plain language what happened and what it means for the user.
- [ ] A person is told by the route the owner set, and a message held back while offline is delivered when the network returns.
- [ ] Nothing above `public` ever leaves the product, and nothing `never-share` ever appears in a message.
- [ ] Killing the HEART leaves the product working normally and safely.
- [ ] Every test in Section 6 passes, or is *not applicable* with a reason. You have a HEART-Rating with its metrics version, and a Declaration (Part 9, Section 7).

You can now say: **HEART Basic · A1 · self-tested**. Stop here, unless people need to log in to, change or approve things on your product. Then go on to [Track 2](HEART-Track-2-Intermediate.md).
