Picture Frame Tablet PC

Backstory

A few years ago when the local Circuit City was going out of business I decided to stop by to see if there where any good deals. Unfortunately most of their inventory was at a very low discount (if at all). However they where getting rid of some of their CRM and sales equipment. I picked up a 3M touch-panel LCD monitor for $20 or so, sold “as-is”. When I got home I realized that the LCD panel was only 800x600px, and had a broken back-light. I tried to get the touch panel working but for some reason it was not receiving power and I could not find any drivers for it. Into storage it went.

A few months later I dusted it off and decided to give it another try. I was able to find a way of providing 5v power to the controller board for the touch panel, and after much searching I found the drivers.

3M microtouch touchpanel

The Hardware

Once I got the driver, power to the board, and figured out its serial connection it was surprisingly easy to get working. Below you can see a picture and video of the touch panel wired up and working on a laptop.

touch panel wired to laptop

The next step was to remove the glass touch panel from the broken LCD. The glass was only held on by some very strong adhesive. After carefully removing it I tested it to make sure everything was still in good working order.

Testing the touchpanel on a laptopHello World on the touch panel

Now is when the fun starts! I picked up a picture frame that used a piece of glass the exact same size of the touch panel from a local arts and crafts store. I also found a old Pentium M laptop I would be modifying to use the touch panel on its screen with the picture frame.

Below you can see the touch panel in the picture-frame, and the laptop I would be using for this project with its screen removed and the touch-panel attached by its side.

Touch-panel in picture frametouch panel on laptop

I gutted the laptop of unneeded parts, such as the keyboard, mouse, DVD drive, and lots of other plastic bits that would be in the way or covered up. Then I reattached its screen backwards, so that when it folds down it faces up.

Laptop with backwards screen on hingelaptop with screen reversedlaptop with screen on backtesting the laptop with the touch panel again

I mounted the touch panel’s controller board where the DVD drive once was, and gave it 5v of power from the laptop’s USB ports. Below you can see the picture-frame resting on the laptop but not attached yet, and the wiring for the touch-panel.

picture frame on laptopTouch panel resting on laptop, not well connected yet/

Now for the inside wiring!

using USB for 5c DCInside of touch panel lapopusing hot gluelook at how nice it looks...

As you can see I used hot glue to hold the controller board in the optical drive bay. And all the wiring was looking good. I just needed a way to mount the touch-panel/picture frame to the rest of the laptop.

And here was my solution:

back of picture frame touch pca metal bracket

I would use these bent metal brackets I picked up at home depot to secure them together.

brackets being appliedEverything mounted

At this point everything was working great. I should probably mention what those blue wires are that you can see sticking out of it. They lead to the laptop’s power and standby buttons. Those buttons would normally be located right above the keyboard, however with this mod they are no longer assessable, so they will be relocated.

picture frame tablet pcpower and standby buttons

I mounted the power and standby buttons (seen above) on a piece of plastic from the LCD assembly. I placed it over the hole in the laptop where the outside of the DVD drive was.

This concludes the hardware portion of this mod.

the finished picture frame tablet pc

The Software

To make the interface more touch friendly I installed RockerDock to make launching application nicer.

Also since there is no longer a keyboard I used the Touch-It Virtual Keaboard to replace key input. I like this keyboard because it can hide easily and not take up any screen real estate when you need it.

If anyone reading this needs the driver for their 3M MT7 touch panel, or If I ever need the link for the driver, here is that too: http://solutions.3m.com/wps/portal/3M/en_US/TouchSystems/TouchScreen/CustomerSupport/TouchScreenDrivers/

In addition to the utilities above, I also Installed XBMC, which acts as a perfect picture displaying software. and with UPNP/DNLA I can control it from my phone, and even wirelessly display photos from my phone on it via my network.

If you want to see higher resolution copies of any of the photos in this article check out the Picasa gallery for it HERE.


PHPRepo

This is about a piece of software I wrote over a year ago to fit a need I had at the time. It probably will not receive any updates but I have released the source to anyone is free to do as they please with it.

Background

