Friday, April 22, 2005

Vacation time

I'm off to Romania in 12 hours (hmmm... I have work before then and sleep before that, gonna be a tight squeeze).

I'll be spending a week in Bucharest with my parents and family friends (who are Romanian). I'll post some pics as soon as I can after I get back.

Thursday, April 21, 2005

Latest hack

So my cousin moved in with me almost two weeks ago. We've been getting along great and having lots of fun.

One problem. We both have wireless keyboards and mice. Can you guess where I'm going with this? Yep, they interfere with eachother. After reading Logitech's FAQ, their only solution was "move farther apart". Thanks.

After a bit of brainstorming with one of my coworkers, I came up with the idea to put some shielding around the receivers. So I grabbed an old kleenex box, wrapped it in aluminum and attached a ground wire. Not having another kleenex box (the perfect size), we used the box that last night's chicken helper came in for the other one. :)

It certainly helped... both mice work at the same time now, but my keyboard still misses some letters when he's typing :(

We'll play around with pointing the boxes different directions and such later, it was getting late last night.

My receiver:


My cousin's receiver:


The whole desk:


That's the latest episode of Numb3rs streaming off my TiVo and playing on the middle monitor.

Wednesday, April 20, 2005

Today's Sobe lid

"The big yellow one is the sun."

Monday, April 18, 2005

Carputer pics part 4: Building the computer

When building a computer for use in a car, there's a few things to consider... power, heat, size, shock protection.

Getting the easy stuff out of the way, I started with a small form factor (SFF) box. It's a P2 so it's not so power hungry and doesn't run as hot as today's current systems.

Next I swapped out the standard HD for a laptop drive. Being designed for laptops, they're much more shock tolerant than desktop HDs. When I mount the computer in the car, I'll also add some shock protection there... not sure exactly what form yet.

