HPDisk - An SD-based disk emulator for GPIB instruments and computers

Fancy being able to store the data from your old HP163xx analyser? Or your Spectrum Analyzer? Or pretty much any old GPIB-instrument that supports a GPIB-Based disk? Or even that Old Commodore? Sounds Cool? Then this project is for you!
Fancy being able to store the data from your old HP163xx analyser? Or your Spectrum Analyzer? Or pretty much any old GPIB-instrument that supports a GPIB-Based disk? Or even that Old Commodore? Sounds Cool? Then this project is for you! Using a PIC 18F4620, an SD-card and a few other components, this project will emulate a HP 9121 disk drive, or other drives, such as HP 9122 or the HP 9134 Winchester, selectable through #defines. The actual disk data is stored as an image file on the SD and is readable/writable by standard LIF utilities, such as HPDir from the HP 9845 project. Current status is that the emulator on the breadboard and PCB works just fine with my HP1631D and the HP 8753 VNA, but I would appreciate feedback from owners of other instruments, in case there are special cases that needs handling in the firmware.
Note that some HP units support Amigo, others CS/80, some both. Check your manuals! The current firmware supports Amigo and SS/80. Support for CS/80 is under consideration
HPDisk has been successfully tested on the following:
- HP 1631D Logic analyser
- HP 8753 VNA
- HP 3852A Mainframe with the 44788 HPIB card
Note: This is not an adapter that replaces an existing, built-in floppy in a HP instrument that has one. It is an adapter that replaces an external GPIB-connected drive with an SD-card.
Project Elements
Discussie (14 opmerking(en))

Gianfranco Canale 4 jaar geleden
The VNA doesn't recognise the emulator.Everything works well if I connect the emulator and tha VNA both already switched on.
Any explanation/solution ?
Thanks
IZ2ZNC Gianfranco

AndersG 3 jaar geleden
You might also add a small reset switch between pin 1 and 3 on P1

Ian Lockhart 5 jaar geleden
Will the newer PIC run the old firmwares(builds) without changes ?

AndersG 5 jaar geleden
The new FW has some exiting features:
Support for the HP98x6 series of computers
Disk 0 can select between 16 different image files
Disk 1..3 are fixed image file names
All filenames configurable in hpdisk.cfg. No need to call them "lifdisk2.bin" etc
Disk activity LED
Support for a DS 2417 RTC connected to the aux port and provision to read and write that as a file.
The new FW is currently in beta, but it works just fine with the original PCB

AndersG 7 jaar geleden
Also see this neat mod by Martin Pikryl

Thomas F Pettit 6 jaar geleden
I went to your http://www.dalton.ax/hpdisk/ site and on the site it says you have bare boards for sale. "see below".
I didn't find and info, even in the Bill of materials, as to the board resource and price.
tom

AndersG 11 jaar geleden
There are some penalties doing GPIB in software, especially if you want to keep the code tidy and readable. I have clocked HPDisk against various instruments and see approximately 20-30us/byte sending, 30-40us receiving on a 44788A. With my 1631D speeds are 10x slower. Apparently is the 1631D the bottleneck in those cases. Nevertheless are speeds comparable to a real HP floppy, which has a sustained speed of 40kb/s
It is also interesting to compare the speeds against the PC-based HPDrive with a GPIB-card with a dedicated GPIB chip.
We did some testing with a HP VNA and the 0.19 fw and the times are as follows:- For storing/recalling a non calibrated set-up & data it took ~2.5s/5s (store/recall) with Ansgar's HPDrive & NI GPIB-card and ~5s/5s with HPDisk
- For storing/recalling a full 4-port calibrated set-up & data it took 34s/26s (store/recall) with Ansgar's HPDrive & NI GPIB-card and 86s/28s with HPDisk

AndersG 7 jaar geleden
I have a fair amount of modules. Most came with the unit, but the GPIB one, I bought off eBay. I have that, the DAC, the high-speed voltmeter, bunch of FET switches.
The FW in mine was quite old, but I contacted Keysignt and they sent me a new FW kit for free!