PHPRepo is a PHP CMS for managing Debian package repositories. A while ago I wanted to start my own repository for some of my own packages, so I looked for an easy way to do this. I found none. At the time the only way to run and manage a Debian package repository was through apt at the command line, and since at the time I was learning PHP I decided to write my own software to fill this void. Thus I created PHPRepo. PHPRepo has very minimal requirements and can work alongside an existing repository that is managed with apt.

Installation

Installation is as easy as it gets for a PHP app. There are no databases to configure, as it used the Debian repository files as its database. Simply upload the phprepo files to the root of your web-server and edit the config file with a user name and password you wish to use.

Also, if you want the ability to manage the repository in addition to view it in your web browser then make sure the user on your server that the web-server is running under has read and write permission to the repository files.

Screenshot Tour

My screenshots are for a repository that already has a few packages in it. If you are making a repository from scratch you will not be able to see as much.

PHPrepo main screen

Above is the main screen. You can see a tree list structure of all of your repositories, components, and architectures.

PHPrepo repository list

Above you can see the list of all repositorys on the system.

PHPRepo repository detail

Clicking on a repository brings you to the repository page; shown above. It will list all of the packages in the repository.

PHPrepo search

One very nice feature is the ability to search from a web browser.

PHPrepo add upload

If you choose to use PHPRepo to manager your repository, the above screen will allow you to add/upload packages to your repository. Simply select the file, distribution, and component. If the distribution or component that you want does not exist you can create it. All details about the package such as name, arch, etc are read from the deb file upon upload. Its like magic!

PHPRepo package view

If you click on a package you will be taken to the screen above. This page lets you view the details of the package. You can also manually downland the deb file, or a Maemo .install file. You can also manage the file by deleting its entry in the repository or by deleting the entry and remove the actual file from the server.

PHPRepo Delete file from repo

If you choose to delete a file you will see the above screen asking if you are sure.

PHPrepo Delete entire repository

The above screen is for deleting an entire repository, and all packages associated with it.

Conclusion

As stated before, I made this program over a year ago to fill a void. And I was rather surprised that nothing like this already existed. In any case the program and its source code can be downloaded from its project hosted at Google Code.

PHPRepo at Google Code


Wifi Radar

This is a highly directional super sensitive 802.11 G Wifi antenna. It was created using a used Direct TV satellite dish, weather proof container, a Hawking high-gain wireless antenna and some scrap parts. It is not a radar, it is just a cool name for this project. ;)

The Idea

The Hawking wireless card/antenna I used in this is already directional, but this gave it even more of a boost.

To get the most gain and to make the antenna the most effective use the parabolic equation to find the location of the focus in both the X and Y directions, this is where you want the wireless antenna to be, so that it will receive the strongest signal from the most angles.

The antenna will be enclosed in a weather proof container I for for free as a sample from OKW Enclosures.

The Construction

I used a rack adapter for some old ethernet switch to attach the enclosure to the end of the direct TV dish.

Container on Direct Tv dishEnclosure on dishweather proof enclosure on dish.

I mounted the wireless card inside the enclosure merely by adding a screw head for it to sit on.

Antenna and top of enclosure Screw head ready for mountingantenna mounted

I added a hole in the back for a usb cable to fit through and then sealed it up with hot-glue. Below you can see the finished product.

Final productCompleted wifi satellite dish with usb cableDish-in-a-box

Results

I used merageek’s inSSIDer 2 to test the gain of the antenna. inSSIDer 2 is a much needed replacement of the old war-driving software network stumbler. Comparing the signal strength of both using my new antenna and not I got about 10db of gain. I was hoping for more but it is still nice. And even with only 10db of gain, I was able to go from picking up 2 wireless networks to at least 20, depending on which way I aimed the antenna.

I would also like to mention another piece of software called Ekahau HeatMapper. While this software is not useful with this antenna design it can be useful making out signal strength of a building or neighborhood. Its fun to play with.


Use EventGhost to Make a XBMC Hulu and Boxee HTPC

The PC