The first hard part was the power supply. Having previously speced one out and ordered it, it was time to install it. Putting the new PS where the old one was would put it too far for the ATX connector to reach the mobo :( Instead, I had to put it where the HD was. Of course, I then had to relocate the HD. After a quick trip to Home Depot for some self-tapping screws, my cousin Eric helped me get it all mounted:

The PS is mounted with standard mobo standoffs and is pretty securely in place.

With a computer that is now wired for 12v DC, I needed some sort of power plug. The PS came with wires, but I didn't want to just solder it into the car... makes upgrades tough :) So I took a 18" power cord that's used as a pass-through (from older PCs to their monitors so you have one switch that turns everything off). I cut it in half and soldered half into the carputer's PS. I soldered the other half into the car. Now I can easily plug and unplug the carputer.

The next hurdle was that taking the carputer out to the car for testing, I ran into a problem. It booted up ok, but didn't login to my wifi AP. Without a monitor and keyboard, I had no way of knowing what was wrong (software error, low power, weak signal...). So now I needed a way to power the carputer in the house for debugging.

Getting 12v DC shouldn't be hard... just use an old PC power supply. Well, it's not quite that easy :( An ATX power supply won't turn on until the mobo tells it to. So when it's not in a computer, how do you tell it to turn on? I found a couple guides on the 'net, but they didn't match up to what I was seeing with my volt meter. Turns out, I had an old Dell PS from a time when Dell made PSs with an ATX connector, but all the pins in different places.

Tossing the Dell PS, I got a real one and figured out which pins to short. Still no go :( More reading... turns out that you also have to put a load on the PS or it won't turn on. So I hooked up an HD from another machine:

that's the carputer under my testing PS and it's powering the HD in the case just so the PS will turn on. A bit odd, but it worked great.

Also note that for the carputer's PS to turn on, it waits for 5 seconds after the car starts (which is why it doesn't count as a load on the ATX power supply at first).

I also needed a way to simulate the ignition switch from the car on my new power supply. Scavenging the power button from a dead PC, I mounted it inside the PS with just the button sticking out:


Using another power cord, I put a plug on the PS so that I could power the carputer. Time to be very careful.... this standard looking plug has 3 pins, but they're: +12, Gnd, Ignition.... not 110AC!

I carefuly chose to put the proper end on the carputer side so that while it's in the house, it can't be plugged into an outlet with a normal cord:


Hacking a bit with a dremel, I added an on/off switch and mounted an old, dead HD to the top:


With this rather atypical setup, I'm now able to use the carputer in the house for testing/debugging/upgrading. A few quick fixes and now it's ready to go in the car.

Thursday, April 14, 2005

Carputer pics part 3: Prepping the car

The empeg comes with its own docking sled:

but it doesn't have an ethernet connection when it's in the sled. For most people, that's not a problem, but for me, I want ethernet in my car :)

The solution is to add an ethernet connector to the sled:

Just be sure to break off the clip on the RJ45 so you can still remove the empeg from the sled.

Needing to hookup power to both the empeg and my stock HU, I had to wire up custom wiring harness:


Now I can connect both head units and I've not cut any wires that came with the car:


The completed empeg looks like this:


Moving on to the actual carputer, I needed to get power to the trunk. Strangely enough, this involves taking off a wheel:


That plastic piece hanging down is the wheel well liner. Having unclipped it, I can now pass a wire from the engine compartment, into the wheel well and through to a gasket in the firewall to the cabin:


It was tough to get through the gasket and I didn't want to damage it (as it protects all the wires from getting cut on the edge of the hole). I took a small piece of coat hanger and zip tied it to my power wire. Then I cover the zip ties with tape and poked it through. Onn the other side, I grabbed it with plyers and pulled it in:


As long as I've got the car apart to run wire, I should also run ethernet (light blue) from the empeg to the trunk and an ignition sense line (dark blue) too.


Gathering the wires, I ran them along the driver's door frame


then past the rear door


then under the back seat


and into the trunk


The brown wire there has since been connected to the body to complete the circuit (lift the carpet, file off some primer, put in a self-tapping screw and you're done).

Now I've got a power plug, ethernet and an ignition sense line in the trunk. That should be all I need to do in the car (until it comes time to build a mount).

Software updates

Some mostly minor updates

Wednesday, April 13, 2005

Carputer pics part 2: Moving the climate controls

After failing to find a pre-made extension cable (or even a wiring harness) for my climate controls, I set out to make my own.

In the close-up at the end of the previous article, the left connector has two rows of 10 pins and the right side has two rows of 8 pins. The brown plug is for a light that sits below the climate controls and points down to illuminate the ashtray (coin tray) and the cigarette lighter (power plug). Not needing a light inside my armrest, I removed it. The backlight is internal and still works fine.

Needing to make both a female connector to plug into the back of the climate controls and a male plug to connect to the wiring harness in the dash, I started working on the female side first.

My first attempt was to use an IC socket. The pin spacing was just right, but the two rows were too far apart. To bring the rows closer together, I cut the ends and sanded down the nubs that were left behind. Simply gluing the two halves together (lacking the previous gap in the middle) brings the rows too close. To compensate, I found that a piece of floppy drive ribbon cable glued in between gave the perfect spacing:

Right: a standard IC socket.
Left: modified to get the two halves just close enough.

It proved too difficult to wires soldered to the legs without having some of them come off while working on the others. It was also problematic to have the legs (and wires) pointing stright out becuase as mounted, there isn't much room below the bucket in the armrest. Just a couple mm below the armrest is the airbag sensor... something I really can't move.

Searching for another solution, I gave a PC floppy drive ribbon cable a try. Two problems: 1) the two rows of pins on the cable were way too close together so I was only hitting one row and 2) the pins on the climate controls are shaped like a popsicle stick while the pins a floppy drive are square. Both of these problems seemed solvable. To make the pins fit better, I sanded down the face of the floppy connector:


The connector now fit onto the pins more easily, but didn't make good contact. Looking closely at the picture above, you can see the gold-colored contacts are only on one side of each hole. Because the pins weren't square, they sometimes wouldn't make contact. I needed a way to make the hole a little be smaller. Enough smaller to make good contact, but not so small that the pins wouldn't fit. As I already had a floppy cable in my hand, I stripped the plastic off one of the wires and pulled seven strands of wire out (each about the thickness of a hair). Twisting the strands together, I put the mini bundle into a hole. To keep it in place, I folded it over and put the slack into the hole across from it. Since the climate controls' pins had their rows spaced too far apart, the second row of holes on the floppy cable wasn't going to be used anyway, so this wouldn't be a problem. Using a dot of super glue, I held the wire in place. I then repeated the process for each of the other seven holes on my test cable. The picture above shows four of them complete.

That still leaves the problem of the row spacing. How could I get the second row? Simple: use two floppy connectors. It took a lot of tweaking with a dremel to get the pieces filed down just right so that two of them together would fit into the connector. From the side, the look like this:


Confident that I had a working connector, I started soldering the ribbon cable some cat5 (plentiful around my house and I didn't have 3 feet of ribbon cable):


Next up was to make the male connector. Knowing the approx pin size, I went with a laptop<->desktop IDE adapter:

Again, the problem of row spacing came up. To get the rows farther apart, I use a dremel to cut off half of the pins:

and then stuck two of those together which came out to be perfect.

I took it out to the car for a test fitting:

and it seemed to work pretty well:


To get the wires to go inside the armrest, I'd have to make the one non-reversible step in this whole ordeal. I had to cut out a hole. Wanting to make sure I got it right the first time, I painted the frame of the connector on the back of the climate controls, then lowered them into place within the armrest. This left a nice mark inside the armrest showing me exactly where to cut:


If I ever do want to put the car back to stock condition, I can simply cover the hole with a piece of plastic, then put the stock felt square back on top :) Othewise, you'd still have to pick up the felt to see this:


And with a great sigh of relief, I was done and had working climate controls:

For the curious, it's been over two years now, and they still work just fine in there... helps that they're all digital and the sensors are remote.

Monday, April 11, 2005

Carputer pics part 1: Empeg install

It started with a recon mission. I had to figure out the best place to install the empeg player.

The center panel started out with the stock Bose head unit above the climate controls.


The empeg mostly fits down inside the center console

but according to the developers, it would be a bad idea to mount it vertically. Also note that when the lid is closed, it needs space to go down inside... this isn't going to work.

Maybe on top of the air vents, just under the clock (or even replace the clock)

but that would require major surgery on the dash and a lot of work to make it look decent afterwards.

Hmm... it appears to be about the same width as the climate controls

this will require further investigation.

It's a little bit deeper than the climate controls


Seems like it could be mounted in the same frame along with the stock head unit


Ok, but then where would the climate controls go? In the armrest?

doesn't seem to fit.

Ah, but taking the faceplate off, there's plenty of room.

I think we have a winner.

Next problem: the wiring for the climate controls has about 3 inches of slack... I need an extra 3 feet! I'd rather not cut the wires and splice in extensions. That'd be really ugly and hard to solder all those wires sitting in the car. At this point, I should also mention that I'd like to be able to put the car back to stock so I want to avoid any permanent changes.

I called Nissan and asked if they sold connectors for the climate controls (should be quite easy to make some extension cables). The conversation went something like this:
  • Me: "Hi, do you sell a wiring harness for the climate controls in an '02 Maxima?"
  • Nissan: "Let me check... yes, it's about thirteen fifty or fourteen fifty, depending on the model. Read me your VIN so I can find the right part."
  • Me: "Well, I'm driving, but that's a good enough estimate. Do you also sell a reverse wiring harness that matches that?"
  • Nissan: "No, just the forward. But for your fourteen hundred, you get all the wires for the entire dash, what else would you need?"
  • Me: "Fourteen hundred?! I don't need all the wires for the whole dash, just a $10 harness for the climate controls."
  • Nissan: "Sorry, can't help you with that."

That was disappointing, but not enough to make me give up. I brought the climate controls in to work and a coworker helped me search through AMP's catalog of connectors. Eventually, we gave up as there's no part number or model number on this connector, nor on the circuit board.

(plugs on the back side of the climate controls)

Still determined, I started to wonder how hard it could be to make a connector that would fit on to the back. Then realized that I'd also have to make a counterpart to be the other end of the cable.

Wednesday, April 06, 2005

Software updates

A handful of updates:
(or two hands depending on how many bits your hands hold)

Sunday, April 03, 2005

Carputer progress

I've been concerned that since I'm not using a machine designed for low power that I might be drawing an excessive amount.

A few days ago, a coworker and I went to my car at lunch and measured the power usage for my carputer. Measuring the inverter, GPS and carputer all at once, the draw is 5.5A @ 12.5V (with the car off). So that's about 70W.

Good news. Now I know I'm in the right ballpark so I went ahead and ordered a 90W power supply. It's one that's specifically designed for running an ATX computer in a car so it's going to eliminate the need for the inverter (should draw less power just by being more efficient). It's also smart about turning off the PC: when the car is turned off, it will tell the PC to shutdown nicely. If the PC doesn't, it will cut power after a few minutes to save the car's battery.

Now I can go back to focusing on the software side. Most of the wireless software out there seems to be geared toward cracking into encrypted networks. That's not what I'm interested in. Nor do want to just drive around and make GPS-based maps of where WiFi is. I think it's far more useful to use the WiFi for internet access (shock -- yes, I actually want to use it for what it was intended). Basically, what I'm looking for is a way to connect to my home AP if it's in range and any other open AP if I'm away.

The (apparently defunct) AP Hopper util seemed like a good candidate, but it doesn't appear to like my ACX111-based card. There could be a number of reasons for this... acx drivers were written by enthusiasts and may not be complete, I may have a defective card, maybe I have the wrong firmware file. The ipw2100 in my laptop works much better so at least I have something to compare to.

The first priority is to have it recognize my home AP so I can login when it's in my garage. The first feature I plan to implement is using it as a router/NAT so I can have my home PC upload new music to my empeg while it's still in my car. I'll probably end up using OpenVPN to do it.