Skip to content

config/ — Raspberry Pi configuration export

Read-only reference export of configuration files deployed on the Automator Raspberry Pi. All password/token/secret/key-style credential values are redacted (<REDACTED>). IP addresses are not redacted.

See MANIFEST.txt for file sizes and SHA-256 checksums of the redacted copies.


Top-level files

File Purpose
MANIFEST.txt SHA-256 checksums and sizes for all exported files; records redaction audit history
calibration.json Homography matrix (H) used by the camera pipeline to map plate coordinates to pixel space; generated by the calibration routine

etc/

File Deployed path Purpose
hosts /etc/hosts Sets hostname automator127.0.1.1; used for mDNS fallback and local hostname resolution

firmware mks/

File Purpose
firmware.bin MKS Robin Nano stepper controller firmware binary; copied to the SD card root to flash on first boot

klipper/

File Deployed path Purpose
printer.cfg /home/pi/printer_data/config/printer.cfg Klipper motion firmware configuration — stepper motor parameters, endstops, speed limits, and macro definitions for the imaging gantry

timesyncd/

File Deployed path Purpose
nbi-ntp.conf /etc/systemd/timesyncd.conf.d/nbi-ntp.conf Overrides the NTP server to ntp.nbi.ac.uk (NBI IT policy; public pools disabled)
timesyncd.conf /etc/systemd/timesyncd.conf Base systemd-timesyncd configuration

udev/

File Deployed path Purpose
99-export-images-usb.rules /etc/udev/rules.d/99-export-images-usb.rules Triggers export-images-to-usb@.service when a USB storage partition is added; suppresses desktop auto-mount via UDISKS_IGNORE=1; skips Raspberry Pi boot/root partitions

usr-local-sbin/

Scripts installed at /usr/local/sbin/ and run as root.

File Purpose
eth0-auto-switch.sh Runs at boot, on eth0 cable events, and every 15 s via timer; activates mac-direct-auto and starts the direct-DHCP service when an Ethernet cable is present; always activates direct MacBook mode since the cable is never connected to the institute or instrument network
export-images-to-usb.sh Copies /home/pi/Automator/data/ to a USB drive when one is inserted; unmounts safely on completion
clear_cache.sh Maintenance script; clears APT package cache, user thumbnail cache, and Python __pycache__ under dev2/

systemd/

Systemd unit files installed in /etc/systemd/system/.

Services

File Purpose
automator-controller.service Active controller service. Runs maincontroller.py as the pi user; restarts on failure; credentials injected via Environment= (redacted)
automator-buttons.service GPIO button listener (button_listener.py); starts after Klipper and Moonraker; restarts always
automator-direct-dhcp.service Runs dnsmasq to assign 192.168.50.x addresses to a directly connected MacBook over eth0; started by eth0-auto-switch.sh
automator.service Legacy — superseded by automator-controller.service. No restart policy; kept for reference only. Do not enable on the deployed Pi.
cleanup-jpgs.service One-shot service invoked by cleanup-jpgs.timer; removes stale preview JPGs from the capture directory
eth0-auto-switch.service One-shot service that runs eth0-auto-switch.sh at boot
export-images-to-usb@.service Template service (parameterised by device name); invoked by the udev rule; runs export-images-to-usb.sh
klipper-moonraker-bootcheck.service Waits for Klipper and Moonraker to be ready before releasing the boot target
klipper.service Klipper motion firmware daemon
moonraker.service Moonraker REST/WebSocket API server

Timers

File Purpose
cleanup-jpgs.timer Schedules periodic invocation of cleanup-jpgs.service
eth0-auto-switch.timer Runs eth0-auto-switch.service every 15 seconds to catch late cable plug events

NetworkManager/

Snapshot of all NetworkManager profiles and interface state taken from the Pi.

Status snapshots (read-only output)

File Source command
nmcli-connections-list.txt nmcli connection show
nmcli-device-status.txt nmcli device status
nmcli-general-status.txt nmcli general status
ip-addr-show.txt ip addr show
ip-route-show.txt ip route show

Profile exports (.nmcli.txt / .nmcli.with-secrets.txt)

Exported via nmcli --show-secrets connection show <name>. The .with-secrets.txt copies were produced with the --show-secrets flag; all secret values are redacted in both variants.

Profile file Interface Status
IOT.nmcli.* wlan0 Active — primary Wi-Fi (WPA-PSK)
mac-direct-auto.nmcli.* eth0 Active — direct MacBook Ethernet (192.168.50.2/24)
Instrument-connection-.nmcli.* eth0 Archived — former instrument network profile (10.0.8.72/24); no longer used; do not reconnect
Rex-Network.nmcli.* Legacy profile; not in active use
preconfigured.nmcli.* Default Pi Wi-Fi profile created during initial OS setup
lo.nmcli.* lo Loopback interface profile

dispatcher.d/

Scripts in /etc/NetworkManager/dispatcher.d/ invoked by NetworkManager on interface events.

File Purpose
01-ifupdown Standard ifupdown compatibility dispatcher
90-eth0-auto-switch Triggers eth0-auto-switch.sh in the background when eth0 comes up or changes connectivity

system-connections/

Raw .nmconnection files from /etc/NetworkManager/system-connections/. Passwords are redacted.

File Profile Notes
IOT.nmconnection IOT Wi-Fi Active primary Wi-Fi; PSK redacted
mac-direct-auto.nmconnection mac-direct-auto eth0 static 192.168.50.2/24; no secrets
Ethernet connection 1.nmconnection Default Ethernet Auto-created by OS installer; no secrets
preconfigured.nmconnection preconfigured Default Pi Wi-Fi; PSK redacted

Secrets audit

File Finding
systemd/automator-controller.service AUTOMATOR_ADMIN_PASSWORD and AUTOMATOR_SESSION_SECRET were plaintext; redacted 2026-06-24
systemd/automator.service AUTOMATOR_ADMIN_PASSWORD was plaintext; redacted 2026-06-24
systemd/automator-buttons.service AUTOMATOR_ADMIN_PASSWORD already redacted as ****
All *.nmcli.with-secrets.txt Secrets shown as <REDACTED> — correct
All *.nmconnection Passwords shown as <REDACTED> — correct
calibration.json No secrets — homography coefficients only
klipper/printer.cfg No secrets
usr-local-sbin/*.sh No secrets

Document updated 2026-06-24 Rohan R.