DashFest JJ's life and project dumping grounds…

29Jun/110

Not so quick n dirty iPhone controlled garage door.

Alright, so I lied in the last post. It didn't work well at all. The software had a memory leak and crashed often. The software was incredibly slow. The AMD Geode PC overheats trying to run XP, and is also UNBEARABLY slow. The wireless network signal was weak, and it didn't have any kind of feedback to tell me the garage door was open or closed. It just sucked.

So I started over:
The same Velleman K8055 USB Interface board.
Used a better mini PC this time. A P4 based box with 768MB of ram. (At least it has SOME grunt)
A high power wireless bridge for network connectivity (good signal now).
An Axis IP webcam to keep an eye on things.
It has magnetic reed switches on the door connected to the K8055 digital inputs to detect when it is opened or closed.
All sitting pretty on a little shelf near the ceiling.

I wrote all new software from scratch. A web based PHP front end running on my webserver. The PHP script communicates directly with the VB program running on the PC, and gives realtime status and control of the door, webcam view, and the VB software even sends me SMS messages when the door is open, closed, or jammed!
Its pretty slick now! Commands are nearly instant, and I can see the status of the door from anywhere.
Need to add security before I can show off the front end to you guys...

15Jun/110

Quick n dirty iPhone controlled garage door

Soo uh... There is a PC connected to my garage door. Is that wrong?

I saw this piece on hackaday today, and thought I'd give it a shot with a different method. I actually managed to complete it in 3 hours!

I had one of these sitting around:

Its a Presidian PIC-1MM Personal Internet Communicator I picked up at the DI for $5. Its basically a tiny low power AMD Geode powered PC running Windows CE. I hacked the BIOS on it a while back and installed Windows XP (requires a BIOS hack to run a custom OS). It currently has a Cisco AE1000 wireless dongle for network connectivity. All running fine from a 12v 1.5amp brick.

Next part:

This is a Velleman K8055 USB Interface board. It allows you to control numerous inputs and outputs via USB digitally, or analog. I built it a while back for an abandoned project, and had no use for it. The relay connected to the side is what activates the garage door opener "button". The capacitor/resistor combo just above it allows the relay to click momentarily, even if the output is constant. We don't want to hold the garage door button down. :)

Now we just toss it all on top of the door opener:

The software:
http://k8055.transcendsolutions.net/
This is a K8055 "Bridge" that runs in windows, and allows any iOS device to control the K8055 from anywhere. There is a $3 app in the iTunes store to install on the phone. Its secured with a "key" to prevent other phones from connecting.

...and thats it! It works great! I will probably eventually write my own software, as the K8055 Bridge software is clunky.

14Apr/110

Retro Mouse

So how do you get a 25 year old Atari STM1 Mouse working on a modern PC?

Rip out these guts.

Took a Microsoft Optical USB Mouse, and hacked and glued the optical window into the "ball hole".

Trimmed the old PCB, so we can utilize the original button switches. Trimmed the new PCB so it'll fit inside.

Soldered wiring from the old PCB's buttons to the new USB PCB.

Jam it all back together... AND...

The original Atari mouse is NOT serial. its a proprietary connection utilizing the DB9 connector. So a USB/serial adapter does not work in this case.

22Jan/114

The NES PC

This project has actually been mostly completed for some time. I just haven't taken the time to rip it back down and take pictures to blog about. Well, today I did. Its different than most other NES PC's in that the PSU is integrated into the NES also. Most others use external power bricks to power. Mine uses a standard PC power cord! It also utilizes the original controller ports for UNMODIFIED NES controller awesomeness. Many others get swapped to USB ports, and they use USB NES controllers, or USB adapters. (Cheaters)

From the front it looks like an ordinary NES.

From the rear it starts to look different.

The first attempt at this build failed, and I ended up starting over. The NES enclosure seemed to not quite have enough room for both a motherboard and a PSU. This is why others end up with a external power brick. I figured out that the TOP of the enclosure actually has more room than the bottom. So I flipped the motherboard upside down, and mounted everything to the top! This is a VERY tight fit, but it works. As you can see, the NES is actually upside down in this picture. The only parts mounted in the bottom half are the HDD, switches, and controller ports. The motherboard backplate needed to be trimmed on one side to match the angles of the NES.

Below is a view of the standoffs that were cut off from other areas in the casing, and epoxied into the lid for motherboard standoffs. Much of the inside of the casings was dremeled off to make room for the good bits.

The original power and reset buttons were utilized, along with the LED. However the motherboard physically conflicted with the reset switch. I ended up removing the switch and replacing it with a much smaller one, epoxied in place. This gave the needed clearance. The original wiring was soldered directly to a section of a floppy connector, which just gets pressed onto the appropriate motherboard front panel header.

The original controller ports are fully functional. You can connect standard NES controllers, and they work great. This was accomplished via the parallel port. You can actually wire many different console controllers to a parallel port, if you use the right driver. The parallel port is capable of handling up to 5 controllers simultaneously! Right now, its just wired for 2. But maybe in the future I'll add SNES/Genesis/etc. controller ports, hidden under the NES cartridge door. :)

