Skip to content
falang.ioRU

Project setup

Every Arduino project starts with a short “New Project…” dialog and comes with three fixed documents — setup, loop, and Devices — so there’s always a place for describing your wiring, not just for writing code.

  • File > New Project (or Ctrl+N, or the welcome page’s New Project… button) opens a dialog asking for a name, a folder (it follows the name until you pick your own with Browse…), and a board.

  • The board list covers the common ones: Uno, Nano, Nano (old bootloader), Mega 2560, and ESP32 Dev Module.
  • The board is chosen once and never changes. It’s written to falang/config/arduino.json inside the project folder — versioned along with everything else in the project — and every later compile, upload, and debug upload reads it from there. Build & Upload shows it as plain text; there’s no board picker there any more, only a port to choose.

  • Opening a project created before this existed treats it as an Uno and writes the config file the first time you open it, so it behaves the same way from then on.

  • setup and loop are ordinary function documents — the same editor as any other function — but pinned: the project tree offers no delete/rename/drag on them, and a new document at the project root can’t be named setup or loop either. They always exist and compile straight to Arduino’s own setup()/loop().

  • Devices is a third pinned document, but it isn’t a scheme — it’s a small form for describing the board’s wiring, not code (see below).

Two tables, both feeding directly into the generated setup():

  • Digital pins — a pin number, a mode (Input, Output, or Input (pull-up) ), and an optional label for your own reference. Each row becomes one pinMode(…) call at the top of setup(), in the order you listed them — no need to write it by hand in a code block any more.

  • Devices — pick a built-in driver, give the instance a name, and fill in the fields it asks for. LCD1602 (I2C) was the first built-in device: it only asks for the display’s I2C address (the common presets — 0x20, 0x27, 0x3E — are offered as a dropdown). LCD1602 (Parallel) is the same display wired directly to 6 GPIO pins instead — for boards or setups without I2C — and asks for those 6 pins (RS, EN, D4-D7) instead of an address. Adding either emits its own setup call (initializing the display) right after the pin modes.

  • Every bundled driver declares a device section, so all of them show up in this list (DHT: data pin and sensor; HC-SR04: trig and echo pins; servo: pin; RGB strip: data pin and length; LCD1602: address or pins). The icon menu lists a driver’s actions only while the project has at least one device of that driver — add the device here first, then insert its actions.

  • Any driver behind a device instance is included in the build automatically — its source files and its #include are added to the sketch even if no action node anywhere in setup/ loop ever calls into it.

The board is already fixed, so Build & Upload only asks you to pick a port. The generated sketch is written to src/sketch/sketch.ino inside the project folder (plus any driver source files it needs) — there’s no more hidden .build folder to know about. You can open and read the generated code like any other file, and since it lives under src/, it’s captured by version history the same as everything else in the project.