Assemble Labs has raised $1.3M in pre-seed funding led by Menlo Ventures

AI That Runs Your Hardware Lab

AssembleAI designs spec-driven experiments, autonomously runs them on your embedded systems, and delivers verified fixes by controlling your lab instruments.

Firmware and Design Files
Lab Instruments
Device Under Test
AssembleAI
AssembleAI autonomously conducts the scientific method on real hardware.
Spec-Driven Experimentation
Define what your hardware should do. The AI designs and runs experiments to test it.
Real Instrument Control
Directly configures your oscilloscope, power profiler, and logic analyzer. No scripts, no manual setup.
Root Cause to Verified Fix
Measures, diagnoses, modifies firmware, and re-measures in a closed loop until the spec passes.

Catch Every Power Regression

Continuously tests every firmware build, identifies every regression, and validates fixes on your hardware in seconds.

Power Profiler
Measuring
Regression
Verified
Analyzing
1000μA 750μA 500μA 250μA 0μA MEASURING Establishing power baseline... ROOT CAUSE IDENTIFIED k_timer_start(&poll_timer, K_MSEC(10)) 10ms polling prevents CPU deep sleep FIX: gpio_pin_interrupt_configure() Replace polling timer with GPIO wake interrupt
Measuring Baseline
Regression Detected: 34× increase
Diagnosing Root Cause
Fixed & Verified
--- μA
AVG CURRENT
---
BATTERY LIFE
Measuring
STATUS
850 μA
AVG CURRENT
11 days
BATTERY LIFE
FAIL
STATUS
10ms Poll
ROOT CAUSE
GPIO IRQ
SUGGESTED FIX
Building
STATUS
27 μA
AVG CURRENT
11 months
BATTERY LIFE
PASS
STATUS
Autonomously validate power draw on every build.
Continuous Power Profiling on Real Hardware
An SMU measures current and voltage on every build so regressions surface before they ship.
Traces Every Spike Back to Its Root Cause
Cross-references power traces with code diffs and peripheral configs to pinpoint the offending driver.
Patches, Reflashes, and Re-Measures
Applies the fix, programs the board, and confirms the build meets your power budget.
Regressions fixed within seconds

Correct Every Timing Issue

Captures waveforms with an oscilloscope in the loop, detects timing violations, and autonomously corrects them on your hardware.

Device Under Test
STM32 F407VG PMIC nRF52 FLASH DAC PWR STS BLE ESD LVLSH FET TMP ADC CAN EEPROM BOOST SWD USB J1 TP1 D1 D2 D3
Oscilloscope — CH1
Capturing
CAPTURINGAcquiring waveform from oscilloscope… TIMING VIOLATION IDENTIFIEDRebuilding & reflashing… CH11V/div2μs/divTrig'd
Pulse Width Period Rise Time
---
MEASURED
---
SPEC
Capturing
STATUS
AssembleAI
Orchestrating
Autonomously validate signal timing on every build.
Live Waveform Capture from Your Board
Acquires real signals via an oscilloscope to validate rise times, pulse widths, and clock edges after every build.
Nanosecond-Precision Timing Checks
Compares every measurement against datasheet specs and flags setup/hold or frequency violations instantly.
Fixes Timer Configs and Re-Verifies on Hardware
Adjusts prescalers, clock dividers, or GPIO settings, then rebuilds, reflashes, and re-captures to confirm the fix.

Debug Every Protocol Problem

Captures protocol data with a logic analyzer in the loop, detects communication errors, and autonomously fixes them on your hardware.

Autonomously debug communication protocols.
Real-Time Protocol Decode on Live Buses
A logic analyzer captures and decodes I²C, SPI, UART, and CAN traffic straight from your running hardware.
Catches Every Bus Error Automatically
Detects ACK/NACK failures, clock-stretching violations, bus contention, and malformed frames automatically.
Corrects Configs, Reflashes, and Re-Captures
Fixes baud rates, address assignments, or bus settings, then programs the board and verifies clean transactions.
Device Under Test
STM32F407VG DS1307 nRF52 FLASH DAC LM358 TXB0104 TP1TP2TP3 USB TIMER MODULE v1.2
Logic Analyzer
CH0 SCL CH1 SDA
AssembleAI
Orchestrating

Augment Your Current Development Tools

Your full hardware context, directly in your development environment. No context switching. No manual lookups.

