Skip to content

Automate the scriptable parts of the OOBA checklist #67

Description

@eliasbakken

The OOBA (Out-Of-Box-Audit) checklist in README.md is entirely manual today:

  • Wifi comes up as an AP/Station
  • Webcam shows a picture
  • USB host/device works as expected
  • Default Klipper config does not have any errors
  • All systemd services are running as they should
  • Software updates look functional
  • Shaper calibrate works
  • A print can be performed
  • The LEDs are working
  • KlipperScreen works and can be used to control the printer

A chunk of this can be scripted (e.g. scripts/validate-image.sh, run over SSH against a freshly flashed board), shrinking the manual list down to just what genuinely needs a human.

Fully scriptable:

  • All systemd services are running as they should — systemctl is-active against the expected service list
  • Default Klipper config does not have any errors — query Moonraker's /printer/info for state: ready, grep klippy.log for absence of Error/Shutdown/Traceback
  • Software updates look functional — query Moonraker's update_manager status API, assert no errors per tracked repo

Partially scriptable (can verify the pipeline works end-to-end, not that the result looks right to a human):

  • Webcam shows a picture — check the streamer service is active, curl the snapshot endpoint, assert HTTP 200 + valid JPEG + non-trivial size
  • Wifi comes up as an AP/Station — check via nmcli/iw which connection is actually active (ties into The Wifi hotspot/Client priority is not repected #65)
  • USB host/device works as expected — check gadget/configfs state and controller role
  • The LEDs are working — confirm a LED gcode command completes without error

Needs a human, not realistically scriptable:

  • Shaper calibrate works
  • A print can be performed
  • KlipperScreen works and can be used to control the printer

Plan: start with the fully-scriptable tier, build outward from there.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions