Footswitch: Level 1 Module Inputs Outputs Functionality Module Inputs Outputs USB Connector Power: 5V DC power from USB connection USB data: D+ and D- data lines from USB connection MCP2200 data: D+ and D- data lines from MCP2200 Power: 5V DC power to LED indicators Power: 5V DC power to MCP2200 Power: 5V DC power to ATmega8 Microcontroller USB data: D+ and D- data lines to USB Connection MCP2200 data: D+ and D- data lines to MCP2200 Functions as a physical connection between footswitch module and PC MCP2200 – USB2UART Converter Power: 5V DC power from USB connector Data: D+ and D- data lines from USB connector GPIOs data: encoded as binary data (up to 4 IOs) to indicate the buttons status from microcontroller UART data: data from microcontroller to RX pin of MCP2200 Data: D+ and D- data lines to USB Connector Ready: completed initialization status to LED indicator Status: completed initialization (using USBCFG pin) and PC Program status (sent through USB commands) encoded as binary data output to microcontroller using 2 IO pins Functionality Module Inputs Outputs Functionality Module Inputs UART data: data to microcontroller from TX pin of MCP2200 A bridge between the microcontroller and the PC Program which handles USB commands from PC program, sends GPIOs status to PC program, sends PC Program status to microcontroller as well as transfers strings between PC program and microcontroller through UART. ATmega8 - Microcontroller Power: 5V DC power from USB connector MCP2200 status: MCP2200 completed initialization (using USBCFG pin) and PC Program status encoded as binary data UART data: data from MCP2200 to RX pin of ATmega8 Buttons status: pushed/released status of buttons encoded as high/low signals GPIOs data: buttons status encoded as binary data and output through IO pins UART data: data to MCP2200 from TX pin of ATmega8 Keeps track of the buttons status (3 buttons) and detects short, double presses (tactile switches) and on/off status (on/off switches) based on time interval, then sends these detected status to MCP2200. Also stores configured preset intervals by users via PC program. Outputs Functionality LED indicators Power: 5V DC power from USB connector Ready: completed initialization status from MCP2200 None 2 LEDs indicate the power status and completed initialization status of MCP2200 Module Inputs Outputs Functionality Buttons User interactive: physical interactive from user Status: Pressed/Released status to ATmega8 3 buttons convert user interactive to signals (including 2 tactile switches and 1 on/off switch)