Introduction: Dodge Viper Fire Relay Controller

Whatsoever early Dodge Viper automobiles are difficult to start afterwards lack of operation for more than a a couple of hours. The problem is attributable a fire pump blemish which allows an undesired slow bleed-off of fuel pressure.

For various reasons, this is difficult to fix properly. A common workaround is to slowly cycle the ignition key 7 times before cranking systematic to stretch the fuel pre-pressurization menses beyond the usual 1 or 2 seconds.

Here we present an OEM-elan plug-and-act as fire pump electrical relay replacement which performs the extension mechanically.

This project was done between Feb and July of 2019 by Ben (computer hardware and software design), Johan (mechanical pattern and enclosure), and Shelly (car owner and testing). Thanks to Don W. for providing the idea.

Step 1: The Problem

The introductory 2 model years (Multiplication 1, Generation 1.5, and Generation 2) of the Evade Viper sports automobile (wikipedia/Dodge_Viper) have a minor but annoying problem in the tank-mounted fuel pump. The fuel pressure level slowly decreases, bleeding fuel back into the tank car, finished some hours when the locomotive engine, and thus fuel pump, is off. The defect is same to be in a pressure governor valve integral to the pump assembly.

The end result is that the railway car is calculative to start afterwards it has been off for more about 6 hours (e.g. nightlong) because there is no substantial fuel pressure throughout the fuel lines and thus fire rail near the injectors at the engine.

Of course of instruction, the engine control unit (ECU) energizes the fuel heart during the initial 2 seconds of the engine existence in run mode, whether or not information technology is in reality (til now) running, and when in Methedrine mode. Less formally: fuel is pumped while cranking and it gets a little head start if the driver is slow to reverse the key past its detents.

This is non enough to compensate for the confused pressure, unless, perhaps, a rattling long cranking period is performed. The crosspatch duration that might be participating would be much more than 7 seconds and thusly is unacceptable. In accession to starter drive damage, many Vipers sit for a long clock betwixt drives and so the battery depletes rapidly even with modest ice periods. The engine is very wide, so cranking is power-hungry.

Fortuitously, the fuel heart relay in the Generation 1 and Generation 1.5 Dodge Vipers is placed in an easily reachable, if somewhat strange, direct: In-line, in the midst of a wiring harness that crosses the top inside of the tree trunk.

Step 2: Issues With the Obvious & Proper Pay back

Of line the real fix for this is to replace the fuel pump assembly. But fewer owners want to coiffure that due to expense and possible via media. This car is quite a collector's item and significantly appreciates in prize terminated time. Therefore, owners alike to keep it pristine and unmodified, or at least be easily reversible without damage. Owners talk about keeping the railway car in "Concourse" condition for car show Judges, after a somewhat notorious elevator car show in Monterey, California.

Since the elevator car is out of production (the entire line was discontinued in 2017; Propagation 2 copies were discontinued in 2002), a replacement fuel pump is hard to obtain.

A proper refilling fuel pump relay also seems near impossible to obtain. The replacement fire pump relays (AC Delco 15-50961 19189419), which are confidently suggested online for this application, coiffure non oeuvre: They click, but the coil doesn't fully energize. I think the Locomotive engine See Unit (ECU) in these Vipers do not beat back the relay coil hard enough.

Access to the fire pump involves removing the fuel storage tank, which is not only a stellar operation but too is said to involve having to cut and then renovate fiberglass body panels. The out-of-production body panels were factory-made via resin transfer molding (RTM) and are hard to observe on the used market.

Step 3: Issues With Mutual Workarounds

I have heard that some owners "fix" this problem by installing a jumper so that the fuel heart runs continuously whenever the car is in Melt down mode. This is dangerous because if the car stalls or crashes, the fuel pump keeps running and could be spraying fire onto the scene of the accident. As a prophylactic characteristic, the ECU is fashioned to shut down the fuel pump if the engine is not in CRANK (start) mode and the drive off shaft is not rotating -- in strange run-in, stalled. In fact, in the stalled situation, the ECU sends a secondary disable signal to other electric powertrain components besides. The ECU's ability to fold the fire pump should not Be defeated.

Some owners apparently buy out a common timer module (so much as the UCTRONICS B07BT32T1M) and wire-OR that to let the pump run a few seconds more. I've never seen this myself, but hearing about this was the inspiration for this project. This seems reasonable, but the problem I have with this is that it seems inelegant. I guess IT could be through with in good order: You could make over connectors to avoid cutting wires in the Viper, etc. But I just wanted to cook a more OEM-like plug-and-play fix.

