This was my first project that got me started on electronics again. The initial design did not work at all. It used an STM32 on one side and ESP-03 on the other which created too much interference + I had selected the wrong type H-Drive. The MCU and PSU design did however work well and was re-used on the second design based on ESP32. This one failed on a detail in the datasheet I had overlooked – not all IO pins are output. The main PCB is pictured below.
The backside is a bit special since it will only hold a single component ESP32. This is basically just a ESP32 with a PSU and a H-Bridge. I have drafted a New Controller, but it holding back a little investigating the position system that would change this from being a Remote IO toy to be an automated Train system.
This is the intended utility driver to enable control of other things. It was on this I discovered the IO mistake as I only have 8 and not 12 servo ports here. To move on I actually plan to use my new modular control system because it is so much more flexible. But, I will probably still maintain these small all-in one controllers based on ESP32. This worked excellent expect for the surprise on on 4 of the ports.
The main challenge on this project was however that I failed to find a position system that would work. The initial attempt was to triangulate on ultra-sound and yes it works, but it’s no way to get required components into a small model train cockpit. The second attempt was to triangulate on radio strength for Wifi and Bluetooth. And again – yes it kind of works, but it is far to inaccurate.
The third method was suggested by a friend and might just work. He suggested using a camera in the ceiling and recognize model train positions that way. I figured that if I use a IR led to send info I can identify train and position.
Changing the layout of the control system is easy, but I also needed to add a programmer. The intention is that these control systems will be programmed through Wifi, but we need a method to download the bootloader the first time.
I plan using OpenCV on a Raspberry PI with Camera for image processing, but this is an area where I am on thin ice. I know this should work, but I have little experience with image processing so this will be a new.