Cursor
Cursor
AI-First IDE
VS Code
VS Code
Copilot
GitHub Copilot
Claude Code
Anthropic
Mac
macOS
Windows
Microsoft
Linux
Linux
Linux
main.c bringup.c sensors.h
Cursor logo Cursor with AssembleAI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Hardware bringup sequence for new board revision
// Board: IoT-Sensor-v2.1 | Date: 2025-01-15
#include "stm32f4xx_hal.h"
#include "board_config.h"
#include "sensors.h"
static uint8_t power_state = 0;
static SPI_HandleTypeDef hspi1;
static I2C_HandleTypeDef hi2c1;
void board_bringup_sequence() {
// Step 1: Configure power rails
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
HAL_Delay(100);
power_state = 1;
// Step 2: Initialize SPI
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
if (HAL_SPI_Init(&hspi1) != HAL_OK) {
Error_Handler();
}
// Step 3: Initialize I2C
hi2c1.Instance = I2C1;
hi2c1.Init.ClockSpeed = 400000;
if (HAL_I2C_Init(&hi2c1) != HAL_OK) {
Error_Handler();
}
// Type to ask AssembleAI...
}
AssembleAI Context Connected
Project Context
Board Version: v2.1
MCU: STM32F407VGT6
Components: 247 loaded
Datasheets: 45 indexed
Intelligent Suggestion
I notice you're bringing up the temperature sensor. Based on your schematic:
MAX31855 Connections (U4):
PA0 → SO (Pin 3) - MISO
PA1 → CS (Pin 5) - Chip Select
PA2 → SCK (Pin 4) - Clock
R12: 10kΩ pull-up on SO

Initialization sequence:
// MAX31855 Initialization
SPI_HandleTypeDef hspi1;
MAX31855_Init(&hspi1, GPIOA, 1);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, SET);
// CS high initially
HAL_Delay(200); // Startup time
bringup.c Ln 12, Col 8 UTF-8 C
AssembleAI Connected

Works with Your Equipment

Directly interfaces with your oscilloscope, logic analyzer, power profiler, and other tools in your development environment.

Saleae Saleae
Tektronix Tektronix
Keysight Keysight
Rohde & Schwarz Rohde &
Schwarz
Fluke Fluke
Yokogawa Yokogawa

Don't see your equipment listed? We can integrate with it.

Maximum Security and Privacy

AssembleAI runs fully on-prem inside your firewall with an air-gapped architecture, so none of your data ever leaves your servers.

Your data never leaves your development environment.
On-prem & air-gapped
Runs entirely on your infrastructure. Private cloud, bare-metal server, or isolated workstation.
Zero data egress
Schematics, firmware, test logs, and datasheets never leave your network. Not even anonymized telemetry.
Full compliance & audit ready
Built for ITAR, EAR, and SOC 2 environments with audit trails, role-based access, and full data sovereignty.
Data never leaves your servers
Runs on your servers
On-premises · Air-gapped
Your Data
Schematics
Firmware
Component datasheets
User guides

Built by Hardware Experts

We have decades of experience working on the Apple iPhone, Google Pixel, Meta Oculus, and Amazon Kindle.

Nima Banai, Co-Founder and CEO

Nima Banai

Co-Founder & CEO

Craig Schindler, Co-Founder and CTO

Craig Schindler

Co-Founder & CTO

Google Google
Meta Meta
Apple Apple
Amazon Amazon

Backed By

Menlo Ventures

Part Of

Get Started Today

Augment your embedded systems team with cutting-edge AI.

Ship hardware 10X faster.

Schedule a call to discuss full integration into your workflow

Assemble Labs has raised $1.3M in pre-seed funding led by Menlo Ventures

AI That Runs Your Hardware Lab

AssembleAI designs spec-driven experiments, autonomously runs them on your embedded systems, and delivers verified fixes by controlling your lab instruments.

Firmware and Design Files
Lab Instruments
Device Under Test
AssembleAI
AssembleAI autonomously conducts the scientific method on real hardware.
Spec-Driven Experimentation
Real Instrument Control
Root Cause to Verified Fix

Catch Every Power Regression