The most demotic "root" for most owners is to cycle the ignition key 'tween the Turned and RUN mode (but not CRANK yet) about 6 multiplication, lease it sit in the RUN put across for 2 seconds while the pump runs (after 2 seconds the ECU leave shut the ticker off). Aside doing this, the pressure in the fuel lines is built up. Happening the 7th clock time, the engine is cranked and will hopefully embark on.

The problem with the repeated key dance above is that the ECU ass go into the diagnostic style if you do 9 cycles. Apparently, to get out of the diagnostic mode you take in to hold back quite a while, or disconnect the barrage. But if you disconnect the barrage fire, there will make up another nuisance: These immature Viper ECUs do not suffer non-volatile memory (NVRAM) to store their long-term locomotive trim parameters. So the ECU will forget. The Unemployed Learn and past procedures will have to be finished -- this can happen spell energetic normally, merely can take several days of dynamic in front the railcar would pass a Smogginess (California emissions) test.

Step 4: Our Result

We present here a solution we call the "Pressure Principle". We replace the electrical relay with a "smart" one that does the eq of the lighting key cycling automatically.

This thought has obviously been in existence for some time. I have detected of people doing this using ready-made timer boards, and that is superfine.

Our way is simply an attempt to get in look more OEM-like, to go far not require press cutting some wires that are part of the car becoming, to mayhap add both purport-built features, and above every last, to not compromise the safety of the car's original design.

It so runs the pump for few seconds more, just is intelligent to cut it off after a few seconds and then to forevermore until next power oscillation to listen to the elevator car computer's command to rationalize it off e.g. when the car stalls or crashes.

In improver, it has a tiny 300ms "hiccup" in the extra timing run that cues the driver when to twis the key to the Bulge out view. The interruption in the fuel pump running is easily detected.

Our solution also works around another problem: The out-of-production alternate relay race. A modern commonly-available AC Delco electrical relay is used as disunite of this circuit.

The driver has the selection of not waiting at all (turning the key all the path to Grouch (Start) immediately) or ready the full metre (11 seconds) until the hiccup and then CRANKing, or doing aught (fuel pump cuts off 3 seconds later), or anything in between. A panic crank while stalled in dealings bequeath always work.

We term the 11 second period the "Promote" phase, the following 300 msec period the "Hiccup" phase, the following 3 second period the "Back Porch form, and all time thenceforth the "Steady State" phase.

Because an electrical ground is not open at the relay connector (C-314), a split wire feeds ground. We proved voiceless to work around this problem electrically and tried symmetrical harder to get a reliable, easy-to-set u, and visually fab ground source. It was not easy; this cable car does non have a lot of metal inward surfaces, nor standard connectors. We settled happening (and found) a suitable bolt that has reliable priming; a spade lug prevents having to fully back out the bolt in question.

Step 5: Choosing a Microcontroller

The first thing I did was to opt a microcontroller. This is a choice you have to make not only regarding what features you need but as wel how effortless/painful the development tools are and whether it is purchasable in "hobby" quantities or not.

Since for this picture, any simple microcontroller will do, and price is non actually an issue either, a easy/"common" part with an easy developing story would cost best. A arrangement-on-chip board such equally a Raspberry Sherloc or Arduino seemed overkill. I settled on the Atmel/Microchip PIC16F18855 because of low power consumption, small size, and ready availability.

The pleasant surprise was an online web-based IDE. I was in truth dreading having to install and fight a clunky development system, or plug-Immigration and Naturalization Service, to e.g. Macintosh XCode or Microsoft Visual Studio apartment, or much. But Microchip/Atmel really has a web web site that looks just look-alike an IDE -- editor in chief window, compiler window, debug windowpane, files windowpane, a menu legal community ... crazy. You set up an account, edit your code, and save IT with a computer filename (someplace -- course I manually make a topical put/paste backup rather than trust it to their cloud). You then hit the compile button, and IT sends you your binary as web download. Side by side to the IDE is also a Java applet forthcoming for download that is required for the IDE to tattle to the in-circuit programmer; the applet is somewhat flaky and also requires that your Java protections represent switch off. This is the only complaint I have.

The web-based IDE goes together with a $20 development board that looks care a USB thumb drive for programming. You drop your binary into the mounted USB "mass", which then causes the gimmick on the evaluation room to be programmed. When I was ready to build any hardware, I purchased a $150 USB-based programmer that also connects via USB and industrial plant approximately the homophonic right smart.

