astra/nema17-stepper-motor-controller-spring-clamp-rp2040

A 4-layer RP2040 controller board that negotiates USB‑C PD motor power and drives a NEMA17 stepper via a DRV8825, with current sensing, thermal shutdown, RGB status LED, buzzer alarm, optional AS5600 encoder, protection/filtering, and test points.

Version
1.4.0
License
unset
Stars
0

reports/firmware-tests.log

$ python3 -m unittest discover -s firmware -p 'test_*.py' -v
test_bidirectional_scale (test_current_status.CurrentStatusTests.test_bidirectional_scale) ... ok
test_health_and_pwm_shutdown (test_current_status.CurrentStatusTests.test_health_and_pwm_shutdown) ... ok
test_independent_channels_and_clipping (test_current_status.CurrentStatusTests.test_independent_channels_and_clipping) ... ok
test_buzzer_starts_and_closes_silent (test_feedback.FeedbackTests.test_buzzer_starts_and_closes_silent) ... ok
test_reject_bad_magnet_and_stale_angle (test_feedback.FeedbackTests.test_reject_bad_magnet_and_stale_angle) ... ok
test_single_turn_angle_and_mask (test_feedback.FeedbackTests.test_single_turn_angle_and_mask) ... ok
test_warning_and_shutdown_alarm (test_feedback.FeedbackTests.test_warning_and_shutdown_alarm) ... ok
test_zero_wrap_is_volatile (test_feedback.FeedbackTests.test_zero_wrap_is_volatile) ... ok
test_boot_and_stop_disable_active_low_outputs (test_stepper_driver.StepperTests.test_boot_and_stop_disable_active_low_outputs) ... ok
test_disallowed_motion_never_raises_step (test_stepper_driver.StepperTests.test_disallowed_motion_never_raises_step) ... ok
test_step_polarity_and_minimum_timing (test_stepper_driver.StepperTests.test_step_polarity_and_minimum_timing) ... ok
test_trip_during_direction_setup_prevents_pulse (test_stepper_driver.StepperTests.test_trip_during_direction_setup_prevents_pulse) ... ok
test_arm_uses_fresh_temperature_and_checks_driver_fault (test_thermal.AdapterTests.test_arm_uses_fresh_temperature_and_checks_driver_fault) ... ok
test_boot_and_sensor_failure_hold_enable_low (test_thermal.AdapterTests.test_boot_and_sensor_failure_hold_enable_low) ... ok
test_interrupt_latches_even_after_alert_has_recovered (test_thermal.AdapterTests.test_interrupt_latches_even_after_alert_has_recovered) ... ok
test_stop_asserts_reset_and_disables_active_low_enable (test_thermal.AdapterTests.test_stop_asserts_reset_and_disables_active_low_enable) ... ok
test_bad_temperature_format_is_rejected (test_thermal.ProtectionTests.test_bad_temperature_format_is_rejected) ... ok
test_faults_stop_motor_and_never_auto_resume (test_thermal.ProtectionTests.test_faults_stop_motor_and_never_auto_resume) ... ok
test_sensor_register_byte_order_and_signed_temperature (test_thermal.ProtectionTests.test_sensor_register_byte_order_and_signed_temperature) ... ok
test_sensor_reset_mode_corruption_and_missing_sensor (test_thermal.ProtectionTests.test_sensor_reset_mode_corruption_and_missing_sensor) ... ok
test_startup_requires_valid_sensor_and_explicit_arm (test_thermal.ProtectionTests.test_startup_requires_valid_sensor_and_explicit_arm) ... ok
test_status_bits_are_read_only_and_do_not_mask_configuration_errors (test_thermal.ProtectionTests.test_status_bits_are_read_only_and_do_not_mask_configuration_errors) ... ok
test_warning_trip_and_strict_cooldown_with_manual_rearm (test_thermal.ProtectionTests.test_warning_trip_and_strict_cooldown_with_manual_rearm) ... ok

----------------------------------------------------------------------
Ran 23 tests in 0.027s

OK