Skip to content

Releases: JaredCabot/tds-floppy-emulator

1.2.0: faster transfers, status report

Choose a tag to compare

@JaredCabot JaredCabot released this 28 Sep 16:08

Firmware 1.2.0 (build 1c27c478) makes transfers faster (a full 1.44 MB DATA IN in about 15 s instead of 19 s) and adds a status report: hold both buttons with no UPDATE.UPD on the flash drive and the emulator writes EMUSTAT.TXT. It comes with a revised TDS manual and a new general user manual.

Added

  • Status report. Holding both buttons with no UPDATE.UPD on the flash
    drive writes EMUSTAT.TXT instead: firmware version and build ID, the
    unit's unique serial number and clock source, the internal disk's density
    and contents, health counters, the flash drive's file system, and the last
    transfer.

Changed

  • Faster transfers. A full 1.44 MB DATA IN takes about 15 s instead of
    19 s; DATA OUT about a third less time (1 MB written and read back in
    6.2-6.9 s instead of 10.6 s). The internal flash driver was the bottleneck
    and is now much leaner; USB data also moves in chunks of up to 8 KB. All
    verification and cancelling work as before.
  • Faster track loads: the host waits 11 ms for a new track instead of
    27 ms.
  • Smaller firmware: built with link-time optimisation, 44 KB instead of
    49 KB, leaving room for future features. It also makes transfers a little
    faster: a full 1.44 MB DATA IN in about 15 s.
  • With no UPDATE.UPD, both buttons no longer give 2 quick blinks: they write
    the status report.
  • Interface inputs no longer use the MCU's internal pull-ups. The board
    already has pull-up resistors to 5 V on every host line, and the datasheet
    requires internal pull-ups off on inputs driven above 3.6 V.
  • Crystal fallback: if the 8 MHz crystal fails to start, the emulator now
    runs from the internal oscillator instead of stopping, and the status report
    says so.

Fixed

  • Reads and writes beyond the end of the disk (sector 1440 on a 720 KB disk,
    2880 on a 1.44 MB disk) are now ignored instead of reaching other parts of
    the internal flash.

Removed

  • The unused debug serial output.

Documentation

  • New general user manual, TFE-0002-00, for any equipment with a 26-pin
    slim floppy drive, with a technical reference (interface, timing, disk and
    update file formats).
  • TDS manual revised to TFE-0001-01: 720 KB disks and jumper JE, the
    status report, 1.2.0 transfer rates, the TDS 784D as a verified
    instrument, a new Figure 2-1 showing all jumpers, headers and controls, and
    Figure 2-2 showing the S1 jumper fitted. Jumper JD is now described
    correctly: it holds interface pin 11 (density select) low and is not used.
  • Hardware notes (docs/01): measured on a TDS 794D, the host drives SEL,
    STEP and DIR high enough to lift the board's 3.3 V rail to 3.8 V through
    the MCU's protection diodes; the fix is a series resistor on each line.
    Any firmware is affected, including the original.

Notes

  • Updating: copy UPDATE.UPD to a flash drive and hold both buttons for 3 s, from 1.0.0 or 1.1.0. The internal disk and its density are kept.
  • Status report or update? Both buttons install UPDATE.UPD when it is on the flash drive; without it, 1.2.0 writes the status report instead. Remove UPDATE.UPD from the flash drive after updating if you want a report.
  • Tested on a TDS 794D (firmware v8.0e): a full format, saves, DATA IN and DATA OUT with byte-identical files on FAT32 and exFAT flash drives, the status report, and self-updates from the flash drive.

Files

File Use SHA-256
tdsfloppy_install.hex First installation: bootloader and firmware (manual page 2-1) c3eeafb19c4d53ba14a7985e2fe69ab5c2feaaede94e662c3bf27f58cfe983f7
UPDATE.UPD Update an emulator running 1.0.0 or later: copy to a USB flash drive, hold both buttons 3 s (manual page 3-4). The internal disk is kept. e5572dd42f79856e3d67afb98a094a32a209734cc645fe349c88fc9c92f2a63c
TFE-0001-01_TDS_Floppy_Emulator_Instructions.pdf Instructions for the TDS 500, 600 and 700 series and the TLS 216 (revised for 1.2.0) 5bac27406a4e7f49a3c6949b44f583aee56fd08c883809da70677dcaa97b1558
TFE-0002-00_Floppy_Disk_Drive_Emulator_User_Manual.pdf User manual for any equipment with a 26-pin slim floppy drive, with technical reference (new) 92fc0512375040fd4b28d6699506fb76487058f069d9c6ff7a2d867a2e7cd6b1

