Making CNC controllers in the laziest way possible.
Success, part 1. Was able to use an ST-Link debug probe and ST-Link utility to wipe the MCU on this board:
SainSmart 5-Axis Mach3 USB Controller STB5100 https://www.amazon.com/gp/product/B07L3DYVJ1
This board appears to use an STM32F103 with the serial numbers filed off.
Used the leads shown in the main photo: https://www.amazon.com/gp/product/B07P5BSWFH
Used the ST-Link Utility to disable read protection(which wipes the chip) then wiped the chip and disabled flash protection, then installed DAPBoot https://github.com/devanlai/dapboot using the ST-Link and set the bootloader to use PB5 which is broken out on the HD15 connector. Pull it high and the bootloader runs, leave it low and it lets blinky LED run(after sending it to the board with dfu-util)
Only problem was I left the board connected to the debugger, which pulled NRST down when I unplugged it from USB power so the first couple attempts to flash the bootloader didn't seem to work(flashed fine then USB didn't enumerate) because the chip was held in reset.
Next to write a quick program to show the state of all GPIO pins so they can be probed. Will set them all to inputs then inject signals to each(the output pins by injecting to the buffer that drives them so I can see which output is which STM32 pin)
1. Mach3/4 USB breakout boards often run an STM microcontroller, reprogram it and make it run GBBL locally instead and then use the USB input for GCODE transfer from another device, or hook to something like an ESP to feed wirelessly.
2. Cypress PSOC5lp has a nice, cheap carrier board and runs at 5v. Make the worlds simplest interface board and break out pins to 26 pin IDC for connection to 25 pin Dsub. Hook up to easily available CNC parallel breakout board and run maybe GRBL-HAL. It looks like there are enough pins to do 2 breakouts, maybe use the second one for more inputs with a cheap commercial opto board instead of a parallel board.
3. Same as 2 but with other simple carrier boards(STM nucleo/bluepill, ESP32, TI, ?), maybe more complex based on 3.3v interfacing.