> For the complete documentation index, see [llms.txt](https://ask.simplehw.eu/kb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ask.simplehw.eu/kb/simple-api-6-generation/api-6/overview-for-beginners.md).

# Overview For Beginners

This is just a very basic overview of what the firmware architecture looks like and what it can or cannot do. If you’d like a more in-depth guide to API 6 or any of its parts, check out [*API 6 Overview For Experts*](https://simplehw.atlassian.net/wiki/spaces/DOC/pages/8126484/API+6+Overview+For+Experts).

Data can be sent either from the device to the Sigfox backend or vice versa.\
**Uplink** is data sent from the device to the Sigfox backend. **Uplink payload is limited to 12 bytes.**\
**Downlink** is data sent from the backend to the device. **Downlink payload is limited to 8 bytes.**

**User modes**

The main feature of API 6 are the multiple different operating modes. Every operating mode is an application that has a predefined set of behaviors that can be adjusted to better fit your use case. Think of a mode as of a completely unique and different device (but of course, some modes share similarities). Each mode uses some of the predefined **events - uplink messages** (event hex symbol always means the same in every mode). Device behavior is controlled by **downlink register** values - the first and most important downlink register is the operating mode. Everything else is there just for fine-tuning the behavior of the device.

End users should **never** change operating modes - only integrators should configure the devices!

**Arming and disarming**

The devices go through a cycle of different *device states.* They allow you to arm (activate) the device when you need it to monitor its environment and gather data and disarm (deactivate) them when they are not needed to save the battery. Check out the [*API 6 Basic Operations With SimpleHw Devices*](https://simplehw.atlassian.net/wiki/spaces/DOC/pages/8519899/API+6+Basic+Operations+With+SimpleHw+Devices) guide!

**Uplink payload parsing**

API 6 has a predefined way of reporting data. There are exceptions of course (covered in the expert guide), but generally, the **first two bytes** of the payload are always the **operating mode** and an **event**. There are two ways to parse the **remaining ten bytes** - if the hex symbol of the event is **from 0x00 to 0x7F**, the additional data is [*appended payload*](https://simplehw.atlassian.net/wiki/spaces/DOC/pages/15237121/API+6+Mode-Independent+Information+And+Events#Appended-payload) (various data can be appended regardless of event). Events **from 0x80 and up** will mostly be sent with MAC addresses or mode-specific data that is unique to the received event.

In order to save space and battery life, some complex data is encoded into one or more bytes - you can find a list of **encoding used in the API** **6** [*here* ](https://simplehw.atlassian.net/wiki/spaces/DOC/pages/23396515/API+6+Encoding)so you know what’s what.

**Downlink register settings**&#x20;

Downlink registers are set up via [downlink](https://simplehw.atlassian.net/wiki/spaces/DOC/pages/23396404/API+6+Downlink+Information). The payload has to always include a register pointer and its respective value to change one setting - this means 4 register values can be changed with one downlink. Register pointers are predefined and the first one is the operating mode - in order to change it, the first byte has to be 0x01 and the following one has to be the hex symbol of the mode you’d like to use.

In default settings, **downlink** is triggered by an extra long press of the button (6+seconds) for both SimplePack versions and by arming (activating) the device for the SimpleLeak.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ask.simplehw.eu/kb/simple-api-6-generation/api-6/overview-for-beginners.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