Clearly, such a solution is not something you would usance for a larger/more sedate project (what if the World Wide Web IDE becomes unavailable/slow? what about intellectual property security?), but for this it's perfect.

Step 6: Design the Hardware

See the hardware description in this Instructable for the final result. To get to this point, I went in stages:

First I purchased the Chip development board and used their online IDE to compose some demo software, which quickly became gentlemanlike to represent the near-final software.

I then purchased the Microchip in-circuit programmer and a couple of full-size (28-pin DIP) microcontrollers. Victimization full-size parts and a Bench power supply and tools, I got a minimal "circuit" running with my software package. I then built some of the basic relay driver components just about it victimisation some other parts, some overladen-size and some surface mount -- I wanted to grow the real surface mount parts that I was planning to use, to prove to myself that they would work as intended, since the stakes were high for getting it unethical: I was going to make a PC board with contract manufacturing.

Once I got the hardware and package design finalized, I built a prototype in a big flushed plastic boxwood, victimization the actualised parts. This was a hodgepodge of opencut mount parts taped down on a piece of newspaper, hand-soldered together with wire-envelop wires. It included an actual relay, with a all-night cable going to the relay+connector compounding, so that it could actually be plugged into the car. This setup was then tested in the car. Minor changes in the hardware and software were finalized.

Step 7: Pressure Principle Hardware Description

The circuit designing revolves around a Atmel/Chip PIC 16F18855 microcontroller. We use only the most basal of its features. We usage the internal oscillator mode that of necessity zero external crystal; information technology has an fantabulous power-up-reset and brownout protection mode that we economic consumption by default -- I have never seen it bug (not do prohibited of reset or software hung) despite all the down electric potential and speedy along/polish off I've thrown at it. We use the 3.3V reading. R1 is per the application notes. The J5 pin pads on the board are only secondhand during/for programming.

D1 protects againsts reverse polarity and works with D2 to preclude a brusque and affirmable gratuitous fuse blow for zero caring ground if D2 were to enter protective clamp mode. IT is an SAE/AEC (Bon ton of Automotive Engineers / Automotive Electronics Council) requirement that railroad car electronics be competent to live on reverse polarity, 24V jump starts, disconnection of the baterry with the engine running ("lode dump"), and other such tortures. D2 is a SM6T27AY clamping surge shielde zener diode intended to protect applications like this.

The diodes used for D3..D6 can all handle 1A of forward current. This was chosen over a wimpier spec because we want much more than twice the relay coil freewheel protection at D3, plus D4 is a first line of defence to the outside mankind, Eastern Samoa is technically D6. We could have used the same part for D1, but I chose an redundant-low-voltage-drop character for this.

We provide 3.3V to the microcontroller U2 and circuitry from the regulator U1, which can supply up to 100mA. The C1 and C2 capacitors are recommendations from its data sheet.

One of the port outputs drives electronic transistor Q1 that drives the relay. The microcontroller other than could not drive the required current, plus also it is at 3.3V piece the relay is at 12V. The crystal rectifier D3 is the bounden coil freewheel aegis for Q1 but note how it needs to connect to the the true put away where the top of the relay volute is connected, namely, J1. To connect that to the +12V post-D1 would embody a mistake. The relay also has LED3 connected there as an actual "relay curl is energized" indicator.

LED1 and LED2 are driven aside outputs from the microcontroller so that the software derriere recount the user what it is thinking: Verification of ECU "pump on" mastery input level signified, and exhibit when we are in boost phase.

In addition, LED1 and LED2 are connected via R7 and R8 to our +12V and +3.3V supplies, severally, so that they glow dimly As a "background" to the microcontroller's brighter pulses. In this mode, the user can confirm that we are acquiring +12V powerfulness from the Viper, and that the 3.3V governor is working.

The trickiest part of this circuit is the ECU "ticker on" command stimulation, involving J3, D4, D5, R9, R2, and C3.

A simple excogitation involving a crystal rectifier pointing away from the microcontroller (e.g. cathode on the J3 broadside) toward the ECU's "switch stop to basis" (wide-eyed collector) pad at J3, with an external or interior pull-up to +3.3V snuggled to the micro (e.g. on the anode/RA5 go with), would puzzle out. In fact, that's what I did initially.

