Migrating from Legacy Systems

Robot Framework vs TofuPilot for Hardware Test

Learn what Robot Framework covers for hardware testing, what it leaves out, and how to run .robot suites on TofuPilot with measurement limits.

JJulien Buteau
intermediate7 min readNovember 9, 2026

Robot Framework is a keyword-driven test automation framework under the Apache 2.0 license, funded by the non-profit Robot Framework Foundation. It is widely used for embedded and system testing through libraries for serial ports, SSH and Telnet. TofuPilot is a test platform built around the open-source TofuPilot Framework, and its CLI also runs Robot Framework suites natively. This guide compares the two for hardware test and shows how they combine.

Facts about Robot Framework were checked against robotframework.org and its user guide in November 2026 (version 7.5.1).

Overview

Robot FrameworkTofuPilot Framework
LicenseApache 2.0MIT
MaintainerRobot Framework FoundationTofuPilot
Test syntaxKeywords in .robot filesYAML procedure, Python phases
ExtensionKeyword libraries in Python or JavaPlugs as Python classes
Resultsoutput.xml (or JSON), log.html, report.htmlRuns uploaded to the dashboard
Measurement limitsNo built-in model, assertions onlyValidators on each measurement
Operator UIDialogs library (modal popups)Browser kiosk declared in the procedure
Station managementNoneDeployment, versions and rollback

What Robot Framework Does Well

  • Readable tests. Keyword syntax reads like a test specification, so system engineers and QA can review it.
  • Libraries. SSHLibrary, Telnet, Process and third-party SerialLibrary cover most embedded interfaces.
  • Software and hardware in one tool. The same suite can drive a device over serial and a web UI over a browser library.
  • Reports. Every run produces an HTML log and report with keyword-level detail.
firmware.robot
*** Settings ***Library    SerialLibrary    encoding=ascii*** Test Cases ***Firmware Reports Version    Add Port         /dev/ttyUSB0    baudrate=115200    timeout=2    Write Data       VER?    ${resp}=         Read Until      terminator=    Should Contain   ${resp}         FW 1.4    [Teardown]       Delete All Ports

What It Leaves Out for Production Test

  • No measurement record. A test fails when a keyword fails. A numeric check is an assertion such as Should Be True 3.2 < ${v} < 3.4; the value, unit and limits are not stored as structured data in the output.
  • No result database. Each run produces files. Comparing yield or a measurement across thousands of units needs a pipeline built outside the framework.
  • No instrument layer. There is no standard VISA or SCPI library; instruments are wrapped in a custom Python keyword library.
  • No operator workflow. The Dialogs library pauses execution with a modal popup. Serial number scanning, guided steps and a pass or fail screen are not provided.
  • No station management. Getting a new suite version onto every station is left to your own process.

Feature Comparison

FeatureRobot FrameworkTofuPilot Framework
Numeric measurements with units and limitsNoYes
Curves and sweeps with per-axis validatorsNoYes
Parallel phasesThrough Pabot, per suite or testYes, per phase
Multi-slot fixturesNoYes
Serial number scanning and unit identityNoYes
Yield, control charts and CpkNoYes, in the dashboard
Deploy to stationsNoGit push, instant rollback
Keyword-driven syntaxYesNo

Running Robot Framework on TofuPilot

Choosing TofuPilot does not require rewriting .robot suites. The TofuPilot CLI runs them through Robot's Listener API v3: each test case becomes a phase, and logs flow to the dashboard. The bundled tofupilot_robot library adds keywords that keep the value, limits and unit of each measurement:

suite.robot
*** Settings ***Library    tofupilot_robot*** Test Cases ***Rail 3V3    ${voltage}=    Read Voltage    Measure Numeric    rail_3v3    ${voltage}    min=3.2    max=3.4    unit=V

Push the suite to your Git provider and import it from the New Procedure wizard to deploy it to stations. Details are in Robot Framework on TofuPilot.

Which to Choose

SituationBetter fit
Existing .robot suites, team fluent in keywordsRobot Framework, run on TofuPilot
Mixed software and device tests in one suiteRobot Framework, run on TofuPilot
New production test with instruments and limitsTofuPilot Framework
Fixtures with several units, cycle time mattersTofuPilot Framework
Waveforms judged on their shapeTofuPilot Framework

For other options, see Open Source Test Executive Alternatives.

More Guides

Put this guide into practice