惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
博客园_首页
博客园 - 【当耐特】
V
Visual Studio Blog
博客园 - 叶小钗
月光博客
月光博客
美团技术团队
J
Java Code Geeks
小众软件
小众软件
Y
Y Combinator Blog
博客园 - Franky
Martin Fowler
Martin Fowler
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
Provision Simulations as if they are VMs
Tariq Rafid · 2026-06-13 · via Hacker News: Show HN

We just launched our cloud to run your firmware against modern, popular MCUs — from code, not from a browser tab.

The web app is great for building and debugging interactively. But most embedded teams don’t have a simulation culture at all: testing means a board on a desk, a debugger probe, and someone manually flashing builds. That doesn’t scale past one desk, and it definitely doesn’t run in CI. Our cloud SDK is our answer — everything the simulator does, scriptable.

MCUs are code

A project, a graph, components, firmware. No GUI, no string-based wiring — you connect actual bus-level signals:

const client = createClient(env.SIM86_API_KEY)

const project = await client.createProject("smart-fan-controller")
const graph = project.graph

const mcu = graph.addComponent(Components.ADAFRUIT_STM32F405_EXPRESS)
const imu = graph.addComponent(Components.MPU6050)

mcu.setFlash("./firmware.elf") // path or Uint8Array

// connect physical bus-level signals
graph.connect(imu.pins.sda, mcu.pins.sda)
graph.connect(imu.pins.scl, mcu.pins.scl)

Streams and records

Everything the simulation produces is observable. Streams emit live during the run — sensor outputs, even individual CPU registers:

// live sensor output
imu.stream("gyro").subscribe(({ x, y }) => {
  console.log("IMU:", { x, y })
})

// program counter transitions, sampled every 35ms of simulation time
mcu.cpu0.stream("pc", { throttle: 35 }).subscribe((pc) => {
  console.log("PC:", pc)
})

Streams are for watching; keep them throttled. For anything high-frequency, record it instead and query it after the run:

mcu.record({
  include: [
    "cpu0.sp",   // stack pointer register transitions
    "usart",     // tx/rx streams
    "i2c.0x04",  // I2C register at offset 0x04 from peripheral base
    "rtt",       // Segger RTT
  ],
})

Run it, poke it, query it

Runs are bounded in simulation time, and you can schedule events against the timeline — inject sensor values, press reset, see how your firmware reacts:

const run = await graph.run({
  duration: 5000, // 5 seconds of simulation time
  record: { include: ["cpu0.pc", "cpu0.sp", "usart"] },
})

// scheduled events (timing guaranteed within ±10ms)
await run.at(1000).do(() => {
  imu.setYGyro(5)
})
await run.at(3000).do(() => {
  mcu.pressReset()
})

const logs = await run.logs()

Runs are persisted, so postmortems don’t require reproducing anything:

const logs = await client
  .getProject("my-project-id")
  .getRuns("my-run-id")
  .logs()

It pairs brilliantly with Claude Code

Coding agents are only as good as their feedback loop, and embedded development normally has the worst one imaginable: flash a board and watch it. The SDK gives an agent the loop it actually needs. Point Claude Code at a repo with the SDK installed and it can compile your firmware, run it on a simulated board, read the logs, register transitions, and bus traffic, and keep iterating until the behavior is right — unattended.

Why this matters

Most simulators are deterministic: the same binary produces the same execution, every time. That’s convenient — and it’s exactly why firmware that passes a deterministic simulator still dies on real hardware, where clocks drift and interrupts land at the worst possible moment.

Simulator86 is stochastic. Every run injects controlled timing variation, the way real silicon does. So a passing run isn’t “it worked once under lab conditions” — surviving runs here means your firmware has a genuinely working path on hardware. Put that in CI, on every commit, and you have something most embedded teams have never had: regression testing that actually predicts hardware behavior.

The SDK is available now. If you’re a business looking to build a simulation culture, talk to us.