Simply in that respect's a big electrical hardiness problem with that. Take what happens if the land supply at J2 fails (gets disconnected). When I tried that, to my horror, the circuit kept working! I traced it to a medical science ground path where the entire circuit's contemporary would down rearward INTO the micro's grounds (VSS1 and VSS2) and out of the small via RA5, through my protective diode, to J3, out of J3, thru the ECU, to the railroad car's ground. While naught got damaged (!), and while stuff "worked", that was not a bankruptcy/"operational" mood I was going to tolerate. I would rather have the electric circuit halt running (relay discharge) than allow such shenanigans. If the ground path is going to fail, whether at J2, or retired of the Pressure Principle enclosure, or at the car, the problem should be dealt with there.

So instead, we want to prevent some current sneaking backward up/into J3 likewise as a false ground path down/come out of J3.

D4 prevents "underway coming into the circuit via J3" (at-car wiring blame) craziness -- the only when way is out. D5 prevents the "current leaving the circle via RA5" (false ground path if J2 Oregon cable car-run aground failure) pathological body politic delineate above. R9 provides a pull-in: some current to travel into the ECU as well as into the Motion picture micro.

If the ECU is commanding "pump cancelled", then it will not be dynamical J3 to ground, and so there will be voltage at the input (anode) of D5 and this at the input to the PIC small's RA5 input; the micro will see a logic HIGH.

If the ECU is high "pump on", then information technology WILL cost driving J3 to grounnd, so in that location leave atomic number 4 NO (or very little) voltage at D5 and so RA5 and so the micro would reckon a logic LOW -- all but. Consider that because in that location is no voltage going into D5, there is nothing coming out; OK. But information technology is as wel veracious that D5 is pointed in such a way that thither is no more forward ground drainpipe path out of RA5 through IT to ground. So that means in this ("pump on" command) state, we are unsettled at the output (cathode) side of D5 and thus RA5. For that reason out, the final piece of this pose is the pull-down resistor R2.

R9 and R2 have been carefully chosen to be complimentary and I've tried simulating a variety of resistances of J3-law of closure-to-GND. I needed to avoid consuming likewise galore milliamps from the +3.3V provision but also needed to ensure noise unsusceptibility and robustness in the face of the ECU presenting roughly impedance (e.g. much than 1 ohm more or less) in its closure-to-GND. With these values (510 and 2200 ohm), Pressure Priniciple bequeath think the ECU is commanding "pump on" symmetrical if it presents up to about 75 Ohm -- something that would never cook the OEM relay chatter, so I can rest confident about this.

C3 is there to preclude (shunt to GND) any "sleuthing" of any undesired RF input (like a radio send). Information technology also functions as a bit of a "debouncer". If you want to seriously debounce, I noticed during experimentation that a 4.7uF capacitor in this place will exploit very nicely to de-glitch (e.g. low-pass then that only when on-off commands slower than 100ms come through). I didn't think that much de-glitching was necessary here.

Or I could have just ill-used an opto-isolator.

Regarding power budgets: The PIC microcontroller uses about 5mA at 3.3V. The 3.3V regulator tail end provide up to 100mA. The AC Delco relay coil uses about 120mA at 13.8V, and gets very hot. We manoeuver the LEDs sparingly at about half power: about 10mA each. We send about 6mA at 3.3V into the Viper ECU's acceptant-collector "ticker on" output (logical output, electrical input).

When taking measurements, do not forget the 680ohm resistor that the AC Delco relay has across its coil pins, which for our purposes essentially means between +12V (J1) and the ECU input (J3). This can lead to confusing results if you forget this. Because of D4 it doesn't affect our electric circuit at all. I don't know why information technology is there in the OEM and all aftermarket relays -- is that some ploy for diagnostics indeed that the ECU can tell the conflict between a failed relay coil vs. a wiring fault (an open) in the car's harnesses?

Step 8: Imperativeness Principle Software Verbal description

The software is a simple timer loop that does not use any of the timekeeper features nor interrupts (nor A/D, D/A, successive ports, waveform generators, etc, etc, etc).

A 16-piece timebase ("timeSincePowerOnReset_10ms") is incremented all 10 milliseonds. Starting from 0, on that point are defined milestones at which things bechance. There are no independent state variables: All state is derived from the prevalent time-since-power-up-readjust.

Using the timebase, the variable "prepMode" is computed. It is fashioned to be 1 whenever we want to "artificially" turn the fire pump on (we bid this "Boost Mode" too). It is 0 during normal steady-state mathematical operation. It is 1 during the initial 11 seconds from might-leading, then turns to 0 during the hiccup, then turns indorse to 1 during the back porch, and then turns to 0 forevermore.

A safeguard resets the timebase back to the 26 sec-from-power-up mark. In this way, after the 30 second mark, the last 4 seconds are replayed forever. This testament see that timebase overflow volition ne'er be an issue, while keeping the grommet operable every bit it must live to traverse the ECU pump instruction and blinking the LEDs.

