Assembly/Manufacturing Plan

P11003
Dynamic Keyboard Phase III

Total Time12 hours
Facilities NeededBrinkman Lab at RIT
Equipment RequiredBridgeport Mill with appropriate drill bits and end mills

Clamps and other related tooling

Schedule Four days
PersonnelEvan Gelfand, Andrew Vitkus, Andrew Hobson


Dynamical Keyboard Phase III

Manufacturing: Acrylic Parts

Acrylic Wedge/ Angle Blocks Manufacturing Plan
Refer to these CAD assembly parts in zip file on edge
AcrylicPlate: Plate_04142011
Angle Block: Angle_Block_04142011
Valley Block: Bathtup_04142011
Estimated Time: 8 hours

Nominal RPM: 2200
Nominal Depth of Cut: 0.025”
Nominal Feeds: 50 ipm

  1. Machine acrylic plate with a sharp HSS end mill by first creating the rough shape with a bandsaw and then finalizing the dimensions with a mill. Flip plate over and dill and counter-bore holes. Use nominal speeds, feeds, and depth of cuts. Because the material is brittle, ensure that the material doesn’t crack while machining.
  2. Machine four angle blocks by tilting the mill to the specified and a fly cutter.
  3. Machine valley block with one pass and a ½” especially sharp endmill. Use high RPM, and if the edge shows a white or chalky appearance or chips are re-welding, the feed rate should be increased. If the edge finish of the part has a rough, crater-like appearance, the feed rate should be reduced.

FoamBand Manufacturing Plan
Estimated time: 0.5 hours

  1. Cut a ¾” wide by 8” long black foam strip.
    Drill two holes that match the location of where the LED light pipes protrude.

Keyboard Assembly Process

Estimated time: 2 hour

  1. Epoxy plate, valley, and angle blocks together using C-clamps. Let the epoxy set for the necessary amount of time. This is now the wedge assembly. This is shown below.


SolidWorks Bottom View of Assembly


SolidWorks Top View of Assembly

  1. Remove the USB hub plastic case on the top casing using a Dremel tool enough so that it sits flush with the bottom half of the top casing.
  2. Using a 4-40 tap, tap five holes of the top casing.
  3. Machine the head of five 4-40 x 1” socket head cap screws to 0.020”, and insert them top down with Loctite.
  4. Place the printed circuit board (PCB) on top of the wedge and place the keyboard matrix on top of the PCB.
  5. Ensure that the domes are in the proper position, and then place the keyboard matrix/ PCB/ wedge assembly into top keyboard casing.
  6. Place the bottom keyboard casing around the PCB/ wedge assembly and insert washers and nutsinto the 4-40 screws and tighten.
  7. Ensure that the bottom and top casings snap together properly.
  8. Insert foam band on top of keyboard and using a small amount of glue, join the band with the top casing. Ensure that the holes of the light tunnels line up with the holes of the acrylic band.


SolidWorks Exploded View – (from bottom)socket head scrap screws,
wedge assembly, PCB with sensors and matrix,top casing, foam band

Computer/Software Plan

P11003
Dynamic Keyboard Phase III (DK3)

Total Time30 Minutes

Equipment RequiredComputer with USB port and internet access, Assembled Dynamic Keyboard

OS RequiredWindows XP, Windows Vista, or Windows 7

Software RequiredInternet Browser (Internet Explorer, Firefox, Chrome, ect.)

Schedule1 Hour
PersonnelEvan Gelfand, Andrew Vitkus, Andrew Hobson

**ALL required software can be downloaded from

Procedure for Installing and Running DK3 Software

Estimated time: 30 minutes

  1. Install device drivers (follow Procedure for Installing VCP USB Drivers)
  2. Install Python software (follow Procedure for Installing Python Software)
  3. Download DK3 files (follow Downloading Dynamic Keyboard III Software)
  4. Run DK3 software ( follow Running dk3_demo.py DK3 Python Script)

Procedure for InstallingVCP USB Drivers

