BeebSCSI Overview

BeebSCSI

Overview

BeebSCSI is a powerful and advanced storage solution for both Acorn BBC Model B and Acorn Master 8-bit computers.  It provides accurate and fast SCSI emulation allowing over 64 GBytes of permanent storage using a single micro SD card.  Designed for both internal and external use, BeebSCSI not only the fastest 8-bit Acorn storage solution available but is also completely open-source and open-hardware.

The top view of the BeebSCSI 7_5 board

As BeebSCSI is a complete Acorn SCSI-1 emulation it does not require any modification to Acorn’s original ADFS and runs natively via the 1 MHz bus (just like the original SCSI solutions).  This ensures maximum compatibility – anything you can do with ADFS will also work using BeebSCSI, this includes all ADFS utility ROMs, GEM and DOS on the Master 512, etc.

Originally Acorn provided a SCSI solution based on 3 individual parts: The Acorn SCSI host adapter, the Adaptec ACB-4000 SCSI adapter and a physical MFM hard disc (a ‘Winchester drive’). Later, as part of the Domesday project (in 1986), this was extended to include the AIV SCSI Host Adapter (designed to be connected internally to a BBC Master Turbo) and the Philips VP415 LaserVision laser disc player with SCSI-1 support.

BeebSCSI 7 is a credit-card sized board that provides a single-chip implementation of the host adapter board (both original and AIV) using a modern CPLD (Complex Programmable Logic Device). In addition, an AVR Microcontroller provides a complete SCSI-1 emulation of SCSI hard drives including the vendor specific video control commands of the VP415.

The BeebSCSI Logo

Rather than using a physical hard drive, BeebSCSI uses a single Micro SD card to provide up to >64Gbytes of storage with support for either 4 (ADFS) or 8 (VFS) virtual hard drives (or ‘LUNs’) per LUN set (see jukeboxing below for details). In addition, in the BBC Master, two BeebSCSI devices can be attached, one internal and one external, providing 12 SCSI LUNs (hard drive images) simultaneously (connection to the internal 1MHz bus of the Acorn Master requires an additional adapter board which is also included in the BeebSCSI project).  BeebSCSI also provides a 1:1 usage of storage on the SD card – unlike IDE based solutions that require 1 GByte of storage for every 512 MBytes used by ADFS.

By using the (open-source and optional) BeebSCSI utilities ROM you can also use the ‘jukeboxing’ feature that allows you to switch freely between up to 256 sets of drive images – this makes up to 1,024 individual SCSI LUNs of 512 Mbytes available at any time from ADFS using simple star commands.  This theoretically allows for 512 Gbytes of storage accessible from ADFS on a single SD card (this has been tested up to 64 Gbytes so far, but leaves plenty of capacity for larger cards in the future).

Importantly BeebSCSI emulates the original Winchester-based hard drive solution accurately; this means that a completely stock BBC Micro (with ADFS) or BBC Master can use BeebSCSI with absolutely no modification necessary to either the hardware or software. In addition, BeebSCSI achieves read speeds of up to 80Kbytes/sec, providing lightning-fast load times even for very large files.

If you have bought a BeebSCSI board from a 3rd party (since the design is open, anyone is welcome to build and sell them) – please consider donating to Domesday86 – we receive no funding from any of the vendors.  Development of the project is entirely dependent on direct donations via this site.

Features

Open-source and open-hardware

BeebSCSI 7 is completely open hardware and software and uses a combination of GNU GPLv3 and Creative Commons licensing to ensure it will always remain free and open. You are welcome to modify, enhance, study and add to the electronics design, the CPLD code and the AVR code. A complete set of circuit schematics is available along with the PCB designs and the extensive documentation aims to describe the overall design and functionality of BeebSCSI to make modifications and enhancements as easy as possible.

FAT FS based Micro SD Card

Unlike other ‘modern’ storage solutions for Acorn computers, BeebSCSI supports a FAT FS layer between the SCSI emulation and the SD card. This means that all SCSI LUN images are stored in FAT compatible files. An SD card can be simply removed from BeebSCSI and inserted into any modern Linux or Windows machine for reading and writing; No additional software is required. This allows easy exchange of LUN images for both backup and use of LUNs with emulators such as BeebEm.

BeebSCSI also supports on-the-fly exchange of SD cards. Cards can be swapped whilst the host is running and a simple CTRL-Break on the host computer makes the new LUN images immediately available (or a *BYE followed by a *MOUNT if you don’t want to reboot).

BeebSCSI supports both FAT32 and exFAT standards allowing a wide range of SD card sizes to be used from small 2Gb cards to cards >32Gb.

Advanced SCSI tracing and debugging

BeebSCSI includes a serial output port (5V TTL) that is compatible with Arduino-style serial to USB converter boards that allows BeebSCSI to provide extensive amounts of information about the SCSI activity. An on-the-fly debug configuration allows the user to configure the debug output from the host computer using the Acorn OS built-in *FX commands. BeebSCSI provides full traceability of all SCSI interactions including hexadecimal and ASCII sector dumps for both read and write operations.

This functionality allows BeebSCSI to be used to analyse host software and understand the interactions towards the storage device. In addition, BeebSCSI provides analysis of the Philips VP415 F-Codes showing the interaction between AIV software (such as Domesday) and the video functionality of the Laser Video Disc player.

Fast read and write performance

BeebSCSI is a tailor-made solution for the Acorn range of 8-bit computers and is optimised for the ADFS implementation of SCSI-1. BeebSCSI achieves read performance in the range of 3 times faster than existing CF card-based IDE solutions. BeebSCSI can achieve 80 Kbytes/second read speeds and 48 Kbytes/second write speeds on a standard BBC Model B computer.

SD Card based firmware upgrade

The BeebSCSI AVR firmware includes an SD card bootloader that allows the AVR (SCSI emulation) firmware to be upgraded as new releases become available.  Upgrading is as simple as copying the firmware file to a blank SD card and inserting the card into the BeebSCSI board.

JTAG programming

Both the AVR Microcontroller and the Xilinx CPLD can be freely reprogrammed using dedicated JTAG headers on the BeebSCSI PCB. JTAG also allows for more in-depth debugging and tracing when developing both Verilog and C code.

1 MHz bus termination

BeebSCSI provides bus termination in accordance to the Acorn 1 MHz bus application note. This means that BeebSCSI can act either standalone or as the last part of a daisy-chain of devices. Due to size constraints, BeebSCSI does not provide a 1 MHz bus pass-through connector. If multiple bus devices are required BeebSCSI can be either connected as the last device in a chain or a cable with multiple connectors can be used.

VP415 F-Code support

BeebSCSI can act as part of a wider Domesday emulation system. BeebSCSI (when configured internally on a BBC Master Turbo) supports both F-Code reading and writing as implemented in the Group 6 SCSI commands of the VP415. BeebSCSI provides bidirectional serial input and output of F-Code commands and responses, performing the necessary SCSI actions to receive and transmit F-codes to and from the host computer.

Low power consumption

BeebSCSI typically consumes around 130mA of power at 5V. This makes it suitable for both external power supplies as well as being powered directly from the host computer’s power supply.

BeebSCSI history

The BeebSCSI project was started in July 2016 as part of an overall effort to produce a cost-effective and open version of the BBC Domesday system. The BBC Domesday system uses custom Laser Video Discs that combine data and analogue video, sound and pictures. The Philips VP415 LaserVision player was specifically designed for Domesday and provided ‘LV-DOS’ that allowed an Acorn ADFS partition to be included on the disc.

Previous Domesday emulation projects have either relied entirely on emulation (such as the CAMiLEON project) or, as in the case of the BBC Domesday reloaded project, presented the Domesday information as part of an HTML based web-site. The CAMiLEON project was partially successful, however as a closed-source project, all the results we effectively lost when the project team disbanded. The BBC Domesday reloaded project provides access to some of the Domesday information, however it does not recreate the experience of using Domesday as it was originally designed.

Whilst certain parts of the Domesday system (such as the discs, VP415 and AIV board) are difficult to acquire, other parts of the system (such as the Master 128 itself) are readily available. Therefore, the intent of the author was to use as much of the original hardware as possible (such as the BBC Master and the 65C102 co-processor card) whilst replacing the additional physical hardware (i.e. the VP415 and Acorn AIV SCSI Host Adapter). For compatibility, it was also desirable to use the original ROM software such as ADFS and VFS to ensure that the original AIV software would run without alteration.

Although there are several IDE-based storage solutions for the Acorn 8-bit range of computers, LV-DOS relies on vendor specific SCSI commands to control the VP415, so the idea of a microcontroller based SCSI emulation for the VP415 was born. The requirements for BeebSCSI rapidly grew from a pure VFS based implementation to cover all the ADFS functionality thus making BeebSCSI a perfect storage solution for Acorn retro enthusiasts.

In addition, the original logic IC-based host adapter hardware implementation was replaced by programmable logic, firstly using GAL chips and later as a single chip CPLD Verilog implementation. Allowing the board space and overall component count of BeebSCSI to be greatly reduced. Overall, there have been 7 major revisions of the BeebSCSI design – hence BeebSCSI 7.

BeebSCSI documentation

BeebSCSI has extensive documentation both user and technical:

BeebSCSI User Guide

BeebSCSI Utilities ROM

BeebSCSI Technical Guide

BeebSCSI Hardware Guide

BeebSCSI Source Code Guide