Timebase overflow would differently occur vindicatory before the 11 minute mark: 10 ms_per_quantum * 65536 max_uint16 / 1000 ms_per_s / 60 s_per_m ~= 10.9 m.

The guard above also disables any possibility of returning to the boost phase after 30 seconds wealthy person elapsed from power-up. This is not strictly necessary in the program logic, but is a redundant opposing-bug safety feature. This is to ensure that if the car is stalled and the ECU has handicapped the fuel heart, that we don't accidentally sprayer fire periodically, even if there were in some way a bug in the "prepMode" calculation above.

The "viperECMFuelCommand" variable is obtained by reading Port A, considering bit 5, and inverting. It is an active-low signal. See more discussion about that in the ironware description.

Finally, the variable "portAWrite" is starting to be disposed. We initialize it to a apprais of 0 (all eight zeros) and will, over the next few sections, OR in bits as appropriate. We do it this way so that we can write out to Porthole A in one operation, not a full-length bunch of antithetical writes spaced past microseconds.

The three things computed and stored to "portAWrite" are (1) the relay coil energize signalize which is the OR of what the Viper is telling United States and whether we are in boost mode; (2) blinking the green LED if we are in boost mode; and (3) blinking the yellow LED if the Viper wants the fuel pump to be on.

The LED blinking is simply done by "connecting the LED to" one of the ever so-changing (enumeration) timebase bits (lower bits bequeath change quicker = faster blinking). Note that the LEDs are steady-state on "in the background" as well but this is not done away software; see the hardware description.

Regarding I/O Port hardware parallel shape, the TRISA (Tristate Port A (1=Don't drive)) is set up so that we are victimisation bit 0, bit 1, and bit 2 as outputs (driven). We use piece 5 as an input (not driven; we're listening). No latching required (Latch Port A; LATA) and no analog input mode (A/D) being utilized (Analog Select Interface A; ANSELA). We are doing our own pull-ups and pull-downs in our electrical circuit hardware (Weak Pull Aweigh Port A; WPUA). We do not need Schmitt-trigger (hysteresis) handling on our input (Input Flush Port A; INLVLA); the ECU commands are pretty clean.

Step 9: Making a PC Board

Boxed-in on this page are the CAD files that you fanny use with EagleCAD to create a Pressure Principle PC Board. Bank note the word "Disabled" in the titles -- you will have to detect and customise deuce small places to enable functionality so as to arrive that you are the actual engineer.

Also included are PDFs of the layers broken down as split images. The scale leaf of the enclosing dimensional rectangle is 900 cubic centimetre wide by 1350 mil magniloquent. One mil = 1/1000 inch. Equivalently, that's 22.86 mm blanket by 34.54 mm tall-stalked; 41.42 millimeter diagonal.

I've done versatile little and big electronics projects off-and-on for quite a while. But I had never, myself, old surface setting components, nor laid out a PC board, nor exploited constrict manufacturing (PCB and factor stuffing). Indeed I decided to act up all 3 since they'rhenium bad related when you're transaction with components smaller than Elmer Rice grains.

Preferring to use a Macintosh, I was agreeably surprised that the Mac no longer seems to be much a 2nd-class citizen in this arena any longer. You can download Autodesk EagleCad free of charge but I paid the licensing fee because, geez, consider the immense utility that you're acquiring. It takes a while to get used to the reasonably SketchUp-like user interface, but it's not too bad, and has its possess kind of nice logic.

With the closing purpose "captured", I then entered my handwritten schematic drawing into the CAD program so that I could have a nice neat schematic to print and also to form a basis for fashioning a Microcomputer board. I then in use the Bounder program to create a PC board layout, being careful to make the dimensions of my proposed control panel be so much that information technology would tantrum in my planned enclosure. I planned the width of the board to comprise up to that of the replacement electrical relay, minus 0.15 inch of margin on both sides, so that we could make a "make the relay taller solitary" enclosure. It's entertaining to do manual routing, and the software helps you rather a bit.

The final PC display board CAD design was then eat up the CAD program's own Electrical Check tests and Design For Manufacturing (DFM) check tests. This resolves issues such as traces running too close put together, unrouted wires, etc.

At this point I also start widening those traces that testament hold a bit more rife. You can use your judging plus there are trace width calculators online.

I so chose a local PC board manufacturing house. I ran the "exportation Gerber files in a ZIP clum" function in the CAD program, and transmitted that bundle to the manufacturer. The sign that I old has their own DFM prevue web website where you tush upload your bundle and information technology volition mechanically send back off a report of errata or success. You then form changes to your design (usually rattling minor) and try once again.

When I was confident that the house would be happy, I printed out the PC board layout art and manually followed the traces, hand-re-creating my schematic. I did this to be as sure as possible that there were none mistakes.

You can have your house Doctor of Osteopathy PC boards only, operating theater have them stuff them as healthy (for a strong redundant toll). Because of grade-constructed rise and because I treasured to go though the use, I chose to have them do the stuffing.

The other thing the PC board house then wanted was a detailed Bill of Materials (BOM), listing, for each part, the figure (e.g. "C3", which they correlate with the CAD file cluster), measure, precise manufacturer name (e.g. "Kemet") and precise part number (e.g. "T491A334K035ATCAPT3216N-L"). The CAD program can automatically produce a BOM as only-formatted text, but they wanted it in a Microsoft Excel file anyway.

The unalterable affair the Personal computer board house wants is money :-) .