Patrick McLaughlin 7 jaar geleden
I enjoy doing baseband QUAM with the dual channel 44726A. I hope to find the time to release a series of downloadable scripts for others.
patrick

Patrick McLaughlin 7 jaar geleden
could you let me know what enclosure parts are available for building two of your hp drive project please? If not, a drawing?
I probably still have all the microchip development tools necessary to burn the chip.
I'll email you too.
patrick.

Patrick McLaughlin 7 jaar geleden
Yes, I would like two, please. I could pay by PayPal.
2244 SE Airport Way
Suite 100
Redmond, Oregon 97756
-USA-
I'm an engineer that, in the days past, designated embed-like devices for various industrial products. One such universal floppy controllers. I had one for sale at one time for the Apple called the FDC-10. It allowed the Apple][ to communicate with the rest of the world with 5.25 and 3.5 disks as it used the normal IBM system 32 physical formatting. Now I do lots of embedded work with mission specific low power and batter driven products. I guess what I'm saying is, I shouldn't have too much trouble getting this up and going.
I have an 8753A/C that is used more often (option 010 is the ticket) than one would think prudent these days and have had multiple issues with the hp9122C drives being not reliably suitable.
I also have a small fleet of 3852As with all the updates and 1Mb of main memory and, from your initial information, have written a number of programs that run on the main unit as well as interact with it via a PC host and are finding them very much fun, educational and in fact professionally useful.
I am working on a JS / js.node project that allows us to freely communicate with these misunderstood and ignored legacy tools. The aim for this is to allow universal communications to them and have the data be archived, processed, shared and richly displayed on modern PC's, Mac PC's and UNIX derivatives.
Patrick McLaughlin
3.5" 300 rpm, 720, 800k & more. (719kb)
5.5" 300 rpm, customized multi sector formatting (797kb)

Wolfgang Mahringer 11 jaar geleden
I just tried to compile the source, using the latest Microchip C18 compiler (v 3.46). It compiles, but fails to link with the message:
MPLINK 4.48, Linker
Device Database Version 1.13
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section 'my_section_2' can not fit the section. Section 'my_section_2' length=0x00000200
Errors : 1
There are also a lot of warning when compiling the sources....don't know if this is ok...can you give any advice? See appended compiler log zip.
BTW: Thank you for this great project!
Cheers,
Wolferl

harold moore 6 jaar geleden
Is there an address I can mail a check for a board and parts?
put it on ---> harold541@gmail.com
Thanks!

harold moore 6 jaar geleden

AndersG 7 jaar geleden

AndersG 11 jaar geleden

Wolfgang Mahringer 11 jaar geleden

AndersG 11 jaar geleden

AndersG 11 jaar geleden
LM 1117 is somewhat picky when it comes to output capacitance. The datasheet suggests a minimum of 10u, low esr ceramic or tantalum. One tester had problems that would not go away, unless he added a 47u tantalum. This problem is easy to check however. Ie make sure that the 3.3V line does not have excessive ripple.
The Murata
81-GRM21R60J226ME39L |
Should be enough, but I will make room for a larger one in the net rev of the PCB.

AndersG 11 jaar geleden
When I first fired up the new PCB, the code that ran all right on the breadboard would not play nicely on the PCB, until I lowered the SPI frequency from 8MHz to 2MHz. At that time I had no idea why, but an ardent tester in Northern Finland, one with a better storage scope than I noted that the rise times of the data signal from the SD card was slowish.
There are some inherent problems with that particular circuit, however commonly used. For a very good analysis, see:
http://electronics.stackexchange.com/questions/18457/is-my-mosfet-based-bidirectional-level-shifter-insane
Turns out that several factors play into this, the mosfet Co and Vth namely. Turns out that 2N7000 has a slightly different Vth than 2N7002. The fix is easy though. Change the value of R4 from 10k to 1k8.