Power Profiler
MEASURING Establishing power baseline... ROOT CAUSE IDENTIFIED k_timer_start(&poll_timer, K_MSEC(10)) 10ms polling prevents CPU deep sleep FIX: gpio_pin_interrupt_configure() Replace polling timer with GPIO wake interrupt
Measuring Baseline
Regression Detected: 34× increase
Diagnosing Root Cause
Fixed & Verified
--- μA
AVG CURRENT
---
BATTERY LIFE
Measuring
STATUS
850 μA
AVG CURRENT
11 days
BATTERY LIFE
FAIL
STATUS
10ms Poll
ROOT CAUSE
GPIO IRQ
SUGGESTED FIX
Building
STATUS
27 μA
AVG CURRENT
11 months
BATTERY LIFE
PASS
STATUS
Autonomously validate power draw on every build.
Continuous Power Profiling on Real Hardware
Traces Every Spike Back to Its Root Cause
Patches, Reflashes, and Re-Measures
Regressions fixed within seconds

Correct Every Timing Issue

Device Under Test
STM32F407VG PMIC nRF52 FLASH DAC ESD
Oscilloscope
Capturing
CAPTURING Acquiring waveform from oscilloscope… TIMING VIOLATION IDENTIFIED Rebuilding & reflashing… CH1 1V/div 2μs/div Trig'd
Capturing Waveform
---
MEASURED
---
SPEC
Capturing
STATUS
AssembleAI
Orchestrating
Autonomously validate signal timing on every build.
Live Waveform Capture from Your Board
Nanosecond-Precision Timing Checks
Fixes Timer Configs and Re-Verifies on Hardware
Timing violations corrected autonomously

Debug Every Protocol Problem

Device Under Test
STM32F407VG DS1307 nRF52 FLASH DAC LM358 TXB0104 TP1TP2TP3 USB TIMER MODULE v1.2
Logic Analyzer
CH0 SCL CH1 SDA
AssembleAI
Orchestrating
Autonomously debug communication protocols.
Real-Time Protocol Decode on Live Buses
Catches Every Bus Error Automatically
Corrects Configs, Reflashes, and Re-Captures
Protocol errors corrected autonomously

Augment Your Current Development Tools

Cursor
Cursor
AI-First IDE
VS Code
VS Code
Copilot
GitHub Copilot
Claude Code
Anthropic
Mac
macOS
Windows
Microsoft
Linux
Linux
Linux
bringup.c
Cursor logo Cursor with AssembleAI
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// Hardware bringup sequence
// Board: IoT-Sensor-v2.1
#include "stm32f4xx_hal.h"
#include "board_config.h"
#include "sensors.h"
#include "i2c_util.h"
static uint8_t power_state = 0;
static SPI_HandleTypeDef hspi1;
static I2C_HandleTypeDef hi2c1;
void board_bringup_sequence() {
// Step 1: Configure power rails
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
HAL_Delay(100);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_SET);
power_state = 1;
// Step 2: Initialize SPI
hspi1.Instance = SPI1;
hspi1.Init.Mode = SPI_MODE_MASTER;
// Step 3: Initialize I2C
hi2c1.Instance = I2C1;
// Ask AssembleAI...
}
AssembleAI Context Connected
Project Context
Board Version: v2.1
MCU: STM32F407VGT6
Components: 247 loaded
Datasheets: 45 indexed
Intelligent Suggestion
I notice you're bringing up the temperature sensor. Based on your schematic:
MAX31855 Connections (U4):
PA0 → SO (Pin 3) - MISO
PA1 → CS (Pin 5) - Chip Select
PA2 → SCK (Pin 4) - Clock
R12: 10kΩ pull-up on SO

Initialization sequence:
// MAX31855 Initialization
SPI_HandleTypeDef hspi1;
MAX31855_Init(&hspi1, GPIOA, 1);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, SET);
// CS high initially
HAL_Delay(200); // Startup time
bringup.c Ln 12
AssembleAI Connected

Works with Your Equipment

Saleae
Saleae
Tektronix
Tektronix
Keysight
Keysight
Rohde & Schwarz
Rohde &
Schwarz
Fluke
Fluke
Yokogawa
Yokogawa

Don't see your equipment listed? We can integrate with it.

Maximum Security and Privacy

Runs on your servers
On-premises · Air-gapped
Your Data
Schematics
Firmware
Component datasheets
Data never leaves your servers
Your data never leaves your development environment.
On-prem & air-gapped
Zero data egress
Full compliance & audit ready

Built by Hardware Experts

Nima Banai, Co-Founder and CEO

Nima Banai

Co-Founder & CEO

Craig Schindler, Co-Founder and CTO

Craig Schindler

Co-Founder & CTO

Google Google
Meta Meta
Apple Apple
Amazon Amazon

Backed By:

Get Started Today

Ship hardware 10X faster.

Schedule a call to discuss full integration