USB/PS2 Mouse Adapter for the Olivetti PC1

Share:

Overviewpc1

My Olivetti PC1 needs a mouse so I can play games like Arkanoid or run the GEM desktop environment. Since I don't have the original mouse I resorted to do what many people with Atari and Amiga computers did, connect a modern PS2 or USB mouse via an adapter board.

This adapter board uses the powerful Ultimate Amiga PS/2 Wheel Mouse Controller firmware completely unchanged and has the correct mouse pinout for the PC1.

The PCB is available to buy at Enide! Tindie Shop, either as a bare PCB or as a fully assembled and ready to use unit.

 

Schematic


Since the Atari, the Amiga and the PC1 share a similar design of mouse interface, usually named Bus Mouse or Quadrature Mouse, they all expect movement in the X and Y axis to be reported each in two lines with 90º phase offset, like a rotary encoder does. Button action is reported in specific pins, active low. This means that rearranging the pins in the SUB-D9 connector from the original schematic is enough to make it work on the PC1.

 

This is the original schematic, made by its author, for firmware version 1.5. Please note that the DB-9F pinout is for the Amiga and not the PC1 on this schematic. It's only being displayed here for reference.

 original amiga ps2 mouse schematic

 

From the original schematic I determined the following pin assignements on the PIC:

PIN Function Observations
RB0 PS2 CLK  
RB1 PS2 DATA  
RB2 LEFT BUTTON  
RB3 RIGHT BUTTON  
RB4 MIDDLE BUTTON not used on the PC1
RA0 YA  
RA1 YB  
RA2 XB  
RA3 XA  

 

The firmware is very powerful and supports mice with 5 buttons and the wheel but since the PC1 only reads the Left and Right buttons I will ignore the rest of them and use only the ones in the table above.

Below is the schematic I made using Eagle, based on the original for firmware version 1.5, with the rearranged pinout on the SUB-D9F for the PC1.

schematic

PCB

The PCB is very narrow and has the SUB-D9 soldered directly on the left side of the PCB. On the right side we can solder one USB A socket or one Mini-DIN6 PS/2 socket but not both.

pcb eagle

 

 And here is a preview of how it will look like when it's made.

pcb by dirtypcbs

 

Software

As I stated above, I'm not the author of the firmware for this project.

You could originally get it at http://ps2m.sotchenko.ru/version.html but the link is dead for quite some time.

I did find it to be still available at Aminet but even if this link is not working feel free to download version 1.5 from the local copy here.

If you decide to build it yourself, when programming the PIC 16F628 set the fuses to:

Bit Setting
Oscillator INTRC no clockout
Watchdog Timer ON
Low voltage programming OFF
MCLR Enable OFF

To use this adapter on the Olivetti PC1 you will need the mouse driver. There are currently two drivers known to work on the PC1:

I use Simone's driver on my PC1 for quite some time without any problems. I found it on the Olivetti Prodest PC1 Facebook page, which I recommend anyone with a PC1 to browse. There's a lot of useful information in there.

Prototype

Here are two pictures of the adapter running on a breadboard, click to enlarge.

prototype board 

 

The final boards took several days to arrive but as soon as they arrived I assembled one to test it on the PC1.

Here's how it looks:

bare pcb pcb assembled

pcb connected to mouse

 

References

  1. Ultimate Amiga PS/2 Wheel Mouse Controller - The original firmware is available here (Aminet)
  2. PS2 Mouse to Amiga BD9 adapter - The site that led me to design only the PCB and not the firmware
  3. JP-Mouse - Adapter for USB/PS2 mice on the Amiga and Atari ST, by JP-Retro
  4. Reparação Olivetti Prodest PC1 - Repairing a PC1 in video by JP-Retro
  5. Enide! Tindie Shop - If you want to buy one
  6. Ultimate Amiga PS/2 Wheel Mouse Controller - (ORIGINAL LINK BUT IT'S DEAD) The site with the original firmware and schematics (See reference #1)

 

 

Published on Sunday 2017/08/27, last modified on Wednesday 2020/05/13