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

# Step-by-Step User Guide

> Creating a project, saving, uploading code to the board, Serial Monitor, examples and libraries

This guide walks you through the basic tasks you need to **create your first project and
upload it to the board** with Deneyap Kart IDE. The screenshots are taken from version
**v2.2.5**. For a detailed description of every part of the interface, see
[Deneyap Kart IDE Introduction](/en/IDE/Deneyap-Kart-IDE-Introduction).

> [!TIP]
>
> If you have not installed the IDE yet, follow the steps in
> [Deneyap Kart IDE Setup](/en/IDE/Deneyap-Kart-IDE-Setup) first. The orange numbers in the
> screenshots match the step numbers in the text.

## Video: Create Your First Project and Upload It to Your Board

The short video below shows the basic steps described on this page from start to finish
(new code page, saving, selecting the board and port, uploading, the Serial Monitor and
installing libraries).

<video controls preload="metadata" src="https://mintcdn.com/t3/9iSc1d4OLE4STnx0/videos/ide-ilk-proje-en.webm?fit=max&auto=format&n=9iSc1d4OLE4STnx0&q=85&s=d5b252fc33ad775d257e0a1ebe9a7b2a" poster="/videos/ide-ilk-proje-en-kapak.png" />

## Coming from Arduino IDE: Where Is Everything?

| Arduino IDE | Deneyap Kart IDE |
| - | - |
| **Verify** (✓) | **Compile** in the top toolbar |
| **Upload** (→) | **Compile & Upload** in the top toolbar |
| Tools → Board | **Board list** in the top toolbar |
| Tools → Port | **Port list** in the top toolbar |
| Tools → (board settings) | **Tools** in the top toolbar |
| File → New / Open / Save | **Settings** menu or `Ctrl+N` / `Ctrl+O` / `Ctrl+S` |
| File → Examples | **Examples** panel on the left edge |
| Manage Libraries | **Library** panel on the left edge |
| Serial Monitor | **Serial Monitor** tab in the bottom panel |

## 1. Creating a New Project

When the IDE opens, an empty code page named `Untitled.cpp` is ready; you can start typing
your code right away. To open a new code page, use one of the following:

![](https://mintcdn.com/t3/-KUO5eYRoX7tlZ0v/images/DKide/kilavuz/01-yeni-dosya-EN.png?fit=max\&auto=format\&n=-KUO5eYRoX7tlZ0v\&q=85\&s=cc94013820aaaf8d85f18aa4ea60af81)

* The **+** button in the **Projects** panel header (1),
* The **+** button in the tab bar (2),
* **Settings → New File** or `Ctrl+N` on the keyboard.

![](https://mintcdn.com/t3/-KUO5eYRoX7tlZ0v/images/DKide/kilavuz/00-dosya-menusu-EN.png?fit=max\&auto=format\&n=-KUO5eYRoX7tlZ0v\&q=85\&s=3708f1d65482f158146f468728fd48b2)

Type your code into the editor. In this guide we use the following code, which sends a
message from the board every second:

```cpp theme={null}
int counter = 0;

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.print("Hello Deneyap! ");
  Serial.println(counter);
  counter++;
  delay(1000);
}
```

![](https://mintcdn.com/t3/-KUO5eYRoX7tlZ0v/images/DKide/kilavuz/02-kod-EN.png?fit=max\&auto=format\&n=-KUO5eYRoX7tlZ0v\&q=85\&s=874e0125bfa5fdecc246f7a696b2c1d5)

## 2. Saving and Reopening a Project

**1. Save**

Press `Ctrl+S` (or **Settings → Save**). The first time, you are asked for a file name and
location. We recommend choosing **Arduino File ".ino"** as the file type, so your project
can also be opened in Arduino IDE.

> [!TIP]
>
> Creating a separate folder for each project and saving the file with the **same name**
> as the folder (e.g. `Hello/Hello.ino`) keeps your projects organized.

**2. Check that it was saved**

The tab name changes to the new file name (1), the file is added to the **Recent Files**
list in the Projects panel (2), and a *File saved* line appears in the
**Compiler Output** (3).

![](https://mintcdn.com/t3/-KUO5eYRoX7tlZ0v/images/DKide/kilavuz/03-kaydet-EN.png?fit=max\&auto=format\&n=-KUO5eYRoX7tlZ0v\&q=85\&s=044a189f159e79d05c4a2be2885e496d)

**3. Reopen it later**

* Click the file in the **Recent Files** list of the **Projects** panel,
* or choose it with **Settings → Open File** (`Ctrl+O`),
* or drag the file and drop it onto the IDE window.

Other code files (`.h`, `.cpp`) in the **same folder** as the file you open are added to
the project as well.

> [!TIP]
>
> If you try to close a file with unsaved changes, the IDE warns you. To keep the project
> under a different name, use **File → Save As** (`Ctrl+Shift+S`) in the menu bar.

## 3. Connecting the Board, Selecting the Board and Port

**1. Connect the board to the computer**

Plug your board into your computer with a USB cable that **supports data transfer**.
Charge-only cables do not show a port.

**2. Select the board type**

Select your board from the **board list** (1) in the top toolbar: Deneyap Kart,
Deneyap Kart v2, Deneyap Kart 1A, Deneyap Kart 1A v2, Deneyap Mini, Deneyap Mini v2 or
Deneyap Kart G.

**3. Select the port**

Select the port your board is connected to from the **port list** (2) (such as `COM3`
on Windows, `/dev/ttyUSB0` on macOS/Linux). If the port does not show up, press
**Refresh Ports** (3).

![](https://mintcdn.com/t3/-KUO5eYRoX7tlZ0v/images/DKide/kilavuz/04-kart-port-EN.png?fit=max\&auto=format\&n=-KUO5eYRoX7tlZ0v\&q=85\&s=7cece3c3cad87a766de29e8fc5b5ba84)

> [!TIP]
>
> If you are not sure which port belongs to your board, unplug the board and plug it back
> in; the port that disappears from the list and comes back is your board's.

**4. Check the status bar**

The status bar at the bottom of the screen shows the selected **Board** (1) and
**Port** (2).

![](https://mintcdn.com/t3/vwNkNOXQO3QLZxS4/images/DKide/kilavuz/04b-durum-cubugu-EN.png?fit=max\&auto=format\&n=vwNkNOXQO3QLZxS4\&q=85\&s=0987763fb6d8e4e540110bdc32aa3c32)

## 4. Compiling and Uploading to the Board

![](https://mintcdn.com/t3/vwNkNOXQO3QLZxS4/images/DKide/kilavuz/05-derle-yukle-dugmeleri-EN.png?fit=max\&auto=format\&n=vwNkNOXQO3QLZxS4\&q=85\&s=5858ad049f1fb439570c87fc12d67bf6)

* **Compile** (1): Checks your code for errors; nothing is uploaded to the board.
* **Compile & Upload** (2): Compiles the code and uploads it to the board on the selected port.

While it runs, the compiler output flows into the **Compiler Output** tab in the bottom
panel. When the upload finishes successfully, the last line reads
**"\[Success] Upload to board completed."** and the board starts running the new code.

![](https://mintcdn.com/t3/vwNkNOXQO3QLZxS4/images/DKide/kilavuz/05-yukleme-sonucu-EN.png?fit=max\&auto=format\&n=vwNkNOXQO3QLZxS4\&q=85\&s=1d7ff826d6211195774a5a78c1656aba)

> [!TIP]
>
> The first compilation may take a few minutes; later ones are much faster. While it runs,
> you can cancel with the **Stop** button that appears in the toolbar.

> [!WARNING]
>
> If you see red **\[Error]** lines in the output, read the whole message: for code errors it
> shows the file and line number of the problem. For board or port problems, see the
> **Common Situations** section at the end of this page.

## 5. Reading Data from the Board with the Serial Monitor

To see the messages your board sends with `Serial.print`, open the **Serial Monitor** tab
in the bottom panel.

**1. Select the port**

Select your board's port from the Serial Monitor's own port list (1).

**2. Set the baud rate**

Set the baud rate (2) to the **same** value as `Serial.begin(...)` in your code. In our
example code it is `115200`.

**3. Connect**

Press **Connect** (3). Once connected, the same button becomes **Disconnect**.
Messages from the board appear line by line in the output area (4).

![](https://mintcdn.com/t3/vwNkNOXQO3QLZxS4/images/DKide/kilavuz/06-seri-monitor-EN.png?fit=max\&auto=format\&n=vwNkNOXQO3QLZxS4\&q=85\&s=204ed06830547ba171466b16b9e2a876)

* **Reset Board** (1): Restarts the board; your program runs from the beginning. Useful for
  seeing the messages printed in `setup()`.
* **Disconnect** (2): Closes the serial connection. When not connected, the same button
  shows **Connect**.

![](https://mintcdn.com/t3/vwNkNOXQO3QLZxS4/images/DKide/kilavuz/06b-seri-dugmeler-EN.png?fit=max\&auto=format\&n=vwNkNOXQO3QLZxS4\&q=85\&s=4f3354204696bfbd6f4fcd3044157b38)

> [!TIP]
>
> You can press **Compile & Upload** while the Serial Monitor is open: the IDE closes the
> connection before uploading and reconnects to the same port when the upload finishes.

## 6. Opening Ready-Made Examples

**1. Open the Examples panel**

Click **Examples** (1) on the left edge. You can filter by typing the example name into
the search box (2).

**2. Pick an example**

Open a library folder and click an example (3). The **Core** label next to a folder marks
examples that come with the Deneyap core; the **User** label marks examples of libraries
you installed.

![](https://mintcdn.com/t3/vwNkNOXQO3QLZxS4/images/DKide/kilavuz/07-ornekler-EN.png?fit=max\&auto=format\&n=vwNkNOXQO3QLZxS4\&q=85\&s=9b7a73e72909ac67ae28473f08d797f8)

**3. Upload the example**

The example opens in a new tab (1). If a board and port are selected, you can upload it
directly with **Compile & Upload**.

![](https://mintcdn.com/t3/vwNkNOXQO3QLZxS4/images/DKide/kilavuz/07b-ornek-acildi-EN.png?fit=max\&auto=format\&n=vwNkNOXQO3QLZxS4\&q=85\&s=19e5c999b515de8718aba34fc4321a0c)

> [!TIP]
>
> If you change an example and save it, the IDE asks for a new location; the original example
> file is not modified.

## 7. Installing a Library

> [!NOTE]
>
> Some commonly used libraries are installed automatically the first time the IDE starts,
> so you do not need to install them yourself. For example, **Deneyap Servo**
> (`#include <Deneyap_Servo.h>`) and **LiquidCrystal\_I2C** for I2C LCD displays
> (`#include <LiquidCrystal_I2C.h>`) come built in. When you search for them, they appear
> with the **Installed** label.

**1. Open the Library panel**

Click **Library** (1) on the left edge.

**2. Search for the library**

Type the library name into the search box (2) and press `Enter`.

**3. Install**

Choose the version you want and press **Install** (3). You can see, update or remove your
installed libraries in the **Installed** (4) tab.

![](https://mintcdn.com/t3/vwNkNOXQO3QLZxS4/images/DKide/kilavuz/08-kutuphane-EN.png?fit=max\&auto=format\&n=vwNkNOXQO3QLZxS4\&q=85\&s=2ad9175d1bd3f875856080488ee19d53)

To install a library that is not in the Arduino ecosystem from a `.zip` file, use the
**Install Library from .zip** (5) button.

> [!TIP]
>
> To find the libraries for Deneyap modules, just type **Deneyap** into the search box; the
> results list the libraries whose developer is *Turkish Technology Team Foundation (T3)*.

## Common Situations

> **The port list is empty, my board does not show up**
>
> * Make sure the cable supports data transfer; try another cable.
> * Plug the board into another USB port and press **Refresh Ports**.
> * If your board needs a USB driver, follow the steps on the
>   [USB Driver Setup](/en/Cards/USB-Driver-Setup) page.
> * On Linux, if the port shows up but cannot be opened, see
>   [Errors and Solutions](/en/IDE/Deneyap-Kart-IDE-Errors-and-Solutions).

> **The upload says the port is busy**
>
> Another program may be using the port. Close other programs that talk to the board
> (another IDE window, Arduino IDE, Deneyap Kart Blok, etc.) and try again.

> **The upload cannot connect to the board**
>
> * Check that the **correct board type** is selected in the board list.
> * Unplug the board, plug it back in and try again.
> * If the problem persists, put the board into upload mode by hand: hold the **BOOT**
>   button on the board, press and release **RESET**, then release **BOOT**. Then press
>   **Compile & Upload**. On Deneyap Mini and Mini v2 the port number may change after
>   this; select the new port from the port list. When the upload finishes, press the
>   board's **RESET** button to start the program.

> **The Serial Monitor shows garbled characters**
>
> The baud rate in the Serial Monitor does not match `Serial.begin(...)` in your code. Set
> both to the same value.

> **The Serial Monitor shows nothing**
>
> * Make sure your code starts with `Serial.begin(...)` and sends messages with
>   `Serial.print`.
> * Messages in `setup()` may have been sent before you connected; restart the program
>   with the **Reset Board** button.

> **A "new Deneyap core version is ready" message appears at the top**
>
> The IDE is letting you know that a newer version of the Deneyap core, which it uses to
> compile for the boards, is ready. Press **Update Core**; progress is shown at the top of
> the screen. The update is a large download (1–2 GB), so start it on a fast internet
> connection. If you want to do it later, you can close the message and update from the
> **Settings** menu instead.

For other errors and solutions, see [Errors and Solutions](/en/IDE/Deneyap-Kart-IDE-Errors-and-Solutions)
and [Frequently Asked Questions](/en/FAQ).

## What's Next?

> **[Beginner Projects](/en/projects/Beginner)**
>
> First projects you can build with your board.

> **[Deneyap Kart IDE Introduction](/en/IDE/Deneyap-Kart-IDE-Introduction)**
>
> A detailed description of every part of the interface.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.