Estimated time: 5minutes

  1. Download the Virtual COM Port driver for Windows from
  2. Unpack the downloaded file into desired directory.
  3. Connect the Dynamic Keyboard USB cable to the computer. If the computer displays a message reporting it does not recognize the hardware, continue to step 2. Else, the drivers are already installed, skip remaining steps.
  4. Follow driver installer wizard. Select the driver install path to the directory where you unzipped the drivers.
  5. Repeat step 4. (The Virtual COM Port a 2 layer driver.)
  6. Disconnect and reconnect Dynamic Keyboard and verify the computer recognizes hardware.

Procedure for Installing Python Software

Estimated time: 5 minutes

  1. Download the Python 2.7.1 MSI Installer from.
  2. Unpack the downloaded file into desired directory.
  3. Run Python 2.7.1 installer.
  4. Download the Python Serial Module (pyserial) MS Windows installer from
  5. Unpack the downloaded file into desired directory.
  6. Run pyserial installer.
  7. Download the Python Win32 Extensions from
  8. Unpack the downloaded file into desired directory.
  9. Run win32 installer.

Downloading Dynamic Keyboard III Software

Estimated time: 1 minutes

  1. Download software from
  2. Unzip the file. There are two python files required to run DK3 software; dk3_demo.py and comscanlib.py. There is a folder containing a .pde file containing the DK3 microcode for the Arduino.

Runningdk3_demo.py DK3Python Script

Estimated time: 3 minutes

  1. Plug Dynamic Keyboard into PC USB port
  2. Wait 20 seconds, the keyboard LEDs should be changing color. If the LEDs are not changing color, the Nano most likely needs to be re-programed.
  3. Using command prompt, navigate to the directory where the Dynamic Keyboard III Software is.
  4. Enter dk3_demo.py into the command prompt. Enter dk3_demo.py --help to see all input options.

  1. If the program doesn’t execute or is missing a file, the Python packages were improperly installed. Try to properly install software.
  2. If the program runs but fails to connect to the Dynamic Keyboard, re-plugin the keyboard and rerun the Python script. If it still fails,the Nano most likely needs to be re-programed.

Installing Arduino IDE

Estimated time: 2 minutes

  1. Download the Arduino Environment Software from
  2. Unpack the downloaded file into desired directory.

Program Dynamic Keyboard III Microcode on Arduino Nano

Estimated time: 2 minutes

  1. Install VCP drives for Arduino hardware if not already done.
  2. Plugin the DK to PC. Use “Windows Device Manager” to Identify the port # assigned to the Nano microcontroller*
  3. Run there executable file located in the directory where you saved the Arduino IDE
  4. Verify that the Arduino program is set of the port # of the Nano.From the top menu -> Tools ->Serial Port. Set to correct port # if necessary.
  5. Verify that theArduino program compiler is set to compile for the ATmega328 processor. From the top menu -> Tools ->Board. Set option containing “ATmega328” if necessary.
  6. From the Arduino program, open the Program Dynamic Keyboard III Microcodefile “dk3_ucode.pde” located in a subdirectory where you saved the Dynamic Keyboard III software.
  7. Select “Upload” to compile and program the DK microcode to the Nano.
  8. If uploading failed, verify the Arduino program has correct port # and correct “Board”. Also make sure no other program or script is connected to the DK. Also verify drivers for Arduino have been installed. If all fails, power cycle DK.
  9. Wait 20 seconds, the keyboard LEDs should be changing color. If the LEDs are not changing color, the Nano most likely needs to be re-programed.
  10. Using command prompt, navigate to the directory where the Dynamic Keyboard III Software is. Run the python script titled “dk3_demo.py”.
  11. If the program doesn’t execute or is missing a file, the Python packages were improperly installed. Try to properly install software.
  12. If the program runs but fails to connect to the Dynamic Keyboard, re-plugin the keyboard and rerun the Python script. If it still fails,the Nano most likely needs to be re-programed.