The schematics that I found online powered the controllers with the 5v+ available from the parallel port itself. This calls for 5 diodes connected to the port. I also heard issues with the lack of current LPT ports put out, especially with multiple controllers. I decided to scrap the diodes, and go straight for a 5v+ off an unused USB header on the motherboard. This gives PLENTY of current, and I didn't need the protection diodes as USB power is protected on its own. You can see the purple USB header wire in the photo below.  This worked perfectly, and this makes the schematic/adapter wiring only. No parts needed! The motherboard only has a parallel header, rather than a DB25 on the rear. This actually works out perfectly. I used a hacked up section of a 44 pin laptop IDE cable/connector as it has the same pin pitch as the header on the board. The manual for the board kindly gives the header pinout, as it is different than the DB25. The following schematic assumes DB25, NOT the motherboard header


That pretty much covers the bulk of the project. Most of the time was spent dremeling the crap out of the casing. It turned out pretty clean, although I feel I could of done a better job with some of the cutouts.  Ideas for the future include a slim optical drive in the cartridge door as there is enough room.  Might add more controller ports for other console controllers.  I need to build an autostart GUI front end for the emulator, that lets you choose the rom to play using the controllers, rather than needing a kb/mouse.  The reset button should probably be rewired and mapped to reset the emulator, and not the PC.  I have several times now reset the PC thinking I'm just resetting my game! :)

Specs:

MSI Wind Board D510 Intel Atom Motherboard. Link
2GB DDR2 800
60GB Seagate 2.5" SATA HDD
FSP Flex ATX 220w PSU
Currently running XP Pro (yea yea, I should of used Linux), FCEUX for emulation, PPJoy for the parallel port controller driver.

UPDATE! 4-27-11
I installed an optical drive in the NES PC. Check it out:

9Jan/110

Backwards Mario (or other games)

So today I was cleaning the garage, and I see this little cheapo 13" CRT TV sitting there. I was reminded of an old Hackaday post that demonstrated that you can reverse the horizontal deflection coil wires, and get a mirrored image (For some reason I cant find this post). I then thought, "What would it be like to play NES games backwards??"

This is a super simple hack that took me about 30 minutes, but is fun! It adds a new dimension of play to old games.

Find and swap the Horizontal deflection wires on the yoke, as shown here:

Hook up something, and test it out! It took me a couple of attempts to find what pair is horizontal, and which were vertical.

Rip open an NES controller, and cut the 2 traces coming out of the Bottom of the "Left" and "Right" buttons. Expose some copper, and swap the traces using small wire, as shown.

Re-assemble and test... That's it! You can now play with normal controls, on a reversed screen. Here's the result:

4Mar/100

DoomBOX on Hackaday/G4TV!

I submitted DoomBOX to Hackaday earlier this week, and it was accepted!
http://hackaday.com/2010/03/01/doombox-classic-keys-meet-tiny-screen/

Since then, it went somewhat Viral, and eventualy made its way on TV:
http://g4tv.com/attackoftheshow/attackthis/70051/Technology-Goes-Retro.html

Crazy! Thanks Hackaday for posting my project!

1Mar/100

The DoomBOX

Ahh... the DoomBOX... This is a project I started, and ALMOST completed like a year ago, but then threw it on a shelf where it got dusty... Till tonight..
I dusted it off, and finished it up.. So here's the build:

It all started when I had a Kodak DC290 Camera with a bad lens. These cameras run "Digita" OS, and many apps have been written/ported to it. Various apps, games, MAME and..... Doom.

DC290 Playing Doom

Doom was playable on it, but the button locations are TERRIBLE to play with, and they were wearing out quickly. So I had the idea to cram the camera guts in a case, with nice classic "keyboard" type controls.

I started with tearing the entire lens, sensor, focusing system out and seeing if it still booted... It did.

Look ma, no lens!
Working without a lens

I continued ripping tons of parts out of it, anything that wasnt vital to running doom was taken. Here are SOME of the parts left over:

Leftovers

The camera frame internally supported the numerous boards, and after removed, there was a lof of empty space between them. The power supply board is soldered directly to the mainboards at a 90 degree angle. To reduce space, the boards were desoldered and seperated, then reconnected via wires. The boards were then sandwiched with plastic sheets for insulation, and hot glued in spots for rigidity.

Making it thinner
Way thinner

I then began to ponder control layouts. I came up with a pretty much classic control layout, as similar as playing it on a regular keyboard as possble, but still reasonable in the available space.

layout

Working on the button board. Used a standard radio shack protoboard. Buttons are salvaged from a vintage PC keyboard. This is back when they used to build keyboards with individual switches, instead of a membrane. These arent "clicky" keys however, they have a soft feel. Rather than soldering the wires from the button board to the motherboard directly, I decided to create a 16 pin "header" for easy assembly. You can see this in the photo below.