I wanted a HTPC that I could use to play anything, and that could do anything. And since it was going to be hooked up to a big TV, it might as well be powerful enough to play some modern games on the big screen. I chose to use a relatively new computer (Core 2 Duo 2Ghz, Nvidia GeForce GT 220) and run Windows 7. My previous HTPC ran Linux, but with a powerful enough computer, the ability to play games on the HTPC made me move to Windows.

The Three HTPC pieces

I find that XBMCHulu Desktop, and Boxee are all essential parts of a well rounded Home Theater PC (HTPC). XMBC Is great for managing and playing back all of your local media. Hulu Desktop is the complete solution to play anything from Hulu on the big screen. And Boxee does a great job of playing back other online media, such as The Daily ShowPandora, etc. However these three media center programs do not play nice together. There are some small hacks that can make maybe two get along, but not a complete solution.

The Glue

To control all three programs I use EventGhost. EventGhost is a Windows automation tool which can preform a set of actions based on some user input, Usually a key-press, remote control, or other such device. I was lucky enough to have a HP remote control and USB IR sensor from a laptop I had. pictured below:

HP MCE USB IR Remote

Windows 7 automatically recognized the driver for the remote and with the MCE Remote plugin I was able to have EventGhost use it as an input device. I set EventGhost to capture all of the remote’s input and unregister it as a HID device. This stops windows from acting on the remote and gives EventGhost complete control over it.

Next I started creating my EventGhost profile. I chose a button to launch each of the HTPC apps previously mentioned. When pressed, the action for the button would kill any/all running HTPC apps and then start the app that I assigned to the button. This allows me to start any of the apps from the remote and switch between them easily. I also assigned a fourth button that would just kill them all, bringing me to the windows desktop. I assigned the D-PAD and OK buttons to the arrow keys and enter key. That takes care of most of the universal buttons that should apply across all of the programs. Now I went of to the program specific stuff. Hulu Desktop does not need much else or accept any other keyboard shortcuts, but Boxee and XBMC share a few. The next buttons I mapped to the remote are [Backspace], I, [Space], P, X, [Period], [Comma], F, R, H, [Tab], and M. Refer to the Program’s site to see what each one does. I also added a few extra actions for raising and lowering the volume, ejecting the drive tray, and powering off the computer.

I also made a toggle button that would change the D-Pad and OK button from arrow keys and enter to mouse movement and left click. You can download my EventGhost config file at the end of this article. Below is what my configured EventGhost looks like:

EventGhost MCE HTPC Configuration

By now the HTPC setup should be working. You should be able to control and switch between Boxee, XBMC, and Hulu desktop all from your remote. Just remember to make EventGhost start when windows does, this can be easily done by placing a shortcut to EventGhost in your User’s startup folder.

An Extra Surprise

After using this method for a while, I discovered that the MCE remote would detect my TV’s remote control (Pictured below). I could tell because the USB sensor would light up red (showing that it received a signal) when I pressed a button on the TV remote. And low and behold, EventGhost could detect the signal too!

Toshiba TV Remote

This Toshiba remote is also programmable, meaning that it has the ability to also control your VCR, DVD player, etc. I went through all of the preset codes it can use (by entering them all manually and testing them) and found the one that the USB IR sensor would detect the most buttons on. For most, only a few worked, and some none did. Oddly enough the code “000″ had almost all the buttons working. So I went through all the actions in EventGhost and reassigned them to a button on my TV’s remote. This allows me to control both my TV and HTPC from the same remote. All I need to do is switch the Mode/Device at the bottom of the remote to change which device I am controlling.

As promised: My EventGhost Config File


Build Your Own Car Power Inverter

A car inverter will take the 12 volts DC from your car; usually from your cigarette lighter and turn it into 110 volts AC, which is what you get out of your home power outlets. This allows you to plug household electronics into your car. the most common would probably be your laptop. Home UPS systems do the same thing, except instead of using a car outlet they use a 12 volt battery. I used a old home UPS system I had laying around that had a bad battery. (We don’t use the battery in this mod)

Preparing the UPS

Here is the UPS before any modifications:

Only half of the outlets on the device are given power from the UPS system, the rest act as a regular surge strip. The first thing I did was rewire the “surge” outlets to be wired into the UPS power so that all of the outlets would be provided power from the UPS system.