About a week later, I had finished (and stuffed) PC boards.

Stair 10: Pressure Principle Mechanically skillful Verbal description

We created a Plexiglass acrylic enclosure that essentially takes a replacement electrical relay and makes it taller by sitting "happening pass of" the replacement relay. We use the replacement electrical relay's connector and replacement relay's, advantageously, relay. The relay contact-to-connector-blade connections are left unchanged. Only the coil (solenoid) wires are "intercepted" and sent to/from the PC board.

We created a jig to aid assemble the Plexiglass enclosure, soh that we could make individual if required, but as wel to allay construction.

We used smoked high-temperature Plexiglass so that we can visualize the LEDs. It's important to use of goods and services the proper resinous for it. We constructed a rectangular enclosure that extends the "height" of the AC Delco relay and has the PC board decorated "preceding" it. The existing male connector pins on the "bottom" of the relay continues to be used (to plug into the Viper egg-producing connector) and a black 6'9" 16AWG cable to a ground lug pigtail wire to append GND (GND is not useable at the electrical relay connector, and we suffice non privation to require the user to cut whatsoever cables).

It is important, when assembling, to make sure whatever of "your" wires do non interfere in the mechanical operation of the relay, e.g. getting crowded in the contacts or blown parts.

It should be able-bodied to withstand bumps, shocks, and continuous vibration.

It should be able to defy temperatures of dormy to 85 degrees C. The Ac Delco relay coil generates 50 degrees C all by itself. On a medium-hot twenty-four hours -- even though the trunk seems fairly cool initially of a drive -- the Viper's legendary passion generation, the hot-running relay, and the sealed enclosure, all combine to cause temperatures inside the enclosure to easily reach 65 degrees C. Brawl non use adhesives that can't stand the heat. Do not use hot glue. It should also be able to treat temperature cycling e.g. as if the machine were parked outer in freezing conditions.

Step 11: Victimisation the CAD Files in This Instructable

A hardly a things have been left for you to customize in the CAD files. You need to be aware that technically you are modifying your powertrain, and so you should have comely engineering acumen. Do not proceed unless you know what you are doing and have a substantial history of having built reliable, deployed projects. It is necessary to put you in the grommet as an active applied scientist, and devising these changes will do that.

Look for "See Schoolbook" comments and annotations in the software, schematic, and board silkscreen.

You will notice that the software has two places where you pot adjust the functionality of the timebase, one of which is asterisked with "See Text", the other ane is not marked. Also hold how the port is written to. Adjust these places.

On the schematic and on corresponding areas of the PC board, you will notice deuce places in the circuit for customization. See notes in the schematic drawing and matching silk screen print annotations on the PC room. You may want to alter those two places.

Step 12: Hyrax Blinkenlights

What would a project like this be without blinking lights? Boring!

The LEDs are studied to give decently-rich debugging info. You can use this during bringup on the bench but likewise to see what is occurrent in-cable car preceding the interference.

The orange indicator, LED3, tagged "P" for "Pump", always shows what the electrical relay volute is doing and confirms that the relay coil is actually getting power. We have an LED here because you can't hear relay clicking in a noisy car OR shop environment. The chosen color is chromatic to connotate "Fire" or "Charging". Red was not chosen because that would suggest "error" or "fault" or "risk".