Button board
Buttons poking

Each button and switch on the camera mainboard now has a wire soldered to it, which goes to a 16 pin plug, which is just a cut up floppy connector/cable. This plugs into the button board header above.

Button wiring

The internals are connected up. You can see, I added a larger speaker, as the original was way too quiet.

Guts

Thats pretty much it! I forgot to take pics of the screen install, but it was pretty simple. Cut out a hole of the case, glued it in place, and used the original ribbon cable to connect it up. The rest of the assembly is trivial. I glued Laptop keyboard keys to the control posts, and used an old Moto Q LCD glass to cover the screen. Added an LED on the top that blinks while loading from the 16MB Compact flash card installed within. It is currently powered by a 7v power brick, but there is room for a battery in the future. It will play mame games also, but eh... I wanted a DoomBOX! Video @ the end of this post

Screen
Completed



EDIT:
Gotta give credit where credit is due. Thanks to James Surine for creating this doom port years ago!

15Aug/090

The Thrift Store 50 Inch Plasma

So I was at the DI last weekend.  I stumbled apon this:

A Panasonic TH-50PHW3U   50" 720p Plasma, for $100.  Original MSRP $9670 in 2003!

At this price, it obviously didnt work.  It turned on for about 4 seconds, then shut off with the power LED flashing red.  On the chassis a repair estimate/bill was attached.  It had a couple of part numbers listed, and scribbled on was the note "Panel est. declined".  Cost of repair, $978.84.  The entire time "bad capacitors!" is running through my head.  I lug it home, and immediately open it up. 

  IMG_9839

Holy shit this thing is complicated, check out the screwdriver in the corner for scale.

First thing I hunted for were bad/swolen/leaking caps.  Didnt find any, which was a let down.  That night, I do a LOT of research, trying to dig up the service manual for it.  I never did find the correct one, but did find one for a similar panel.  There are some troubleshooting guides specifically for the LED code it was flashing.  I soon came to the conclusion while unhooking the 2 parts listed on the repair estimate that those parts are fine.  The estimate was bogus.

Hmmmm

Further testing, swapping, and measuring determines that the either the Power board (P1) or Scan Converter board (SC) is the culprit.  I measured a voltage called "Vbk".  This line supplies 195v to the Scan Converter board.  When powered on, I measured this @ zeroV!  However as soon as the unit is powered off, it jumps to normal voltage temporarily.  Also when this cable is disconnected from the SC board, and is measured off P1, it is normal voltage.  Bingo, the SC board must be drawing too much current, and shutting down that output!  There are also diagnostic LED's on several boards internally.  All light up bright, except the SC board.  It lights, but is quite dim.  Im pretty confident at this point the SC board is the problem.

IMG_9840

 

Jumped on ebay, $116 and a few days later:

IMG_9845

 

 

Jackpot!  The next day I bought a cheap universal remote, and played PS2 on it for about 4 hours straight.  Still works great!

1Aug/091

The $7 Yaris Cruise Control

So after a trip to yellowstone, I re-discovered that driving my wifes 08 Yaris long distance is a pain in the ass..  literally, and legs.  SoI did some digging around on the intertubes.

Found out that the 09 Yaris is INCREDIBLY easy to add cruise control.  Just plug in a stalk into the steering column, and your done!  The 08's don't have the wiring already in place, as cruise control was not offered as an option that year.  But the ECM programming is there!

After some further research on the yarisworld forums, I found that pin 40 of the A21 connector on the ECM is the key.  This pin when directly grounded, switches the cruise control on/off.  When grounded with a ~630 ohm resistor "Sets" the speed.  There are 2 other resistance values that accellerates, and decellerates by 1mph increments, but I decided to not use these.

Ran to radioshack, bought a couple of resistors, and 2 pushbutton switches.  The hardest part of this entire thing was figuring out how to get a single wire through the firewall into the dash from the engine compartment (ECM is located there).  Finally got the wire through the main harness grommet using a long piece of coat hanger wire.  I decided to give it a test run before drilling holes in the dash.

I first pulled connector A21 from the ECM, and inserted a wire into the unused pin 40 hole.  Care was taken to not short to other pins, and to still get a solid contact.   Once clamped back down, it held solid.  I then quickly twisted a 630 ohm resistor to the other end in, and handed it and a ground wire to my wife in the driver seat.  I then remembered there are 2 pins in the fuse/relay box that need to be jumpered temporarily to replace the clutch safety switch that doesn't exist.

We took it down the street, first touching the ground wire directly to the "hot" from the ECU to turn on the cruise.  Then got to about 40mph and tapped the ground to the resistor to "set" the speed.  SUCCESS!!  The car cruises along at its set speed like it should!

Now all that needed was cleaning up the wiring, and installing some push button switches.

Here is the result:

IMG_9453

Still needed to be completed is a real clutch safety switch instead of a jumper, and some sort of indicator light to tell you the cruise is on.