instead of enumerating the images dir for the dropdown where you select a file to create a CD-ROM image from, provide a list of all files in the root of the shared dir, typically /var/lib/piscsi/shared
this is preferable since 1) the images dir enumerating logic filters by valid image or archive file types, and 2) conceptually the files under images are typically not used directly on host machines, while the ones in the shared dir are meant to be transferred to a host machine
for users the workflow changes slightly: when uploading a file meant for an iso image, choose the shared dir instead of the images dir
Restore the SCBR device as an X68000 Host Bridge, including the Human68k-compatible host file-system service and the bridge-specific SCSI message handlers. Back its Ethernet path with the TAP driver, derive a stable locally administered MAC address, preserve the driver minimum-frame/FCS expectations, and restrict received traffic to its own unicast frames and broadcasts.
Match the RASCTL/RASETHER/RASDRV bridge protocol that originated in the parent RaSCSI project: dispatch its non-standard message format on READ(10)/WRITE(10) (0x28/0x2a), with type, function, phase, and a three-byte byte count carried in the CDB. Advertise the legacy control channel required by RASCTL, translate its list and device-management commands to PiSCSI operations, and defer stop or system-shutdown requests until after the response is sent, while gating this insecure interface behind a new '-c disabled|media|full' runtime option. Preserve the type-1 Ethernet exchange used by RASETHER and the type-2, phased filesystem exchange used by RASDRV.
Register the device in the factory, protobuf API, controller transfer path, command-line tooling, device listings, and web UI. Share the explicit bridge and proxy-ARP topology workflow with DaynaPort so both adapters validate and use the same mode/interface pair.
Add build support for iconv where needed, extend unit coverage for device creation, RAS* protocol handling, CLI parsing, web attachment, and topology selection, and update the man pages and network-profile documentation for Host Bridge operation and its networking limits.
when you do Attach/Insert on an empty slot, you now get a list of all available device types instead of list of all images; picking one of them either attaches the device immediately, or takes you to a submenu for making additional choices (network topology, image file)
introduce image file filtering per the device type that is being attached, including filtered lists also for inserting media into existing removable devices
add an option to attach a removable device without inserting media
rather than scrolling a long status strings horizontally back and forth, we now have:
- ID and type as frozen columns
- scroll from left to right then wrap to the beginning
- 3 frame pause before scrolling starts
- 2 frame pause before a fully scrolled string wraps
- print product names for all non-file device types
- special abbreviation of SAHD->SA (to disambiguate with SCHD)
Introduce a SASI controller and SAHD disk implementation alongside the existing SCSI path. Select the appropriate controller when attaching a device, prevent SASI and SCSI devices from sharing a target ID, and implement SASI-specific selection, message, status, timing, and LUN handling.
Restore SAHD in the protocol and expose it consistently through the device factory, command-line client, configuration validation, web interface, drive profiles, and manual. Enforce the two-LUN limit for SASI targets wherever device definitions are created or parsed.
Bring back handling of the hdf image format and map it to the SAHD device type. The hdf file ending is the established one for SASI raw disk images used in the X68000 emulation community, however it is a raw data format without any special header.
Add focused C++ and Go coverage for SASI devices, controller selection, LUN validation, and web-facing behavior.
Refactor the DaynaPort TAP driver around explicit bridge and proxy-ARP profiles. Validate the selected interface and profile before creating piscsi0, attach it only to the preconfigured bridge when appropriate, derive a stable DaynaPort MAC address from the uplink, and make TAP setup and cleanup robust.
Add managed host networking profiles for wired bridging and Wi-Fi proxy ARP. Install the PiSCSI NetworkManager templates, profile-management command, parprouted and DHCP relay system services, udev/sysctl hooks, and configuration file so a selected Wi-Fi uplink can provide proxy-ARP networking without altering connectivity during package installation.
Expose DaynaPort profiles consistently through the protocol, daemon, scsictl, and web UI. Report interface type, state, and supported modes; require or default explicit mode/interface pairs on attach; present eligible wired-bridge and Wi-Fi proxy-ARP choices; and validate selections before attaching an SCDP device.
Package and document the new networking workflow. Add the profile utility and required runtime assets to Debian packages, expand the manual-page set and web manual index, update DaynaPort command help, and extend unit and handler tests for the profile-aware behavior.
- Extract selected archives directly into the image directory, skip existing images, and move properties files into the configuration directory without duplicate temporary storage.
- Limit no-media selectors to compatible image types, render device parameters without Go map delimiters, and return uploads to the upload page.
- Limit web uploads to the largest supported drive preset and simplify upload/download destination selection.
- Generate the shared Go project version from the C++ source, expose it through -v in the web, OLED, and Control Board clients, and verify it in Make, CI, and Debian builds.
- Update tests and documentation for the corrected web workflows and version flags.
when placed in the Mac drivers dir and renamed to 'miniscsi.bin' the Web UI
can create a working HFS disk image to be mounted on a classic Mac
MiniSCSI is a free and open source alternative to historical Mac drivers:
https://github.com/ingpaschke/miniscsi
currently, only a m68k driver is available so PPC Macs are not supported
additionally, the Web UI will scan the Mac drivers dir for any file ending
in .bin or .img and will enumerate them for the disk image creation form;
before, only a few named images were offered as options
Debian deb packaging files for all four targets: piscsi, piscsi-web,
piscsi-oled, piscsi-ctrlboard
build instructions for Trixie specifically in README.Debian
consolidate all systemd unit files and standardize on /usr/bin
for all binaries
Replace the Python Control Board client with a native Go service that reads the PCA9554 input expander through the GPIO interrupt path, renders the 128x64 SSD1306 menu, and drives SCSI ID, image, profile, and system-action workflows through the PiSCSI daemon. Keep input handling latency-sensitive with bounded queues, debouncing, diagnostics, and a separate asynchronous menu, display, and network pipeline.
Add a Control Board command, service unit, cross-build targets, and comprehensive unit coverage. Consolidate common I2C, configuration/profile, host-information, command, and embedded-asset support under the shared Go packages; update the OLED client and web configuration code to use those shared components, and document Control Board prerequisites, build, run, diagnostic, and service setup.
The PiSCSI Control Board hardware and original Python client were created by Benjamin Zeiss (@bzeiss), and the Go client is a rewrite of that software.
Replace the previous OLED monitor implementation with a native Go application. Add SSD1306 display support over Linux I2C, status polling through the shared PiSCSI client, configurable rendering and rotation, diagnostic splash screens, graceful shutdown, and IP or blank screensaver modes. Include embedded fonts and bitmap assets together with focused renderer, status, and screensaver tests.
Restructure the Go code under a shared module rooted at go/, moving the PiSCSI client and protobuf package out of the web application's internal tree so they can be reused by the OLED monitor. Update imports, generation scripts, web build and installation scripts, and configuration paths to match the new layout.
Extend the Makefile, systemd integration, and GitHub Actions workflow to build, test, package, and install both Go applications for supported Raspberry Pi targets. Add dependency tracking for the shared Go module and provide a dedicated piscsi-oled service and installation target.
Introduce a server-rendered Go control panel for managing PiSCSI devices, disk images, saved configurations, archives, uploads, system settings, embedded themes and translations, PWA assets, a mock daemon, installation and systemd support, generated protobuf bindings, tests, and CI builds for supported Raspberry Pi targets.
This is built for feature parity with the Python Web UI, with a few notable differences: piscsi-web runs as a non-privileged user, there is no user authentication, the upload form uses a plain stream with no Javascript, the ability to set 'pretty hostname' is removed, and reserved ID memos are removed too.
Update piscsi core to use /var/lib/piscsi/images as its default and resolve relative image folders from the server working directory. Allow valid folders outside the user's home directory, and align the tests, protocol comments, service example, and man pages with the new behavior.
Ship a script and makefile target for migrating user data from old to new file system locations.