You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is the specification for the `Arduino App` (from now on called App) format to be used with `arduino-app-cli`.
2
+
This is the specification for the `Arduino App` (from now on called App) format to be used with `arduino-app-cli` and `Arduino App Lab`.
3
3
4
+
## Arduino App Folder structure
4
5
An App is a self-contained folder that includes the following components:
5
-
-`app.yaml` (mandatory) the file descriptor of the app in YAML format.
6
-
-`sketch` (optional) the folder containing an Arduino [Sketch](https://arduino.github.io/arduino-cli/1.3/sketch-specification/))
7
-
-`python` (optional) the folde containin the Python code
6
+
-`app.yaml` (mandatory) the file descriptor of the app in YAML format.
7
+
-`sketch` (optional) the folder containing an Arduino [Sketch](https://arduino.github.io/arduino-cli/1.3/sketch-specification/)).
8
+
-`python` (optional) the folder containing the Python code.
9
+
At least one on `sketch` or `python` folder must be present.
8
10
9
11
The App must be self-contained (it does not contain references to external files) because this means it can be exported, shared, or zipped easily.
10
12
11
-
## Arduino App Folder structure
13
+
Example of a `my-app` folder structure
12
14
```
13
-
myapp/
15
+
my-app/
16
+
README.md
14
17
app.yaml
15
18
sketch/
16
19
sketch.ino
17
20
sketch.yaml
18
21
python/
19
22
main.py
20
-
requirements.txt
21
23
```
22
24
25
+
## `README.md` file
26
+
An (optional) readme file in markdown.
27
+
The link to local resources must be in the same folder of the app. For example, a png inside the folder `myapp/docs/my-banner.png` can be referenced using  syntax.
28
+
29
+
### `app.yaml` file descriptor
30
+
The `app.yaml` (or `app.yml`) is a YAML file that describes an App.
23
31
24
-
## App descriptor file
25
-
The `app.yaml` is the YAML specificaiotn of an APP.
32
+
-`name`: (optional) a short name of the app.
33
+
-`description`: (optional) a brief description of the app.
34
+
-`icon`: (optional) the emoji of the app
35
+
-`ports`: (optional) a list of ports to be exposed externally. If not given a random port is opened (if necessary).
36
+
-`bricks` (optional) a list of bricks used by the app with its variable definitions.
26
37
27
-
-`name` - the name of the app.
38
+
Example:
28
39
```yaml
29
40
name: My Arduino App
30
41
description: An example app showcasing what you can do
31
42
icon: 🍓
43
+
ports:
44
+
- 7000
32
45
33
46
bricks:
34
47
- arduino/dbstorage:
@@ -39,5 +52,22 @@ bricks:
39
52
model: gemma-1
40
53
- arduino/objectdetection:
41
54
model: yolo
42
-
- arduino/mqtt
43
-
```
55
+
```
56
+
57
+
58
+
### `sketch` sub folder
59
+
The content of the `sketch` subfolder contains the Ardiuno skecth.
60
+
It must omply with the [Sketch specification](https://arduino.github.io/arduino-cli/1.3/sketch-specification/).
61
+
62
+
If present it must contain the followign files:
63
+
- `sketch.ino`
64
+
- `sketch.yaml`that is compliant to the [Sketch project file](https://arduino.github.io/arduino-cli/1.3/sketch-project-file/)
65
+
66
+
### `python` sub folder
67
+
The content of the `python` contains the python code.
68
+
69
+
If present, it must contain the `main.py` with the python code of the main.
70
+
Optionally, a `requirements.txt` with additional python package dependencies to be installed.
0 commit comments