AndersG 11 jaar geleden
Received the first batch of PCBs just before the new year and managed to get some testing done. Turned out that while the breadboard design, with an PDIP part, rev 06 ran fine with an 8MHz SPI clock (for the SD), the PCB with a 44-pin TQFP, Rev07 did not. No idea why, but I just lowered the SPI clock to 2MHz. Will do some testing with a brand new SD card, time permitting, but using a 16Gb superfast SD to emulate a 720Kb floppy seems a bit silly.
I have solicited two betatesters and one of them has designed an alternative PCB for a PDIP PIC. I will ask him to post the design here. Reason why I went for a TQFP PIC was size. The v1 PCB is slightly under 100x80mm and I will house it in a small box that plugs into the back of my HP1631D and is powered from the +5V aux supply.
I also posted the code as a ZIP file. The MPLAB project is called 'fattest', because that was what I initially did :) Tested a FAT filesystem on SD. The is heavily documented and should be self-explanatory. If you find any bugs of make improvements, then please push back those updates to me

AndersG 11 jaar geleden

AndersG 11 jaar geleden
Corrected one error: Crystal is 8MHz. a 4x PLL yields a clockspeed of 32MHz
Added two LEDs for status indication

AndersG 11 jaar geleden
I had great help from the very extensive documentation available at The HPDrive Project (http://www.hp9845.net/9845/projects/hpdrive/). There is a ton of good information available on that site, and one of the maintainers was kind enough to answer several of my technical questions.
Also see HP's Manual Update 5957-6584 and the relevant service manuals for various HP disk drives, such as the 9121 and the HP 98034 interface unit.

Updates van de auteur
AndersG 1 jaar geleden
AndersG 1 jaar geleden
AndersG 3 jaar geleden
AndersG 3 jaar geleden
AndersG 4 jaar geleden
It has a number of bugfixes. There was a nasty one that affected writes when used with older HP VNAs.
AndersG 4 jaar geleden
AndersG 4 jaar geleden
I have added some info on the project page. www.dalton.ax/hpdisk
AndersG 5 jaar geleden
img-20200310-192008.jpg (56kb)
https://www.youtube.com/watch?v=ytZfeUKNaAo
AndersG 5 jaar geleden
AndersG 5 jaar geleden
HPDisk ran fine with the HP85, at least as long as you had the disk ROM installed, but when someone had problems getting it to run with the HP9816, I was stumped. No amount of log and trace files helped me to solve the problem so in the end, out of curiosity, I managed to lay my hands on a HP9816 on ebay. It was in working order but very dirty and the keyboard was flaky. In addition the fan was broken.
After extensive cleaning (have never seen so many dead spiders inside a computer before) I was able to start testing it with HPDisk. It quickly turned out that my selection of pullups, 10k to lessen the load on the bus, did not play well with the 9816. Put another GPIB unit on the bus and we could signal. So I lowered the pullups to 3k3 (they should really be 3k1, but 3k3 is close enough). Second hurdle was timing. The 9816 was too fast for my polled design.
There is a newer, faster and more flexible processor, the 18F46K40 that is pin-compatible with the old. In addition does it have its own oscillator which means less components and two extra I/Os.
I decided to use that one, giving existing customers an upgrade path. Replace the processor on HPDisk and program the new firmware.
The GPIB-receive was completely rewritten. It is now interrupt-driven and can buffer up to 512 bytes of data whilst the processor is busy decoding. I also did some tweaks to the Amigo and SS/80 routines. This FW plays nicely with the 9816, so it should work well with any of the members of the HP200-series. You can save and store programs or even boot BASIC from HPDisk MKII.
Out of curiosity I then ported back the code to the 18F4620. The only real changes apart from some registers and fuses being different is the GPIB ISR. I was able to make it work on the 4620 as well, but sadly not fast enough for the HP 9816
Using discrete resistors 3.3k instead of RP1 (278kb)
https://www.youtube.com/watch?v=9KQDM3mGMlI&t=4s
AndersG 5 jaar geleden
Ian Lockhart 5 jaar geleden
AndersG 5 jaar geleden