EmbeddedEra EmbeddedEra

← All case studies

RealCow training machine controls, built with LHG Industries

The radio link and control boards inside RealCow's mechanical cow, built with LHG Industries: designed, assembled on our own line and shipped as stock.

Role
Controls hardware, firmware, and manufacturing
Client
LHG Industries, for RealCow Training
Period
2024 – present
Stack
STM32, C, KiCad, SMT, DFM, FreeCAD, 3D printing

Built with RealCow Training and LHG Industries.

A rider on a sorrel horse working a RealCow mechanical cow in an indoor arena; the cow rides on a tracked base.

Who we build it with

RealCow Training makes mechanical cows that cutting and cow-horse riders train against, including the CowHorse and Cutter machines. LHG Industries in Fuquay-Varina, North Carolina, builds those machines for RealCow. From our shop in Clayton, about half an hour away, we make the electronics that steer them: the robot’s control board, the two boards inside the rider’s remote, the firmware on all of them, and the test and assembly line that turns them into boards on the shelf, ready when LHG builds the next machine.

The machine at work. Every move you see is a command from the rider's remote, carried by the link and board described below. Video: RealCow Training.

Problem

A trainer rides a horse at speed while a life-size mechanical cow moves across the arena in front of them. They steer it one-handed, from the saddle, with a remote strapped to a finger — no screen, no attention to spare.

That puts a hard requirement under everything: the link decides where a heavy machine goes while a person on a horse is a few feet away from it. A dropped packet cannot mean a stale throttle, and an out-of-range remote has to end with the robot stopped rather than continuing on its last command.

We own the controls side of that product — the robot’s control board, the boards inside the rider’s remote, the firmware on all of them, and the manufacturing that turns them into stocked boards.

What the controls do for the rider

  1. 1One hand, no screen. The rider steers with a small control on one finger and sets speed and mode on a wrist unit, so their eyes stay on the cow and the horse.
  2. 2Stops on its own. If the signal drops, the machine stops and waits. It never keeps going on an old command.
  3. 3Answers to one remote only. Each machine is paired to its own remote, so another remote in the same barn can't move it.
  4. 4Holds up in a metal barn. The radio link is built and tested for metal buildings, arena equipment and busy Wi-Fi.
  5. 5Stays inside its travel. The machine knows where its limits are and won't drive past them.
  6. 6Tested before it ships. Every board passes an automated test station before it goes on the shelf.
The RealCow rider's remote on a workbench: a black finger control with steering buttons, joined by a grey cable to a wrist unit with speed, power, straight mode and slow mode buttons and a hook-and-loop strap.
The rider's remote: a finger control for steering and a wrist unit for speed and modes. LHG Industries assembles it; both boards inside are ours.

Constraints

  • One hand, no display. All state has to be conveyed through button feel and a small number of indicators.
  • Failsafe, not best-effort. Loss of link has one acceptable outcome: motors stopped, no uncommanded motion on reacquisition.
  • 2.4 GHz in a hostile place. Metal barns, arena equipment, and whatever Wi-Fi is nearby.
  • Backward compatibility. Units are already in the field. A new radio protocol could not strand them, so V2 had to detect and fall back to the V1 fixed-channel scheme.
  • Small-batch manufacturing. Design, assembly, test, inventory, and fulfillment run through the same shop, which makes build time a design constraint, not an afterthought.

What we built

Two STM32-based boards with a 2.4 GHz transceiver on each end, plus the firmware, the test fixtures, and the production process.

It started on an 8-bit chip. The first production robot controllers, built in early 2024, ran on an 8-bit microcontroller. The design moved to a 32-bit STM32 over the board revisions that followed, and the radio link, test fixtures and production process grew up around that move.

A frequency-hopping link with hardware ACK (V2), replacing a fixed-channel scheme (V1). The original link sat on one channel and inferred success from returned telemetry — a proxy, not a delivery guarantee. V2 hops, pairs to a specific robot, and uses the radio’s hardware acknowledgement so the firmware knows whether each control packet actually landed. Pairing is explicit and physical: it happens at the machine, not over the air.

