The Engineering Challenge
A heliostat is a mirror that tracks the sun and redirects its reflection to a fixed target: a building facade, a solar receiver, a process heat collector, or a concentrating solar power plant. Unlike a solar panel tracker — which simply points the panel at the sun — a heliostat must hold its reflection at a specific, arbitrary point in space while the sun moves across the sky. The required mirror orientation is not the sun's position; it is computed from both the sun's position and the target's angular position relative to the mirror, and it changes by roughly 0.3 to 0.5 degrees every minute.
That seemingly small angular rate still demands a closed-loop position controller capable of resolving fractions of a degree, running reliably outdoors for years, and doing so without a large bill of materials. Precision actuators with built-in encoders are expensive and mechanically complex. Motor drives add cost and panel space. Dedicated motion controllers add yet another layer. The EQSP32 eliminates all of these.
I/O Inventory
| Channel | Signal | Type | Notes |
|---|---|---|---|
| POUT 1–4 | Tilt actuator — speed | POUT ×4 | Four outputs paralleled; combined 4 A headroom for motor startup |
| POUT 5–8 | Pan actuator — speed | POUT ×4 | Four outputs paralleled; same arrangement as tilt |
| DO 9 | Tilt direction relay | DO | Energises DPDT relay to reverse tilt motor polarity |
| DO 10 | Pan direction relay | DO | Energises DPDT relay to reverse pan motor polarity |
| RS485 | IMU — WinMotion SINDT-485 | Modbus RTU | X/Y inclination at 0.001° resolution; 5 V powered from EQSP32 aux output |
| Wi-Fi | Sun position API | HTTPS | ipgeolocation.io — azimuth and altitude, fetched every minute |
| AIN 11 | Wind speed sensor | 0–10V | Optional — park mirror when wind exceeds threshold |
| DO 12–16 | Spare | – | Available for auxiliary functions |
IMU as Position Feedback: Simpler, More Accurate, More Reliable than Encoders
The standard approach to position feedback on a linear actuator is a built-in potentiometer or an external encoder. Both create mechanical coupling problems: potentiometers drift with temperature and wear, encoders require precise shaft alignment, and any backlash in the linkage between the encoder and the mirror introduces deadband that degrades pointing accuracy. Neither technology is suited for unprotected outdoor use — potentiometers corrode and encoders accumulate contamination in their optical or magnetic gaps. A heliostat lives outside, year-round.
There is a deeper problem too: actuator stroke does not translate cleanly into mirror angle. Even with a perfect, zero-backlash linkage, the relationship between linear extension and angular rotation is nonlinear and depends on the exact geometry of the pivot and arm lengths. Any manufacturing tolerance or thermal growth shifts that geometry, rendering a stroke-based position calculation inaccurate without recalibration.
The IMU approach sidesteps both problems entirely. A dual-axis inclinometer mounted directly on the mirror frame measures the actual orientation of the mirror — not the actuator stroke. Mechanical slop, linkage flex, thermal expansion, and geometric nonlinearity are all automatically compensated because the sensor measures the end result, not an intermediate mechanical quantity.
The WinMotion SINDT-485 used here is a dual-axis industrial inclinometer that speaks Modbus RTU over RS485 — the same bus the EQSP32 exposes natively on its screw terminals. No adapter, no level shifter, no breakout board: the sensor wires connect directly to the EQSP32's RS485 terminals, and the EQSP32's 5 V auxiliary output powers it. The Modbus master function in the EQSP32 library handles periodic polling in two lines of code and returns X and Y inclination resolved to 0.001°. At 60 EUR the SINDT-485 costs a fraction of what encoder-equipped actuators would add to the bill of materials.
Key insight: Mounting the IMU on the mirror frame, not on the actuator, makes the control loop inherently insensitive to mechanical tolerances. Any source of positioning error — backlash, linkage flex, thermal growth — is visible in the feedback and automatically corrected at the next control cycle.
Driving Linear Actuators: Paralleled Outputs and PWM Speed Control
Each linear actuator draws up to 2 A at startup. A single EQSP32 solid-state output is rated at 1 A continuous. Rather than adding an external motor driver, four outputs are wired in parallel for each actuator, bringing the combined current rating comfortably above the motor's peak demand. The wiring is straightforward: all four output terminals connect to the same motor lead.
Precise angular positioning requires slow, controllable actuator movement. The EQSP32's PWM outputs solve this without any additional hardware. At 10% duty cycle the effective voltage applied to the 24 V actuator is approximately 2.5 V, reducing motor speed to a crawl. The control loop issues 50 ms PWM pulses once per second, each producing a mirror movement of roughly 0.1°. This is smaller than the sun's movement in one minute, giving the controller enough resolution to correct any accumulated error at each update cycle.
Direction reversal with a simple DPDT relay
A DC motor reverses direction when its supply polarity is swapped. A single DPDT relay wired across each motor does exactly this: one state drives the actuator to extend, the other retracts it. One digital output per actuator is all that is required.
An important practical note: during normal daytime tracking, each actuator moves mostly in one direction. The pan axis sweeps from east to west over the course of a day; the tilt axis rises in the morning and falls in the afternoon. Relay switching events are therefore far fewer than the number of PWM steps, keeping relay wear negligible across the lifetime of the installation.
Sun Position via Wi-Fi: The Most Accurate Method
Computing the sun's position on-chip using an astronomical algorithm is possible, but published implementations are approximations that can deviate from the true position by a degree or more, depending on the formula and the time of year. For heliostat pointing, where the objective is to keep a reflection on a target within a few centimetres at several metres of distance, this error matters.
The EQSP32's native Wi-Fi connectivity makes a better approach trivial: call the ipgeolocation.io astronomy API with the installation's GPS coordinates, and receive the exact sun azimuth and altitude for that location at that moment. The API accounts for atmospheric refraction, the observer's altitude, and all higher-order corrections. The free tier allows up to 1000 API calls per day. At one call per minute and a tracking window from 08:00 to 20:00, the daily call count is 720, comfortably within the free limit.
Accuracy note: In field testing with a mirror at 5 metres from the target wall, the reflection remained within a few centimetres of the target for a full hour of continuous tracking — even on a windy day that caused minor mechanical vibration in the stand. The system corrects accumulated error at every one-minute API call, so small disturbances do not compound.
Closed-Loop Control: How It All Works Together
The control loop runs as follows. Every minute the EQSP32 calls the sun position API and retrieves the current azimuth and altitude. Using the known angular position of the target and the rules of specular reflection, it computes the required mirror pitch and roll angles. It then reads the current mirror orientation from the IMU over RS485 Modbus RTU. If the error exceeds the step threshold, the appropriate actuator is pulsed at reduced PWM until the IMU confirms that the mirror has reached the target angle. The direction relay is set before each move and cleared when the move is complete.
Because the sun moves only 0.3 to 0.5 degrees per minute, most corrections are small: a few PWM pulses per axis, per cycle. The actuators are stationary most of the time, drawing no current and generating no heat. Motor and relay service life is extended accordingly.
The mount is a straightforward pole design: a single vertical mast carries the mirror frame, the azimuth actuator swings the frame around the mast, and the inclination actuator sets its tilt. It is compact, rigid, and simple to fabricate. Because the IMU sits on the mirror frame and reports the resulting orientation directly, actuator stroke and linkage geometry never enter the control math: the loop simply drives each actuator until the measured angles match the computed setpoints.
A compact, weatherproof control panel
The complete controller fits neatly in a standard waterproof DIN-rail enclosure: one EQSP32, one 24 V DIN-rail power supply, and two low-cost DPDT relays. There is no motor driver module, no motion controller card, and no dedicated communication gateway. Because the enclosure is rated IP65 or better, it can be mounted outdoors directly next to the mirror structure, keeping actuator cable runs short and eliminating the need to route low-voltage motor wiring back to a protected indoor panel.
Wiring Overview
Taking the System Further
The architecture described here uses 10 of the EQSP32's 16 I/O channels. The remaining channels and the built-in MQTT client leave considerable room for operational extensions without any hardware changes.
SCADA integration
The EQSP32's built-in MQTT client publishes mirror position, actuator state, and current sun coordinates to any MQTT broker. A standard SCADA or HMI can subscribe to these topics and display live mirror pitch and roll alongside a historical trend, making it easy to verify tracking performance and detect mechanical drift over time.
Weather-aware operation
On heavily overcast days, tracking serves no useful purpose and can be paused to reduce actuator wear. A call to a weather API — the same Wi-Fi connection already in use for sun position — can return cloud cover data for the installation's location. If cloud cover exceeds a configurable threshold, the controller holds the mirror in its last position and resumes tracking when the sky clears.
Wind protection
A standard 0–10 V anemometer connects directly to one of the spare analog inputs on the EQSP32. When wind speed exceeds a safe threshold, the controller can park the mirror in a low-drag orientation: flat, face-down, or sheltered depending on the mechanical design. The same input can be used for a simple reed-switch wind flag if a calibrated anemometer is not required. No additional hardware or signal conditioning is needed.
Bill of Materials
| Component | Description | Cost (EUR) |
|---|---|---|
| EQSP32CE | Industrial IoT controller — 16 I/O, RS485, Wi-Fi, DIN-rail | 155 |
| WinMotion SINDT-485 | Dual-axis RS485 inclinometer, 0.001° resolution | 60 |
| Linear actuators ×2 | 24 V DC, generic DIN-compatible | 74 |
| DPDT relays ×2 | DIN-rail mount, 24 V coil | 22 |
| Meanwell HDR-30-24 | 24 V / 1.5 A DIN-rail PSU | 17 |
| Waterproof DIN cabinet | Legrand IP65 enclosure, 1–2 DIN rows | 42 |
| Aluminium profile + 3D-printed joints | 20×20 mm extrusion, pan/tilt frame | ~30 |
| Controller subsystem total | ~400 | |
For a full-scale installation with a solar tracker mount and one or more square-metre mirrors, the complete system lands in the 1 000–1 500 EUR range — compared to the 50 000 EUR per square metre of purpose-built professional heliostat installations such as the Rjukan, Norway sunlight mirrors project.
Why EQSP32
Paralleled outputs — no motor driver
Four 1 A solid-state outputs paralleled give 4 A combined drive per actuator. Eliminating the motor driver module reduces cost, panel space, and wiring complexity.
PWM speed control — built in
All 16 EQSP32 outputs are PWM-capable. Duty cycle control of actuator speed requires no external circuitry — just a single function call in the library.
RS485 Modbus RTU master
Native RS485 with Modbus master support connects directly to the industrial-grade IMU. The 5 V auxiliary output powers the sensor. No adapters or additional boards required.
Wi-Fi — native, not an add-on
Wi-Fi connectivity for the sun position API and MQTT telemetry is built into every EQSP32. No external Wi-Fi module, no extra power supply, no additional programming.
DIN-rail — professional grade
Every component in the panel mounts on a standard DIN rail. The result is a compact, professionally wired enclosure that is easy to service and meets industrial installation standards.
Spare I/O for operational extensions
After the two actuator pairs and the IMU, six I/O channels remain free for wind sensors, additional mirrors, status outputs, or any other field instrumentation.
Ready to build your heliostat controller?
The EQSP32CE includes RS485, Wi-Fi, 16 PWM-capable outputs, and the full software library. Start with the datasheet or order directly.
View the EQSP32 →