1.1.0: 720 KB DD disks

Choose a tag to compare

@JaredCabot JaredCabot released this 27 Sep 01:16

Firmware 1.1.0 (build 3b0ee413) adds 720 KB double-density disks: fit jumper JE and format the disk in the instrument, and it becomes a 720 KB disk, just as with a real drive.

Added

  • 720 KB double-density (DD) disks. The internal disk has a density, as a
    real floppy does: 1.44 MB HD or 720 KB DD. It changes the way a real disk's
    does, when the host formats it at the other density: fit jumper JE (the
    host's density line) and format the disk in the scope, and it becomes a
    720 KB disk; remove JE and format again, and it is 1.44 MB again. No settings
    file, no reboot. The emulator recognises a format at the other density from
    the data rate of the host's writes (250 or 500 kbit/s). The density survives
    power-off, firmware updates, DATA IN and DATA OUT.
  • DATA IN and DATA OUT on 720 KB disks: 1 KB clusters, 112 root entries,
    files up to 730,112 bytes; a DATA IN page holds what fits on the disk.
  • tools/button.ps1 status shows the disk's density; tools/release_refresh.py
    also publishes UPDATE.UPD.

Changed

  • The disk and FAT code take their geometry from the disk (HD or DD) instead of
    fixed 1.44 MB constants. 1.44 MB behaviour is unchanged.

Notes

  • Downgrading: firmware 1.0.0 does not know 720 KB disks. After going back
    to 1.0.0, a 720 KB disk reads as unformatted (its data is kept): update to
    1.1.0 again, or format the disk at 1.44 MB.
  • Tested on a TDS 784D (firmware v7.4e): HD to DD and back by the jumper and
    the scope's format only, saves, a folder tree, DATA OUT and DATA IN (up to a
    716,800-byte file), 24 stress saves at 720 KB with 0 bad CRCs and 0 lost
    sectors; and an update from 1.0.0 on both test units.

Files

File Use SHA-256
tdsfloppy_install.hex First installation: bootloader and firmware (manual page 2-1) bfb9d4e849b7455261bb45d8715dbc3d09e72a2dd2ed59d3fae8f0de57994ec3
UPDATE.UPD Update an emulator running 1.0.0 or later: copy to a USB flash drive, hold both buttons 3 s (manual page 3-3). The internal disk is kept. b062d0379aa06ab43dd8732143e3c931f0bd6ae988259bd7d5e4fb0e0bbda02f
TFE-0001-00_TDS_Floppy_Emulator_Instructions.pdf User manual TFE-0001-00 (written for 1.0.0; 720 KB disks: docs/10) 3a7c8320b3ccf46903cd9c2769ffcdcaad25615c688b733359da8b39f563bfee

1.0.0

Choose a tag to compare

@JaredCabot JaredCabot released this 27 Sep 01:16

Firmware 1.0.0 (build 484f5c1d), the first release. Superseded by 1.1.0.

First release.

  • Clean-room firmware for the SFR1M44-DU26 (PCB SFRC2D.B, Artery AT32F415)
    emulating the 1.44 MB floppy disk drive of Tektronix TDS 500/600/700
    oscilloscopes.
  • Internal 1.44 MB disk in SPI flash, written back through a power-safe journal:
    a power cut loses at most the write in progress.
  • DATA IN (upper button): load the next batch of files from a USB flash drive
    (FAT12/16/32 or exFAT; MBR or GPT), every sector verified.
  • DATA OUT (lower button): copy everything on the internal disk, folders
    included, to the flash drive, verify each file, never overwrite, then erase
    the internal disk. Identical files already on the flash drive are not copied
    twice.
  • Cancel a transfer with its own button; firmware update from a USB flash drive
    with both buttons (a bootloader installs it; a bad file changes nothing).
  • Watchdog, persistent flash-fault indication, build ID; the user manual
    TFE-0001-00 in the Tektronix house style.

Files

File Use SHA-256
tdsfloppy_install.hex First installation: bootloader and firmware 23ff4e0a3b60914b373489bb3c3f6964f5e4abacb44399b3893e028cde9b168d