While the basic concept of LEGO bricks might have changed little since the mid-20th century, some components such as motors and sensors are still affected by technological progress and end up obsolete and unsupported. [Travis] ran into this problem when he was building a festive train setup and realized he didn’t have the speed controller to match his train engine. Without that part, the engine would only run at full speed and derail as soon as it hit a curve. The official speed controller had been discontinued and was hard to find, so [Travis] had to resort to building his own.
The basic components needed were an H-bridge driver to operate the motor and an ESP8266 to generate PWM signals. In order to keep the bricky appearance of the train engine intact, [Travis] hollowed out a few cheap imitation LEGO bricks to house the electronics. He also cut out slots for JST connectors, which are far more convenient to work with than LEGO’s brick-style connectors.
The ESP8266 runs ESPHome, which enables [Travis] to control the entire setup using Home Assistant. The train is programmed to run a few laps at the top of the hour and play choo-choo sounds from a mini MP3 player hidden in the coal car. That car also holds a standard AA battery holder to power the system, which makes it easy to swap the batteries without having to partially disassemble the train.
There are various ways to control LEGO creations using standard computer platforms: we’ve seen the ESP32 powering a LEGO tank, for instance. If you need a bit more computing power, there’s even an official LEGO Raspberry Pi HAT.