Author Archives: dsmithson

Long Christmas Weekend Over

The Christmas season always promises to be a fast paced blur of playing with toys and attending a series of family get-togethers, and this year was no exception.  Beyond the normal dinner-breakfast-dinner family events at Melissa’s grandparents house, we were able to squeeze in a trip to the Phoenix Zoo Lights and spend plenty of time with Lily playing with her new Barbie Power Wheels ATV in the front and back yard.

Lily at the Laptop     Lily on the hobby horse   Lily opening presents   Lily on the Zoo Lights Carousel   Phoenix Zoo Lights Entrance

Four days around the house also proved to be just the right amount of time to get our new fish tank up and running,  I had picked up a 60 gallon acrylic tank from a family who had posted it on Craigslist a few weeks ago, and had received an acrylic overflow piece I was waiting on just before the Christmas break.  I managed to get the tank drilled and the overflow welded into place on the evening of Christmas eve, and here and there during the rest of the weekend I was able to get the rest up and running.  The old 25 gallon tank is already out in the back yard, which is a good thing since there was more silicone patchwork holding it together than there was glass.

Fish Tank Empty Tank Overflow Holes Drilled Tank Overflow Installed Tank Spray Bar Installed Tank Running Water For the First Time Tank With Canopy Installed    Tank Glory Shot 1 Tank Glory Shot 2 Tank Glory Shot 3

Car PC Project Update – 12/02/2009

Between the honeymoon, jury duty, Thanksgiving weekend, and an overnight Christmas tree excursion, life has been pretty busy as of late.  We took the Expedition to Flagstaff the day after Thanksgiving, and so I spent a fair amount of the day in the garage on Thanksgiving getting an audio amplifier installed so that the family would have some music for the trip.  Originally I had planned on installing the amp under the passenger seat, but unfortunately there wasn’t enough space and I ended up doing the install in the center console stacked on top of the car computer.  I used 1” foam spacers and industrial strength Velcro to ensure a stable installation.  The spacers do a good job of ensuring that air flows evenly around both the amp and the car PC, and the sensors in the PC didn’t show any noticeable change in temperature during the road trip.

Before the weekend trip, and before the honeymoon for that matter, I had also managed to get the sonar sensor installed into the front grill.  It wasn’t particularly note-worthy, however, because for some reason it’s not working.  Most likely a break in the wire, but I haven’t come back to it yet to determine what the root cause is.  At any rate, I’ve put some pictures below of both the sonar sensor and the audio amplifier that are now installed in the Expedition.

CarPCWork005_thumb CarPCWork020_thumb iPhoneImport11232009018_thumb
Amp Installed in Center Console
Down and dirty video app
Sonar / Depth sensor installed in front grill

Sunday evening I also spent some time with the tin snips and made a mounting chassis for the 15” touch screen display, and then lined the chassis with industrial strength Velcro.  I had to stop short of applying the opposite Velcro pieces to the monitor, because I didn’t have any foam tape to serve as spacers in places along the monitor back.  Still determined to make some noticeable progress, I switched focus to moving the A/C controls from the dash down and into the back wall of the ‘bucket’ area of the center console normally used to hold keys and misc items while driving.  Like most things, however, this approach was unfeasible because the A/C controller was physically larger than the area available.  With tin snips still at the ready, I decided to fashion a full replacement for that ‘bucket’ area that would hold not only the A/C controls but also a 4-port USB hub as well.  It’s laughable to think of how many times I had already caught myself saying “my car is really lacking in USB ports”.

CarPCWork003_thumb CarPCWork006_thumb  CarPCWork008_thumb
Monitor placed into mount
Sheet metal outline
Relocated A/C and USB

As soon as I can find a nice rubberized material to cover the sheet metal around the A/C controller and USB this will look nice and clean.  Overall though, I’d say there has been some good ground made on the car and the way has been paved to get that screen finally installed.  If I can muster up some bravery (and some free time) this weekend then I should be in a good place to take a real crack at it.  In the mean time, I have something at least working (I’ve temporarily borrowed the Mimo touch screen monitor from my desk to give me a small UI).

CarPCWork009_thumb1

PowerPoint 2007 Network Controller

Update:  The add-in described in this post is no longer available.  The concept of controlling PowerPoint over a network overlaps with  functionality used in Vista’s multi-screen background generation product, CanvasMaster, released in 2001.

I’ve managed to create  an add-in for PowerPoint 2007 that allows presentations to be controlled over the network.  The app is pretty basic, but is particularly useful for automating demos or integrating PowerPoint content playback with other systems.  Below is a screenshot of the add-in toolbar:

PowerPointtoolbar_thumb6

As it’s name suggests, the little light bulb labeled ‘Control Enabled’ toggles the add-in on or off.  When enabled, the add-in will listen for network requests on the UDP port configured under the ‘Configure’ icon.  When a packet is received, it is parsed by the network command processor and the enclosed command is executed.  The ‘Supported Commands’ icon on the toolbar opens a dialog which shows the available commands for the installed version of the add-in.  At the time of this writing (build 1.0.6), the available commands are as follows:

Commands_thumb5

Pretty simple, eh?  While its true that the generic control protocol in this add-in lends itself to pretty much any network enabled controller, I originally started working on the concept as a solution for us internally to tightly integrate PowerPoint presentation playback with Spyder scripting loops at trade shows.  The first attempts didn’t really go anywhere, as the available PowerPoint interop capabilities from Visual Studio were fairly cryptic.

A month or two ago I was emailing with a friend over at InformationsTeknik (Hi Rene!) who was looking to build the same sort of application, and so I made an unfinished sample project that had this basic functionality.  A few sleepless nights later, and voila, I have it wrapped up into a redistributable installer.

I was hoping to have my website finished enough to share a link to the associated project page, but it still has a little way to go, and so while I’m using my site to host the installer download, I’ll have to come back and update this page later with a link to a full-blown project page.  In the mean time you can download from the link below:

Download the PowerPoint 2007 Network Controller (Version 1.0.6)

 

Control Client / Test Utility Application

clientapp_thumb2When the PowerPoint network controller is installed, a client application will be added to the start menu which can be used to send commands to a machine running the PowerPoint add-in.  This can be either the local machine or another PC on the network.  To run this application, look in the programs folder under the start menu for ‘PowerPoint Network Control’.  A debug window on the right side of the application shows transmit and receive messages in real-time; you’ll notice that every command sent to the PowerPoint add-in will result in a response.  Users building custom control applications to interact with the add-in can use this window to see the specific responses that will be returned from the add-in for any given command.

Using Spyder to Control PowerPoint

Well if you’ve read this far into the blog and you have a Spyder system, this will be a little bonus.  Spyder can easily control PowerPoint when used with the network controller add-in by simply creating a few network command function keys.  The screen shots below should be self-explanatory; a network function key is generated to ‘wrap’ each of the available control commands.  These function keys can be executed directly, or (more importantly) can be linked into script cues to tightly couple command key recalls with the PowerPoint content.  It’s like having a SourceMaster for PowerPoint!

Big Disclaimer:  This software is not maintained or supported by my employer, Vista Systems.  Please do not try to contact Vista for technical support for this application.  Post any questions or comments on this blog post, and I’ll try to get back to you as time permits.  I’ve used this software quite a few times now, and it’s worked flawlessly.  If your planning to use it for anything ‘mission critical’, make sure you do your own adequate testing in your environment before going live with it.

Next Slide Function Key
Previous Slide Function Key
FunctionKeyNext_thumb6 FunctionKeyPrevious_thumb7
   
Home Function Key
 
FunctionKeyHome_thumb8  

 What’s Next for this Project?

I think it makes pretty clear sense to add the ability to load, start, and stop presentations remotely using network clients communicating through the add-in.  Currently the add-in requires that the PowerPoint presentation being controlled be manually started before the commands will work.  If you have ideas about how to make this better, or have any comments about the project, post them in the comments for this post.

X20 Blend Loading Improvements

With the upcoming Vista Advanced 3.3.1 software, we’ve made big improvements to both the blend loading time and the user experience when working with the blend controls in the UI.  The X20 blending and black level is achieved by loading a 32-bit bitmap image onto each output, which is essentially layered over the top of the output video.  Using internal USB image transfer, the load time associated with each blend or black level change can be several seconds.  A still server reduces the load time substantially, however you can see in the figure below that we were able to beat even the still server time.

Blend Load Times

In cases where only left and/or right blends are enabled (which is all cases currently since Spyder and Spyder X20 don’t support vertical blending) each line of the still server image is identical.  Since the majority of the time penalty in loading blends was at the image transfer, we opted to write only the first line of the blend to hardware, and enable a new mode in firmware that would cause that line to be written to every line of the output.  Voila, blend loading is now under 500ms.

In the user interface we had another problem with the blend controls, specifically the curve adjustment sliders.  All image loading occurs asynchronously, and there was code disable the blend adjustment controls while any image was being loaded (a carryover from Spyder).  Since X20 blends are loaded as images, as soon as a slider started to move the entire control would become disabled.  This has been corrected, and will be available in the 3.3.1 update this week.

Car PC Weekend Progress – 10/19/2009

Made some good ground on the car PC this weekend; managed to get the Phidgets 8/8/8 board installed, and currently have the (inside) temperature probe and light sensor connected up.  Also got an external USB plug installed on the passenger side, right above the cigarette lighter plug. 

I also mounted the front bumper sonar sensor into a custom aluminum housing I made out of sheet metal and coated it with silicone to make it water resistant.  The picture isn’t particularly impressive, but I think it’ll work out nicely once installed (next weekend?).  The metal cross it’s mounted on will be folded and used to affix it to the lower front grille on the expedition.

USB Plug
USB Jack 
Phidgets
Phidgets Board 
Light Sensor
Light Sensor
Sonar Sensor
Depth Sensor
(Not Installed)