Cześć,
Rafał temat, który poruszyłeś jest dość szeroki. Nie bardzo w tym momencie rozumiem czy interesuje Ciebie zbudowanie przejściówki/adaptera USB[PC]--{ARM/STM32]--[LPT] czy też gotowego urządzenia typu drukarka 3D, jakieś tam mini centrum obróbcze, gdzie z jednej strony będzie sterowanie przez USB, a z drugiej strony gotowy i funkcjonalny sterownik silników (dużej mocy) i być może do tego jakieś mini centrum obróbcze.
Przede wszystkim chciałbym na początek polecić coś takiego jak Linux CNC. Jest to taka dystrybucja Linux'a, która umożliwia sterowanie m.in. przez port LPT (oczywiście pod warunkiem, że sterownik elektroniczny silników jest prawidłowo zbudowany).
Co do przejściówek USB <--> LPT to istnieją takie, które umożliwiają sterowanie, ale albo są one trudno osiągalne (bo są np. stare), albo są to przejściówki z "górnej półki".
Tak czy inaczej z punktu widzenia aplikacji na PC sterującej centrum obróbczym najważniejsze jest dla niej (zanim zacznie wysyłać kod G do maszyny CNC) zapewnienie obustronnej, prawidłowej komunikacji między PC a centrum obróbczym. Ta komunikacja najczęściej oparta jest o protokół RS232, który dotyczy zarówno portu DB9 jak i DB25. Oczywiście mówię tu o szeregowej transmisji danych. W przypadku komunikacji równoległej (port DB25) należałoby zbudować, albo kupić sterownik zamieniający dane z transmisji szeregowej (USB) na transmisję równoległą (LPT) i w drugą stronę (mam na myśli potwierdzenia operacji wysyłania danych, chyba że twórca decyduje się na sterowanie tylko po stronie PC związane z oczyszczaniem bufora transmisji). No właśnie od razu w tym miejscu należy wspomnieć o czymś takim jak bufor transmisji. To jest bardzo ważne, bo bufor ten stanowi ważny element protokołu RS232, w oparciu o który to bufor (a dokładnie obecność w nim danych) następuje wysłanie, bądź nie danych do urządzenia CNC. W praktyce wykorzystuje się dwa bufory: bufor nadawczy i bufor odbiorczy. Tutaj jest taka ciekawostka, od której strony na to patrzeć... Patrzymy od strony sterowania czyli od PC. Bufor odbiorczy to są te dane, które przychodzą od maszyny CNC do PC. Bufor nadawczy to jest to co PC chce wysłać z aplikacji do maszyny CNC. W protokole RS232 są określone ścisłe zależności odnośnie pojemności obu buforów i stanu transmisji danych z tym faktem związanych. W każdym razie jeśli to miała by być ot taka sobie przejściówka z USB do DB25 to rolę potwierdzenia otrzymania danych (kontrola transmisji) mógłby pełnić jakiś MCU jak AVR/STM, który po prostu z jednej strony dysponowałby łączem TX i RX do komunikacji szeregowej, a z drugiej strony dysponowałby odpowiednią ilością wejść/wyjść - a więc około 25, chociaż z tego co mi wiadomo nie potrzeba aż tyle w komunikacji równoległej. Nie wiem jak szybko działa taka dość znana przejściówka oparta na FT232RL, ale gdyby móc ją wykorzystać + MCU do zamiany transmisji to ogólny schemat mógłby wyglądać jakoś tak:
[USB]---[przejściówka FT232]---[MCU]---[DB25]
Jeżeli zaś planowałbyś Rafał zrobić własny sterownik z USB do iluś tam silników krokowych dla np. centrum obróbczego 5D to trzeba by trochę inaczej podejść do wysterowania silników, gdzie poza głównym MCU odpowiedzialnym za transmisję powinny być osobne "małe" MCU jako sterowniki każdy jeden dla jednego silnika. Tak ja bym starał się to wykonać.
Moje doświadczenie w tej branży to praca przy systemach sterujących GE Fanuc do tokarki Aero Turn, GE Fanuc do frezarki (nie pamiętam nazwy niestety) oraz GE Fanuc do tokarki TUG-56Mn.
Wiem, że Tug'a spokojnie można było wysterować przez Linux'a CNC (oczywiście nie robiłem tego, bo nie moja maszyna

ale protokół RS232 jak i łącza na tylnym panelu tokarki na to pozwalały).
Pozdrawiam! j23 Jarek