Using the Elan 33059 trackpad over USB

A project log for LCD music display

Legible notes that don't cost a fortune

lion-mclionheadlion mclionhead 06/20/2021 at 20:140 Comments

After 2 full days of hacking, the lion kingdom's recycled trackpad successfully communicated with the X server, thus becoming the world's 1st Elan 33059 to communicate with an X server with a PIC2450 as a bridge.

The USB driver was originally ported from C to assembly by a younger lion when MPlab was for windows only.  Then it was heavily optimized & documented.  The mane effort was porting the improved driver back to C.  

For the USB driver to work in C, it has to be interrupt driven.  The assembly language version only got away with polling because it was more efficient.  The source code is in  the elan.X directory of the repository, but it's probably not going to be used for annotations.

It's obviously pretty large with the microcontroller board.  It would need a long 4 wire cable to move the micro somewhere else, but the pad  just senses motion.  To detect button presses, it would need a bundle of extra wires to the micro.  The micro could be moved to a surface mount board so it just has a USB cable.

The T14_L pin shares the tapping bit so it can't be used.  The T19_RR, T20_RU,  T21_RL, T22_RD pins aren't sent to the status variable at all.  The 1 pin with exclusive use of a status bit is T13_R, so there could be 1 button.  Another idea for zoom is to use the page turn buttons for zooming when in annotation mode.  The GPIO buttons can't be sent to the X server though.

It's still really clumsy to draw with.  It needs to be covered with a layer of plastic & placed on a table to be functional at all.  It glitches if any body parts get near it.  Using a stylus helps keep body parts away.

The 1st enclosure was a big old sheet of coroplastic with everything on it.  Connected a button to the PIC18F2450's programming header.

This could be used without a table.  With a stylus & the right acceleration setting, it was better than a mouse & probably equivalent to a trackball.  A trackball this accurate couldn't be paw held like the Elan.

The crosshatch pattern on the Elan made it impossible to freepaw straight lines.  Sometimes, it starts permanently glitching until it gets a drop kick.  Freepawing text might have been slightly easier than a mouse, but it definitely needs a zoom feature.  

The button

is real bang terrible.  

The lion kingdom recommends the MHPS2283V for a momentary pushbutton

& the MHPS2283 for a manetained pushbutton

They also make a MHPS2283N which is a momentary pushbutton with no click.  It's terrible.

The trick with the MHPS line is they require a custom button & board mount instead of the screw mount of the bang terrible ones.  That's why they make 3D printers.