Turning risky remote commands into safe, predictable workflows.
One of the most critical functions during the lifecycle of a connected device is sending and managing commands like Firmware Over-The-Air (FOTA) updates, configurations or any other custom commands to devices remotely.
Unlike standard SaaS apps where 'Undo' is easy, IoT commands carry a physical risk.
Pushing an incompatible file or losing connection during a command can permanently damage ("brick") the device hardware.
The team needed a safer way to send remote commands to connected devices.
Previously, our internal engineering team performed these high-risk operations using a custom-built Python tool. This workflow was fraught with usability issues.
High Risk of Error
No way to avoid wrong file selection or asset selection. It allowed whatever the user was doing, even if it's wrong.
Cognitive Load
Engineers worked under the constant stress that a single mistake could disable a fleet of vehicles.
What if we could turn this moment of distress into the power of control?
😖→😤
Let's begin from the start and see how we achieved it.
This project was started as a separate module for Vec-TR.
Vec-TR is a comprehensive SaaS platform developed by Vecmocon to manage the lifecycle, monitoring, and configuration of connected vehicles and IoT devices.
It includes different modules, each with their own functions, and command center was going to be one of the critical functionality of this app.
Vec-TR
Organizations
Assets and Devices
Dashboard Management
User Management
Inventory
Command Center
Events
Reports
Role Management
Asset Groups
Route History
Data Profiles
At the heart of this ecosystem lies the VIM (Vehicle Intelligence Module). Think of the VIM as the "brain" of the connected vehicle. Physically installed on the asset, it acts as a central gateway, aggregating critical telemetry data from sub-components like the Battery Management System (BMS) and Motor Controller.
The communication flow is bi-directional, creating a constant feedback loop
Upstream (Telemetry)
The VIM constantly pushes health and status data to the cloud, which Vec-TR visualizes for the user.
Downstream (Command & Control)
This was our design focus. The user needs to send complex instructions—such as configuration changes or firmware updates—from the Vec-TR web dashboard back to the VIM.
While the team was facing a lot of problems, those all could be categorized into three categories.
There were three main problems that the team was facing.
Decentralized Data & Version Chaos
Firmware files existed in a fragmented state, often shared via chat or stored on local drives. This lack of a "Single Source of Truth" made version control nearly impossible, leading to a high risk of engineers manually handing off and deploying outdated or unverified code.
High Cognitive Load & Lack of Guardrails
The workflow relied entirely on human vigilance to prevent disasters. Without system-level validation, it was dangerously easy to select an incompatible file or target the wrong vehicle. Crucially, the lack of a "Testing Ground" meant engineers had to push updates directly to production without a safe staging environment.
Operational Blindness (The "Black Box" Problem)
Once a command was triggered via the script, it entered a void. Engineers had no real-time visibility into the campaign's progress and, most critically, lacked an "Emergency Brake." If a deployment started failing, there was no way to pause or abort the operation, leaving the fleet vulnerable until the script finished.


