Это я очередной выжигальный станочек запиливаю. Кстати, при монтаже допустил всего два ляпа - в одном месте перепутал плюс с минусом (без последствий), и вместо резистора 1кОм впаял 1Ом (сгорел светодиод, заменил). Для меня это даже неплохо.


2. Этот ваш степстик на a4988 - странная штука. Со штатным радиатором (мелким квадратиком как на фото) - перегревается до отключения уже на токе 1А (пирометр кажет 85° на радиаторе, значит на самом деле там ещё больше). Вентилятор спасает, но уж больно он в это место конструктивно не лезет, поэтому пока приколхозил дополнительный теплоотвод с обратной стороны (где у a4988 thermal pad наружу через плату выведен), авось обойдётся.
А ещё - сразу после старта или после ресета "шумит" ШИМом громче обычного, и вроде немного завышает ток. Один шаг в любую строну - шум прекращается. Как добились? Непонятно.
3. Легаси программинг и железякинг на писюках - это что-то с чем-то.
Оказалось, напряжение "единицы" на выходе данных LPT-порта - всего 3.3В (на том писюке, на котором я это делаю). А напряжение гарантированной "единицы" на входах a4988 - 0.7*Vdd, что при питании 5В даёт 3.5В. А я целый день понять не мог, почему у меня шаговик "шаги теряет", причём всегда в одну сторону - уж и механику всю проверил, и задержки выставил огромные! А оно просто вход dir не всегда в нужную сторону распознавало. Главное, непонятно почему на LPT оказалось 3.3В а не "около 5" - интерфейс-то старинный, тогда "трёхвольтового КМОП" ещё не было. Не настоящий же TTL там, в самом деле. Пока снизил питание до 3.5В, но вообще очень хочется воткнуть какой-нибудь буфер с преобразованием уровней, ибо нефиг.
А ещё у меня в программе есть цикл кручения моторчика. В котором на каждый шаг делается куча мелких вещей (от арифметики до перерисовки статусной строки), ну и проверяется не нажат ли ESC. На первом компе (что-то простое но относительно современное, с впаянным на плату атомоподобным интелом) всё работало, а вот на другом начало тормозить ("четвёртый пень" на 3ГГц! И там тормозит "кручение моторчика!"). Я полез оптимизировать цикл и искать место торможения... и выяснил, что проверка нажатия ESC (делавшаяся через чтение порта 0x60 - ведь "БИОС тормозит, а тут напрямую") занимает в несколько раз больше времени, чем вся остальная часть цикла. Один "in al, 0x60" - какие-то жуткие миллисекунды!
Переделал, ессно.