#3. The Birth of a Company...Joe's Game Peripheral's: Joe has always been a hardware junkie. Small embedded CPU's, bread boards, soldering irons. Joe's lifetime dream has been to design, build, and market a game controller. Something along the lines of airplane controls.
His concept is...a shaft, extending out from the controller base that you can push-in and pull-out. A steering wheel attached to this shaft that turns right and left. And finally, right and left foot petals, like a car accelerator. The shaft and steering wheel simulates the pilot's yolk. Push in on the wheel to dive...pull back to climb (elevator control). Turn the wheel in either direction to simulate aileron control. Push on the petals for rudder control.
Joe knows exactly how he can interface all these things up to a micro-controller. He knows he can create packets of information containing the "state" of each control surface. And he can comfortably bundle all these into "a single packet snapshot"--and send it off at any sample rate up to 500 times a second.
But where does this leave Joe? What kind of physical connection does the computer or game console at the other end want?
Most game consoles are closed from a peripheral standpoint. And even if he could pony up the money to get non-disclosure information--do you think that Sony, Microsoft, or Sega are even going to give Joe the time of day?
OK...consoles are out...let's move over to the PC world. Let's take a Window's flavor box and look at doing an async port connection. But, what if this PC is already using both it's async ports. Now I've got to get the customer to buy one of those "add-in" boards--crack open the case. BONG! You've probably just eliminated a major portion of your market.
But for those who "do" have an available port...somehow it's got to get activated. How many out there have tried to hook something to a mother board async port--and failed miserably. Then weeks or months later, when doing something with the BIOS, you discover the problem! The BIOS has had that port deactivated all this time. It was probably some card (from long ago) that required the deactivation. So now, Joe only sees this as a potential can of worms. He can just envision tech support on the phone with the customer for a half hour trying everything. Finally, there is only one thing left to try. To take the customer into—THE DREADED BIOS SCREENS! Talk about a minefield! Can you imagine trying to navigate 1000 different flavors of BIOS?
Ok. Let's bag the async port for now. Let's instead tap into the "newer, better, faster" Universal Serial Bus. Joe knows for a fact that most newer computers have USB up and running with a keyboard and mouse already plugged in. And there's a empty port right there--just waiting for us! But, what does it take to do USB in Window's? Let's surf into MSDN and find out. Ok, here's a FileOpen command. Let's see. It says it works with disk files, com1-8, lpt1-8, named pipes, mail-slots, allocated consoles--but USB is nowhere to be found! There's no native WIN32 API's for USB access...OUCH!
But our Joe...good old Joe...he's persistent! He keeps surfing MSDN and searches on "USB DDK". DDK is short for Driver Developer Kit. He gets a hit in Windows CE DDK...but nothing in regular Windows DDK. Well this is going nowhere fast! Finally, Joe calls Microsoft directly, and after repeated phone calls, Joe finally gets an engineer on the other end of the phone line who seemingly knows his stuff. And Joe asks him the following:
"The customer is going to expect a device driver to come with the peripheral...right? I want to do it in USB. Does that require me to write something with the SDK...or do I need the DDK...and what about PnP? HDI, what's that? Human Device Interface...is there a tutorial? Oh, there's courses you can take...OK. Yeah...you think I really need see the big picture...Uh-Huh. Compatibility may not be the same? But you say you don't really know. Yeah you told me you're not really a device driver developer. Right...you know just enough to be dangerous--don't we all! I realize people are still running Windows 95--so compatibility "is" important. Book? 800 pages? Look I just need to pass a half-dozen different types of strings. No, I understand it not as simple as plain old Win32 calls! Oh, you "do" know about those--so do I! No I don't have any Win32 questions. Listen, do you have the names of any device driver developers? Wait...we must have a bad connection...HOW MUCH money did you say?
Joe has finally come to the realization that even to "get to the prototype stage" will require a long and arduous learning curve. And if he fails in that...then things will quickly become excessively expensive.
- "Open Peripheral Hardware Connectivity, Part II - Page 1"
- "Open Peripheral Hardware Connectivity, Part II - Page 2"
- "Open Peripheral Hardware Connectivity, Part II - Page 3"
- "Open Peripheral Hardware Connectivity, Part II - Page 4"