The yellow indicator, LED1, labeled "V" for "Viper", shows (1) that actual +12V power is coming in from the car (steady) and (2) that the software thinks that the gondola is giving us a "pump along" command (speedy blinking). The blinking is deliberately a "talk-back" CPU output as a confirmation of how the CPU is interpreting the input (levels), and that encode is running. The steady is deliberately a "dumb" power denotation. The chosen color is yellow to suggest "Imperatives from the Viper -- Viper Power Connected, and/or Viper Fuel Statement Happening"; scandalmongering is kind of a "force out" color but not as "fiery" American Samoa orange, and in my idea seemed middling of a "command" color.

The green indicant, LED2, labeled "B" for "Boost", shows (1) that actual +3.3V power is approaching from the regulator (steady) and (2) that the software has decided to be in its "boost" mode (slower blinking). The chosen coloration is green to suggest "Local Power Happening, and/Beaver State Get on".

Step 13: Bringup

When I get the PC boards from the manufacturer, the first thing I do is a careful visual review with a loupe or one of those review microscopes you fundament get online. They cost about $200 and are essentially a camera and CRT screen on a stand. I flavor over entirely the parts and the solder joints. I try to follow well-nig traces and components and know their places in the schematic. I especially check that atomic number 102 components have been installed backwards.

Past I use a voltmeter in the Diode/Persistence mode and check that the LEDs cause been placed aright -- not backwards. Some LEDs with some voltmeters will dimly burn when forward-bias tested this agency, which is a great confidence builder at this stage.

Next, IT's meter to apply 12V from a bench power supply. Connect +12V to J1 and GND to J2. Current drain should be close to 30mA without a electrical relay. This is the "smoke test" moment of truth. We don't want it to smoke!

The unhealthy and Green LEDs should hinge on, steady, metier-dim-ish. If they preceptor't, power bump off straight off. The yellow LED indicates 12V is flowing to where it should and that there are nary shorts; the green LED indicates that the 3.3V regulator is working and that there are no shorts. Since there's no software yet, nothing else will happen.

Next, it's prison term to program. I associate all 5 pins of J5 to electrical circuit clips (or you can temporarily solder wires to it, look-alike thin wire wrap wires); the other side goes to a 5-pivot header which is plugged into a Microchip, Iraqi National Congress. "PicKit" in-circuit programmer. The some other terminate of the programmer is USB that connects to your electronic computer. You then run Atmel/Microchip's online WWW-based IDE and Java software to program the device. Sometimes the PicKit firmware is first updated; a kicking loader then (patently) written to the PIC16F18855 on the PressurePrinciple board; and finally your software itself. The Pressure Precept program takes nearly 2% of the code blank even with the kicking loader overhead. By the bye, you do not notice any initialization delay when coming out of reset; I say boot dock worker, but there doesn't look to be anything clunky going on.

Encipher volition not start functioning until you unplug the PicKit from the PressurePrinciple board.

When code starts running (on reset OR power-up), the green LED should winking for 11 seconds, hiccup, and so blink for another 3 seconds, and stop blinking and go back to dim steady-DoS.

The incoming maltreat is to dress a full-up test. Power down. Connect the relay (ringlet) between +12V and J4. Stage for a momentary test change/contact between J3 and GND.

Make sure enough J3 is not connected to GND. Power up.

The relay should click on, the amber LED should turn on, the leafy vegetable LED should blink, and the yellow LED should be sweetheart. This should stay like this for 11 seconds.

Then, the relay and amber LED should turn off for a hiccup (300ms) and now ric back on. This will check for another 3 seconds.

At last, the electrical relay should click off, the amber LED should turn off, and the ill LED should stop blinking. Things should halt this right smart.

Now connect J3 to GND. The relay should click connected and the amber LED shoud turn to along. And frailty versa. In fact, from this point fore, the relay and amber sunstruck should chase after whatever J3 does. Whenever J3 is "on" (siamese to GND), the yellow LED should blink rapidly.

If J3 is "happening" (connected to GND) during the "boost phase" green LED blinking, that should have no effect. And the 300ms hiccup should non happen if J3 is "on".

In short, whenever J3 is "on", the relay should always be "on", bar none, "promote" phase or non.

And whenever J3 is "off", the relay should be "off", with the ONLY elision being during the park-nictitation 11+3 second "encourage" phase.

After the boost phase is complete, the relay United States Department of State should forever faithfully track the J3 stimulation.

In that respect should never follow anything weird happening, such as the 300ms singultus or software system issue restart, at the time when a 16-bit foresee would otherwise tramp over, which is after about 11 minutes as described above.

Step 14: Assembly

Using the gigue atomic number 3 described in the Mechanical Description, an enclosure is constructed.

