ElCap Documentation
Loading...
Searching...
No Matches
ElCap Quickstart

Installation

Supported Systems
As of now, ElCap does not support Windows 10 or older, as well as Intel-based Macs. If you would like more systems to be supported, please let us know at support@tridentiot.com.

Windows

  1. Download the latest elcap-vX.X.X-windows.msi file from the releases page.
  2. Double click on downloaded file to run the installer.
  3. Follow the steps in the installer UI.

Linux

  1. Download the latest elcap-vX.X.X-linux.tar.gz file from the releases page.
  2. Extract elcap using: tar -xzf elcap-vX.X.X-linux.tar.gz
  3. Copy the extracted elcap binary to your local binary directory: sudo cp elcap /usr/local/bin/

Alternatively, you can add the /path/to/elcap to your .bashrc file by appending export PATH="/path/to/elcap:$PATH" if you want to avoid using sudo.

MacOS

  1. Download the latest elcap-vX.X.X-macos.zip file from the releases page.
  2. Extract elcap using: unzip elcap-vX.X.X-macos.zip
  3. Copy the extracted elcap binary to your local binary directory: sudo cp elcap /usr/local/bin/

Alternatively, you can add the /path/to/elcap to your .zshrc file by appending export PATH="/path/to/elcap:$PATH" if you want to avoid using sudo.

First Run

Note: Once a version of the SDK is installed you can create projects from it even if you're not connected to the Internet. You'll need to be online the first time you build a project with that version of the SDK, however, as the Docker image needs to be built. Once the Docker image is built, all subsequent edit/build/flash can happen without an Internet connection.

Once ElCap is in your PATH, go ahead and run it. On the first run, ElCap will look like this:

