Using Cals: What is Needed
by Russ Knize on Jun.04, 2008, under Automotive Electronics
To use any of these calibrations, you will need to get the necessary equipment and modify your Engine Control Unit (ECU). There are basically two ways to go about putting a calibration onto an ECU. You can either use a socketed EEPROM (electrically erasable programmable read-only memory), which must be removed and programmed outside the ECU, or you can modify the ECU so that the EEPROM can be erased and programed remotely (“flashed”), which requires the necessary software and cables. The ECUs actually come from the factory with EPROMs, which must be erased with ultraviolet light. The ability to flash the ECU is especially useful if your ECU is a SMEC (single module engine controller) or SBEC (single board engine controller), which are located behind the battery and have electronics that are buried is potting material. If you have a logic module (1987 and earlier), it is located in the passenger compartment behind the passenger-side kick-panel and is not potted.
Hardware
If you intend to use removeable EEPROMs, you will need an EEPROM programmer. If you intend to use EPROMs (which I sometimes do), you will need an EPROM eraser. I own a Needham’s Electronics EMP-10 programmer and a Datarase II EPROM eraser. If you plan to flash your ECU, then you will need a cable and interface, as well as somewhat more extensive modifications to the ECU. The interface is available as a kit from Chad Clendening. The modifications needed to flash a SMEC were documented by Graem Schmidt in his very useful document.
Software
There is a nice variety of software forming around this effort. They are listed below:
- D-Cal – a very nice graphical calibration utility by Derek Beland
- ChEM – the original graphical calibration utility by Geoff Allan
- SMECFlash – utility by Chad Clendening needed to flash a SMEC via his serial interface
ECU Modifications
Obviously, some modifications are needed to your ECU to facilitate installing custom calibrations. If you plan to use the removeable EEPROM method, you will only need a 28-pin socket and some extra EEPROMs (or you can just reuse the EPROM you already have if you have an eraser). You will then need to desolder the EPROM from the ECU board and solder in the socket. If you are not skilled with a soldering iron, then I would recommend finding someone who is. The boards are double-sided and can be tricky to work on without damaging the traces. If you are planning to flash the ECU, then you don’t necessarily need a socket, but I would recommend one just in case the EEPROM gets fried. See Graem Schmidt’s document for additional details about the modifications needed to flash a SMEC.
For the socket, you should at minimum get a low-profile, machined pin socket such as Digikey ED3628-ND or A409-ND. Preferably, you should get a low-profile ZIF (zero-insertion force) socket, such as Digikey 3M2803-ND or A347-ND. The ZIF socket makes extraction and insertion much easier and safer for the chip and the ECU board, though probably isn’t necessary if you plan to flash. If you have one of the Mopar Performance ECUs, then you might get lucky as they are sometimes already socketed.
The EEPROM you need depends on the model year ECU that you have. The 1984 electronics are probably not suitable for custom calibrations. They apparently use bipolar PROMs (similar to PALs) and little has been done to understand them at this point (though that doesn’t mean it is not possible). The 1985-1986 electronics use a pair of 16kx8 EPROMs (one for the code and one for the calibration tables), but they do not have a hardware timer and it doesn’t take much to upgrade to the 1987 electronics, which were the best from the Logic Module era. These are the devices used on the various modules:
- 1985-1986 Logic Module: pair of 8kx8 EPROMs (27C64)
- 1987 Logic Module: 16kx8 EPROM (27C128)
- 1988-1989 SMEC: 16kx8 EPROM (27C128)
- 1990-1993 SBEC: 32kx8 EPROM (87C257)
The 27C/87C series EPROMs require an ultraviolet eraser to clear them. The 28C series EEPROMs are erased by the programmer itself. The 128 kilobit size has been obsoleted by most manufacturers but it can be replaced by the 256 kilobit parts, which have the same number of pins. Therefore, the part you want to get for 1987-1989 electronics is the 28C256, 150ns, industrial temperature (-40 to 85^C) EEPROM, Digikey AT28C256-15PI-ND. If you don’t plan to flash your ECU and have an ultraviolet EPROM eraser, you can get the 27C256 EPROM equivalent for about one third of the price (Digikey FM27C256QE150-ND). Since the 1987 logic module only uses half of the 256 kilobit part, you can connect the A14 pin (pin 1 on 28C256 or pin 27 on 27C256) to a switch that either grounds or raises it to 5V and program two, seperate calibrations in (i.e. street vs race or new vs previous cal).
The Daytona: May 23, 2008
by Russ Knize on May.23, 2008, under Daytona
Last night/this morning I finally fixed a few pressing issues. One was the boot on the driver’s inner CV joint had chewed through itself a while ago and I’ve been meaning to put a new one one there for some time. I discovered that the Driveshaft Shop Level 3 axles have the tripods welded to the shafts, so they have to be taken apart from the outer CV end. Also, the inner joints have some kind of fiber reinforced plastic cap that seems to be there to keep the tripod in the tulip housing. The problem is the boot seals to the cap and the cap seals to the tulip with a rubber seal. On the other axle, grease is coming out between the cap and the tulip, so I am going to have to deal with that at some point..
The big project was replacing the shift fork pads on the 1-2 and 3-4 forks. I’ve been limping 3rd gear along for over a year now, as I cheezed it pretty bad on a hard shift one day but it was still usable. A week or so ago I did the same to 2nd gear, rendering it useless. I hoped it was just the pads and so I bought some new ones. Thankfully, that’s all it was. The trans looked clean inside, though the sprags for 3rd and especially for 2nd gear are pretty chewed up. It shifts great now, so I am not going to worry about it.
Finally, both of the outer tie rod ends are so sloppy that they have about 1/2″ of play now. They are only a few years old, so no more Moog suspension parts for me. I got the more expensive ones from NAPA (Spicer I think). Same brand as the new ball joints that replaced the failed Moog joints and are holding up well.
NEdit
by Russ Knize on May.22, 2008, under Linux
“NEdit is a multi-purpose text editor for the X Window System, which combines a standard, easy to use, graphical user interface with the thorough functionality and stability required by users who edit text eight hours a day. It provides intensive support for development in a wide variety of languages, text processors, and other tools, but at the same time can be used productively by just about anyone who needs to edit text.” Features include:
- Very complete functionality. NEdit is the primary editor for thousands of Unix and VMS programmers.
- Thorough consistency with Motif, MS Windows, and Macintosh conventions.
- Designed for intensive use: keystroke efficiency, fast response time, streamlined interaction.
- Unlimited undo.
- True multi-window, fully graphical design.
- Mouse-based editing.
- Secondary/quick action selections.
- Fully integrated rectangular selection.
- Interactive WYSIWYG dragable selections.
- Maximum compatibility with X, Motif, and inter-client protocols, for interaction with the widest possible range of X programs and systems.
- Easy to learn: just point and type.
- Capabilities are clearly organized and presented in top-level menus.
- Comprehensive on-line help.
- No special knowledge of X Windows required, all important options are GUI-settable within the program.
- State of the art syntax highlighting with built-in patterns for C, C++, Java, Ada, FORTRAN, Pascal, Yacc, Perl, Python, Tcl, Csh, Awk, HTML, LaTeX, VHDL, Verilog, and more.
- Auto-indent, programmable language-sensitive smart-indent.
- Block indentation adjustment.
- Parenthesis flashing and matching.
- Find lines directly from compiler error output.
- Tab emulation.
- Unix ctags support.
- Client/Server mode for integration with software development tools.
- Programmable: Learn / Replay.
- Easy to use C-like macro language, safe and fully interruptable.
- Includes a library of over 150 built-in editing functions.
See the online documentation and the Wiki for more information.
NEdit is the most powerful and induitive editor that I have found that is available for all of the different types of systems that I use (Linux, Solaris, Windows, etc). The interface is somewhat dated due to its Motif-based GUI, but there are ways to improve its looks and customize the interface.
In Linux, NEdit can have difficulties when trying to make use of the resident Motif libraries. In particular, the GNU lesstif implementation causes a number of problems that lead to frustration. This version is linked against OpenMotif which tends to fair much better. The current stable 5.5 version is quite old and running into problems the more recent XOrg servers, glibc locales, etc. Many of these issues seem to be fixed in CVS, so I am offering a CVS snapshot of the upcoming 5.6 release here.
Packages
Here is the latest CVS snapshot:
- nedit_5.6~cvs20100114-rknize1_i386.deb
- nedit_5.6~cvs20100114-rknize1_amd64.deb
- nedit_5.6~cvs20100114-rknize1_i386.changes
- nedit_5.6~cvs20100114-rknize1_amd64.changes
- nedit_5.6~cvs20100114-rknize1.dsc
- nedit_5.6~cvs20100114-rknize1.diff.gz
- nedit_5.6~cvs20100114.orig.tar.gz
If you are using Debian Etch, you will find that the OpenMotif libraries are missing from the release. You will need to install these backports:
- libmotif3_2.2.3-3_i386.deb
- libmotif3_2.2.3-3_amd64.deb
- libmotif-dev_2.2.3-3_i386.deb
- libmotif-dev_2.2.3-3_amd64.deb
- motif-clients_2.2.3-3_i386.deb
- motif-clients_2.2.3-3_amd64.deb
- openmotif_2.2.3-3_i386.changes
- openmotif_2.2.3-3_amd64.changes
- openmotif_2.2.3-3.dsc
- openmotif_2.2.3-3.diff.gz
- openmotif_2.2.3.orig.tar.gz
Changes in these packages from original Source
- Added proper GNOME/KDE/OpenDesktop desktop and MIME integration.
- Created wrapper scripts to launching NEdit safely and also to the background.
- Added some shell prompt shortcuts.
The Daytona: April 23, 2008
by Russ Knize on Apr.23, 2008, under Daytona
Still my daily driver. Been collecting some odds and ends that should hopefully help the spool department: A Turbos Unleashed cast log header and Turbonetics T03/T04E hybrid single ball bearing turbo with a “Super 50″ compressor and a Stage II exhaust turbine in a .63 A/R housing attached to a Turbos Unleashed 3” swing valve (whew). The header, housing, and swing valve are all ceramic thermal coated to keep temps down and gas velocities high. The turbo flange on the header is larger than it should be, so I will likely need to port the housing flange somewhat.
The Super 70 and ported exhaust manifold that is in there now will end up in the CSX once I get a new cylinder head for it. Trouble is the CSX needs to be running before I put this setup in there….
The CSX: April 6, 2008
by Russ Knize on Apr.06, 2008, under CSX
Well it’s been about a year and a half since I drove the car. This weekend I finally got a chance to tear into it. I pulled the head and tore it completely down. This crappy reman head is pretty screwed-up. The three rear coolant jackets have been ground out and rewelded at some point. There is a small crack between one of the forward jackets and the chamber. The cam journals are pretty chewed-up too, so I think this head is done. Too bad too because it has tight guides and fairly new valves. The plan is to use the original head that came off this car when I got it back in 1998, which appears to have been junkyard TBI roller cam head as the exhaust valves are pretty burnt up. It also has some small cracks starting in the rear jackets, but they are not threatening yet and can be relieved. The guides are worn as well and so it needs a complete rebuild….
I also pulled the trans in preparation for the new TU ceramic/organic clutch that’s been sitting on a shelf waiting for a chance to be installed. I also checked the input shaft and diff carrier play and they seem to be holding up well. I had a little trouble removing the passenger side axle due to the OBX’s tendency to collapse slightly when the bearings are installed. A bit of tapping persuaded it out.
Back to the head…a month or so ago I decided to use this head as my first attempt at head porting. I figured it was no big loss if I ruined it and was still usable if I didn’t. It turned out much better than I thought it would. I made a few mistakes, but it should still flow much better than stock so I figure why not try to run it and see how it does.
Intake, before and after (click for higher resolution):
Exhaust, before and after (click for higher resolution):
The bowls were cleaned up and the ports straightened and blended. The roof of the intake was raised considerably (too much over near the bowls) and the roof of the exhaust was also raised slightly (there is a coolant passage that needs to be watched out for). I also filled the area on one side of the intake ports where core drift always leaves a pocket the undercuts the seat with JB Weld. This is probably where Steve Menegon does it, but I didn’t look that closely at his head on the Daytona before installing it. The floors were smoothed and blended, but otherwise left alone. I did lay back the floor at the exhaust bowl more on the advice from Tyler. I’m now coming up with a way to de-shroud the valves so that it is done equally.
Oil Filters Revealed
by Russ Knize on Jan.24, 2008, under Automotive, MiniMopar
The old Oil Filter Study page has been replaced by a new article: Oil Filters Revealed. It has received a major update to bring it inline with the current market, lots of new pictures, and some completely different filters as well. Many weeks of research went into this one.
Misterhouse
by Russ Knize on Dec.18, 2007, under Linux
Misterhouse is an open source home automation program. It’s fun, it’s free, and it’s entirely geeky. Written in Perl, it fires events based on time, web, socket, voice, and serial data. Perl subroutines and objects are used to give a powerful programming interface. Features include:
- Executes actions based on voice input, time of day, file data, serial port data, and socket data. Serial and speech data can also be read or written to proxies on remote boxes.
- It has a web interface to allow control and feedback from any browser, either on a local intranet or on the internet. Check the Winter’s house at http://mh.misterhouse.net.
- On Windows systems, it uses OLE calls to the free MS VR and TTS engines for voice recognition and text->speech. The high quality AT&T NaturalVoices TTS engine may also be used. If using IE, you can enable remote VR and TTS using an MS Agent.
- On Unix systems, it uses the free Festival, flite, IBM ViaVoice and non-free AT&T NaturalVoices TTS speech engines for text->speech and on Linux IBM’s ViaVoice engine for voice recognition. These engines can also be called from Windows version of mh.
- Reads/writes any data from any serial attached device.
- Speaks the speed, course, and position of vehicles, by interfacing to a ham radio modem.
- Sends/receives X10 data from the X10 CM11 (ActiveHome) interface.
- Sends wireless X10 data using the X10 CM17 (Firecracker) interface.
- Send/receive data to the Ibutton family of devices, including the weather station.
- Reads/writes data from the JDS interfaces (Stargate, Time Commandar, HomeBase) interface.
- Reads/writes data from the HomeVision interfaces.
- Reads/writes serial port data from the Weeder Technologies PIC kits that can process X10, digital, analog, callerID, and outgoing phone data.
- Reads/writes to Applied Digital’s CPU-XA and Ocelot interfaces via the cpuxad socket deamon.
- Reads data from IRman infrared receiver serial interface and writes to X10 IR Commander wireless interface.
- Code has been written for DSC Alarm pannels, Stargate LCD displays, Slinke IR send/receive, Marrick X10, RCI X10 sprinklers, Xantech preamps, ISDN modems, voice modems, ComPool and Aqualink pool equipment.
- Reads and writes from the lcdproc server which interfaces to inexpensive LCD modules and keypads.
- Shares a modem for caller ID and paging.
- Reads/writes internet mail, http, and ftp files unattended.
- Sends/receive instant messages using AIM, MSN, or Jabber.
- Reads MS Outlook, Unix ical, or the built in Organizer calendar for event reminders and VCR programing.
- Uses free internet TV web pages to allow for VCR programing and show reminders.
- Has an entertaining ‘chatbox’ web page that will listen to all your problems.
- Can monitor NetGear RT311 / RT314 or LinkSys syslog router traffic, so you can track stuff like incoming web hits and online game time.
- Uses Voice XML to interface to tellme.com. To try it, dial 1-800-555-Tell, then after you ear ‘tellme more’, enter 1-46630 (1-HOME0). With a XML browser (e.g. IE), you can see a test vxml menu here.
- Use simple menu templates to generate menus for LCD, VXML, or WAP phones. If you have a WAP phone or WAP browser, you can see this test menu with this url: http://mh.misterhouse.net/sub?menu_wml. You can also walk the menus with an html browser with a frames version or a a simpler version . These menus can also be controled with a single switch (e.g. air sip switch for the disabled), using audible feedback to select items/states.
- Logs weather data to the wunderground personal weather project. Here’s weather logs from my house
- Here is a list of some users written code files along with standard code files that demonstrate some other MisterHouse features.
- You can use RSS readers to track various data, like phone or speak logs.
(TNC). Brian Klier wrote has a nice article about it. You can see our car position logs here.
See the online documentation for more information.
Packages
The latest release using debconf to configure basic fucntionality:
- misterhouse_2.104-2_all.deb
- misterhouse_2.104-2_amd64.changes
- misterhouse_2.104-2.diff.gz
- misterhouse_2.104-2.dsc
- misterhouse_2.104.orig.tar.gz
The last stable release that did not use debconf:
- misterhouse_2.96-1_all.deb
- misterhouse_2.96-1_i386.changes
- misterhouse_2.96-1.diff.gz
- misterhouse_2.96-1.dsc
- misterhouse_2.96.orig.tar.gz
Changes from Original Source
- Separate code/libraries/binaries to the appropriate places (see README.Debian).
- Created wrapper scripts, init files, etc.
- Created man pages.
- Created a default configuration that is compatible with Debian/FHS.
- Added debconf templates for common code activation and some basic functionality.
debian-helper-scripts
by Russ Knize on Dec.02, 2007, under Linux
debian-helper-scripts is a set of tools to help with the maintenance of a Debian system. It is basically a package of scripts (Perl and Bourne-shell) that I generally install on any Debian system that I maintain. They are:
Packages
Debian on the Xbox
by Russ Knize on Nov.07, 2007, under Linux
Update 01/17/2012: It seems that my internal links suffered from bit rot and broke at some point while moving my website around. I have fixed those. Also it appears that the xbox-linux.org site is borked and has been for some time. I still get emails about this process, so I have annotated some of the steps below as best I can from memory.
Below are a series of Debian packages specific for the Microsoft Xbox. Their purpose is to assist upgrades from Xebian 1.1.4, which is based on a rather old version of Debian GNU/Linux 3.0 “woody”. These packages allowed me to upgrade my Xebian installation to Debian GNU/Linux 4.0 “etch”, with some additional effort. Here is an approximation of the steps required to install Debian on an Xbox:
- Read the Getting Started Guide at the Xbox Linux Project Wiki. The exact methods that you chose depend entirely on what you have to start with and what are your goals. You may have to flash the BIOS, etc. In other words, this is where you have to hack the Xbox so that you can boot Linux. There are several ways to do it and they are documented elsewhere on the Internet. I used a mod chip and loaded Debian into the unused area at the end of the hard drive so that I could still use Xbox Live (though I never did). There are other methods that don’t require hardware mods as long as you don’t mind getting your device blacklisted on Xbox Live. Given the age of this device, I suspect you probably don’t care. One caveat is that the kernel sources below do not have the FATX patches applied. If you plan to install Xebian in the game partition, you’ll need these. I remember seeing them ported to a later kernel by someone else out there.
- You should evntually end up at the Xebian Download page. Download the Xebian 1.1.4 archive of your choice. The “basic” archive is effectively a Debian base install for the Xbox, while the “xbox” archive is a full graphical desktop. Both work on the Xbox, of course. If you are an advanced Debian user and intend to immediately upgrade to the latest stable Debian, the upgrade may be more painless by starting with the “basic” archive and adding packages after the upgrade is complete. I already had the “xbox” archive installed for several years, as it was being used as a MythTV frontend.
- Be sure to read the Xbox Linux Boot CD/DVD Burning HOWTO before burning any images. There are some caveats with the Xbox. Basically, don’t use CD+RW or and RW DVD media because the drive doesn’t like it. CD-RW media seems to work fine as do regular CD-R’s.
- Read the Xebian HOWTO all the way through. I don’t remember anything from this, but there is some information in the README that comes in the Xebian archive.
- Install and configure Xebian per the procedure outlined in the HOWTO.
Once you have Xebian installed and configured, you need to prepare for the Debian upgrade. At the time of this writing, Debian GNU/Linux 4.0 “etch” is the most recent release. This procedure has that assumption in mind. If Cromwell BIOS is used, version 2.40 or higher is required. Obviously, this is a rather old version of Debian. Debian doesn’t support skipping over stable versions, so your best bet is probably to download Etch from the archives and do the upgrade per the steps below. If you only did a base install of Xebian, you might be able to get away with skipping straight to the latest version, but I haven’t tried it.
- Configure your apt sources.list as shown here and execute “apt-get update”.
- Upgrade the kernel and modules to version 2.6 using the packages below. Due to something strange about make-kpkg, the sources may need to be untarred in “/usr/src” for the installation to succeed. This kernel is rather long in the tooth, but I never got around to making an updated one. The patched sources are below, so you can generate your own patch set from the pristine sources and try to patch a later kernel. If you have luck, I will be happy to post a newer kernel here for those who may follow.
- Install the module-init-tools package with “apt-get install module-init-tools”.
- Replace/merge your “/etc/modules” config file with this one.
- Add an entry for the new kernel to “/boot/linuxboot.cfg” as described on the Xebian-1.1.4-Kernel-2.6-Upgrade Wiki page under “Compile the Kernel -> xebian”. You will need to change the “append” line for the new kernel to “root=/dev/hda2 kbd-reset xbox=hdd”, as Xebian uses the obsolete devfs driver. Be sure to leave the entry for the old kernel in case something goes wrong. This one works with the kernel package below. Just use the config file below. It should be self-explanatory.
- Reboot the Xbox with the new kernel. You need to manually select the HDD boot device to make the kernel selection menu appear. If all goes well, add a “default” entry to “/boot/linuxboot.cfg” to make the new kernel the default.
- Now perform the Debian upgrade. There are some caveats with “etch”, so be sure to carefully follow the upgrade procedure in the Release Notes for Debian GNU/Linux 4.0 (“etch”), Intel x86. Some manual intervention is required to get the upgrades to go smoothly, including removing some old packages (hotplug and python2.3 come to mind) and browsing through various scenarios presented by the aptitude tool. This is due to old Xebian cruft. There are caveats to most Debian upgrades, so be sure to carefully read those release notes as well.
- Once the final “aptitude dist-upgrade” has been completed, reboot the Xbox to make sure it comes back up OK.
- Install the “nvxbox” driver for X.Org and place this xorg.conf as “/etc/X11/xorg.conf” to get the X server up. This is going to be a problem for later versions of Debian. If you need X, you may have some difficulty. Definitely look at the nouveau driver as they were actively trying to support the Xbox at one point.
- Replace your “/etc/lirc/lircd.conf” with this one if you were using the Xbox DVD remote with Xebian. The new lirc_atiusb module only returns one byte per code instead of the 3 byte sequence of the old driver.
- Xebian’s “blink” tool to control the Xbox LED will not work, again due to its usage of the obsolete devfs device node structure. I haven’t been able to get it to recompile yet, but a simple workaround is to create the device node manually and creating a symlink to it to emulate the devfs structure. As root (this won’t stick if you are using udev):
cd /dev
mknod i2c-0 c 89 0
chgrp mythtv i2c-0
mkdir i2c
ln -s ../i2c-0 i2c/0
Packages
Linux Kernel 2.6.16 for the Microsoft XBox
This is a recent point-release of the 2.6.16 kernel with the Xbox patches applied and the modules for LIRC 0.8.0. Also available is the patched kernel sources that may need to be present in /usr/src when installing the kernel package. Note that FATX support has not been ported to the 2.6 kernel series yet.
- linux-image-2.6.16.57_xbox.1_i386.deb
- lirc-modules-2.6.16.57_0.8.0-9.2_xbox.1_i386.deb
- linux-2.6.16.57-xbox.tar.bz2
- lirc-modules-0.8.0-9.2-xbox.tar.gz
- linuxboot.cfg
- modules.xbox
- lircd-xboxdvd.conf
X.Org nVidia Driver
This is a packaged version of the original xf86-video-nvxbox driver found in the Xbox Linux CVS. The driver itself is old, but is suitable for Debian Etch (X.Org v7.1.0) and works sufficiently well for use as a media center.
I also attempted to merge the changes from the xf86-video-nvxbox driver found in the Xbox Linux CVS into the xserver-xorg-video-nv driver for Debian Etch (X.Org v7.1.0). This seems to work for me, though it will segfault if you do not set “NoAccel” to “true” in xorg.conf. There is some breakage in the DMA support code that is not present in the older driver, however with the accel disabled the performance of the overlay is poor. It’s not suitable for use as a media center. It probably breaks support other nVidia GPUs too, so don’t try to use it for those.
Version 60.14
by Russ Knize on Aug.30, 2007, under Blueberry
08/30/2007: Version 60.14 (based on “Blueberry60”) – bump FuelFullThrottle point 2 down to 5800uS. Too lean during decel still, so move point 1 of FuelNoThrottle right and up 2 ticks to -14.2psi @ 10.00uS. Move ColdEnrichmentFuelCurveA point 4 from 58.8^F @ 1.19 to 58.8^F @ 1.21.