PRESS Button Cycler Enhancements

The goal of the project is to update a button cycler system used in qualification testing of electro-mechanical switches on human-machine interfaces (HMI) designed by Advanced Input Systems.

=Problem Definition= Exhaustive testing HMI associated with dependable technology equipment is necessary to assure that they remain fully functional throughout the anticipated usage life. The goal of our project is to design a next-generation button-testing system and software package that can be easily configured to a broad range of keyboard and console geometries. The test will reduce human labor required for data acquisition and visualization as well as provide information about changes in switch health throughout the testing procedure.

Background
Advanced Input Systems develops HMI, such as keyboards, consoles and smart surfaces, for a broad range of applications including military and medical devices. Some of these devices are vital to human health and safety, so it is extremely important they know how long each of their switches is guaranteed to function without failure.

To determine this, AIS uses a system with the following capabilities: System drawbacks to be considered:
 * Incremental counters detect and display the number of switch closures since last reset.
 * Bimba force can be controlled somewhat by adjusting input pressure.
 * Multiple air cylinders (Bimbas) can be used to test multiple keys on a device.
 * No way to monitor or accurately adjust force applied by Bimbas.
 * No way to measure or quantify switch health.
 * Switch closure count does not indicate when and error has occurred.

This final point is most important. The cause and context of each switch failure is crucial information when determining the life expectancy of a button.

Deliverables
Four levels of priority were initially assigned to the product design:

Priority 1: Necessary for product prototype
 * An apparatus and LabVIEW program which emulates the current system capabilities, as well as provides switch debounce detection and meaningful datalogging.

Priority 2: Preferable but Optional
 * Incorporate Bimba force detection and user input for force selection.

Priority 3: Optional
 * Incorporate in situ switch characterization using force/displacement/resistance hysteresis curves to monitor switch health.

Priority 4: Preferable for future product
 * Modernize hardware setup for final button cycler system.

During early development, priorities 1-3 were considered. Due to the learning curve for LabVIEW development, priority 1 became the entire scope of this year-long project.

Specifications

 * The following is a list of [[Media:2019_PRESS_ProductRequirements.pdf|Product Requirements]]

=Hardware Development=

The first test bench was modeled and built to mimic one Bimba on a single gantry rail from the current AIS system. It was designed to accommodate up to six Bimbas for later testing phases. Bimbas, their mounts (machined as AIS), and the rail were supplied by the client. The rail mounting fixtures and keyboard tabs were 3D printed with PETG filament (for strength and simplicity). Hardware was purchased through McMaster-Carr and local hardware stores.

The first step in the product design was to ensure that the current AIS system could be emulated and sufficient data could be collected. In order to bootstrap experimentation while equipment was on order, an Arduino setup was built into the first design of experiment (DOE) in place of LabVIEW and a data acquisition device (DAQ). This presented opportunities to design and improve the pneumatic system components.

A solenoid valve was used to control the actuation of each Bimba. In order to allow higher cycle rates and reduce noise from the return strokes, output valves were fitted to each solenoid to control Bimba back pressure. A regulator tank was employed to maintain consistent pressure values. The test bench hardware will currently support four Bimbas.

Early testing showed a significant drop in air pressure (2-3 psi) through the system with only one Bimba actuation. Considering this would cause issues when the system scaled to multiple Bimbas, and since a further goal was to implement force selection, a regulator tank was installed to ensure a more consistent air supply. With the tank added to the system, pressure drop from four Bimbas firing simultaneously was less than 2 psi. When scaling to 30 Bimba, it may be necessary to split supply over several reserve tanks. Further study is needed to determine how many Bimbas can be continuously supported on a single 100 psi supply.



=Software Development=

Further study would be necessary to determine that the gantry rail fully loaded (6-10 Bimbas) can withstand a maximum load firing once the software supports a multi-button system. With this obstacle in mind, consideration was made to the firing order of cylinders. The resulting LabVIEW code uses a simple loop to “gallop” the series of Bimba firings (one after another) by cycling through the cylinder indices used for the data array. This ensures that no two Bimbas fire simultaneously and prevents data collisions. The trade off is that on a long rail, e.g. 10 Bimbas, the “gallop” will limit the cycle rate parameter. More testing is needed to determine how much of a limitation this creates.

