• Notes on replacing a 6VD1 SOHC with a 6VE1 DOHC

    10/26/2021 at 16:12 0 comments

    This is a work in progress, and will look like one for some time to come. The vehicle in question is a '96 Honda Passport (also known as the Isuzu Rodeo).

    For reasons unknown, the Passodeo decided to eat a spark plug one morning. Ceramics and machined moving steel are a bad mix, great clouds of billowing smoke ensued.

    Why a 6VE1? This area's rebuild shops had at least a 2 month lead time, if they were even willing to even specify one. A rebuilt 6VD1, on reasonable terms, could not be located. A used JDM 6VE1 popped right up. Days of rummaging forums later, the 6VE1 was ordered.

    Comparing the two engines, the 6VE1 looks to be a better laid out engine. Some bolted on pieces were integrated in to the block casting and coolant ports were relocated to require fewer rubber-metal interconnections.

    Step 1: remove body (Looking back, this could be the better choice.)
    alt. Step 1: Remove most things other than the body. We went as far as unbolting and moving the front axle.

    Take note that Isuzu uses a 'forward pull' clutch. If you haven't encountered one, read up about them before beginning.

    Intake Manifold: Using the 6VE1 intake, with 6VD1 injectors stuffed in to it for compatibility with the existing electronics. A bit of grinder work on the manifold helped the fit. At present, the intake control valve is not connected, so the high RPM performance may be a bit less than optimal. It turned out that there was an air leak in the cobbled together intake that caused a check-engine code, or two. Sealing the joints with silicone tape partially cleared up a few of them. Someday, we will have to install a customized intake system.

    Exhaust manifolds: 6VE1 bolted right up to the stock exhaust system

    Bell housing: Mated up after relocating some guide pins. Only a small sheet metal cover remains to be fabricated.

    Throttle: Mounted the 6VD1 cable actuated body on an aluminum adaptor plate. I'll upload an openscad file. Attaching the intake to the air filter box, took a bit of hacking and hacksawing.

    Engine oil dipstick: Checking the oil level may require a contortionist's assistance. 

    Since 6VD1 accessories are on separate belts and the 6VE1 uses a single serpentine belt, some re-rigging had to be done. Mostly, we just swapped the pulleys.

    The radiator fan was destroyed while the engine was in the warehouse. The conversion to a serpentine drive causes the fan to rotate in the opposite direction, so a replacement was needed.

    Pwr. Steering: The ECU is expecting a signal from the power steering pump. If we get a check engine code, we'll go back and swap the pumps.

    Wire Stretching: Sensors were re-arranged and a larger intake manifold means that there are a lot of wires to be moved, cut and spliced. The cam sensor could not be transferred from the older engine, so the new sensor's plug was spliced in to the harness.

    Crankshaft sensor: This was the part that prevented immediate success. Could be that it was damaged or wired differently, but the sensor from the 6VD1 dropped right in. The car started up on the second try.

    The result: There are a few check engine codes to sort out, but it is running quite smoothly and has very good performance.

    Ordering replacement parts in the future will be amusing. Should I order both '98 Trooper and '96 Passport parts, then return the one that does not look right?

  • Programmable Logic Device Primer

    08/13/2021 at 15:39 0 comments

    This page started as a real world test of an idea sprang from a thread on Stack. I'll be adding bits of content here, for many months.

    The focus of the content will be GAL type devices, since I see them as a good starting point in the wide world of PLDs. Within limitations the info here can be applied to older PAL devices, or be expanded to make use of newer devices.

    If you've never used one of these gadgets, the place to start is simple boolean logic. AND, OR, NOT and their friends. Karnaugh maps (K-Map) are nice to know, as are DeMorgan's Theorms, but mastery of these principles are not required, just learn them as you need to.

    Got a handle on boolean? Great! Now grab any old TTL chip in the 7450 to 7465 range, most of those are "AND-OR-Invert" devices. Build a circuit and you have a hard-wired version of a K-map.

    The next step would be in to PAL family of devices, but they're one-time programmable. One tiny logic error and you have an unusable chip.

    Here we go! The part numbers of a GAL device (PAL also) describes the maximum number of inputs and outputs available, as well as the internal post-processing function. A GAL16V8 can make up to 16 of the pins function as inputs, and up to 8 of the pins can be used as outputs. The 8 also describes the total number of "cells". Think of each cell as being a 7450-type device, a 7474 flip-flop, a tri-state buffer and an inverter. All outputs have an internal connection that can be used as a logic input to another cell. However, if you need more than 8 exernal inputs you will have to either reassign an output to be one of the inputs or you could use the clock and output enable inputs as global inputs but lose the flip-flop and tri-state ability. Unless you're making a Signetics 25120 WOM, you'll want to save at least one of the cells for output duty.

    A question you may be asking now is "How many chips does this device replace?" Well, a 16V8 contains 4x 7474 dual D-type flip flops, 8x 8-ish input OR gates, 2x 7486 quad 2-input XOR gates, and a small mountain of 7400s. Your ability to wrestle logic equations (DeMorgan-ize) plays a big role in the answer. My current best wedges (mostly) an 8 bit up/down counter with clear in to a 16V8, requiring a pair of 3 input AND gates and a pair of 3 input OR gates to function.

    That's quite a lot to grasp all at once, and there's more to come. Stay tuned...

  • Dead Pine

    05/02/2021 at 15:36 0 comments

    Drop your PinePhone just once...

    It wasn't a big fall, just a minor nick on the shell and no effect on the screen. Now there is no calling or texting, in or out.

    Place a jumper across two test points to force the modem in to a download mode. Motionless for two minutes while it boots up? Forget that, solder a jumper on the test points. No joy, the modem still not showing up in lsusb.

    At least, the Pine has replacement parts available. It took longer to find the micro-screwdriver kit than it took to swap the main board. (The kit was on my desk.) Load the latest Mobian build, and we are back up and running.

    The Pine is also the absolute easiest phone to develop an app for. It starts like this:


    import tkinter

    That's it! In less than a month, I had an app ready for my Well, well, well project. Much of that time was  learning to use Python.