• Please review our updated Terms and Rules here

RX01/RX02 Drive Emulator using Arduino and a custom shield

AK6DN

Veteran Member
Joined
Aug 23, 2010
Messages
1,286
Location
Silicon Valley USA
Late in 2015, after retiring from full time work, I dug out my half-finished-never-quite-got-to-work PIC18F4550-based RX02 emulator project from about 10 years ago. It was based on the Dickman RXM code base ported to a USB capable PIC18 device. The intent was to emulate the RX02 device interface with a USB serial backend to a PC running my TU58EM code, kind of like a version of serial disk for the RX interface, with TU58EM as the server. For various reasons I was never able to get a stable USB comm setup running on the PIC18 device, so I lost interest when I had no time to debug it further (still working full time then), and TU58EM was more than sufficient for my needs anyway.

Over the last couple of years I have done a number of Arduino based projects, both based on the entry level module and the Mega2560, which is now my new favorite go-to building block. So earlier this year I did an RX hardware interface shield for the Mega2560 platform. I used three 8641 devices (just like the RX drive does) to drive the interface lines (since I have a number of tubes of NOS 8641s available). The PCB was done thru OSHPARK (the purple PCB guys).

All the low level bit-banging of I/O ports had been previously debugged by me on the PIC, and translating that to the Arduino was not hard to get it very high performance. Since the Arduino supports SD card / FAT32 filesystem access, modifying the storage to use local MicroSD was also done, so the RX disk images are stored on the local SD card. I also added a couple of FTDI USB/serial compatible headers to the shield (the Mega2560 has multiple hardware UARTs) so I can also implement file storage to a PC running TU58EM via a serial link in the future. I already have all the TU58 driver routines written for and debugged on the Arduino, they just need to be substituted in place of the SD card read/write routines.

All this discussion of the Torok RX02 emulator ( ref http://www.torok.info/computing/pdp11/rx02/index.htm ) got me going on this again, as the Arduino proof of concept was more or less done. In looking at his implementation not much attention was paid to optimizing all the low level RX02 hardware interface bit banging routines, which is something I had done previously for the PIC. So I have been able to get the code running on just a standard OTS Mega2560 (not a higher performance ARM-based solution). The optimized Mega2560 is more than fast enough (RAM usage is 43%, FLASH usage is 12%).

I did not implement the local LCD display for standalone operation (it could be done, there are more than enough pins and code space left) but instead use a command line interface thru the USB serial back end. I use USB to supply power, and a PC for a PDP-8/11 console terminal emulation window, so a PC is always available anyway to run the menu system in the background.

The emulator currently runs under XXDP and RT11 on my 11/44 with RX211 (M8256) interface. It has also been tested and verified on my PDP-8m in RX01/RX8E mode, and RX02/RX28 mode using OS8v3D and several home-brew diagnostic test programs. Another user has built and sucessfully tested the emulator on an RX01/RXV11 configuration.

Two versions of the shield have been designed and tested. The original is 8641 based (like a real RX02 drive) but due to the lack of general availability of 8641 transceiver devices, a new 2N7000/74HCT14 equivalent design has been done. They are 100% software equivalent, and both run reliably connected to my RX28 PDP-8 interface and my RX211 PDP-11 interface.

Emulator image: Click image for larger version  Name:	rx02_emulator_v4rev2_2n7k.jpg Views:	1 Size:	102.5 KB ID:	1203233

Here is a screen shot of the emulator monitor screen: http://www.vcfed.org/forum/attachmen...8&d=1473140454

Arduino code base & hardware design documents on GITHUB: https://github.com/AK6DN/rx02_emulator

RX02 XXDP bootable diagnostic image files: http://www.ak6dn.com/PDP-11/RX02/

As of 15-Jun-2021 I still have a number (> 10) of the bare emulator PCB fabs available; they are US$10 each. SparkFun microSD breakout/adapter boards are available for US$5 each (and are also available direct from SparkFun). Also a kit of all discrete parts needed; cost is US$15. So US$30 for the whole set, just supply your own ArduinoMega2560, a MicroSD card for data storage (a small 4GB one is more that enough storage) and of course you need an interface board for your system (RX8E/28, RX11/211, RXV11/21). Send me a PM if interested in a purchase.

If you want to buy PCB fab(s) from the vendor (DirtyPCBs.com) they are available here: http://dirtypcbs.com/store/designer/browse/AK6DN

The microSD breakout board is available here: https://www.sparkfun.com/products/13743
 
Last edited:
Back
Top