$ elcap
Downloading v1.0.0 [###############################################] 21.98 MiB/21.98 MiB (0s)
Usage: elcap [OPTIONS] COMMAND [ARGS]...
ElCap CLI v1.0.0
╭─ Options ──────────────────────────────────────────────────────────────────╮
│ --verbose -v Enable verbose output. │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────╮
│ login Log in to your Trident Account. │
│ flash Flash the specified file or the current project. │
│ about See information about ElCap. │
│ device Interact with a connected device. │
│ self Manage your ElCap installation. │
│ tokens Configure or modify device tokens. │
╰────────────────────────────────────────────────────────────────────────────╯

Login

Note: The following commands require an active login session: new, build, clean, image, and tools. Commands like flash, about, device, self, and tokens remain available without authentication.

Before you can use all ElCap commands, you'll need to log in with your TridentIoT account. Run:

$ elcap login
⠇ Waiting for authentication... A browser window has been opened to:
https://auth.tridentiot.com/activate?user_code=****-****.
If prompted, confirm the code: ****-****

A browser window will open automatically if possible. In the opened window, confirm that the code matches the one shown in your terminal, then log in to your TridentIoT account or create a new one. Once complete, return to the terminal where you should see a confirmation and will have access to all ElCap commands:

$ elcap login
Successfully logged in.
$ elcap
Usage: elcap [OPTIONS] COMMAND [ARGS]...
ElCap CLI v1.0.0
╭─ Options ──────────────────────────────────────────────────────────────────╮
│ --verbose -v Enable verbose output. │
│ --help Show this message and exit. │
╰────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ─────────────────────────────────────────────────────────────────╮
│ new Create a new project. │
│ build Build the current project. │
│ flash Flash the specified file or the current project. │
│ about See information about ElCap. │
│ clean Delete the current project's build artifacts. │
│ device Interact with a connected device. │
│ image Manipulate an existing image. │
│ self Manage your ElCap installation. │
│ tokens Configure or modify device tokens. │
│ tools Manage and launch external tools. │
│ user Manage your Trident Account. │
╰────────────────────────────────────────────────────────────────────────────╯

Check-in With The Doctor

Next, you can run elcap self doctor to check your setup. If you don't already have Podman or Docker installed it will let you know.

$ elcap self doctor
❌ Build Engine is ready to go
🛠 Install Podman (recommended) or Docker
🛠 Confirm Podman or Docker is available in your PATH
❌ Device connectivity is ready to go
🛠 Run `elcap device setup` to see available options
✋ Fix the above issues and try again

If you see this, you should install and set up either [Podman] (https://podman.io/getting-started/installation) or Docker Desktop on your system and make sure it's added to your PATH. Once that's set up correctly, the doctor will let you know. From there, ElCap will automatically use Podman or Docker to build your projects. Don't worry, you can have both installed, ElCap will default to Docker if it's available. However, you can use the --engine option to force the use of one or the other. See the build section below for more details.

$ elcap self doctor
Checking your environment...
✅ Build Engine is ready to go
❌ Device connectivity is ready to go
🛠 Run `elcap device setup` to see available options
✋ Fix the above issues and try again

Windows and Linux users will need to set up the drivers or rules for device connectivity. You can do that by running elcap device setup and following the instructions.

Windows Example

$ elcap device setup
USB drivers are needed for device communication.
Choose how you'd like to proceed:
1. Install automatically (recommended)
- Will request administrator permission
- Installs drivers seamlessly
2. Get manual installation instructions
- You handle the installation yourself
- No admin prompt from this application
3. Skip for now
- Continue without drivers
- Device functionality will be limited
Enter your choice [1/2/3] (1): 1
⠧ Installing drivers...
SEGGER driver installer completed successfully

Linux Example

elcap device setup
udev rules are required for USB device access.
Choose how to proceed:
1. Move automatically (recommended)
- Invokes sudo to move /home/remotetesting/.config/elcap/deps/jlink/x86_64/99-jlink.rules to
/etc/udev/rules.d/99-jlink.rules
- Reloads rules
2. Show manual commands
- You will copy and reload rules yourself
3. Skip for now
- USB permissions may be insufficient until installed
Enter your choice [1/2/3] (1): 1
Copied 99-jlink.rules and reloaded udev rules

Now the doctor should be happy.

$ elcap self doctor
Checking your environment...
✅ Build Engine is ready to go
✅ Device connectivity is ready to go
👍 Looks good!

Creating Your First Project

Our New Project Wizard can walk you through creating a new project with elcap new.

$ elcap new
Creating a new project...
SDK Releases:
1. v2025.10.00-ga
2. v2025.07.00-beta00
3. v2025.05.00-beta00
4. v2025.03.00-beta00
Select SDK Version (v2025.10.00-ga): 1
Project Name: My Awesome Project
1. T32CZ20B
2. T32CM11C
Input target (T32CZ20B): 2
1. bootloader
2. zigbee
3. hal
Input category (bootloader): 2
1. Door Lock SZED: Sleepy end device door lock application
2. Empty ZED: Blank slate project with no preconfigured ZCL profile
3. On/Off Bulb ZED: Non-sleepy end device on/off bulb application
4. On/Off Switch SZED: Sleepy end device on/off switch application
5. Zigbee RF Test App: TIS TRP Zigbee RF test application
6. Zigbee Sniffer: Application to turn any board into a Zigbee packet sniffer
Input template (door_lock_szed): 3
******
[project]
name = "My Awesome Project"
category = "zigbee"
target = "T32CM11C"
template = "zigbee\\on_off_bulb_zed"
default_hex = "-dkncm11-signed-combined.hex"
[sdk]
version = "v2025.10.00-ga"
******
Project will be created at: G:\TridentIoT_VsCode\elcap-cli\my_awesome_project
Do you confirm generation? [y/n] (y): y

This will create a directory called my_awesome_project in your current directory which will have all the code and information needed to build your project. Take a look at the generated trident.toml file.

If you would like to create the project in an existing directory that is outside of your current directory, use the --path option with the command like so: elcap new --path /path/to/create/project

$ cat my_awesome_project/trident.toml
[project]
name = "My Awesome Project"
category = "zigbee"
target = "T32CM11C"
template = "zigbee\\on_off_bulb_zed"
default_hex = "-dkncm11-signed-combined.hex"
[sdk]
version = "v2025.10.00-ga"

This directory will have everything elcap needs to build your project, so you can check it into source control and share it with other developers on your team.

Building Your First Project

Make sure you're in the project directory.

$ cd my_awesome_project

Now run the build subcommand.

$ elcap build
...
[100%] Built target my_awesome_project-neptune-combined_hex
[100%] Built target my_awesome_project-custom-combined_hex

Note: You can also use the --engine option to specify which container engine to use. So, the command could look like elcap build --engine podman

That's all there is to it!

Flashing Your First Project

Flashing is (almost) just as easy! First connect your device to your USB port and run:

$ elcap flash

With only one device connected, the flash command will run automatically for that device. However, if more than one device is connected, you may see something like:

$ elcap flash
Select a device:
1. Trident IoT Device (USB, Serial: 900040424, COM: COM4)
2. Trident IoT Device (USB, Serial: 900039517, COM: COM3)
3. Trident IoT Device (USB, Serial: 900039517, COM: COM5)
Select device (default: 900040424):

Simply select the device you would like to flash to.

What's Next?

Now that you can create, build and flash your project you'll probably want to make it do something interesting. Check out our SDK docs for more information on how to do that.

Need Help?

First, keep in mind that elcap has extensive help menus with more information. For example, try running --help on the flash subcommand.

$ elcap flash --help
Usage: elcap flash [OPTIONS]
Flash the specified file or the current project.
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --usb INTEGER USB serial number of the connected device (cannot be used with --ip). │
│ --ip TEXT IP address of the connected device (cannot be used with --usb). │
│ --alias TEXT Alias for the connected device (cannot be used with --usb or --ip). │
│ --target TEXT Flash target. │
│ --file PATH File to flash. │
│ --interface TEXT Programming interface. [default: SWD] │
│ --speed INTEGER Programming speed. [default: 4000] │
| --example Flash a pre-compiled example project from specified SDK for the target (cannot be used with --file).│
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

This will give you details on the available commands and their options.

You can also reach out to us at support@tridentiot.com.