Next I took a car plug adapter I had lying around and conected it to the battery termiinals after removing the battery.

Testing

The UPS system was working and outputting ~106 volts AC from a car’s 12 volts outlet. Here you can see it in action with my meter and a wireless router.

This worked great, but the UPS has a buzzer in it which stayed on. The purpose of this buzzer was to notify you that your power is out and that you are on battery power. However it serves us no purpose and is just really annoying. I fixed it by unsoldering the buzzer from the main circuit board.

Some Final Modifications

In addition to movie the buzzer, I also wanted to make the device smaller as half of it is empty space due to the lack of a battery.

I started my moving two of the LEDs that are on the batter end over to the power switch. I moved just the Power and Overload LEDs, the rest served no use for an inverter.

I used a pipe saw to cut of the battery compartment, there was already a divider on the inside that would now act as the outside wall on that end.

This ups works perfectly as a power inverter. I have used it on several road trips just fine, And because it was intended to be a computer UPS, it can power 350 watts, which is much more than your average car inverter.


Car Aux Mod

Here is How I added a AUX inputs to my Delco Radio/CD player and a nice mount for my N810.

Part 1 – Adding The AUX Input

First off This worked on my Delco radio. It may work on yours, it may not. On My radio there is a nice AUX button right under the CD button. This goes to a AUX connector on the back of the unit. This is Delco AUX plug. It was meant to to to a separate tape deck. Unfortunately this plug needs an intelligent device connected to it to enable itself. If you are interested the pinout is Here. There is also a device you can buy that will plug into this AUX port and give you a normal RCA connection, but the idea of this is to spend as little money as possible and have the fun of doing it yourself

Warning: If you disconnect your radio from your car battery or any other source of power it may lock itself, this is part of the anti-theft feature. If your radio locks itself there is a link at the bottom with unlocking instructions.

The idea is to splice into the CD’s input with your own input. Here is the connector and the pins you will need. The ground is in between the Left and Right, but you can use any ground.

 

Here is my dash before the mod

 

Opening the Radio

 

Splicing the needed wires

I wired my 3.5mm AUX jack in the front of the unit. It barely fit. It would have been a lot easer to run the wires out of the unit and mount it elsewhere in your car. Anyway the idea is when you are on the CD input it will use the audio from the CD player unless there is a jack in the AUX input. I used a Radio Shack part # 274-0246 similar jacks will work but they may not allow you to switch from CD to AUX. Here is the wiring diagram of the jack.

Pin 1 - Ground - connect to radio ground
Pin 2 - Left Channel - wire from CD connector on main circuit board
Pin 3 - Left Channel - wire coming from CD player module
Pin 4 - Right Channel - wire coming from CD player module
Pin 5 - Right Channel - wire from CD connector on main circuit board

 

Here is the jack wired through the front panel

 

Testing it with my N810 before I put it all together

 

Putting it all back together

 

Part 2 – N810 Mount

I did not want spend the money to buy the rest of the mount that the N810 came with, or make anything that was too permanent. So I took the N810 half of the mount (the part the N810 came with) and decided to mount it in the empty slot in my dash. To do that I just screwed the end of it into a 3.5 inch long 2×4, and painted black to match. Here is the completed mount on its own, and in my dash.

 

Part 3 – Finished!

Here is the final product with the N810 all hooked up

Update: I also got a N810 cat charger to keep it going, playing lots of audio can drain the battery, and with canola I can keep the screen lit so I can always see what is playing.

Update 2: When using the AUX in you need to turn the volume up really high, that means that when you unplug it it will be extra loud, and hurt your speakers. in addition since the wires are so close together some of the CD player’s sound signal will get mixed in with your AUX input due to electromagnetic radiation. To fix that I made an audio CD with 80 minutes of silence. I used Audacity to create one long audio file, then burned it to a CD. It fixed this problem. I will upload a compresses ISO if this disk soon.

To see more and higher resolution photos go to the picasa gallery

Related Links

Where I got the mod idea and information from
Directions to unlock your radio
More assorted pinouts