Diagram: the handheld remote sends control packets to the robot controller, which drives the motors and returns a hardware acknowledgement. Below, three states: driving with every packet acknowledged, link lost with the motors stopped, and link back with the robot staying stopped until the rider sends a new command.
Every control packet is acknowledged by the radio itself. When the link drops, the only outcome is a stopped robot, and it stays stopped until the rider asks for motion again.

Every board is proved on an automated test station before it ships. Both the controller and the remote have a purpose-built fixture on the test platform built for exactly this — rails, precision current measurement, firmware flashed and verified by hash, and an append-only result log per unit. Building boards in small batches means quality control has to be a machine’s job, not a careful mood.

Four close-ups of the same board's three status LEDs, as captured by the test station's camera: all off, red, orange, then green.
The test station drives each status LED and its camera checks the colour, so a wrong or dead LED fails the board instead of relying on someone's eye.

Manufacturing is part of the design. Boards are assembled on our own pick-and-place, so panelization, feeder count, part packaging, and DFM choices are decisions made while routing, not constraints handed down afterward.

That extends to everything around the board. Mechanical parts are modelled in FreeCAD and made in-house — printed sensor brackets and enclosures, a laser-cut mounting plate that locates the boards, assembly jigs that hold a board square while it goes together, and the trays the boards ship in. The jigs are the unglamorous half and the half that decides whether unit forty comes out like unit one: a fixture that only fits one way removes a mistake that no amount of care reliably prevents at eleven at night.

A panel going through placement. The paste was stencilled by hand, and both the panelization and the feeder layout were decided back at the schematic.

Hardest problem

The V2 link failed in a way that looked like a range problem and wasn’t.

Bench runs with the remote a meter from the robot were losing acknowledgements at a rate no amount of distance could explain — a link that reports single-digit percent loss on a desk has something structurally wrong, not marginally wrong. Debugging it needed evidence rather than intuition, so the measurement was built before the fix: a logging tool that walks the pair through a scenario and writes per-sample counters, a run summary, and the raw parsed snapshots, with the acceptance thresholds encoded in the tool so a run says passed: false on its own rather than waiting on human judgment.

That turned a vague “the radio feels flaky” into a repeatable number that could be moved, and the loss tracked with SPI timing and transport handling rather than with distance. Moving the radio transfers onto DMA and reworking the USB transport took bench success from 85.9% to 97.0% across firmware revisions — measured, not estimated.

Dot chart, axis from 80 to 100 percent: earlier firmware 85.9 percent of packets acknowledged, after the DMA and USB transport rework 97.0 percent.
Bench acknowledgement rate before and after the rework, from the same automated test run.

The production link is qualified the same way: a field matrix of seventeen scenarios — doors closed, floors above and below, four remote orientations against the body, minimum operating voltage, deliberate out-of-range and recovery — run in both V1 and V2, because a single walk with a new build proves nothing about a building whose RF environment changes hour to hour.

Result

  • Radio v2 raised bench hardware-ACK success from 85.9% to 97.0%, with every change measured against a written production gate.
  • From an 8-bit first build in 2024 to the 32-bit controller and remote in production today, each revision tested on the same station.
  • Every unit is assembled, tested, and stocked in-house on equipment we own.

What we’d change

The V1 link shipped before there was any way to measure it, so “is it working?” was a judgment call for far too long. The logging harness should have been the first thing built, not the thing reached for once V2 misbehaved. On every project since, the measurement comes first.

Common questions

Can you build the controls for a machine another shop manufactures?

Yes. That is how this project works: LHG Industries builds the RealCow machines, and we design, assemble and test the control boards that go into them, including the two boards inside each rider's remote.

Do you only design, or do you also build the boards?

Both. We design the boards and firmware, then assemble them on our own pick-and-place line in Clayton, North Carolina, test every unit and keep them in stock.

What happens if a wireless remote loses its signal?

The machine stops and waits. It never keeps moving on an old command, and it only moves again when the operator sends a new one.

Can you take over controls for a machine that is already in the field?

Yes. New versions can be designed to work alongside units customers already own, so nothing in the field is left behind.

Start a project

Building a machine that needs controls like these? Tell us what it has to do.

What we did here: Firmware · PCB design · SMT assembly · Test fixtures