- Document
- CI-0001
- Revision
- A
- Date
- 2026-10-04
Embedded systems engineering
Circuit boards, the firmware that runs on them, and the software that talks to both.
I take an instrument from the first block diagram through schematic, layout, bring-up and firmware to the desktop tool that drives it on the bench. The tools I build along the way are published here for anyone to use.
1Features
Hardware
- Schematic and multilayer layout, from block diagram to fabrication and assembly files
- High-speed digital: stackup planning, controlled impedance, length and skew matching, unbroken return paths
- Mixed signal: ADC and DAC front ends, references and clocks, grounding that keeps switching noise out of the measurement
- Analog: amplifiers, filters, sensor conditioning and current sensing
- Low-speed digital and power: microcontroller systems, bus interfaces, regulators, sequencing and protection
- Assembly, rework and first power-up
Firmware
- C on STM32 and ESP32-S3 microcontrollers
- Interrupt- and DMA-driven drivers, timers and ADCs
- Framed binary protocols with CRC checks over USB, UART and RS-485
Host software
- C# and .NET desktop tools that drive the hardware and log every exchange
- Python for test automation, instrument control over SCPI, and data analysis
- Live BOM pricing and stock checks across distributors
2Applications
- Research and development instruments
- Bench test fixtures and production test
- Data acquisition and sensor systems
- Control and configuration software for hardware
3Description
Carrillo Industries is the workbench of an embedded systems engineer working in R&D. One person carries a design across the whole loop, so the board, its firmware and its software are designed to fit each other.
When the measurements say something should change, the loop runs again. The templates and tools that make each pass faster are published as open source.
4Projects
| Part number | Description | Type | Status |
|---|---|---|---|
| carrillo-wpf-template | A .NET 10 WPF starting point for hardware tools: navigation shell, MVVM, dependency injection, per-session logs, settings and tests. dotnet new carrillo-wpf creates a new app from it. |
Desktop | Preparing release |
| ESP32S3-Starter | ESP-IDF v6 firmware for the ESP32-S3-DevKitC-1: status LED, a command line over native USB, and JSON telemetry a desktop tool can read. | Firmware | In progress |
| Automate-BOM | Looks up live stock and pricing for a bill of materials across DigiKey, Mouser and Newark, and writes a priced Excel workbook. | Tool | Preparing release |
| Altium project template | New board projects that start with my design rules, stackups, title block and output jobs, plus a command that creates one. | PCB tooling | Planned |
Repositories appear on GitHub as they are released.
5Design notes
- Measure first
- A claim about speed or noise comes with a number, and a fix comes with the measurement that proved it.
- Write down the root cause
- Every hard problem gets a short record: the symptom, the real cause, the fix, and what keeps it from coming back.
- Record decisions
- Design choices are written down with the alternatives and why they lost.
- Version everything
- Every release gets a version number and a changelog entry, and the version is stamped into the build.
- Document while building
- Docs are written alongside the work, while the reasons are still fresh.
- Publish what helps
- A tool that saves me an hour can save someone else one too, so it goes out as open source.
6Revision history
| Date | Change |
|---|---|
| 2026-10-04 | Revision A of this page. |
| 2026-10-03 | ESP32-S3 starter firmware 0.1.0: LED, USB command line, JSON telemetry. |
| 2026-10-03 | WPF app template v0.1.0, with the Carrillo Industries brand. |