Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Project #15
April 4th, 2011
Submitted To:
Dr. Michael McGuire
Group Members:
Paul Green
Phil Laird
Kenyon Campbell
Thayer Fox
elektroshok
A Dynamically Adjustable Bicycle Suspension
elektroshok 2011
2
Table of Contents________________________________________________ List of Figures ........................................................................................................................ 4 Project Summary ................................................................................................................... 5
1. Introduction.................................................................................................................... 6 1.1. Project Motivation .................................................................................................................... 6 1.2. Project Description ................................................................................................................... 6 1.3. Scope of Report ........................................................................................................................ 7
2. Design ......................................................................................................................... 7 2.1. System Design .......................................................................................................................... 7 2.2. Electrical Design ....................................................................................................................... 7 2.3. Mechanical Design .................................................................................................................... 8
3. Development .............................................................................................................. 9 3.1. Component Selection ............................................................................................................... 9
3.1.1. Micro-controller .................................................................................................................. 9 3.1.2. Graphical Display ............................................................................................................... 10 3.1.3. Suspension Fork ................................................................................................................. 10 3.1.4. Impact Accelerometer ....................................................................................................... 10 3.1.5. Inclinometer ...................................................................................................................... 11 3.1.6. Linear Position Sensor ........................................................................................................ 11 3.1.7. Actuators ........................................................................................................................... 12 3.1.8. Motor Drivers .................................................................................................................... 12 3.1.9. Power Supply ..................................................................................................................... 13 3.1.10. User Interface Navigation .................................................................................................. 13
3.2. Circuit Design Process ............................................................................................................. 13 3.2.1. Breadboard Prototype ....................................................................................................... 13 3.2.2. Final Design ....................................................................................................................... 14
3.3. Firmware ................................................................................................................................ 15 3.3.1. Analog to Digital Converters .............................................................................................. 15 3.3.2. Output Capture Module ..................................................................................................... 16 3.3.3. Parallel Master Port (PMP) ................................................................................................. 16 3.3.4. General Purpose Input Output (GPIO) ................................................................................ 16
3.4. Graphical User Interface (GUI) ................................................................................................ 17 3.5. Terrain Adaptions Algorithms ................................................................................................. 18
3.5.1. Incline Conversion ............................................................................................................. 18 3.5.2. Incline Detection................................................................................................................ 18 3.5.3. Impact Detection ............................................................................................................... 19 3.5.4. Repetitive Impact Detection .............................................................................................. 19
3.6. Mechanical Systems ............................................................................................................... 20 3.6.1. Upper Motor Mount .......................................................................................................... 20 3.6.2. Upper Motor Shaft............................................................................................................. 20 3.6.3. Lower Motor Mount .......................................................................................................... 20 3.6.4. Impact Sensor Mounting .................................................................................................... 21 3.6.5. Linear Position Sensor Mount ............................................................................................ 21 3.6.6. Control Module Mount ...................................................................................................... 21 3.6.7. Inclinometer Mounting ...................................................................................................... 22
3.7. Power Supply.......................................................................................................................... 22
elektroshok 2011
3
4. Challenges and Resolutions ....................................................................................... 23 4.1. PIC Input Voltages .................................................................................................................. 23 4.2. Inclinometer ........................................................................................................................... 23 4.3. Broken Linear Position Sensor................................................................................................. 23 4.4. Rebound Motor Axel Alignment .............................................................................................. 24
5. Future Development ................................................................................................. 25 5.1. Alternative Damping Methods ................................................................................................ 25 5.2. Power Supply Improvements .................................................................................................. 25 5.3. Data Logging Feature .............................................................................................................. 25 5.4. Position Sensor Alternatives ................................................................................................... 26
6. Marketing and Costs ................................................................................................. 26
7. Conclusion ................................................................................................................ 27
References .......................................................................................................................... 28 Appendices ......................................................................................................................... 29 Appendix A - Full Schematic ................................................................................................................... i Appendix B - Midterm Report #1 ........................................................................................................... ii Appendix C - Midterm Report #2 .......................................................................................................... iii
elektroshok 2011
4
List of Figures
Figure 1: Complete Electrical System ....................................................................................................... 8
Figure 2: Mechanical Design .................................................................................................................... 9
Figure 3: Top View of Completed Board ................................................................................................. 14
Figure 4: Bottom View of Completed Board ........................................................................................... 15
Figure 5: User Interface Home Screen.................................................................................................... 17
Figure 6: Impact Capture of Impact Accelerometer ................................................................................ 19
Figure 7: Upper Motor Mount ............................................................................................................... 20
Figure 8: Upper Motor, Mount and Shaft ............................................................................................... 20
Figure 9: Lower Motor Mount ............................................................................................................... 20
Figure 10: Impact Accelerometer ........................................................................................................... 21
Figure 11: Linear Position Sensor Housing.............................................................................................. 21
Figure 12: Control Module Mount ......................................................................................................... 21
Figure 13: Inclinometer Mounting ......................................................................................................... 22
Figure 14: Rebound Motor Shaft Revision .............................................................................................. 24
elektroshok 2011
5
Project Summary
This project consists of the design and construction of a prototype bicycle suspension fork with
dynamic, electronically controlled, compression and rebound damping. It is intended to meet the
requirements of the University of Victoria's CENG/ELEC 499 Design Project.
The elektroshok system uses acceleration, inclination, and position data to make adjustments to
the shock dampers. Impact and Incline data is gathered by two analog MEMS inertial sensors
while position is taken from magneto-potentiometer mounted to the shock piston. An on-board
microprocessor quantizes the data and adjusts the shock characteristics based upon the control
algorithms. Two high-speed stepper motors allow interaction with the shocks rebound and
compression damper valves. Additionally, the user can select different riding scenarios for
shock performance on a user friendly interface. This is done via a handlebar mounted display
and joystick.
elektroshok 2011
6
1. Introduction
1.1. Project Motivation
Mountain bikers are constantly demanding more and more control over all aspects of their
riding experience. The ability to tune the damping properties of a mountain bike suspension
fork has long been a desirable feature. Currently there are many suspension forks on the
market that have manually adjustable rebound and compression damping controls. These
manual controls require that the user set up the forks beforehand and have limited to no
ability for on-the-go adjustments. This system often puts the rider at a disadvantage when
they encounter an unexpected change in terrain. A single static setting for rebound and
compression damping is simply not enough to ensure the optimum performance of the fork
for the duration of a ride. The elektroshok improves the performance of a traditional
suspension system by changing the damping properties based on sensor input and user
defined settings.
1.2. Project Description
The elektroshok uses real time data collected from two MEMS multi-axis accelerometers
along with position a sensor placed on the fork. This data is processed by a microprocessor
and adjustments are made to the shocks by two separately controlled stepper motors. This
system allows the bicycle's suspension to adapt to changes in the terrain and provide the
rider with the optimal shock properties at any given time.
There are three main features of the system. The first is the ability to select from 5 different
pre-set riding scenarios. These riding scenarios can be customized by the user and are
representative of the most common riding styles encountered when mountain biking. The
second feature is an automatic lock-out of the suspension travel when a sustained incline is
encountered. The suspension will remain locked out until a large impact is detected, at this
time the suspension will return to the chosen riding scenario. The final feature is a stiffening
of the shock when repetitive impacts are detected.
The system employs a five-way joystick for user input and an OLED screen to display menu
options. A user setup feature helps further optimize shock performance by determining the
best air pressure for the fork based on rider weight and desired riding style.
elektroshok 2011
7
1.3. Scope of Report
This report chronicles the development and execution of the electroshock dynamic bicycle
suspension system, from the conceptual stage through to construction of the functional
prototype. The motivation behind this project is discussed followed by the engineering
decision and justifications made. The overall system design description is followed by a
detailed description of the development that when into each design aspect. Some key
challenges encountered during the project evolution, as well as the solutions implemented
are explained. An overview of the completed prototype and the results we obtained are
discussed. Finally we make recommendations on aspects of the design that require further
development as well as improvements that we think are necessary to produce a truly
marketable product.
2. Design
2.1. System Design
In order to best characterize the terrain encountered on a bike three separate sensor
elements needed to be implemented. These include the detection of any sudden impact felt
by the fork, the position of the fork within its stroke, and the inclination of the bike. By
analyzing these three aspects of the riding experience, changes can be made to the shock
properties to ensure an optimum setting for the current terrain. Rider input and customizable
settings are also taken into account to ensure that every rider can receive the best shock
performance for how they want to ride.
2.2. Electrical Design
The electronics of the elektroshok suspension fork are comprised of three distinct systems:
control module, sensors and valve actuation. The control module mounted to the bicycle
handlebar stem contains the microprocessor, the OLED graphical display, a navigation
joystick, and power supply. Valve actuation is accomplished by two stepper motors mounted
externally on the rebound and compression dampers. The sensors used are; a linear position
sensor fixed to the back of the right fork tube, an impact sensing accelerometer attached at
the front hub, and a 2 axis accelerometer acting as an inclinometer mounted inside the
control module housing.
elektroshok 2011
8
Figure 1: Complete Electrical System
2.3. Mechanical Design
The dynamic environment encountered while mountain biking was cause for a significant
amount of mechanical design and construction in this project. The elektroshok system must
be protected from impacts as well as be small enough to not impede the rider in any way.
The adjustments to the fork are made by utilizing external adjustment knobs already in place
on most suspension fork designs. By attaching stepper motors to these external adjustment
knobs, we are able to change the damper port dimensions inside both the compression and
rebound dampers. Motor mounts were designed to couple the motors to the fork on both the
top and bottom of the right fork stanchion. Additionally sensor and control unit mounts were
required in order to securely mount the accelerometer, position sensor and control module.
elektroshok 2011
9
Figure 2: Mechanical Design
3. Development
3.1. Component Selection
Component selection is arguably the most important step in the production of a working
system. In the early phases of the elektroshok project conception, the group set a goal of
having a fully realised prototype of the system, well beyond a proof of concept. In order to
achieve this goal, it was imperative to start hardware development as early as possible.
Component specifications and major part selections were decided months in advance. The
following section highlights the reasoning and tests performed behind the selection of the
major components found in the elektroshok system.
3.1.1. Micro-controller
For the processor unit we selected the Microchip PIC24HJ128GP504. This 16bit
controller was chosen for its large array of digital and analog I/O, its support of PMP
(Parallel Master Port) protocol, low power usage, and large memory. The processor is
the heart of the system and is responsible for reading the analog sensors input,
processing the data, and controlling the position of the stepper motors.
elektroshok 2011
10
3.1.2. Graphical Display
The goals of the user interface were ease of navigation and a modern attractive feel. We
wanted to avoid typical monochrome character displays even though they would have
significantly simplified the development of the GUI. A backlight colour LCD was also
considered but proved to have unacceptably high power consumption. The display that
was ultimately chosen was a 128x128 colour OLED. The OLED screen was chosen for
its ease if viewing in sunlight and its low power usage as compared to a back-light LCD.
The OLED is a fairly new technology and there were few suppliers of this product. We
were able to locate a suitable display module from wide.kh in China. The display module
came with an integrated display controller that supported PMP and had built in power
supply components.
3.1.3. Suspension Fork
A suitable suspension fork was an important part of the overall system design. A fork
with external adjustments of both compression and rebound damping was needed.
There are many suitable forks currently available however we chose the Rock Shox
Recon 351. The Recon 351 has 130mm of travel and is considered to be a good all-
around performance mountain bike shock. Our sponsor, Rider’s Cycles, had this shock
in stock and was willing to give it to us for much less then retail value.
3.1.4. Impact Accelerometer
Before selecting an accelerometer suitable for the impact sensor, research was
performed to determine typical loads experienced by a mountain bike. Basic kinematic
calculations and timeframe analysis of riders on an extreme course were used to obtain
some estimates on typical forces. We were able to calculate momentary impact
acceleration values in the 10s of g’s given a nominal value of deflection by the tire and
wheel. We concluded that a device capable of measuring up to 30G’s would be sufficient
for the purposes of this system.
This large range in acceleration readings ruled out the use of prefabricated digital
modules sold by companies like Spark Fun and Robot Shop. After reading over many
data sheets; the Analogue Devices ADXL278 dual axis model was selected because of
its suitable range of +/-35G’s.
elektroshok 2011
11
3.1.5. Inclinometer
As will be discussed in section 4.2, this device was not in the original iteration of our
system. We determined that adding an accelerometer dedicated to measuring the
inclination would ensure better reliability and a more accurate reading. Since we had
already made the decision to use an analogue sensor for the impact accelerometer, it
was a straight forward choice to purchase a similar sensor with a more sensitive
accelerometer from the same family. The ADXL203CE was selected because it shared
the same device package and footprint as the ADXL278, and was available with a
measurement range of +/-1.7G’s. This provided the system with excellent resolution for
measuring static acceleration of 1G. This device also included a user tuneable low pass
filter that could be used to suppress the higher frequencies not useful when determining
inclination.
3.1.6. Linear Position Sensor
An equally important sensor for the acquisition of data is the position sensor. We needed
to be able to determine the position of the shock travel at all times. This sensor could not
interfere with the stroke of the shock or add any friction to the suspension. We explored
the possibility of measuring the change in air pressure within the fork chamber and
deriving position from this information. This looked to be a promising solution until we
were unable to locate a suitable transducer. The complexity of the mechanical design
and inaccuracies caused by the adiabatic process resulted in the need for an expensive
custom transducer. Infrared encoders, laser proximity detectors and string
potentiometers were also considered but eventually abandoned because of their
vulnerability.
In the end, an elegant solution was realized with the discovery of the MP1 from Spectra
Symbol. The MP1 is a weather sealed, magnetically controlled, linear potentiometer that
does not require any direct contact with the wiper arm. It uses built-in magnetics coupled
to an external magnet. The magnet is passed over the outer surface at distance above
the surface and a voltage is given to indicate the position of the magnet along the length
of the sensor.(remove this sentence) The MP1-L-0150-103-5%-RH was chosen because
of the 150mm range, 10kΩ resistance, and desired connector. [1]
elektroshok 2011
12
3.1.7. Actuators
We knew that our project would present a challenging and somewhat contradictory
requirement for its actuation system. We needed relatively fast rotation, significant
torque output, and accurate position control all in an easy to mount and lightweight
package. Four possible actuator technologies were considered. Servo motors were
initially considered but did not provide adequate torque at the desired speed. A DC
motor would give the speed we needed but would also need to be coupled with a
reduction gear box in order to achieve adequate torque. Also, an integrated encoder
would be needed in order to keep track of the motors position. A hybrid system was also
considered which utilized a solenoid for the compression damper and a rotational
actuator for the rebound damper. In the end, stepper motors were found to provide the
best balance of speed, torque, controllability, and ease of mounting.
We determined the torque required to smoothly rotate the two dampers before
purchasing appropriate motors. After taking several measurements we determined that
an average of 75 mN-m was needed in order to rotate the adjustment knobs. As a
margin of safety we chose motors with at least 1.5 times the measured torque. The Soyo
12V 0.4A 36oz-in unipolar stepper motor provided ample torque in a small form factor. A
unipolar motor was chosen because the torque is held constant over a wider speed
range then a bipolar motor.
3.1.8. Motor Drivers
Since stepper motors were chosen as the desired actuators the task turned to specifying
an appropriate control device. Initially, a basic H-Bridge device was considered with the
microcontroller supplying the output waveform. In an effort to relieve some of the
processing overhead and reduce the number of pins required for motor control, we
looked to devices with a built in stepper translator and integrated output drivers. The
Allegro Microsystems A3967 micro-stepping motor driver satisfied these requirements.
The A3967 is able to provide on-demand bidirectional speed control of a stepper motor
while only using 3 logic inputs per device. Another feature that we found very useful was
the ability to tune the reference voltage via a potentiometer. This allowed us some
control over the motors torque.
elektroshok 2011
13
3.1.9. Power Supply
The design of our system required 3 separate voltage levels. Most of the integrated
circuits used were 3.3 volt devices while the display and the impact accelerometer
operated at 5 volts. The motors would be run off of the unregulated 12 volts of a battery
pack housed in a water bottle on the bike. In an effort to maximise the time spent on the
key areas of our project it was not reasonable to design and implement a switching
power supply of our own design. Instead we sourced two separate monolithic switching
regulators that offered efficiencies up to 97%. These devices required no other external
components, save for a couple of filter capacitors. They also advertise robust current
protection and no required heat sink.
3.1.10. User Interface Navigation
For user input and navigation we decided to use a 5-way navigation joystick. We found
this to be a very intuitive method for menu navigation and mimics the interface found on
many cell phones. An audible beeper was added to alert the user that a button had been
depressed.
3.2. Circuit Design Process
3.2.1. Breadboard Prototype
After carefully reviewing all of the device data sheets, we were able to make our first
draft of the complete system schematic. There were few circuit design considerations
beyond those contained in the device application notes. There were a few parts that
required calculations for passive components. The inclinometer required some filtering, a
Zener regulated voltage supply was needed for the impact accelerometer and the
stepper motor drivers required several passive components.
We approached the first breadboard prototype in stages. First we ensured that we had
basic functionary of the microcontroller before attempting to implement the display
module and the motor drivers. This development stage gave us the ability to test all of
our systems components on an individual basis before committing the design to our
proto-board and soldered iteration.
elektroshok 2011
14
3.2.2. Final Design
For the final version of the prototype control module, we chose to build a wire-wrapped
and point to point wired board. The popularity of this technique has dropped in recent
years with the advent of low cost online mail order PCB manufactures. For us, using this
method would not only allow design changes as the system developed, but also provide
a platform for future upgrades. We were also able to transfer components, which were
initially part of the breadboard prototype, directly to the final version. This resulted in less
wasted components and a certainty in the functionality of each component. The final
layout can be seen in Figures 3 and 4.
Figure 3: Top View of Completed Board
elektroshok 2011
15
Figure 4: Bottom View of Completed Board
3.3. Firmware
The purpose of the firmware in our design is to integrate all the hardware together and use
that information to control the fork. The main goal when writing the firmware was to ensure a
good response time from sensor input to actuation. In order to ensure this constraint was
met, it was important to use the peripherals supplied by the PIC effectively. We wanted to
avoid having tasks consuming excessive CPU cycles. The desire is that the CPU spends
most of its time determining the correct position of the motors based on sensor data and not
on acquiring data and controlling actuation. The firmware functionality is split into three
parts: the enabling and controlling of peripherals, the supply of a user interface, and the
analysis associated with determining the appropriate actuation based on sensor input.
3.3.1. Analog to Digital Converters
The system takes data in from four analogue sensors as discussed in previous
sections. The PIC uses the built-in 10-bit analogue to digital converters to sample the
signals delivered from the sensors. One of the benefits of the selected PIC is that it
supports sampling of each channel simultaneously, as opposed to sequentially. This
ensures that all the data gathered from the sensors is in sync. This way, when any
calculations performed on data from multiple sensors is done; there is no possibility of a
delay in the ADC module causing bad results. The ADC is sampled once every 2
milliseconds, which is small enough to give us the resolution needed to detect impacts
felt by the accelerometer. Each sample is buffered into the PIC’s DMA memory. Upon
receiving 32 samples an interrupt is fired notifying the system that new data is ready and
waiting in the DMA buffer.
elektroshok 2011
16
3.3.2. Output Capture Module
The output capture module allows the PIC to generate PWM signals on its own. This is
useful because it allows the PIC to send the correct number of pulses to the motor
drivers without having them bit bang the pins themselves. Each motor is associated with
a structure that contains two parameters: the motors current position and its desired
position. A desired position of zero is associated with the motor being turned all the way
closed (clockwise). The constants MAX_REBOUND_STEPS and
MAX_COMPRESSION_STEPS are the maximum steps permitted counter clockwise for
each motor. The system can either increase or decrease the values of the desired
position or set it directly.
When there is a change in the desired position of a motor, the system checks to see if
the current position is above or below the desired position. It then sets the direction pin
to the appropriate value for a clockwise or counter clockwise step. The PIC then
proceeds to enable the particular motors output capture pin. The output capture creates
a rising edge every time a timer, in this case timer2, expires. timer2 is set to expire every
1.4ms (step rate of 700 Hz). This figure was chosen due to the limitations of how fast
the motors can spin. The output capture module creates an interrupt when the timer
expires and the current position is changed towards the desired position. When the
current position is equal to the desired position the output capture module is disabled.
3.3.3. Parallel Master Port (PMP)
The parallel master port offers the PIC the ability to generate the necessary signals for
the 8080-series parallel interface and the 6800-series parallel interface. Since the OLED
supports 8080, we chose to use this interface to communicate with the display. This
simplifies communication to the OLED because no bit banging is required. The PMP is
also useful because it utilizes the PIC’s DMA feature, allowing it to offload even more
processing from the CPU onto other modules.
3.3.4. General Purpose Input Output (GPIO)
GPIO is used to control the buzzer and the 5-button joystick. The buzzer is pulsed for
10ms every time a button is pushed on the joystick. The 5-button joystick is debounced
and always waits for a release. It would be advantageous to allow holding to generate
active input at a specific rate; however we were not able to implement this in the given
time.
elektroshok 2011
17
3.4. Graphical User Interface (GUI)
The decision to use a full colour graphical display meant that we were presented with
limitless creative possibilities for designing our own user interface. After developing some
familiarity controlling the OLED the first task was to create a text library. Unlike a character
display, the OLED did not come with any sort of built-in functions. Therefore, all of the
graphics used were made through discrete pixel manipulations. This was not a technically
challenging task but proved to be a time consuming process.
Ultimately our goal for this interface was to give the user the ability to customize the riding
experience to their personal taste. To this end we would need an intuitive menu system with
easy to interpret iconic graphics. Equally important the GUI had to be visually appealing.
All of the text, graphics and icons were drawn pixel by pixel in Microsoft Paint. We then
converted the 24 bit colour pallet to a 16bit value and converted the image into HEX
values. The contrasting colour pallet of light blue black text and yellow highlighting was easy
to read in most lighting conditions. We added a 3D effect by shading the buttons which
greatly improved the aesthetics.
The home screen is divided into two sections. Three buttons across the top allow the user to
access the rider setup mode, the system status mode and the power off button. The five
lower buttons give the user the ability to select the default riding mode.
Figure 5: User Interface Home Screen
elektroshok 2011
18
3.5. Terrain Adaptions Algorithms
Once data is taken into the PIC from the sensors, some analysis needs to be done in order
to determine the correct action to take. Samples of the sensor inputs are stored in the DMA
buffer and an interrupt is raised approximately every 64 ms. When this interrupt is raised,
the information is transferred to new buffers and examined for useful information.
3.5.1. Incline Conversion
The dual axis accelerometer responsible for incline detection returns two voltages that
indicate the X and Y axis acceleration components. By taking the difference between
these values, the angle of the accelerometer can be determined. This conversion was
done using a lookup table technique. Tests were performed ahead of time and the
voltage readings corresponding to +90 degrees, 0 degrees, and -90 degrees were
measured. The values in between these ranges were interpolated and verified with
further testing. Once the angle values and corresponding voltage difference was known,
a lookup table was generated.
The positive or negative slope of the terrain can be obtained by examining which axis
component has a larger value. In our case, when X was larger than the Y component we
were on a positive slope and when Y was greater than X we were on a negative slope.
The signs of each sample are stored in a separate buffer that is used for analysis in later
algorithms.
3.5.2. Incline Detection
In our system, the detection of a steady incline grade results in the suspension fork
going into a lockout mode. This is accomplished by examining the average incline of the
bike over a windowed time. If the angle is above a threshold angle for more than 1
second the system triggers is sent into a lockout mode. For demonstration purposes the
threshold was set to 15 degrees. When sent into lockout mode, the current position of
the compression motor is set to %100.
elektroshok 2011
19
3.5.3. Impact Detection
In order for the system to be taken out of lockout mode and return to normal operation is
for a large impact to take place. An impact detection algorithm is scanning in the main
function that examines the incoming impact accelerometer data. If the system is in
lockout and the algorithm detects an impact that is greater than a threshold value of
approximately 5G’s, the system returns to normal operation. This ensures that the
system will exit lockout mode whenever a large impact is felt.
Figure 6: Impact Capture of Impact Accelerometer
3.5.4. Repetitive Impact Detection
The other algorithm that is running on the system is a scan for repetitive impacts. This is
accomplished in much the same way as the inclination algorithm. The incoming data
from the linear position sensor is analyzed approximately every 125 ms. If within this
time a value for the position sensor is read at a level greater than a threshold value, a
positive value is written into a 32 value circular buffer. This buffer has one value for the
last 32 windows. This corresponds to the last 3 seconds of incoming data.
Once a value is written into this circular buffer, the buffer is scanned for the number of
peaks detected in the last 3 seconds. If 4 or more peaks were detected in that time
period, the compression damping is increased and the rebound compression is
decreased. The increased compression damping helps absorb the repetitive impacts and
the decreased rebound damping lets the fork return to full extension in order to be ready
for the next impact.
elektroshok 2011
20
3.6. Mechanical Systems
3.6.1. Upper Motor Mount
Compression damping of the shock is altered by a
needle valve in the upper right stanchion tube. Control
for this valve is brought externally to a ½” hex fitting on
the top of the stanchion. The upper motor mount is
comprised of a section of 1” outer diameter mild steel
tubing that attaches to the fork via three set screws.
This was welded to an adapter plate constructed from
1/8” steel plate.
3.6.2. Upper Motor Shaft
The motor shaft needed to be interfaced to the
compression adjuster via an adapter. A one inch length
of ¾” diameter solid aluminum rod was drilled axially to
the diameter of the motor shaft. The hole was then
bored over to ½”, allowing insertion of the shock’s
compression adjuster. Set screws were cross bored
through the rod to securely fix it to the motor shaft and
compression adjuster. The screws are accessible
through the access port previously drilled in the mount
tube, as can be clearly seen in Figure 7.
Figure 8: Upper Motor, Mount and Shaft
3.6.3. Lower Motor Mount
Rebound adjustments are made via a 3mm hex socket on
the bottom of the fork tube. Similar to the compression
adjustment, a stepper motor was mounted on a custom
bracket, shown in Figure 8. This design uses the quick
release of the front wheel as a mounting point. Due to
issues with alignment, slotted holes were used in the
motor screw holes, allowing for fine adjustments.
Figure 7: Upper Motor Mount
Figure 9: Lower Motor Mount
elektroshok 2011
21
3.6.4. Impact Sensor Mounting
Significant care and planning was taken to ensure effective
and reliable operation of all the sensors in the elektroshok.
The impact accelerometer was securely mounted down low
on the un-sprung body of the fork. Its mount utilizes the
strong mounting ears for the front brake calliper. This
provides a stiff mount, which when coupled with the solid
aluminum mount body, transfers nearly all impacts directly to
the sensor. It was vital not to absorb impact energy into the
mount system itself.
3.6.5. Linear Position Sensor Mount
The linear position sensor was housed inside a clear half tube and mounted to the lower
right fork leg. A wiper containing a rare earth magnet was constructed out of nylon and
attached to a long stainless steel rod. This rod was then attached to the upper part of the
suspension. The rod was held in line by a nylon guide at the top of the housing. This
allowed the wiper to move freely over the potentiometer without binding, as well as
ensuring a constant distance from potentiometer to magnet. Without this distance, a
bump could jar the magnet and cause it the potentiometer to lose position.
Figure 11: Linear Position Sensor Housing
3.6.6. Control Module Mount
The control board, display and associated
hardware were housed inside clear polycarbonate
housing mounted on the stem of the bike. The
connections to the control box, as with all
connections in this project incorporated strain
relief and proper physical shielding.
Figure 10: Impact Accelerometer
Figure 12: Control Module Mount
elektroshok 2011
22
3.6.7. Inclinometer Mounting
After some research on inclination detection using a dual axis accelerometer we learned
that the accelerometer operates the best when both of its axes are point at a 45 degree
angle to the horizontal. This results in better accuracy and more sensitivity to changes in
pitch. By mounting in this manner we avoid two potential pitfalls: errors resulting from
forward acceleration of the bicycle and variations in the X and Y readings caused by
sudden impacts. Since both X and Y axes have a horizontal and vertical acceleration
component, any major variations will be seen on both readings. The relative different
between the axes will remain the same. This relative difference is what is used to
determine the inclination of the bike. Figure 12 shows the mounting design for the
Inclinometer.
Figure 13: Inclinometer Mounting
3.7. Power Supply
Although not an integral component to our system it was still necessary to assemble a
compact battery pack and enclosure to operate the prototype. We used 8 AA batteries in
series to give a nominal 12 volts. These were housed inside of a water bottle and mounted
on the down tube of the bicycle. In testing, with the display operating at full brightness and
typical actuation frequency, we achieved approximately 25 minutes run time before a
significant reduction in motor torque was noticed. Future development of the power supply
is discussed in section 5.2
elektroshok 2011
23
4. Challenges and Resolutions
4.1. PIC Input Voltages
One of the first issues we encountered was that we incorrectly assumed that the micro-
controller could handle higher voltages on its analog input for the A/D converter by using an
external reference. Because of this assumption, we were confident that a 5V rated
accelerometer would be compatible with the A/D converter. The converter could only accept
signals up to 3.3V. In order to solve this issue we regulated the 5V supply with a 3.6V Zener
diode and ran the accelerometer at a lower voltage. With this modification we were able to
maintain functionality with only a slight trade in resolution of impact force.
4.2. Inclinometer
During the initial component selection, a single dual axis accelerometer was chosen as an
input device. We incorrectly assumed that we could extract both inclination and impact data
from the same device. During testing, we determined that although we could detect impact
reliably over the expected range, the static values of acceleration were so small that it was
drowned out by the noise threshold. Filtering the signal was considered, however, the better
solution was to include a separate more sensitive accelerometer dedicated to inclination
detection.
4.3. Broken Linear Position Sensor
During the sometimes rigorous testing of the system the wiring leads connected to the linear
position sensor were unfortunately forcefully snagged. This occurred before the wiring
harness had any strain relief. As a result the ground connection on the flexible lead was
severed. A speedy but ultimately successful solution was devised. A 10k ohm resistor was
connected between the potentiometers wiper and ground. The pot was now a voltage divider
biased at ½ the supply voltage. Even though this resulted in a halving of our dynamic range
we were still able to achieve sub millimeter resolution, well within our requirements.
elektroshok 2011
24
4.4. Rebound Motor Axel Alignment
Major issues with this lower mount were primarily focused in the axial alignment of the motor
to the rebound adjuster. The rebound adjuster has a range of four complete turns, unlike the
¼ turn of the compression damper. With this increase in range, the shaft rotates several
times and therefore needs to be perfectly aligned at every part of a rotation. Also, because
the rebound adjustment is performed by turning a screw in and out via a hex key, the screw
has to be able to slip in and out on the key. Any binding of this slip joint causes the motor to
torque itself out of alignment.
Initially the lower adapter from the stepper motor to the hex key was constructed out of
aluminum. However, it was found that drilling a true hole through the adapter was nearly
impossible with the tools at hand. We could not obtain enough precision with the small 7/64”
drill bit required to create the hole for the hex key. This method was eventually abandoned
and alternatives were examined.
After several other attempts, the final revision of the adapter was constructed out of Delrin, a
material known for its high stiffness and machinability. We were able to successfully drill a
precise hole through the material. The adapter was tested and mounted to the stepper motor
via set screws.
While alignment issues in the adapter were solved, a
small bend in the hex key being used was still causing
a binding action during rotation. This was
compensated for by introducing a small amount of flex
into the motor at the adapter mounting. Closed cell
foam was applied to the motor mount allowing the
motor to flex a small amount. This flex was just enough
to ensure free rotation of the rebound adjustment
assembly. Figure 14 shows this assembly mounted to
the shock, along with the Delrin adapter.
Figure 14: Rebound Motor Shaft Revision
elektroshok 2011
25
5. Future Development
5.1. Alternative Damping Methods
In order to truly extract the maximum potential of a dynamic suspension system the time it
takes to change the size of the dampers oil orifice must be minimized. We understood early
on that using externally mounted electromechanical actuators would present a bottle neck to
our systems high speed performance. To this end a wholly different approach to valve
actuation needs to be conceived. One technology that merits further research would be using
a ferromagnetic fluid. These remarkable fluids are composed of tiny iron particle suspended
in a synthetic solvent. By passing a pulse controlled current through the fluid its viscosity can
be varied. This would eliminate the need to operate a valve and provide nearly instantaneous
change to the damping characteristics. This technology has already become available in the
automotive industry and could be adapted for off-road bicycles.
A somewhat simpler and potentially less power hungry option would be a custom
bidirectional PWM fluid control valve. These valve are able to proportionally change the
average size of their gate by pulse width modulation. This would make it possible to
internalize the valve actuation and eliminate on of the valves completely as changes could be
made during any point in the compression and rebound cycle. By eliminating external
actuators power savings and weight reduction will be realized.
5.2. Power Supply Improvements
An important system that cannot be overlooked in the development of a consumer electronic
product is the battery system. This aspect was not part of the scope of this first prototype. A
sealed and properly protected lithium polymer battery pack should be constructed. An ideal
location to house the pack would be in the head tube of the suspension fork eliminating the
need for long cables. Further we would recommend exploring the possibility of recovering
energy from the cyclical fork motion or from an off the shelf dyno-hub.
5.3. Data Logging Feature
Additional features were also a heavily discussed topic. With the limited time span of this
project, more complex features were not realistic. One of these features that would be
extremely beneficial is a data logging feature. Being able to record data for an entire ride is
appealing not only as development tool but also as a final feature. Many cyclists record all
kinds of ride information and the data gathered by the elektroshok could be used for many
elektroshok 2011
26
things. By having the ability to record the inclination of the terrain you ride on you can
determine total vertical gain as well as maximum inclines ridden on. These are both
marketable features for a high end cycling product.
5.4. Position Sensor Alternatives
Although the method we devised for measuring the position of the forks compression was
very reliable and effective; It is too bulky and heavy and would benefit from internalization. A
more effective solution would be using a photo diode proximity detector mounted in the
spring chamber of the fork. This would be far lighter and less prone to failure then an
externally mounted system
6. Marketing and Costs
From the start of the project, we were cognoscente of the potentially high cost required to
produce an electronically controllable suspension fork. This product is aimed at the high end
mountain bike market. In this market, customers are willing to pay for any potential
advantage that a new product can offer. Having the latest and greatest equipment is often
important to the customer and they are willing to pay for the newest technology.
Purely mechanical forks in this market often cost in excess of $1000 already. Adding the
components required in our system would increase that by at least $300 dollars. With the
development of a more integrated valve system, an increase in the cost of the product would
be expected. We estimate that a second prototype with an integrated valve assembly and full
elektroshok system would have a market value of around $1500 to $2000.
elektroshok 2011
27
7. Conclusion
At the conclusion of the project, the elektroshok was successfully able to accomplish the goals
set by the team. A fully functioning and portable prototype was realized with all of the design
features working. Sustained inclines and repetitive impacts can be detected and the correct
damping adjustments made to the fork. The user interface is easy to use and allows the user to
customize the ride experience to their personal tastes.
The team was very satisfied with the outcome of the project. The project offered each group
member unique challenges and opportunities to learn. We are currently exploring further
development and the feasibility of a second prototype with integrated valve control.
elektroshok 2011
28
References
[1] MP1 Series Magneto Pot Datasheet, Spectra Symbol.
[2] 128 RGB x 128 Dot Matrix OLED/PLED Segment/Common Driver with Controller Datasheet,
SSD1351, Solomon Systech, 2008.
[3] PIC24HJ32GP302/304, PIC24HJ64GPX02/X04 and PIC24HJ128GPX02/X04 Data Sheet,
Microchip, 2009.
[4] A3967 Microstepping Driver with Translator Datasheet, Allegro Microsystems, 2008.
[5] Fu-Kuang Yeh; Jian-Ji Huang; Chia-Wei Huang; , "Adaptive-sliding mode semi-active bicycle
suspension fork," SICE Annual Conference 2010, Proceedings of , vol., no., pp.3312-3317,
18-21 Aug. 2010
[6] Weichao Sun; Huijun Gao; Kaynak, O.; , "Finite Frequency Control for Vehicle Active
Suspension Systems," Control Systems Technology, IEEE Transactions on , vol.19, no.2,
pp.416-422, March 2011
[7] Maleki, N.; Sedigh, A.K.; Labibi, B.; , "Robust Model Reference Adaptive Control of Active
Suspension System," Control and Automation, 2006. MED '06. 14th Mediterranean
Conference on , vol., no., pp.1-6, 28-30 June 2006
[6] ‘Inclination Sensing Of Moving Vehicle’, Application Note #AN-00MX-01. MEMSIC, 2003.
elektroshok 2011
29
Appendices
elektroshok 2011
i
Appendix A Final Circuit Schematic
1
1
2
2
3
3
4
4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 03/04/2011 Sheet ofFile: C:\Documents and Settings\..\Driver.SchDocDrawn By:
REF1
RC22
/SLEEP3
OUT2B4
LOAD SUPPY25
GND6
GND7
SENSE28
OUT2A9
STEP10
DIR11
MS112 MS2 13LOGIC SUPPLY 14
/ENABLE 15OUT1A 16SENSE1 17
GNG 18GND 19
LOAD SUPPLY1 20OUT1B 21/RESET 22RC1 23PFD 24U3
A3967
GND
GND
3.3V
12V12V
0.75RSENSE1Res1
OUT1BCOMP
OUT2BCOMP
OUT1ACOMPOUT2ACOMPSTEPCOMPDIRCOMP
/SLEEPCOMP
/ENABLECOMP
10K
R5RPot
5.1K
R9Res1
3.3V
10K
R2Res1
3.3V
20K
R7Res1680pF
C5Cap
20K
R8Res1 680pF
C6Cap
0.75RSENSE2Res1
10K
R16
Res1
3.3V
10KR18
Res1
10K
R3Res1
10K
R4Res1
10K
R17Res1
GND
3.3V
REF1
RC22
/SLEEP3
OUT2B4
LOAD SUPPY25
GND6
GND7
SENSE28
OUT2A9
STEP10
DIR11
MS112 MS2 13LOGIC SUPPLY 14
/ENABLE 15OUT1A 16SENSE1 17
GNG 18GND 19
LOAD SUPPLY1 20OUT1B 21/RESET 22RC1 23PFD 24U4
A3967
GND
GND
3.3V
12V12V
0.75RSENSE3Res1
OUT1BREB
OUT2BREB
OUT1AREBOUT2AREBSTEPREBDIRREB
/SLEEPREB
/ENABLEREB
10K
R12RPot
5.1K
R15Res1
3.3V
10K
R6Res1
3.3V
20K
R13Res1680pF
C7Cap
20K
R14Res1 680pF
C8Cap
0.75RSENSE4
Res1
10K
R19
Res1
3.3V
10KR21
Res1
10K
R10Res1
10K
R11Res1
10K
R20Res1
GND
3.3V
BLKGRNREDBLU
P3
Compression
OUT1ACOMPOUT1BCOMPOUT2ACOMPOUT2BCOMP
BLKGRNREDBLU
P4
Rebound
OUT1AREBOUT1BREBOUT2AREBOUT2BREB
PIC501
PIC502COC5
PIC601
PIC602 COC6
PIC701
PIC702COC7
PIC801
PIC802 COC8
PIP301
PIP302
PIP303
PIP304
COP3
PIP401
PIP402
PIP403
PIP404
COP4
PIR201
PIR202COR2
PIR301
PIR302
COR3PIR401
PIR402
COR4
PIR501
PIR502PIR503
COR5
PIR601
PIR602COR6
PIR701
PIR702COR7
PIR801
PIR802COR8
PIR901
PIR902COR9PIR1001
PIR1002
COR10PIR1101
PIR1102
COR11
PIR1201
PIR1202PIR1203
COR12
PIR1301
PIR1302COR13
PIR1401
PIR1402COR14
PIR1501
PIR1502COR15
PIR1601PIR1602COR16
PIR1701
PIR1702
COR17
PIR1801PIR1802
COR18
PIR1901PIR1902COR19
PIR2001
PIR2002
COR20
PIR2101PIR2102
COR21
PIRSENSE101PIRSENSE102
CORSENSE1PIRSENSE201PIRSENSE202
CORSENSE2
PIRSENSE301PIRSENSE302
CORSENSE3
PIRSENSE401PIRSENSE402
CORSENSE4
PIU301
PIU302
PIU303
PIU304
PIU305
PIU306
PIU307
PIU308
PIU309
PIU3010
PIU3011
PIU3012 PIU3013
PIU3014
PIU3015
PIU3016
PIU3017
PIU3018
PIU3019
PIU3020
PIU3021
PIU3022
PIU3023
PIU3024
COU3
PIU401
PIU402
PIU403
PIU404
PIU405
PIU406
PIU407
PIU408
PIU409
PIU4010
PIU4011
PIU4012 PIU4013
PIU4014
PIU4015
PIU4016
PIU4017
PIU4018
PIU4019
PIU4020
PIU4021
PIU4022
PIU4023
PIU4024
COU4
PIR202
PIR301 PIR401PIR502
PIR602
PIR1001 PIR1101
PIR1202
PIR1602 PIR1801
PIR1902 PIR2101
PIU3014
PIU4014
PIU305
PIU3020
PIU405
PIU4020
PIC501 PIC601
PIC701 PIC801
PIR701 PIR801
PIR901
PIR1301 PIR1401
PIR1501
PIR1702
PIR2002
PIRSENSE102 PIRSENSE201
PIRSENSE302 PIRSENSE401
PIU306
PIU307 PIU3018
PIU3019
PIU406
PIU407 PIU4018
PIU4019
PIC502 PIR702 PIU302 PIC602PIR802PIU3023
PIC702 PIR1302 PIU402 PIC802PIR1402PIU4023
PIP301
PIU3016
POOUT1ACOMPPIP302
PIU3021
POOUT1BCOMPPIP303
PIU309
POOUT2ACOMPPIP304
PIU304
POOUT2BCOMP
PIR201
PIU303
PO0SLEEPCOMP
PIR302PIU3024
PIR402
PIU3022PIR501
PIR902
PIR503 PIU301 PIR601
PIU403
PO0SLEEPREB
PIR1002PIU4024 PIR1102
PIU4022PIR1201
PIR1502
PIR1203 PIU401
PIR1601PIU3012
PIR1701
PIU3015
PO0ENABLECOMPPIR1802PIU3013
PIR1901PIU4012
PIR2001
PIU4015
PO0ENABLEREBPIR2102PIU4013
PIRSENSE101 PIU308 PIRSENSE202PIU3017
PIRSENSE301 PIU408 PIRSENSE402PIU4017
PIU3010POSTEPCOMPPIU3011PODIRCOMP
PIP404
PIU404
POOUT2BREB
PIP403
PIU409POOUT2AREBPIU4010POSTEPREBPIU4011PODIRREB
PIP401
PIU4016POOUT1AREB
PIP402
PIU4021POOUT1BREB
PO0ENABLECOMP
PO0ENABLEREB
PO0SLEEPCOMP
PO0SLEEPREB
PODIRCOMP
PODIRREB
POOUT1ACOMP
POOUT1AREB
POOUT1BCOMP
POOUT1BREB
POOUT2ACOMP
POOUT2AREB
POOUT2BCOMP
POOUT2BREB
POSTEPCOMP
POSTEPREB
1
1
2
2
3
3
4
4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 03/04/2011 Sheet ofFile: C:\Documents and Settings\..\Elektroshok_01.SchDocDrawn By:
AN0/VREF+/CN2/RA0 19
AN1/VREF-/CN3/RA1 20
AN10/RTCC/RP14/CN12/PMWR/RB14 14AN11/RP13/CN13/PMRD/RB13 11AN12/RP12/CN14/PMD0/RB12 10
AN4/C1IN-/RP2/CN6/RB2 23
AN5/C1IN+/RP3/CN7/RB3 24
AN6/RP16/CN8/RC025
AN7/RP17/CN9/RC126
AN8/CVREF/RP18/PMA2/CN10/RC227
AN9/RP15/CN11/PMCS1/RB15 15
AVDD17
AVSS16
INT0/RP7/CN23/PMD5/RB7 43
MCLR18
OSC1/CLKI/CN30/RA2 30
OSC2/CLKO/CN29/RA3 31
PGEC1/AN3/C2IN+/RP1/CN5/RB1 22
PGEC2/RP11/CN15/PMD1/RB11 9
PGEC3/ASCL1/RP6/CN24/PMD6/RB6 42
PGED1/AN2/C2IN-/RP0/CN4/RB0 21
PGED2/EMCD2/RP10/CN16/PMD2/RB10 8
PGED3/ASDA1/RP5/CN27/PMD7/RB5 41
RP19/CN28/PMBE/RC336
RP20/CN25/PMA4/RC437
RP21/CN26/PMA3/RC538
RP22/CN18/PMA1/RC62
RP23/CN17/PMA0/RC73
RP24/CN20/PMA5/RC84
RP25/CN19/PMA6/RC95
SCL1/RP8/CN22/PMD4/RB8 44
SDA1/RP9/CN21/PMD3/RB9 1
SOSCI/RP4/CN1/RB4 33
SOSCO/T1CK/CN0/RA4 34
TCK/PMA7/RA7 13
TDI/PMA9/RA9 35TDO/PMA8/RA8 32
TMS/PMA10/RA10 12
VCAP/VDDCORE7
VDD28
VDD40
VSS6
VSS29
VSS39
U5
PIC24HJ128GP504-I/PT
123
P9
Position Sensor
123
456
P7
Nav Switch
10uF tant
C10Cap
0.1uF
C11Cap
470
R25Res1
10K
R22
Res1S1
SW-PB
GND
3.3V
GND
3.3V
PMPD3PMPD4
PMPD2PMPD1PMPD0PMPRDPMPWRPMCS1
PMPD5PMPD6PMPD7
PMPA0
RESET OLED
Yin
Impact
SELECTLEFT
UPRIGHTDOWN
LEFTSELECTUP
RIGHT
DOWN
Wipper
VCC
GND
10k
R27Res1
10k
R26Res1
10k
R28Res1
10k
R29Res1
10k
R30Res1
MCLR1
VDD2
GND3
PGD4
PGC5
P6
ICD2
3.3V
GND0.1uF
C12Cap
STEPREB
DIRREB
ENABLECOMP
ENABLEREB
3.3V
GND
0.1uF
C9
CapW2
Jumper
10K
R23Res1
W1Jumper
3.3V
Wipper
STEPCOMP
DIRCOMP
SDI
SDOSCK
GND
Vin VoutGND
VR1
R-783.3-0.5
Vin VoutGND
VR2
R-785.0-0.5
Vin VoutGND
VR3
REG12V
3.3V 5V 12V
10uF
C15Cap
10uFC13
Cap10uFC14
Cap
1Battery
Xin
S2Power_Down
10K
R24Res1
3.3V
LS1
Beep!
GND
12345
P10
Accelerometer_Slope
Xin
Yin
ST
3.3V
GND
W3Jumper
PI101
PI102CO1
PIC901 PIC902
COC9
PIC1001
PIC1002COC10
PIC1101
PIC1102COC11
PIC1201
PIC1202COC12
PIC1301
PIC1302
COC13 PIC1401
PIC1402
COC14
PIC1501
PIC1502COC15
PILS101 PILS102
COLS1
PIP601
PIP602
PIP603
PIP604
PIP605
COP6
PIP701
PIP702
PIP703
PIP704
PIP705
PIP706
COP7
PIP901
PIP902
PIP903
COP9
PIP1001
PIP1002
PIP1003
PIP1004
PIP1005
COP10
PIR2201
PIR2202COR22
PIR2301
PIR2302COR23
PIR2401
PIR2402COR24
PIR2501
PIR2502
COR25
PIR2601
PIR2602COR26
PIR2701
PIR2702COR27
PIR2801
PIR2802COR28
PIR2901
PIR2902COR29
PIR3001
PIR3002COR30
PIS101 PIS102
COS1
PIS201
PIS202
COS2
PIU501
PIU502
PIU503
PIU504
PIU505
PIU506
PIU507
PIU508
PIU509
PIU5010
PIU5011
PIU5012
PIU5013
PIU5014
PIU5015
PIU5016
PIU5017
PIU5018 PIU5019
PIU5020
PIU5021
PIU5022
PIU5023
PIU5024
PIU5025
PIU5026
PIU5027
PIU5028
PIU5029
PIU5030
PIU5031
PIU5032
PIU5033
PIU5034
PIU5035
PIU5036
PIU5037
PIU5038
PIU5039
PIU5040
PIU5041
PIU5042
PIU5043
PIU5044
COU5
PIVR101
PIVR102
PIVR103
COVR1
PIVR201
PIVR202
PIVR203
COVR2
PIVR301
PIVR302
PIVR303
COVR3
PIW101
PIW102
COW1
PIW201 PIW202
COW2
PIW301
PIW302
COW3
PIC1102 PIC1201
PIP602
PIP1002
PIR2202 PIR2302PIR2402
PIR2601 PIR2701 PIR2801 PIR2901 PIR3001
PIU5017
PIU5028
PIU5040
PIVR103 PIVR203 PIVR303
PI102
PIC901
PIC1001 PIC1101 PIC1202
PIC1302 PIC1402PIC1501
PILS102
PIP603
PIP701
PIP903
PIP1003
PIS101
PIU506
PIU5016
PIU5029
PIU5039
PIVR102 PIVR202 PIVR302
PI101PIC1301 PIC1401PIC1502 PIVR101 PIVR201 PIVR301
PIC902
PIR2201
PIR2501
PIS102
PIC1002
PIU507 PILS101PIU5020
PIP601
PIR2301PIW101
PIP604PIU5021
PIP605PIU5022 PIW301
PIP702
PIR2702
PIU5037
POSELECTPIP703
PIR2602
PIU5036
POLEFT
PIP704
PIR2802
PIU5038
POUPPIP705
PIR2902
PIU5035
PORIGHTPIP706
PIR3002
PIU5034
PODOWN
PIP901
PIU5024
POWipper
PIP1001
PIU5023
POYin
PIP1004
PIU5025
POXinPIP1005POST
PIR2401PIS201
PIR2502PIW201PIS202
PIU5019
PIU501POPMPD3
PIU502POSDIPIU503POPMPA0PIU504POSDOPIU505POSCK
PIU508POPMPD2PIU509POPMPD1PIU5010POPMPD0PIU5011POPMPRD
PIU5012PORESET OLED
PIU5013
PIU5014POPMPWRPIU5015POPMCS1
PIU5018PIW102
PIU5026POSTEPREBPIU5027POSTEPCOMP
PIU5030PODIRCOMPPIU5031POENABLECOMP
PIU5032POENABLEREB
PIU5033PODIRREBPIU5041POPMPD7PIU5042POPMPD6PIU5043POPMPD5PIU5044POPMPD4
PIW202
PIW302
POImpact
PIP902
PODIRCOMP
PODIRREB
PODOWNPOENABLECOMP
POENABLEREB
POIMPACTPOLEFT
POPMCS1
POPMPA0POPMPD0POPMPD1POPMPD2POPMPD3POPMPD4POPMPD5POPMPD6POPMPD7
POPMPRDPOPMPWR
PORESET OLEDPORIGHT
POSCK
POSDI
POSDO
POSELECT
POST
POSTEPCOMPPOSTEPREB
POUP
POWIPPER
POXIN
POYIN
1
1
2
2
3
3
4
4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 03/04/2011 Sheet ofFile: C:\Documents and Settings\..\OLED Display.SchDocDrawn By:
RES1
CS2
DC3
RD4
RW5
VSL6
D7
7
D6
8
D5
9
D4
10
D3
11
D2
12
D1
13
D0
14
+5V 15
GND 16
Cannot open file C:\Users\Fox\Desktop\tubez.bmp
*1
OLED
RESET OLED
PMCS1
PMPD
7
PMPD
6
PMPD
5
PMPD
4
PMPD
3
PMPD
2
PMPD
1
PMPD
0
GND
5V
PMPRD
PMPWR
PMPA0
VDD31
Yout 2
COM 3
ST4 NC 5
Xout6
VDD7
VDD2 8U1
ADXL278
0.1F
C1Cap 1K
R1
Res1
D1
D Zener
1234
P1
Header 4
123456789101112
P11
Header 12HGND
ACTIVITY1LED110K
R32Res1
10K
R33Res1
10K
R34Res1
10K
R35Res1
10K
R36Res1
180
R31
Res1
3.3V
0.1uF
C16Cap Pol1
GND/CSSDO
SCK
SDI
CDWD
ST1
DNC 2
COM 3
DNC4 DNC 5
Yout6
Xout7
Vs 8U2
ADXL203
12345
P2
Header 50.5uFC3Cap
0.1uF
C2Cap
0.5uF
C4Cap
GND
PI0101
PI0102
PI0103
PI0104
PI0105
PI0106
PI0107 PI0108 PI0109 PI01010 PI01011 PI01012 PI01013 PI01014
PI01015
PI01016
CO01
PIACTIVITY101PIACTIVITY102
COACTIVITY1
PIC101
PIC102COC1
PIC201
PIC202COC2
PIC301
PIC302COC3
PIC401
PIC402COC4
PIC1601
PIC1602
COC16
PID101 PID102
COD1PIP101
PIP102
PIP103
PIP104
COP1
PIP201
PIP202
PIP203
PIP204
PIP205
COP2
PIP1101
PIP1102
PIP1103
PIP1104
PIP1105
PIP1106
PIP1107
PIP1108
PIP1109
PIP11010
PIP11011
PIP11012
COP11
PIR101 PIR102COR1
PIR3101PIR3102COR31
PIR3201
PIR3202COR32
PIR3301
PIR3302COR33
PIR3401
PIR3402COR34
PIR3501
PIR3502COR35
PIR3601
PIR3602COR36
PIU101
PIU102
PIU103
PIU104 PIU105
PIU106
PIU107
PIU108
COU1
PIU201
PIU202
PIU203
PIU204 PIU205
PIU206
PIU207
PIU208
COU2
PIC1601
PIP1104
PIR3102
PIR3202 PIR3302 PIR3402 PIR3502 PIR3602
PI01015
PI01016
PIC301 PIC401
PIC1602
PIP1103
PIP1106
PIP11012
PI0101PORESET OLED
PI0102POPMCS1
PI0103POPMPA0
PI0104POPMPRD
PI0105POPMPWR
PI0106
PI0107
POPMPD7PI0108
POPMPD6PI0109
POPMPD5PI01010
POPMPD4PI01011
POPMPD3PI01012
POPMPD2PI01013
POPMPD1PI01014
POPMPD0
PIACTIVITY101PIR3101
PIACTIVITY102PIP1101PO0CS
PIC101PID101
PIP103PIU103
PIC102 PID102 PIR101
PIU101
PIU107
PIU108
PIC201 PIP203
PIU203
PIC202PIP202
PIU208
PIC302
PIP201
PIU206
PIC402PIP204PIU207
PIP101
PIU106
PIP102PIR102
PIP104
PIU104
PIP205
PIU201
PIP1102POSDO
PIP1105POSCK
PIP1107
PIR3201
POSDIPIP1108
PIR3601
PIP1109
PIR3501
PIP11010POCDPIP11011
PIR3301 PIR3401
POWD
PIU102
PIU105
PIU202
PIU204 PIU205
PO0CS
POCD
POPMCS1
POPMPA0
POPMPD0POPMPD1POPMPD2POPMPD3POPMPD4POPMPD5POPMPD6POPMPD7
POPMPRD
POPMPWR
PORESET OLED
POSCK
POSDI
POSDO
POWD
elektroshok 2011
ii
Appendix B Progress Report #2
UNIVERSITY OF VICTORIA
Department of Electrical and Computer Engineering
ELEC499/CENG499
Progress Report 1
Project -#15:
DABS
(Dynamically Adjustable Bicycle Suspension)
January 21, 2011
Prepared for: Dr. Micheal McGuire
Team Members: Kenyon Campbell [email protected] Thayer Fox [email protected] Paul Green* [email protected] Phil Laird [email protected]
*Primary Contact Member
Project Summary
Our project will entail the design and construction of a prototype bicycle suspension fork with dynamic electronically controlled compression and rebound damping. The system will feed acceleration data from an analog MEMS inertial sensor along with position data of the shock piston to an on-board microprocessor. This data will be quantized and interpreted by the control algorithm. The system will then execute the needed
adjustments using high speed actuators. Engineering Challenge In mountain biking, customers are constantly demanding more and more control over all aspects of the riding experience. The ability to tune the damping properties of a mountain bike suspension fork has long been a
desirable market feature. Currently there are many suspension forks on the market that have manually adjustable rebound and compression damping controls. These manual controls require that the user set up the forks beforehand and have limited to no ability for on-the-go adjustments. This system often puts the rider at a disadvantage when they encounter an unexpected change in terrain. A single static setting for rebound and compression damping is simply not enough to ensure the optimum performance of the fork for the duration of a ride. The DABS system will improve the performance of a traditional suspension system by changing the damping properties based on sensor input and user defined settings.
Proposed solution The DABS system will use real time data collected from a MEMS multi-axis accelerometer along with position sensors placed on the fork. This data will be processed by a microprocessor and adjustments will be made to the
shocks by two separately controlled stepper motors. This system will allow the bicycle's suspension to remain supple for maximum control on rough terrain while still ensuring the piston travel is tuned properly for large drops. We will begin by implementing three key features for this system:
1. Monitoring the terrain data and adjusting the rebound and compression damping appropriately 2. Detection of a sustained incline will trigger lock-out of the suspension travel
3. Preset modes for expected riding style and terrain The system will employ a five-way joystick for user input and an OLED screen to display menu options. Users will supply rider weight and desired riding style during setup that will further optimize the shock performance. As an option, time permitting, we will also implement a data-logging feature which would provide terrain contour data and other statistical information for the rider.
Scope Our team will focus on building a functional prototype that can be subjected to real world testing and demanding off road riding. We will be modifying a commercially available suspension fork with the necessary sensor and actuators. This will allow us to focus our energy on the electronics and firmware design of the system. Taking
advantage of the iterative design process, we will start developing our systems software on a dedicated development board. We will then build an initial prototype our system that we will use for testing and optimization. A fully functional prototype will be constructed and used for presentation and demos.
Assigned Tasks
A large part of our project will involve collective effort for many tasks, we have however assigned each member
some key responsibilities. Kenyon will take the lead on the initial physics and be responsible for much of the mechanical design. Phil is responsible for the development of the systems firmware. Thayer will handle parts acquisition, website design, user interface design and mechanical and electrical assembly. Paul will take on the role of project management, electrical design. Project Milestone Timeline
January 21st Progress Report #1 - All major system components specked and ordered - Microprocessor development board up and running
January 28th - Initial circuit design
February 4th - Initial firmware completed (support for all peripherals) - Initial hardware layout and circuit bread-boarding
February 16th Midterm Review Meeting
February 18th
Progress Report #2 - Coding of control algorithms - Mechanical mounting - PCB layouts
February 25th - Completed control algorithm - Ready for testing
March 18th - Working prototype - Completed poster
March 25th Poster Presentation - Completed final report
- Completed website
March 31st Final Report submitted
Project URL submitted
Progress to Date
At the time of this report we have:
• Spec'd and ordered all of our components
• Secured sponsorship and obtained special pricing on a suspension fork
• Initial specification of use cases and input and output of sensors and actuators
• Firmware to initialize peripherals • Started assembly of components for prototyping
elektroshok 2011
iii
Appendix C Progress Report #3
UNIVERSITYOFVICTORIA
DepartmentofElectricalandComputerEngineering
ELEC499/CENG499
ProgressReport2
Project#15:
DABS
(DynamicallyAdjustableBicycleSuspension)
February 18, 2011
Prepared for:
Dr. Michael McGuire
Team Members:
Kenyon Campbell [email protected]
Thayer Fox [email protected]
Paul Green* [email protected]
Phil Laird [email protected]
*Primary Contact Member
2
Summary
This report outlines the progress we have made since our initial progress report. It provides a more
detailed explanation of various sub systems, as well as our design decisions regarding parts choice and
system function. As of now, our team has made good progress, adhering to our anticipated deadlines
and goals. We have received all of our major components and work has begun assembling our first
prototype. Additionally, several tests have been conducted to ensure that critical components, such as
the stepper motor, associated driver chips and the accelerometer will perform as expected in our
finished project. To date, some major hurdles in our project have already been overcome; OLED
initialization and control is operational and mounts for most of the sensors have been devised. This
document will also provide a more detailed task assignment to ensure we continue to meet deadlines.
3
CircuitDesignandImplementation
The electronics of the DABS system can be broken into four distinct categories: user interface and
processing unit, sensors, actuation system and power supply.
The microprocessor selected for this project is the Microchip PIC24HJ128GP504. This 16‐bit controller
was chosen for its large array of digital and analog I/O, its support of the PMP (Parallel Master Port)
protocol for communication with our display, its low power consumption and its large memory. The
processor is responsible for interpretation of the analog sensors values, evaluation of the data and
control of the variable position actuators.
User interface for DABS consists of a colour organic light emitting diode (OLED) display and a 5‐way
navigation joystick. The OLED screen was chosen for its ease of viewing in sunlight and its low power
usage. Unlike a traditional LCD, no backlight is required for the OLED, resulting in significant power
savings. To allow user control of the system, a five‐way tactile joystick was selected. This joystick is
similar to the style commonly used in many cellphones and other consumer electronics. It has proved to
be a very efficient input device to navigate multi‐layer vertical and horizontal menus.
The DABS system is heavily reliant upon external sensors. One such sensor is the accelerometer. This
device provides the most vital information. Extraction of both vertical and for‐aft acceleration
information was vital, while ignoring the lateral acceleration. This requirement was satisfied by
incorporating a two‐axis accelerometer mounted on the plane of the bike. The ADXL278 dual axis
accelerometer has an operating voltage of 3.6‐5V and detects acceleration of +/‐ 35G on both axis.
The other critical sensor needed for the DABS system was a position sensor. This was needed to
determine the position of the shock at any time. A main design requirement was that there could be no
contact between the upper and lower shock sections. The MP1 Magneto‐Pot from Spectra Symbol is a
contactless linear sensor that satisfies our design requirements. The sensor used in the system has a
150mm operating range, easily accommodating the full range of the shock. The mounting and operation
of the sensor is discussed in the mechanical design section of this report.
There we
considera
our micro
provide th
second sig
Figure 1: P
As of writ
the device
connectio
motor dri
(Figure 1)
and the st
re few device
ations involve
ocontroller. In
he logic outpu
gnal for moto
Prototyped syst
ing, we have
e datasheets
ons were corr
ver chips. Af
. This prototy
tepper driver
es on the mar
d using a sim
nstead, we de
ut to drive th
or direction. T
tem including a
completed th
and applicati
rect. Schemat
fter reviewing
ype impleme
rs.
rket that were
ple H‐Bridge
ecided on the
e motors coil
This drastical
accelerometer
he first revisio
on notes was
tic symbols w
g our design, w
nted the circ
e suitable cho
driver chip, b
e Allegro Micr
s, while only
ly reduced th
OLED screen, m
on of our syst
s done, to ens
were created f
we construct
uitry for the m
oices for our s
but this would
rosystems A3
needing a ste
he number of
microcontrolle
tem circuit sc
sure the nece
for the OLED
ted our first b
micro‐contro
stepper drive
d have used t
3967SLBTR‐T,
ep input for m
f microcontro
er and stepper d
chematic. Ca
essary suppor
module and
breadboarded
ller, accelero
er control. Ini
too many pin
which would
motor speed
oller pins requ
driver.
refully readin
rt circuitry an
the stepper
d prototype
ometer, the O
4
itial
s on
d
and a
uired.
ng of
nd
OLED
5
MechanicalDesign
The physical mounting and mechanical design of the DABS system was a problem that the team
encountered early on. The sensor and motors needed to be mounted to the fork cleanly, as well as be
protected from the rough conditions encountered while mountain biking. Secure housings and
mounting brackets were crucial.
The position sensor is housed inside of a protective ⅛” acrylic tube attached to the lower fork leg. A
nylon bushing is located at the top of this tube and guides the magnetic marker along the track of the
position sensor. The magnetic marker is attached to a long stainless steel rod, fixed to the upper fork
crown by a clamp. The accelerometer housing is designed to provide a secure and rigid contact with the
fork. In order to achieve this, the accelerometer is mounted directly on an aluminum plate, bolted to
the disc brake tabs found on the lower left fork leg. The accelerometer and associated wiring will be
placed inside of a plastic housing filled with potting compound.
Selection of the stepper motors were based on measurements taken to determine the torque needed to
rotate the compression and damping knobs on the fork. Several measurements were taken, to
determine approximately 75 mNm are needed to rotate the adjustment knobs axially. Motors were
chosen that would provide at least 1.5 times the needed torque. The Soyo Unipolar Stepper Motors
provide 250 mNm of torque. Unipolar motors were chosen because the torque is held constant over a
wider speed range versus that of a bipolar motor. The compression damping motor shaft will attach to
the adjustment knob via a 12mm hex socket while the rebound damping will adjust via a 3mm hex key.
The motors are held static to the fork via custom brackets mounted to the fork.
Testing
Testing ha
accelerom
Our meth
measured
values fro
observe t
Figure 2: A
Figure 3: A
gandEva
as played a la
meter output
od of testing
d the correspo
om the device
he accelerom
Accelerometer i
Accelerometer o
aluation
rge part in th
for both posi
is as follows.
onding voltag
e’s datasheet
meter’s transie
in a static posi
output during
he developme
ition and imp
. We position
ges on the X a
of ½ the supp
ent output (F
tion with X and
a sharp impac
ent of DABS.
act measurem
ned the accel
and Y outputs
ply voltage. S
Figure 3).
d Y horizontal.
t.
Currently, we
ments and ar
erometer in t
s (Figure 2). T
Several hard i
e have tested
re satisfied wi
the default or
These matche
impacts were
d the
ith the results
rientation an
ed the given
e simulated, t
6
s.
d
to
7
Stepper drivers were tested in conjunction with the motors. A function generator was used to simulate
the drive signal that would be provided by the microcontroller. We noted as expected, that the torque
of the motor was inversely proportional to its speed. We were able to adjust the smoothness of the
motor by carefully tuning the voltage on the driver’s REF pin. An optimal balance between torque and
step coarseness can be obtained. We have begun the assembly of an apparatus to support the dampers
and motors for testing. This will make it easier to test the effectiveness of our drive before the final
mounting system has been constructed.
The ADC and the OLED were tested together. Data was read in from the accelerometer, and depending
on the orientation of the accelerometer, the OLED would change its display colour.
8
ControlAlgorithm
The functionality of the system has been designed to detect and adapt to the most common riding
scenarios. Table 1 classifies each riding scenario by the output from the position and accelerometer
data. Additionally, the table outlines the adjustments to the compression and rebound damping. The
data from each sensor will be monitored and when a specific riding scenario is detected, the system will
enter that mode of operation. This table forms the basis for the functionality of our system and allows
for future expansion as more use cases are defined.
Riding
Scenario
Position
Output
Accelerometer Output Compression
Adjustment
Rebound
Adjustment
Notes
General
Riding
Normal
(sag point)
‐ Any incline
‐ Mostly vertical component
Defined in
Setup
Defined in
Setup
Drop Off Full Extension ‐ Nose down
‐ Close to weightless
Increase w/
time to a limit
Increase w/
time to a limit
Uphill Above Sag
Point
(Close to Full)
‐ Nose up >3%
‐ Increased horizontal
component
Fully Closed
(Locked Out)
N/A
Only want to activate when
a sustained grade is
encountered
Downhill Below Sag
Point
‐ Nose down < ‐3%
‐ Increased horizontal
component
Decrease Increase
Smooth Road Normal
(Very little
variation)
‐ Any incline
‐ Very little variation
Fully Closed
(Locked Out)
N/A
Only want to activate when
a smooth road encountered
for a sustained amount of
time
Bump/Rut Quick Change ‐ Any incline
‐ Large Spikes
Decrease Increase
Washboard Repetitive
Quick Changes
‐ Any incline
‐ Large Spikes
Decrease Decrease Want to detect very rough,
sustained terrain
Table 1: Riding Scenarios
9
The default mode will be the general riding scenario. Settings for this mode will be defined during
setup. Several predefined settings will be available to allow the user to select the style of ride that they
are expecting. Table 2 outlines the predefined general riding settings that will be available to the user.
There will also be a full manual mode, which will allow the user to precisely define the compression and
rebound damping settings that they want to use for general riding. Specific values will be assigned once
development has completed and testing can be done on the system to determine appropriate values.
Riding Style Compression Damping Rebound Damping
Cross Country High Low
Downhill Low Mid
All Mountain Mid Mid
Road Ride Full (Lockout) Low
Race High Low
Custom User Defined User Defined
Table 2: Default Riding Settings
System
The firmw
motors an
1. In
p
2. In
m
3. A
sh
4. Lo
5. U
6. H
7. G
Currently
tested. T
function t
mFirmwar
ware is respon
nd updating t
nitialize all the
ort, the SPI b
nitialize the b
motor chips, th
nalyze data in
hock’s compr
og data to the
pdate the GU
andle user in
o back to ste
the accelero
he focus of p
to writing the
re
nsible for coll
he OLED scre
e chip periph
us, and gener
oard, includin
he OLED scre
ncoming from
ression and re
e Micro SD ca
UI.
put via the 5‐
p 3
meter, linear
rogramming t
e control algo
ecting all the
een when nec
erals includin
ral purpose in
ng the accele
en and the SD
m position sen
ebound.
ard.
‐button joyst
r magneto pot
the firmware
rithms and de
Figure 3:
data from th
cessary. The b
ng, the analog
nput/output.
rometer, the
D card.
nsor and both
ick.
t and the OLE
e has now shif
eveloping a u
System Over
he external se
basic flow of
gue to digital
magneto‐pot
h axes of the
ED screen are
fted from get
user interface
rview
ensors, actuat
the program
converter, th
tentiometer,
acceleromete
e functional a
tting the perip
e.
ting the stepp
is as follows:
he parallel ma
the stepper
er and adjust
nd have been
pherals to
10
per
:
aster
the
n
11
WebsiteWe have completed the backbone of our website and will continue to add more information as progress
on our project is made. The current website can be found at: http://www.engr.uvic.ca/~tfox/.
Our project management and task tracking can be viewed on our team’s code tracking website:
http://code.google.com/p/elektroshok/.
12
ChallengesandResolutions
Progress has been steady with only a few unexpected challenges arising. The following is a summary of
these and their resolutions:
1. We had incorrectly assumed that the micro‐controller could handle higher voltages on its analog
input for the A/D converter by using an external reference. On this assumption we were
confident that a 5V rated accelerometer would be compatible. In‐order solve this issue we
determined that we could operate the accelerometer at a lower voltage. This would be supplied
by the 5V supply and regulated with a 3.6V Zener diode. This modification in conjunction with
the micro‐controller’s maximum tolerance for the input, as well as knowing that at full
deflection the accelerometer would output Vcc‐.25V, is acceptable as it will be within the micro‐
controller’s range.
2. A small issue which plagued us during the first attempt at programming the micro‐controller
was communication between the microcontroller and the ICD (In Circuit Debugger). We were
unable to connect to the device and were receiving a voltage level error in the debugging
window. The chip also heated up dramatically. Unfortunately, the silkscreen printed on the off‐
brand ICD was not correct. After following the traces on the board, we changed the wiring and
the chip programed successfully.
3. While selecting the stepper motors the feasibility of using gears to achieve the needed torque
was explored. It was determined that we were limited by the space available and that
implementing gears would introduce more problems, as well as create vulnerabilities within the
system. With this knowledge, we decided to go with a slightly larger stepper motor instead of a
geared system. This way the durability of the system is not affected and we are guaranteed to
achieve the torque needed to rotate the adjusters.
4. There were issues in bringing up the OLED. After reading the timing diagrams for writing to the
OLED and configuring the writing algorithms accordingly, data was not being successfully written
to the OLED. Large delays were required for writes to be successful. This issue is currently
under investigation as the large delays are unacceptable in the final system.
13
TaskAssignment
An updated task chart is attached at the end of this report.
14
UpdatedProjectMilestoneTimelineJanuary 21st Progress Report #1
‐ All major system components spec’d and ordered
Completed
‐ Microprocessor development board up and running
Completed
January 28th ‐ Initial circuit design Completed Ongoing
February 4th ‐ Initial firmware completed (support for all peripherals)
Completed Ongoing
‐ Initial hardware layout and circuit bread‐boarding
Completed
February 16th Midterm Review Meeting
February 18th Progress Report #2
‐ Coding of control algorithms In Progress
‐ Mechanical mounting Not Yet Competed
‐ PCB layouts In Progress
February 23th Mechanical mounting
February 25th ‐ Completed control algorithm On track
‐ Ready for testing On track
‐ Mechanical mounting of actuators and sensors On track
March 18th ‐ Working prototype
‐ Completed poster
March 25th Poster Presentation
‐ Completed final report
‐ Completed website
March 31st Final Report submitted
Project URL submitted
ID Task Mode
Resource Names
Task Name Start Finish % Complete
1 Kenyon Riding Scenarios Sat 1/1/11 Thu 3/24/11 62%
2 Kenyon Fork Selection Sat 1/1/11 Wed 1/19/11 100%
3 Kenyon Mechanical Design Mon 2/21/1 Mon 2/21/11 0%
4 Kenyon Accelerometer Fri 1/14/11 Wed 2/2/11 90%
5 Kenyon Position Sensor Fri 1/14/11 Wed 2/2/11 90%
6 Kenyon Compression Motor Fri 1/21/11 Wed 2/9/11 80%
7 Kenyon Rebound Motor Fri 1/21/11 Wed 2/9/11 80%
8 Kenyon Head Unit Housing Sat 2/5/11 Wed 2/23/11 50%
9 Kenyon Acceleration Math Analysis Thu 2/10/11Tue 3/1/11 15%
10 Kenyon Position Math Analysis Thu 2/10/11Tue 3/1/11 75%
11 Collaborative Component Selection Tue 12/14/1 Tue 12/14/10 100%
12 Collaborative Control Algorithm Tue 2/15/11 Tue 3/1/11 40%
13 Thayer Website Construction Fri 1/7/11 Mon 1/10/11 100%
14 Thayer Initial acquisition and function test of ICD2
Mon 1/3/11 Mon 1/3/11 100%
15 Thayer Expense Tracking Sun 1/9/11 Thu 3/24/11 50%
16 Thayer PIC Breakout Board Sun 1/9/11 Mon 1/17/11 100%
17 Thayer Initial SMT Mounting Tue 2/1/11 Mon 2/28/11 100%
18 Thayer Mounting Bracket for Steppers Fri 2/25/11 Fri 2/25/11 0%
19 Thayer Website Content Mon 2/7/11 Tue 3/15/11 25%
20 Thayer User Interface Thu 2/24/11Tue 3/15/11 0%
21 Thayer Spec and Source OLED Mon 1/10/1 Mon 1/24/11 100%
22 Thayer Spec Better Switch Tue 2/1/11 Fri 2/11/11 100%
23 Thayer DigiKey Order #1 Mon 1/17/1 Mon 1/24/11 100%
24 Thayer DigiKey Order #2 Mon 2/21/1 Mon 2/28/11 0%
25 Phil Get NM101 to work Sun 1/2/11 Fri 1/7/11 17%
26 Phil Micro‐Controller Selection Mon 1/10/1 Mon 1/17/11 100%
27 Phil Motor Code Tue 1/11/11 Tue 3/15/11 50%
28 Phil Accelerometer Code Tue 1/11/11 Tue 3/15/11 40%
29 Phil OLED Code Tue 1/11/11 Tue 3/15/11 20%
30 Phil Code to Support Lock Out Mon 2/14/1 Tue 3/15/11 0%
31 Phil Code to Support Large Drop Mon 2/14/1 Tue 3/15/11 0%
32 Phil SD Card Code Fri 12/24/10Fri 2/25/11 0%
33 Phil ADC Code Tue 1/11/11 Tue 3/15/11 0%
34 Phil PMP code Tue 1/11/11 Tue 3/15/11 0%
35 Phil SPI Code Tue 1/11/11 Tue 3/15/11 0%
36 Phil Integrate Microchip Fat 16 library Fri 12/24/10
Fri 2/25/11 0%
37 Phil Code to support 5B joystick Fri 12/24/10Fri 2/25/11 0%
Kenyon
Kenyon
Kenyon
Kenyon
Kenyon
Kenyon
Kenyon
Kenyon
Kenyon
Kenyon
12/14
Collaborative
Thayer
Thayer
Thayer
Thayer
Thayer
Thayer
Thayer
Thayer
Thayer
Thayer
Thayer
Thayer
Phil
Phil
Phil
Phil
Phil
Phil
Phil
Phil
Phil
Phil
Phil
Phil
Phil
T F S S M T W T F S S M T W T F28, '10 Dec 19, '10 Jan 9, '11 Jan 30, '11 Feb 20, '11 Mar 13, '11 Apr 3, '
Task
Split
Milestone
Summary
Project Summary
External Tasks
External Milestone
Inactive Task
Inactive Milestone
Inactive Summary
Manual Task
Duration‐only
Manual Summary Rollup
Manual Summary
Start‐only
Finish‐only
Deadline
Progress
Page 1
Project: ganttDate: Mon 2/21/11
ID Task Mode
Resource Names
Task Name Start Finish % Complete
38 Phil Code to log accelerometer data onto SD
Tue 1/11/11 Tue 3/15/11 0%
39 Phil Code to log linear pot data onto SD Tue 1/11/11 Tue 3/15/11 0%
40 Phil Code to write a single image to the OLED
Fri 12/24/10
Fri 2/25/11 0%
41 Phil Figure out how to use DAM to go from SD to OLED while using minimum CPU cycles
Tue 1/11/11 Tue 3/15/11 0%
42 Phil Chip support code to generate correct timer values based on clock speed
Tue 1/11/11 Tue 3/15/11 0%
43 Paul Component Selection Mon 1/10/1 Mon 1/17/11 100%
44 Paul Add tasks from Google Docs Mon 1/10/1 Mon 1/17/11 100%
45 Paul Circuit Schematic Wed 1/19/1 Fri 2/18/11 90%
46 Paul PCB Layout Tue 2/1/11 Mon 2/28/11 0%
47 Paul Power Supply Thu 1/13/11Wed 3/2/11 50%
48 Paul Breadboard Circuit Tue 2/1/11 Tue 2/15/11 75%
49 Paul stepper zeroing Tue 2/1/11 Thu 2/3/11 20%
50 Paul Wiring and connectors for position sensor.
Thu 2/3/11 Fri 3/4/11 0%
51 Paul Wiring and connectors for acceleromWed 2/2/11 Fri 2/4/11 0%
52 Paul Breadboard the accelerometer Fri 1/21/11 Wed 2/2/11 100%
53 Paul slider bushing Mon 2/21/1 Thu 2/24/11 0%
54 Paul battery Pack Mon 2/28/1 Tue 3/8/11 0%
55 Paul Test Apparatus for Damper actuatio Mon 2/21/1 Fri 2/25/11 50%
56 Paul SD reader breadboard Mon 2/21/1 Fri 2/25/11 0%
57 Paul Increase Stepper Speed Fri 2/11/11 Mon 2/28/11 50%
58 Paul Proto‐Board Version of System Mon 2/28/1 Wed 3/9/11 0%
Phil
Phil
Phil
Phil
Phil
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
Paul
T F S S M T W T F S S M T W T F28, '10 Dec 19, '10 Jan 9, '11 Jan 30, '11 Feb 20, '11 Mar 13, '11 Apr 3, '
Task
Split
Milestone
Summary
Project Summary
External Tasks
External Milestone
Inactive Task
Inactive Milestone
Inactive Summary
Manual Task
Duration‐only
Manual Summary Rollup
Manual Summary
Start‐only
Finish‐only
Deadline
Progress
Page 2
Project: ganttDate: Mon 2/21/11
1
1
2
2
3
3
4
4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 21/02/2011 Sheet ofFile: C:\Documents and Settings\..\Accelerometer_Module.SchDocDrawn By:
VDD31
Yout 2
COM 3
ST4 NC 5
Xout6
VDD7
VDD2 8U1
ADXL278
0.1F
C1Cap
12345
P1
Header 5
1K
R1
Res1
D1
D ZenerPIC101
PIC102COC1 PID101 PID102
COD1PIP101
PIP102
PIP103
PIP104
PIP105
COP1
PIR101 PIR102COR1PIU101
PIU102
PIU103
PIU104 PIU105
PIU106
PIU107
PIU108
COU1
PIC101PID101
PIP103PIU103
PIC102PID102 PIR101
PIU101
PIU107
PIU108 PIP101
PIU106
PIP102PIR102
PIP104
PIU102 PIP105
PIU104 PIU105
1
1
2
2
3
3
4
4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 21/02/2011 Sheet ofFile: C:\Documents and Settings\..\Driver.SchDocDrawn By:
REF1
RC22
/SLEEP3
OUT2B4
LOAD SUPPY25
GND6
GND7
SENSE28
OUT2A9
STEP10
DIR11
MS112 MS2 13LOGIC SUPPLY 14
/ENABLE 15OUT1A 16SENSE1 17
GNG 18GND 19
LOAD SUPPLY1 20OUT1B 21/RESET 22RC1 23PFD 24U2
A3967
GND
GND
3.3V
12V12V
0.75RSENSE1Res1
OUT1BCOMP
OUT2BCOMP
OUT1ACOMPOUT2ACOMPSTEPCOMPDIRCOMP
/SLEEPCOMP
/ENABLECOMP
10K
R5RPot
5.1K
R9Res1
3.3V
10K
R2Res1
3.3V
20K
R7Res1680pF
C2Cap
20K
R8Res1 680pF
C3Cap
0.75RSENSE2Res1
10K
R16
Res1
3.3V
10KR18
Res1
10K
R3Res1
10K
R4Res1
10K
R17Res1
GND
3.3V
REF1
RC22
/SLEEP3
OUT2B4
LOAD SUPPY25
GND6
GND7
SENSE28
OUT2A9
STEP10
DIR11
MS112 MS2 13LOGIC SUPPLY 14
/ENABLE 15OUT1A 16SENSE1 17
GNG 18GND 19
LOAD SUPPLY1 20OUT1B 21/RESET 22RC1 23PFD 24U3
A3967
GND
GND
3.3V
12V12V
0.75RSENSE3Res1
OUT1BREB
OUT2BREB
OUT1AREBOUT2AREBSTEPREBDIRREB
/SLEEPREB
/ENABLEREB
10K
R12RPot
5.1K
R15Res1
3.3V
10K
R6Res1
3.3V
20K
R13Res1680pF
C4Cap
20K
R14Res1 680pF
C5Cap
0.75RSENSE4
Res1
10K
R19
Res1
3.3V
10KR21
Res1
10K
R10Res1
10K
R11Res1
10K
R20Res1
GND
3.3V
BLKGRNREDBLU
P2
Compression
OUT1ACOMPOUT1BCOMPOUT2ACOMPOUT2BCOMP
BLKGRNREDBLU
P3
Rebound
OUT1AREBOUT1BREBOUT2AREBOUT2BREB
PIC201
PIC202COC2
PIC301
PIC302 COC3
PIC401
PIC402COC4
PIC501
PIC502 COC5
PIP201
PIP202
PIP203
PIP204
COP2
PIP301
PIP302
PIP303
PIP304
COP3
PIR201
PIR202COR2
PIR301
PIR302
COR3PIR401
PIR402
COR4
PIR501
PIR502PIR503
COR5
PIR601
PIR602COR6
PIR701
PIR702COR7
PIR801
PIR802COR8
PIR901
PIR902COR9PIR1001
PIR1002
COR10PIR1101
PIR1102
COR11
PIR1201
PIR1202PIR1203
COR12
PIR1301
PIR1302COR13
PIR1401
PIR1402COR14
PIR1501
PIR1502COR15
PIR1601PIR1602COR16
PIR1701
PIR1702
COR17
PIR1801PIR1802
COR18
PIR1901PIR1902COR19
PIR2001
PIR2002
COR20
PIR2101PIR2102
COR21
PIRSENSE101PIRSENSE102
CORSENSE1PIRSENSE201PIRSENSE202
CORSENSE2
PIRSENSE301PIRSENSE302
CORSENSE3
PIRSENSE401PIRSENSE402
CORSENSE4
PIU201
PIU202
PIU203
PIU204
PIU205
PIU206
PIU207
PIU208
PIU209
PIU2010
PIU2011
PIU2012 PIU2013
PIU2014
PIU2015
PIU2016
PIU2017
PIU2018
PIU2019
PIU2020
PIU2021
PIU2022
PIU2023
PIU2024
COU2
PIU301
PIU302
PIU303
PIU304
PIU305
PIU306
PIU307
PIU308
PIU309
PIU3010
PIU3011
PIU3012 PIU3013
PIU3014
PIU3015
PIU3016
PIU3017
PIU3018
PIU3019
PIU3020
PIU3021
PIU3022
PIU3023
PIU3024
COU3
PIR202
PIR301 PIR401PIR502
PIR602
PIR1001 PIR1101
PIR1202
PIR1602 PIR1801
PIR1902 PIR2101
PIU2014
PIU3014
PIU205
PIU2020
PIU305
PIU3020
PIC201 PIC301
PIC401 PIC501
PIR701 PIR801
PIR901
PIR1301 PIR1401
PIR1501
PIR1702
PIR2002
PIRSENSE102 PIRSENSE201
PIRSENSE302 PIRSENSE401
PIU206
PIU207 PIU2018
PIU2019
PIU306
PIU307 PIU3018
PIU3019
PIC202 PIR702 PIU202 PIC302PIR802PIU2023
PIC402 PIR1302 PIU302 PIC502PIR1402PIU3023
PIP201
PIU2016
POOUT1ACOMPPIP202
PIU2021
POOUT1BCOMPPIP203
PIU209
POOUT2ACOMPPIP204
PIU204
POOUT2BCOMP
PIR201
PIU203
PO0SLEEPCOMP
PIR302PIU2024
PIR402
PIU2022PIR501
PIR902
PIR503 PIU201 PIR601
PIU303
PO0SLEEPREB
PIR1002PIU3024 PIR1102
PIU3022PIR1201
PIR1502
PIR1203 PIU301
PIR1601PIU2012
PIR1701
PIU2015
PO0ENABLECOMPPIR1802PIU2013
PIR1901PIU3012
PIR2001
PIU3015
PO0ENABLEREBPIR2102PIU3013
PIRSENSE101 PIU208 PIRSENSE202PIU2017
PIRSENSE301 PIU308 PIRSENSE402PIU3017
PIU2010POSTEPCOMPPIU2011PODIRCOMP
PIP304
PIU304
POOUT2BREB
PIP303
PIU309POOUT2AREBPIU3010POSTEPREBPIU3011PODIRREB
PIP301
PIU3016POOUT1AREB
PIP302
PIU3021POOUT1BREB
PO0ENABLECOMP
PO0ENABLEREB
PO0SLEEPCOMP
PO0SLEEPREB
PODIRCOMP
PODIRREB
POOUT1ACOMP
POOUT1AREB
POOUT1BCOMP
POOUT1BREB
POOUT2ACOMP
POOUT2AREB
POOUT2BCOMP
POOUT2BREB
POSTEPCOMP
POSTEPREB
1
1
2
2
3
3
4
4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 21/02/2011 Sheet ofFile: C:\Documents and Settings\..\Elektroshok_01.SchDocDrawn By:
AN0/VREF+/CN2/RA0 19
AN1/VREF-/CN3/RA1 20
AN10/RTCC/RP14/CN12/PMWR/RB14 14AN11/RP13/CN13/PMRD/RB13 11AN12/RP12/CN14/PMD0/RB12 10
AN4/C1IN-/RP2/CN6/RB2 23
AN5/C1IN+/RP3/CN7/RB3 24
AN6/RP16/CN8/RC025
AN7/RP17/CN9/RC126
AN8/CVREF/RP18/PMA2/CN10/RC227
AN9/RP15/CN11/PMCS1/RB15 15
AVDD17
AVSS16
INT0/RP7/CN23/PMD5/RB7 43
MCLR18
OSC1/CLKI/CN30/RA2 30
OSC2/CLKO/CN29/RA3 31
PGEC1/AN3/C2IN+/RP1/CN5/RB1 22
PGEC2/RP11/CN15/PMD1/RB11 9
PGEC3/ASCL1/RP6/CN24/PMD6/RB6 42
PGED1/AN2/C2IN-/RP0/CN4/RB0 21
PGED2/EMCD2/RP10/CN16/PMD2/RB10 8
PGED3/ASDA1/RP5/CN27/PMD7/RB5 41
RP19/CN28/PMBE/RC336
RP20/CN25/PMA4/RC437
RP21/CN26/PMA3/RC538
RP22/CN18/PMA1/RC62
RP23/CN17/PMA0/RC73
RP24/CN20/PMA5/RC84
RP25/CN19/PMA6/RC95
SCL1/RP8/CN22/PMD4/RB8 44
SDA1/RP9/CN21/PMD3/RB9 1
SOSCI/RP4/CN1/RB4 33
SOSCO/T1CK/CN0/RA4 34
TCK/PMA7/RA7 13
TDI/PMA9/RA9 35TDO/PMA8/RA8 32
TMS/PMA10/RA10 12
VCAP/VDDCORE7
VDD28
VDD40
VSS6
VSS29
VSS39
U4
PIC24HJ128GP504-I/PT
123
P7
Position Sensor
123
456
P6
Nav Switch
10uF tant
C7Cap
0.1uF
C8Cap
470
R24Res1
10K
R22
Res1S1
SW-PB
GND
3.3V
GND
3.3V
PMPD3PMPD4
PMPD2PMPD1PMPD0PMPRDPMPWRPMCS1
PMPD5PMPD6PMPD7
PMPA0
RESET OLED
Yin
Xin
SELECTLEFT
UPRIGHTDOWN
LEFTSELECTUP
RIGHT
DOWN
Wipper
VCC
GND
10k
R26Res1
10k
R25Res1
10k
R27Res1
10k
R28Res1
10k
R29Res1
MCLR1
VDD2
GND3
PGD4
PGC5
P5
ICD2
RESET OLEDPMCS1
PMPD7PMPD6PMPD5PMPD4PMPD3PMPD2PMPD1PMPD0
GND
5V
PMPRDPMPWR
PMPA0
3.3V
GND0.1uF
C9Cap
12345
P8
Accelerometer
GND
5V
STYin
Xin
STEPREB
DIRREB
/SLEEPCOMP
/SLEEPREB
3.3V
GND
12345678910111213141516
P4
Header 16
0.1uF
C6
CapW2
Jumper
10K
R23Res1
W1Jumper
3.3V
Wipper
STEPCOMP
DIRCOMP
BATSTAT
SDI
SDOSCK
GND
Vin VoutGND
VR1
R-783.3-0.5
Vin VoutGND
VR2
R-785.0-0.5
Vin VoutGND
VR3
REG12V
3.3V 5V 12V
10uF
C12Cap
10uFC10
Cap10uFC11
Cap
1Battery
PI101
PI102CO1
PIC601 PIC602
COC6
PIC701
PIC702COC7
PIC801
PIC802COC8
PIC901
PIC902COC9
PIC1001
PIC1002
COC10 PIC1101
PIC1102
COC11
PIC1201
PIC1202COC12
PIP401
PIP402
PIP403
PIP404
PIP405
PIP406
PIP407
PIP408
PIP409
PIP4010
PIP4011
PIP4012
PIP4013
PIP4014
PIP4015
PIP4016
COP4
PIP501
PIP502
PIP503
PIP504
PIP505
COP5
PIP601
PIP602
PIP603
PIP604
PIP605
PIP606
COP6
PIP701
PIP702
PIP703
COP7
PIP801
PIP802
PIP803
PIP804
PIP805
COP8
PIR2201
PIR2202COR22
PIR2301
PIR2302COR23
PIR2401
PIR2402
COR24
PIR2501
PIR2502COR25
PIR2601
PIR2602COR26
PIR2701
PIR2702COR27
PIR2801
PIR2802COR28
PIR2901
PIR2902COR29
PIS101 PIS102
COS1
PIU401
PIU402
PIU403
PIU404
PIU405
PIU406
PIU407
PIU408
PIU409
PIU4010
PIU4011
PIU4012
PIU4013
PIU4014
PIU4015
PIU4016
PIU4017
PIU4018 PIU4019
PIU4020
PIU4021
PIU4022
PIU4023
PIU4024
PIU4025
PIU4026
PIU4027
PIU4028
PIU4029
PIU4030
PIU4031
PIU4032
PIU4033
PIU4034
PIU4035
PIU4036
PIU4037
PIU4038
PIU4039
PIU4040
PIU4041
PIU4042
PIU4043
PIU4044
COU4
PIVR101
PIVR102
PIVR103
COVR1
PIVR201
PIVR202
PIVR203
COVR2
PIVR301
PIVR302
PIVR303
COVR3
PIW101
PIW102
COW1
PIW201 PIW202
COW2
PIC802 PIC901
PIP502
PIR2202 PIR2302
PIR2501 PIR2601 PIR2701 PIR2801 PIR2901
PIU4017
PIU4028
PIU4040
PIVR103
PIP4015
PIP802
PIVR203 PIVR303
PI102
PIC601
PIC701 PIC801 PIC902
PIC1002 PIC1102PIC1201
PIP4016
PIP503
PIP601
PIP703
PIP803
PIS101
PIU406
PIU4016
PIU4029
PIU4039
PIVR102 PIVR202 PIVR302
PI101PIC1001 PIC1101PIC1202 PIVR101 PIVR201 PIVR301
PIC602
PIR2201
PIR2401
PIS102
PIC702
PIU407
PIP401
PIU4012
PORESET OLEDPIP402
PIU4015
POPMCS1PIP403
PIU403
POPMPA0PIP404
PIU4011
POPMPRDPIP405
PIU4014
POPMPWRPIP406
PIP407
PIU4041
POPMPD7PIP408
PIU4042
POPMPD6PIP409
PIU4043
POPMPD5PIP4010
PIU4044
POPMPD4PIP4011
PIU401
POPMPD3PIP4012
PIU408
POPMPD2PIP4013
PIU409
POPMPD1PIP4014
PIU4010
POPMPD0PIP501
PIR2301PIW101
PIP504PIU4021
PIP602
PIR2602
PIU4037
POSELECTPIP603
PIR2502
PIU4036
POLEFT
PIP604
PIR2702
PIU4038
POUPPIP605
PIR2802
PIU4035
PORIGHTPIP606
PIR2902
PIU4034
PODOWN
PIP701
PIU4024
POWipper
PIP505
PIP801
PIU4022
POXin
PIP804
PIU4023
POYinPIP805POST
PIR2402PIW201
PIU402POSDI
PIU404POSDOPIU405POSCK
PIU4013
PIU4018PIW102 PIU4019
PIU4020
PIU4025POBATSTATPIU4026PO0SLEEPCOMPPIU4027POSTEPCOMP
PIU4030PODIRCOMPPIU4031PO0SLEEPREB
PIU4032POSTEPREB
PIU4033PODIRREB
PIW202
PIP702
PO0SLEEPCOMP
PO0SLEEPREB
POBATSTAT
PODIRCOMP
PODIRREB
PODOWN
POLEFT
POPMCS1
POPMPA0POPMPD0POPMPD1POPMPD2POPMPD3POPMPD4POPMPD5POPMPD6POPMPD7
POPMPRDPOPMPWR
PORESET OLEDPORIGHT
POSCK
POSDI
POSDO
POSELECT
POST
POSTEPCOMP
POSTEPREB
POUP
POWIPPER
POXIN
POYIN
1
1
2
2
3
3
4
4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 21/02/2011 Sheet ofFile: C:\Documents and Settings\..\OLED Display.SchDocDrawn By:
RES1
CS2
DC3
RD4
RW5
VSL6
D7
7
D6
8
D5
9
D4
10
D3
11
D2
12
D1
13
D0
14
+5V 15
GND 16
Cannot open file C:\Users\Fox\Desktop\tubez.bmp
*1
OLED
RESET OLED
PMCS1
PMPD
7
PMPD
6
PMPD
5
PMPD
4
PMPD
3
PMPD
2
PMPD
1
PMPD
0
GND
5V
PMPRD
PMPWR
PMPA0
PI0101
PI0102
PI0103
PI0104
PI0105
PI0106
PI0107 PI0108 PI0109 PI01010 PI01011 PI01012 PI01013 PI01014
PI01015
PI01016
CO01
PI01015
PI01016
PI0101PORESET OLED
PI0102POPMCS1
PI0103POPMPA0
PI0104POPMPRD
PI0105POPMPWR
PI0106
PI0107
POPMPD7PI0108
POPMPD6PI0109
POPMPD5PI01010
POPMPD4PI01011
POPMPD3PI01012
POPMPD2PI01013
POPMPD1PI01014
POPMPD0
POPMCS1
POPMPA0
POPMPD0POPMPD1POPMPD2POPMPD3POPMPD4POPMPD5POPMPD6POPMPD7
POPMPRD
POPMPWR
PORESET OLED
1
1
2
2
3
3
4
4
D D
C C
B B
A A
Title
Number RevisionSize
A4
Date: 21/02/2011 Sheet ofFile: C:\Documents and Settings\..\SD Card.SchDocDrawn By:
123456789101112
P9
Header 12HGND
ACTIVITY1LED110K
R31Res1
10K
R32Res1
10K
R33Res1
10K
R34Res1
10K
R35Res1
180
R30
Res1
3.3V
0.1uF
C13Cap Pol1
GND/CSSDO
SCK
SDI
CDWD
PIACTIVITY101PIACTIVITY102
COACTIVITY1
PIC1301PIC1302
COC13
PIP901
PIP902
PIP903
PIP904
PIP905
PIP906
PIP907
PIP908
PIP909
PIP9010
PIP9011
PIP9012
COP9
PIR3001PIR3002COR30
PIR3101
PIR3102COR31
PIR3201
PIR3202COR32
PIR3301
PIR3302COR33
PIR3401
PIR3402COR34
PIR3501
PIR3502COR35
PIC1301
PIP904
PIR3002
PIR3102 PIR3202 PIR3302 PIR3402 PIR3502PIC1302
PIP903
PIP906
PIP9012
PIACTIVITY101PIR3001
PIACTIVITY102PIP901PO0CSPIP902POSDO
PIP905POSCK
PIP907
PIR3101
POSDIPIP908
PIR3501
PIP909
PIR3401
PIP9010POCDPIP9011
PIR3201 PIR3301
POWD
PO0CS
POCD
POSCK
POSDI
POSDO
POWD