Haas Automation Cell API — Lights-Out Cell Integration with International Partner
2025An ASP.NET Core HTTP API that exposes a request/poll interface to a Haas CNC controller for part sign-off, serial number retrieval, laser marking, and CMM measurements. The API handles the actual integration with the Keyence laser marker and Wenzel CMM on the server side, keeping hardware details off the controller. A containerized dummy API with a mock HTML UI was shipped to Haas Automation in Germany so their engineers could develop and test controller logic months before the physical machine arrived in the US.
Motivation
The business unit ordered an externally developed automated cell without involving the software team. Haas engineers in Germany needed a stable API contract to build against while the production version was still being designed — and the proprietary production code could not be shared.
Challenge
The scope was larger than initially described: beyond part sign-off and serial number retrieval, the API would need to directly command a Keyence laser marker and poll a Wenzel CMM for measurement results — hardware integrations that had to be negotiated and designed mid-project. Simultaneously, the Haas team in Germany needed something to develop against immediately, with no access to any of Turbocam's real infrastructure or data.
Solution
A minimal dummy API was built that matched the exact OpenAPI spec of the production version endpoint-for-endpoint, with Bearer authentication wired in identically. A lightweight HTML mock UI let the Haas developer simulate state changes on the CMM and laser marker — triggering the same async polling flow their controller would use in production. The whole thing was containerized into a single Docker image and emailed to Germany. On the production side, the layered architecture from the Keyence laser cell was extended: the laser marker communication library was reused as-is, and a new integration layer was added to command the Wenzel CMM and surface its results through the same request/poll API pattern the Haas controller expected.
Outcome
When the machine arrived in the US, integration was completed in roughly a day. Architectural improvements back-ported cleanly to the previous cell generation, validated by existing unit tests with no regressions.
- C#
- ASP.NET Core
- REST
- Bearer authentication
- OpenAPI / Swagger
- Docker
- Containerized API distribution
- Keyence Laser Marker
- Wenzel CMM integration