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...
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!
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.
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.
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.
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.
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)
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!
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.
I installed an optical drive in the NES PC. Check it out:
Im building up a new server with a bit more Oomph:
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.
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.
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:
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.
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.
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.
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.
The internals are connected up. You can see, I added a larger speaker, as the original was way too quiet.
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
Gotta give credit where credit is due. Thanks to James Surine for creating this doom port years ago!
So I spent the last couple of days figuring out how to get PHP/MySQL/Wordpress working in IIS on my Windows 2003 Server box. The main reason was to get my wife's blog up on our own server, so she could have complete flexibilty/control of everything. Her page is @ http://www.ashdash.com . My blog is somewhat of a side result. With a big more fiddling, I figured out how to have 1 server host 2 different domains/websites!
Here is a pic of the piece of crap quadruple rebuilt emachines server Im running: