IBM 6094-010 Dials

Hardware Interface
Software / Protocol
External Links

Original content by Rainer Wetzel ( was here.
Edited by Louis Ohland and Major Tom.

Note: Most of this page was translated with Google, and some dimly remembered college German (Forgive me, Frau Bauman! Forgive me!) -LFO


The IBM 6094-010 is an 8 channel analogue-digital converter with 8 potentiometers and a RS232 port, all housed in a well designed case. Typical usages were the 3D industry, you could also think of video cutting, DJ mixer. (perhaps I'll create a MIDI device driver, one day).

A similar product was also offered by SGI and other manufacturers.

Notice that there is a moulded plug from the AC adapter that plugs into the back of the DB9 adapter. When the serial port to Mini DIN8 is figured out, you could use a DB9 breakout box, then just drill it for a DC barrel jack.


IC1 ADC0808CCN 8-bit µP Compatible A/D Converter with 8-Channel Multiplexer
IC2 µPD8048HC High-Speed, 8-bit, single chip HMOS uComputer (6MHz)
IC3 SN74LS14N Hex Schmitt-Trigger 1 Input Gate Inverters
IC4 µPD8251AFC 3/5 MHz -0.5 to +7.0V programmable communications iface (USART)
IC5 ICL232CPE +5V Powered, Dual RS-232 Transmitter/Receiver
X1 2.304 MHz ? xtal

Inside there are 8 potentiometers. 2k Ohm, linear - as voltage divider. An ADC0808CCN is used as A/D converter. This offers 8 channels and an 8-channel multiplexer. Next in the signal path is a NEC D8048HC, probably a μC. An NEC D8251AFC works as a UART. In the end, the signal arrives at an ICL232CPE which brings the signal to the appropriate voltages. Voilà is finished the 8channel rotary Dials with RS232. With a consumption of just 1.5 watts, the equipment is also quite economical ;)

There is also a SN74LS14N 6x Schmitt-Trigger inverter on the board. 5 of the inverters are connected.

Hardware Interface

Of the 9 connection leads in the connector, only 5 are connected. Other than 5V and ground, 3 lines remain. On one the equipment obviously supplies the values ​​of the potentiometers. On one of them it receives control commands. The other is probably the RTS line (Request to Send). The third line is not required for the function.

Connector CN1

Pin Color Function Remark Soldering connection
1 Brown Ground “-“ from Board Rear, ICL232CPE (Pin 15, GND) Front & Back
2 Red
3 Yellow +5 V ICL232 (VCC @ 10 Ohm), + div. Elkos, Thick circuit Back
4 Green S-Trigger Input via 515 Ohm on Pin 1 SN74LS14N, Thin conductor Back
5 Blue RS232 TXD ICL232CPE (Pin 14, T1 Out @ 220 Ohm) Front
6 Grey RS232 RXD ICL232CPE (Pin 13, R1 In @ 220 Ohm) Front
7 White
8 Black1
9 Black2 Shield (plug) via suppression capacitor to ground Back

The connector on the CN1 board is connected to the colored lines with an 8-pin mini-Din connector. A suitable plug is available for 30 cents from * tadaa * Pollin.

Functional Test

If you put 5V to supplies the transmitter stripe -10Volt, thus quasi the level the one data line has when no data are sent. Turning on the potentiometer does not provide any signals, so the device must first be initialized or activated.

The crystal has a measured interval of 0.435 μS, that is, 2298.85 kHz and 2.3 MHz, respectively. Top stands 2,304 MHz - since the Oszi is determined something damping works the value ;-) Why this meaning-free measurement? Well, the baud rate is probably somehow to be calculated by (2,304 * 1000 * 1000) / (x² * 10 ^ y) [where x> 0 and y> = 0]. Possible (common) baud rates would be: 230400, 115200, 57600, 28800 and 14400.

According to the XFree86 drivers, the device operates with the following settings:

BaudRate 9600
StopBits 1
DataBits 8
Parity None
FlowControl None

The baud rate is therefore exactly 2/3 of 14400, or 2 / 3ds of the quartz frequency.

By attaching to an experiment laptop with Windows 3.0 and sending the iexplore.exe :-P, the device persuaded itself to spit out letter character in the console - Juhu still alive (or is that "Woo-Hoo! still alive!")

RS232 Cable (DIY)

PC Pin PC Color Signal Direction Dials Color
1 - -
2 Black RXD -> PC Blue
3 Brown TXD -> DLS Grey
4 Red DTR -> DLS
5 Orange GND Brown
6 Yellow DSR -> PC
7 Green RTS -> DLS
8 Blue CTS -> PC
9 - -
5V VCC Yellow

The colors on the PC side are of course not the same for each cut-open RS232 cable…

Software / Protocol

Excerpt from the XFree86 drivers for a different hardware version:

// Commands
#define DIAL_INITIALIZE           0x20 // Initialize device
#define DIAL_SET_LEDS             0x75 // LED Power on (only for "Buttons")
#define DIAL_SET_TEXT             0x61 // ??
#define DIAL_SET_AUTO_DIALS       0x50 // ?? Automated answer?
#define DIAL_SET_AUTO_DELTA_DIALS 0x51 // ?? Automatically send offset?
#define DIAL_SET_FILTER           0x53 // Only allow certain dials/buttons? Bit mask?
#define DIAL_SET_BUTTONS_MOM_TYPE 0x71 // ? (Only for "Buttons")
#define DIAL_SET_AUTO_MOM_BUTTONS 0x73 // ? (Only for "Buttons")
#define DIAL_SET_ALL_LEDS         0x4b // Turn on all LEDs (only "buttons")
#define DIAL_CLEAR_ALL_LEDS       0x4c // Turn off all LEDs (only "buttons")

// Reply from device
#define DIAL_INITIALIZED          0x20 // Initialization completed
#define DIAL_BASE                 0x30 // ?
#define DIAL_DELTA_BASE           0x40 // ?
#define DIAL_PRESS_BASE           0xc0 // ?
#define DIAL_RELEASE_BASE         0xe0 // ?


By experimentation, it turned out that the state of all 8 encoders can be interrogated via the following byte sequence:

0x20, 0x61, 0x50, 0x00, 0x20, 0x61, 0x50, 0x00

What is the command to initialize the device? / Dev / urandom is not a viable solution - 0x20, 0x50, 0xff, 0xff does not bring any success.] The device can be synonymous _where like_ ummurksen that it itself sends and does not have to be polled


The answers from the device are 16-bit packets. These are sent to the potentiometer when turning. They contain a potentiometer number (with 8 potentiometers at least 3 bits), direction (at least 1 bit), position und/oder Geschwindigkeit.

Bit 0 Bit 1 Bit 2-4 Bit 5 Bit 6 Bit 7
Bit 8 Bit 9-15
Packet 0,
always 0
? Potentiometer Number
0=rotate right,
1=rotate left
? Position Packet 1,
always 1

Apparently, different sensitivities / resolutions can be set for the individual potentiometer (viewed: 3Bit, 5Bit and 8Bit). At a low sensitivity, the remaining bits remain 0.

There is an upper stop at 240 and a lower stop at 248. There are two 8-unit "strokes".

External Links

Content created and/or collected by:
Louis F. Ohland, Peter H. Wendt, David L. Beem, William R. Walsh, Tatsuo Sunagawa, Tomáš Slavotínek, Jim Shorney, Tim N. Clarke, Kevin Bowling, and many others.

Ardent Tool of Capitalism is maintained by Tomáš Slavotínek.
Last update: 08 May 2024 - Changelog | About | Legal & Contact