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 automator → 127.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.