The AC Delco replacement electrical relay is opened up. A wire is siamese to siphon off (connect in parallel) the +12V (plus) side of the relay coil, which goes to J1 of the Personal computer board.

On the minus side of the relay coil, the coil is disconnected and a wire is connected to it so that that side of the coil is exclusively routed to J4 of the PC board.

The blade pin that was erstwhile connected to the negative position is now routed via a wire to J3 of the PC control panel.

The incoming soil 16AWG pigtail wire entry the acrylic inclosure is routed to J2 of the PC get on.

The PC board is decorated portrait-wise "above" the relay. It is vitally important that the wires do not step in with the mechanized operation of the relay, even when subjected to shock and being mounted in any predilection with respect to gravity. To this ending, we really replace the "roof" of the relay, with a small hole drilled in it where the 3 wires exit, so that wires will non bunch and press out on the electrical relay contacts.

Step 15: Testing &ere; Initiation & More Examination

Test, examine, test. I cannot emphasize this enough. Single of the 3 boards I got back from my first run at the (local, in Silicon Vale!) PC display board turnkey manufacturer had a pernicious defect: Under el temperature, a pin on one of the ICs came loose, causing a failure during our first run drive.

I did not want to do my own surface mount soldering, and then I opted for full assembly: some PC card fabrication and component stuffing. That's great, but I should induce known that vendors of critical applications carefully test items that other vendors supply, themselves, earlier integration, and I should hold done the same ahead testing it on the road.

So you have to essa -- low-level overhead railway temperature, after putting it in the freezer overnight, at completely kinds of voltages, and below electrical shock e.g. away whacking it with a screwdriver handle.

My testing protocol has been as follows:

1. Do the bringup and assembly as delineate above.

2. Perform a full operative test at 12V. Test it for a full run of 15 minutes looking for functionality and timer overrun. And then run it at 8V and all should nonetheless work on (with weak electrical relay click). Then run it very briefly at 16V. Practice a "power supply glitch" test. Make a point it comes out of readjust/brown-knocked out each and all time. Finally, leave it running at 14V.

3. Let it run at 14V for a long time like 1-2 years.

4. Put to sleep IT in the freezer overnight.

5. Latch on hot by putting information technology in a box and blowing on it with a hand blower. I had a small hole in the enclosure and put a temperarture probe in IT and get it up to 60-65 degrees C for a while. Interrupt few multiplication with tests of functionality.

6. Patc still hot, do a "smack trial" by hitting it with the handle end of a screwdriver at a rate of several times per 2nd. Rotate it 90 degrees and repeat. This simulates car vibration.

6. Put information technology in the freezer overnight again.

7. Psychometric test it one final time on the bench again.

8. Install it in the elevator car. The connector gens is C-314 and economic consumption the left back composite assembly attach deadbolt for background; construe photos.

9. Do a "driveway" trial where you turn happening the ignition to locomotive engine mode but don't crank it. Let it go on thru the hike up & off cycle per second. Turn the car off.

10. Do a rule car start, and accept a test private road around the block in residential streets.

11. Go with a longer 60 minutes-long trip on rise streets (no more freeways). Stop a couple of multiplication in parking scores and ray-start. Hopefully almost carrel the car a a couple of multiplication to test against glitching. Park the car overnight.

12. Live for an all-day force, preferably a bumpy intimacy in suppression heat.

Step 16: References

Relay (role for female connectors for testing exclusively; you cannot genuinely use these relay race because they are hard to break apart): Search for: B01N66W2XF

Microscope:

Search for: Koolertron-Wireless-Microscope-Adjustable-Recorder

Relay (for replacement/use):

Hunt for: AC Delco 15-50961 19189419

Microcontroller:

https://World Wide Web.microchipdirect.com/product/PIC16F188...

Software maturation tool for microcontroller:

https://World Wide Web.microchip.com/mplab/mplab-xpress

https://World Wide Web.micro chip.com/mplab/mplab-code-configu...

Rating gameboard for microcontroller:

https://www.microchip.com/DevelopmentTools/Product...

In-circuit programmers for microcontroller:

http://ww1.microchip.com/downloads/en/DeviceDoc/50...

https://www.micro chip.com/Developmenttools/Product...

http://ww1.microchip.com/downloads/en/DeviceDoc/00...

CAD for creating schematics and Microcomputer boards:

https://www.autodesk.com/products/eagle/overview

(I recommend you get Eagle Standard and remuneration the unpretentious license fee)

Be the First to Part

Recommendations

  • Anything Goes Contest 2021

    Anything Goes Contest 2021