# Introduction

There are 4 flavors to building the perfect setup for your needs:

1. **Default** - buy our device, that runs our firmware, and pings our server
2. **BYOD** - build your own device, that runs our firmware, and pings our server
3. **BYOD/S** - build your own device, mod our firmware, and ping your own server
4. **BYOS** - buy our device, mod our firmware, and ping your own server

### Choosing your stack

After starting TRMNL and going down the rabbit hole of DIY smart home, IoT, e-ink, and gadget communities, it became clear that end-to-end ownership, security, and data privacy are critical ingredients to building trust.

With this in mind we decided to [open source our firmware](https://github.com/usetrmnl/firmware) and provide guides to reproduce the TRMNL experience *without* our servers in the middle.

When considering how to build your own e-ink dashboard, it is our opinion that...

* If you're not comfortable with coding, Option #1 is ideal.
* If you're comfortable with high-level programming languages, Option #4 provides an 80/20 approach to privacy + security without breaking the bank or spending hours coding.
* If you have have experience with micro controllers, Option #2 will give you the pride of full control over the look and feel of your device.
* If you are a l33t programmer or simply have access to AI (half joking), Option #3 is the most comprehensive offering to customize TRMNL however you'd like.

### Prerequisites

Options 1, 3, and 4 are available to all customers for no extra charge.

Option 2 requires a small monthly fee to cover your compute time on our servers, since we don't make any revenue on a device sale.

### Next steps

Once you've determined the best setup for your needs, find the relevant guide on the left underneath "DIY TRMNL."


---

# Agent Instructions: 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://docs.trmnl.com/go/diy/introduction.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.