Excel VBA macros were designed to analyze post test data saved as a .csv file. This provided a good visualization tool for what the final analysis would look like. However, an Excel spreadsheet can only contain 2^20 (just over one million) rows, and tests are expected to run at least 1.5 million cycles. Not to mention .csv files that large would take excessive processing time to run through the VBA macros and are susceptible to corruption.

Instead, the VI saves log data to binary .dat files. These much more compact and secure files are then loaded into a separate tab in the VI for analysis. Currently, individual cylinder data can be visually analyzed with a mixed plot chart. Further implementation would be necessary to format failure logs for all Bimbas.

=LabVIEW Programming= From the LabVIEW wiki: "LabVIEW, short for Laboratory Virtual Instrument Engineering Workbench, is a fully featured Integrated Development Environment (IDE) produced by National Instruments." Coding in LabVIEW is not text based, but rather a block diagram flow chart. Functions and objects are represented as panels and blocks. Inputs and outputs are wires connected between blocks. This provides an entirely visual workflow environment to develop programs, or Virtual Instruments (VI).

Here is an example snippet of code pertaining to the manipulation of arrays:

=Final Design= Final product features include:


 * Output signal loop actuates air cylinder at regular intervals
 * Input signal loop reads resistance measurements from keyboard through DAQ
 * Merged loops accept input parameters (cycle rate, total cycles)
 * VI records number of successful closures based on resistance threshold
 * Debounce detection module accurately determines debounce times
 * Calibration cycle successfully applies test parameters
 * Cache cycle properly stores data without interfering with input readings
 * System accommodates up to four cylinders



The user can save and recall test settings with a .csv configuration file. Individual parameters may then be altered for a particular test. The user selects which Bimbas will be active for the test and assigns each switch ID (if needed). Then the test may start. At any time during a test, the user may pause and adjust parameters and active cylinders, or simply terminate the test. Otherwise, the test will continue until the cycle limit is reached.



These charts represent the performance of a single cylinder over the course of a test. They plot open and closed resistance averages, debounce times and failures. This allows engineers at AIS to visually analyze button performance, recognize trends in switch health and find further insight into the context of failures.

At this stage, when the system supports four cylinders, issues arise with proper array indexing, leading to occasional data drops or corruptions, as seen in the cylinder performance charts.

=Validation=

=Next Steps= While much was accomplished in this project, there are many opportunities for future work to improve the button cycler. Here are recommendations on future projects:


 * 1) Debug array indexing issue leading to data drops
 * 2) Confirm functionality for 10, 20, and 30 simultaneous Bimbas
 * 3) Upgrade VI to export formatted Excel reports
 * 4) Implement Bimba force detection
 * 5) Implement force selection as a test parameter
 * 6) Test distortion effects of maximum load firing on gantry rail
 * 7) Test capacity of regulator tanks to drive multiple Bimbas
 * 8) Develop method for integrated switch characterization (F/D/R curves)
 * 9) Modernize hardware design to minimize error (e.g. dual-acting Bimbas)

=Team Members=

=Additional Documentation=

[[Media:2019_PRESS_ValueProposition.pdf|Value Proposition Statement]] [[Media:2019_PRESS_Schedule.pdf|Project Schedule]] [[Media:2019_PRESS_Budget.pdf|Project Budget]] [[Media:2019_PRESS_TeamContract.pdf|Team Contract]]

[[Media:2019_PRESS_MeetingMinutes.pdf|Meeting Minutes]]

[[Media:2019_PRESS_ProductRequirements.pdf|Product Requirements Document]]

[[Media:2019_PRESS_P1_BOM.pdf|Priority 1 System BOM]] [[Media:2019_PRESS_P1_SystemDiagram.pdf|Priority 1 System Diagram]]

Presentations

[[Media:2020_PRESS_TechnicalPresentation.pdf|Final Technical Presentation to AIS]] [[Media:2019_PRESS_EngrReleaseReview_Presentation.pdf|Engineering Release Review Presentation]] [[Media:2019_PRESS_DesignReview_Presentation.pdf|Design Review Presentation]] [[Media:2019_PRESS_Snapshot2_Printouts.pdf|Snapshot 2 Printouts]] [[Media:2019_PRESS_Snapshot1_Printouts.pdf|Snapshot 1 Printouts]]