> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hyperwisor.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lesson 3 — Bring It to Life

> Connect a device — flash real firmware, or simulate one with LiveLink and no hardware.

**Goal:** get a device talking to your product. Pick the path that fits — real
hardware or a simulator. Both let you finish the rest of the lessons.

## Path A — Real hardware (ESP32)

With the [Arduino library installed](/firmware/arduino/install), flash the minimal
sketch:

```cpp theme={null}
#include <hyperwisor-iot.h>

HyperwisorIOT device;

void setup() {
  Serial.begin(115200);
  device.begin();               // connects, or starts AP-mode for provisioning
  Serial.println("Device ID: " + device.getDeviceId());
}

void loop() {
  device.loop();                // keep the connection alive
}
```

On first boot the device has no credentials, so it starts its own access point:

|                  |                        |
| ---------------- | ---------------------- |
| Connect to Wi-Fi | `NIKOLAINDUSTRY_Setup` |
| Password         | `0123456789`           |

Open the provisioning page, enter your Wi-Fi and device details, and the device
restarts and connects. (Full detail: [Provisioning](/firmware/arduino/provisioning).)

## Path B — No hardware (LiveLink Simulator)

No ESP32 on hand? Use the Studio's **LiveLink Simulator**
(Develop → LiveLink Simulator). It simulates both sides of the connection so you
can complete the loop with nothing but the browser.

<Steps>
  <Step title="Open LiveLink">
    In your product's Studio, open **LiveLink Simulator**.
  </Step>

  <Step title="Connect the Device side">
    Give the **Device Side** a device ID and connect. It's now a live stand-in for
    real hardware.
  </Step>

  <Step title="Connect the App side">
    Connect the **User / App Side** with a user/session ID to see traffic in both
    directions.
  </Step>
</Steps>

You'll send and receive real messages here in Lesson 4 — no firmware required.

<Check>
  Either a real device printing its ID and connecting, **or** both sides of LiveLink
  connected and showing "live traffic."
</Check>

<Card title="Next: the core loop" icon="arrow-right" href="/learn/lessons/04-core-loop">
  Values up, commands down.
</Card>
