Dean W. Gehnert - Principal Engineer

Graduated from Montana State University in April of 1988 with a BS in Computer Science. That same year, accepted a position as a software engineer for Tektronix, and developed embedded oscilloscope firmware for GPIB, RS232 and front-panel interfaces. After discovering UNIX network communication and X-Windows, spent five years developing X-Windows/Motif applications on Sun workstations to communicate and interact with network-based IC testers. Continued my education by taking courses at Oregon Graduate Institute, focusing on LAN/WAN networking, operating systems, multi-processor systems, object-oriented programming, programming languages, and multimedia technologies.

Languages C, C++, Perl, Java, Assembler (x86, 68k, PPC, ARM)
Processors x86 (real & protected), 680x0, PowerPC 700/800 series, 68HC11/16, Intel i960, Intel StrongARM, Intel XScale, NetSilicon NET+ARM
Operating Systems Linux; uCLinux; VxWorks; Windows NT, Windows CE, DOS; Novell Netware; Sun (SunOS & Solaris)
Programming API's Win32; MFC; ONC-RPC; VXI-11; NDIS 5, 4, 3; Motif/X-Windows; POSIX; Threads
Protocols ADSL; TCP/IP; NetBEUI; NetBIOS; FDDI; ISDN; 802.3; 802.2; 802.11; WinSock; UNIX Sockets; IPSec; Bluetooth

Project History
Jun 2005 Multi-thread ONC-RPC Additions
Added multi-threaded support to ONC-RPC library to allow multiple RPC requests to be sent and handled by the RPC clients and servers. This allows for a client to initiate a request and to abort that request from another thread in the client. This also allowed the server to create a pool of threads for handling RPC requests. So, one request into the server will not hold up all the other RPC requests from other clients.
Mar 2005 802.11 a/b/g Driver Support
Worked with an 802.11 a/b/g vendor to get WPA and WPA-2 support into their Windows drivers. My role was to provide a proposal and a roadmap to the vendor on how go about adding WPA and WPA-2 support to their present non-WPA driver.
Mar 2005 Ported 802.11 a/b/g Driver to Windows CE
Ported a Windows XP 802.11 a/b/g driver to Windows CE-5.0 on an x86 platform. The driver was maintained as a single source driver to re-use as much of the source code that already existed. Source code was ifdef'ed to reduce extended memory and other resource usage. Total project time took approximate 4 weeks from beginning to end. The customer now has a single source driver that works for both Windows XP and Windows CE, and can be built and installed using the Windows CE 5.0 Platform Builder.
Nov 2004 Linux 2.4/2.6 32/64-bit SATA Raid Controller Driver
Ported a Linux-2.4 SATA Raid controller driver to Linux-2.6 and added support for 64-bit Linux processors. The resultant driver worked on both Linux-2.4 and Linux-2.6 systems and on both 32-bit and 64-bit processor platforms. The driver supported hot-plug/un-plug of running/mounted drives and gracefully handled recovery without crashing. The driver was also compiled and ran on a LinuxPPC Macintosh platform.
Oct 2004 Embedded Linux RFID Platform Upgrade and Automatic Configuration from DHCP
Developed network based upgrade and automatic configuration using DHCP for a Linux based RFID reader platform. Extensions were made to the ISC DHCP client to support DHCP lease force renew and DHCP inform. Portions of the TriplePoint Embedded Linux distribution were also incorporated into the project to quickly add support for DHCP, Perl, and NTP to the XScale RFID platform. When the RFID platform received a DHCP lease, or was forced to perform a DHCP lease renew, it would use the information present in the DHCP response from the DHCP server to perform re-configuration, and to know when to start upgrade from a network server.
Jun 2004 Ported TriplePoint Embedded Linux Distribution to PowerPC Platform
Ported the TriplePoint Embedded Linux distribution to a PowerPC platform. This involved adding the UBoot bootloader to the distribution as well as extending the current processor/platform support for big endian cross tools and support for PowerPC processors.
Apr 2004 802.11 Stimulus/Validation Test Generation
Designed and implemented 802.11 stimulus and validation tests for an 802.11 test/validation hardware vendor. Tests were implemented as Perl scripts that generated the custom tester command language. This allowed for quickly changing the tests to run in different environments with a variety of parameters.
Jan 2003 802.11 Driver Suite for Windows XP/2K/NT/CE
Developed a shared source code 802.11 a/b/g driver suite for Windows XP/2K/NT/CE. The drivers shared approximately 90% of the source code from the Windows XP driver. Much of the internal code was also shared with the Linux implementation. This allowed for one single source code base to be developed and tested to eliminate redundant development, testing, and maintenance efforts. WPA and WPA-2 functionality was added to the driver and we worked with Microsoft to extend NdisTest (part of the WHQL suite) to better test/support WPA-2 functionality of new drivers. The final driver was WHQL certified using the Microsoft HCT suite and passed all tests.
Nov 2002 Ported TriplePoint Embedded Linux Distribution to PC104 Platform
Ported the TriplePoint Embedded Linux distribution to a PC104 platform. Minor changes were needed to the distribution build system to support both the StrongARM (CerfCube) and x86 (PC104) platforms. The porting process took a total of 2 weeks to complete. The platform was the 686CORE/ 686BASE from CompuLab.
Aug 2002 AD007 Firmware Upgrade (v1.01f)
Implemented updates to the Tektronix AD007 GPIB-Ethernet Adapter source code to address problems found in the field.
Jul 2002 TriplePoint Embedded Linux Distribution
Designed and implemented version 2 of an embedded Linux distribution that builds completely from sources. The distribution was created specifically for use with the TriplePoint Home Gateways to make the build process easier and more repeatable. Just "make" at the top of the distribution build tree will create a kernel and disk image that can be download and flashed into a CerfCube platform.
Jun 2002 Remote NDIS Support
Contracted as the technical expertise on a product that was using Microsoft Remote NDIS over a USB bus. Remote NDIS effectively remotes the physical "network adapter" across the USB bus. In theory, only one driver needs to be written in the host operating system since normal NDIS messages are sent across the USB bus to the device. It is up to the device to decode the NDIS messages and perform the requested actions. Remote NDIS can also be used to simulate a LAN over USB where the remote USB device takes the role of a network end-point.
May 2002 TriplePoint Home Gateways
Created a replacement internet gateway network appliance for our home broadband networks based on the Intrinsyc CerfCube hardware platform. Our initial home gateway implementation used a stripped down PC platform with 2 ethernet adapters to perform firewall functionality as well as creating an IPSec connection between our homes and the TriplePoint office. The new implementation uses the PCB out of the CerfCube platform re-packaged in a small box (2.5" x 3.5" x 1.0") with the addition of a compact flash ethernet adapter from Socket Communications to replace the clumsy/noisy/power hungry PC platform implementation. The software is based on standard Linux software packages and components re-targeted from the original SuSE-based x86 PC platform onto the StrongARM platform. This was the predecessor of the TriplePoint Embedded Linux Distribution.
Apr 2002 Windows/Linux Infiniband System Design and Specification
Developed a specification for an Infiniband system that presented a common programming interface for both Windows and Linux operating systems. Programs written to the common Verbs interface could run either in user space, or in kernel space without changes to the source code. Design emphasized zero copy techniques, support for RDMA (Remote DMA), permission validation, asynchronous calling conventions, and source code portability to other operating systems.
Mar 2002 Serial Over TCP/IP
Developed serial over TCP/IP server implementation (RFC2217) for Windows CE. This allowed for another workstation to use the serial ports on the WinCE platform over a TCP/IP connection as if the WinCE serial devices were connected directly to the workstation. Serial over TCP/IP service is actually implemented as an extension to the Telnet protocol. For the client-side implementation, we used Serial/IP for Windows workstations from Tactical Software for development and validation.
Jan 2002 Intrinsyc CerfCube Platform
Discovered a small (2.25" x 3") Linux platform based on the StrongARM processor called the CerfCube from a company called Intrinsyc Software Inc. out of Vancouver, British Columbia, Canada. The platform makes a reasonable network appliance since it has both a 10Mb Ethernet port as well as a compact flash interface. An additional Ethernet interface can be added to the compact flash interface to make a wired network appliance, or a compact flash 802.11 adapter can be added for a wireless network appliance.
Jan 2002 Embedded Linux Camera, Web Server and Bluetooth
Continued working with Rob on the embedded camera platform using uCLinux on an ARM7 platform without an MMU. Additional tasks and accomplishments included:
  • Investigation of other Bluetooth stack options
  • Updates to the OpenBT stack to complete Bluetooth certification
  • Took over software development on the DSP image processing subsystem
  • Enhanced DSP image algorithms, color and image calibration, and updated communication protocol between the NetARM and DSP processors
  • Upgraded product from uCLinux-2.0 to uCLinux-2.4. Updating resulted in a much more stable and robust system
  • Implemented automated tests and test analysis tools used for validating system robustness
2002 Conferences
  • Mar 2002 - Embedded Systems Conference
    Attended the tradeshow in San Francisco to refresh my information on industry embedded solutions and to evaluate the show as another exhibiting opportunity for TriplePoint
  • Apr 2002 - Microsoft WinHEC
    Manned the TriplePoint booth in Seattle. We talked with Microsoft architects about the present and future, and chatted with people in the industry and potential customers.
  • Oct 2002 - Microsoft Embedded Conference
    Attended the tradeshow in Las Vegas to see what Microsoft has to offer in the embedded world besides WinCE and Embedded Windows and to evaluate the show as another exhibiting opportunity for TriplePoint
Dec 2001 TriplePoint Invoice/Expense Package v2.0
Updates to TriplePoint Invoice/Expense package:
  • Invoices for each user are displayed in a report format including user splits and subtotals
  • Added Javascript menu package to allow for easier creation and manipulation of Invoices and Expenses
  • Using the menu package, invoices can be marked as received when payment arrives
  • Updates for new TriplePoint letterhead
Dec 2001 IP Discovery Protocol Updates
Updates to the IP Discovery protocol:
  • IP Address Squatting
    If the device was not able to acquire a DHCP address and receives an IP Discovery request, it can temporarily "squat" on an IP address so it can be configured for the user network. This is performed by ARP'ing for an unused IP addresses around the requesting client workstation's IP address. By using this method, the user does not need to re-configure their workstation IP address to talk to an un-configured device. Previously a device without a user interface would assume an IP address like when it was not configured. The user then had to re-configure their workstation to be on the network to talk to the device and reconfigure the device to operate on the normal user network.
  • Java Client
    IP Discovery can now be performed from a Java enabled web browser like Microsoft Internet Explorer or Netscape Navigator from Windows and Macintosh platforms without installing special software.

    Select the IP Discovery link to perform an IP Discovery of the devices on your LAN.

    IP Discovery
  • Device Parameters
    Device parameters like device name and firmware versions can be returned back to the requesting client application. This is useful for identifying different devices and determining additional information about the device like firmware versions.
Oct 2001 AD007 Firmware Upgrade
Implemented updates to the original Tektronix AD007 GPIB-Ethernet Adapter source code and firmware upgrade application. Updates included better DHCP client support, functionality updates for the GPIB and VXI-11 subsystems, fixes to the HTTP server for recent web server exploits like NIMDA, and a single executable firmware upgrade utility.
Jun 2001 Embedded Linux Camera, Web Server and Bluetooth
Worked with Rob and Tim on an embedded camera platform using uCLinux on an ARM7 platform without an MMU.
  • Ported the OpenBT Bluetooth stack
  • Implemented extensions to the Bluetooth stack to support FCC testing
  • Updates to the serial and ethernet drivers
  • Implemented the HTTP server
  • Debug of ARM unaligned data access and no MMU issues in both the kernel and applications
  • Implemented manufacturing support interface
  • Implemented firmware upgrades from a web server
  • Integrated updated IP Discovery functionality into the product
  • Implemented kernel features to support manufacturing and diagnostics
  • Defined build/release procedures
May 2001 TriplePoint Invoice/Expense Package v1.0
Developed a web-based Invoice and Expense reporting package that integrates with QuickBooks to ease creating invoices for clients (both paper and PDF versions) and reporting employee expenses. Scripting was performed using Perl and included support routines also written in Perl that extracted information from the underlying database to be imported directly into QuickBooks using the "semi-open" QuickBooks IIF format.
May 2001 Embedded Linux Camera, Web Server and Bluetooth
Worked with Rob and Tim on an embedded camera platform using uCLinux on an ARM7 platform without an MMU.
  • Ported the OpenBT Bluetooth stack
  • Implemented extensions to the Bluetooth stack to support FCC testing
  • Updates to the serial and ethernet drivers
  • Implemented the HTTP server
  • Debug of ARM unaligned data access and no MMU issues in both the kernel and applications
  • Implemented manufacturing support interface
  • Implemented firmware upgrades from a web server
  • Incorporated updated IP Discovery functionality into the product
  • Implemented kernel features to support manufacturing and diagnostics
  • Defined build/release procedures
Feb 2001 Linux Build Environment for Tornado-II/VxWorks-5.4
Implemented and deployed VxWorks build environment on Linux for a large software project. The project was initially built on a Windows NT using the VxWorks commandline build environment and was taking ~6 hours to build from sources. After changing the build system over to Linux, the build time was reduced by over 3x on single processor x86 Linux systems. When parallel make and multiple processors were enabled, the build time reduced to less than 30 minutes.
Jan 2001 WindRiver Residential Gateway (TRex)
Worked on a team developing a hardware reference platform for the WindRiver Tornado for Home Gateways project. Implemented glue layer interface between the DC-ATM stack and the ADSL hardware interface routines. Also developed test routines for validating ADSL operation in both WAN and LAN (RFC1483/RFC1577) configurations. Wrote code for integration of the reference platform BSP and components into the Tornado IDE.
Nov 2000 Voice Recognition System
Developed demonstration of a voice recognition/text-to-speech system using an off-the-shelf automobile MP3 player and Linux. The demonstration software was based on commercial TTS (text-to-speech) / ASR (automatic speech recognition) system running on Linux and driven by a Perl program. The system implemented verbal operation of the MP3 player, verbal creation of playlists, and synchronization of MP3 songs between a host system and the mobile MP3 player over a wireless 802.11 interface.
Sep 2000 Linux 2.2/2.4 LAN/WAN ADSL PCI Driver
Designed and implemented a Linux 2.2/2.4 LAN/WAN ADSL driver for a PCI adapter. This included porting driver code developed for Microsoft Windows NT/2K into the Linux driver model. The driver allowed for both LAN ethernet interfaces using RFC1483/RFC1577 and WAN PPP TTY/serial interfaces using RFC2364.
Jun 2000 WindRiver Tornado-II/VxWorks-5.4 ISDN BSP
Developed a VxWorks BSP to support PCI/cPCI ISDN adapters. The ISDN driver enabled firmware download to the adapters as well as setup/teardown of multiple ISDN channels, and data transfers.
Mar 2000 Upgrade WindRiver Tornado-I WDB/PCI Shared Memory Agent to Tornado-II
Migrated TpiWdb support from WindRiver Tornado-I environment into the Tornado-II environment. Added graphical control panel to configure the adapters and communication.
Jan 2000 Multi-layer switch BSP support for VxWorks
Designed and implemented a VxWorks driver/BSP to support a multi-layer switch IC.
Oct 1999 Office Y2K Updates
Updates to the office servers and bookkeeping software for Y2K compliance.
Aug 1999 Extended Support/Development of ISDN Serial Port Emulation
Provided extended support for the Microsoft Windows NT 4.0 ISDN Serial Port Emulation product.
  • Updated Call State to handle ISP RAS call loads
  • Call Manager interface
  • Support for Citrix and ZetaFax products
Jun 1999 WindRiver Tornado-I WDB/PCI Shared Memory Agent (TpiWdb & TpiShm)
Designed and implemented a WindRiver Tornado-I WDB agent that enables communication between a VxWorks client and a Windows NT host across PCI shared memory without the usual extra hardware and external cabling (ie. ethernet, serial, etc).
Feb 1999 Linux Wireless Ethernet Driver
Designed and implemented the WaveLAN/IEEE PCMCIA driver for Linux. Implemented a combination source code and library driver to support the Lucent WaveLAN/IEEE wireless ethernet adapter. The combination source and library allows for a publicly viewable PCMCIA driver interface with a binary adapter interface library to hide the proprietary hardware details. The driver supports the normal wireless adapter interfaces as well as the WaveLAN/IEEE UIL interface for advanced adapter monitoring and operations.
Dec 1998 Windows NT 3.51 Port of Serial Port Emulation
Ported a previously developed Windows NT 4.0 serial emulation driver for ISDN to Windows NT 3.51. One source code base and installation now supports both Windows NT 4.0 and 3.51. This was needed to support Citrix WinFrame and older Windows NT 3.51 server installations.
Oct 1998 Windows CE Wireless Ethernet Driver
Ported a Windows NT/95 NDIS 3 network driver to Windows CE 2.0 for MIPS and SH3 processors. Added control panel interface for modifying adapter parameters. Completed package including the driver, control panel, online help, and Windows NT/95 installer support.
Sep 1998 DHCP Client Discovery Protocol for Win32/Linux/VxWorks
Developed a protocol to support the discovery of DHCP clients on a TCP/IP network. This service simplifies how a network application can communicate with network-based clients that have received a DHCP assigned TCP/IP address. Without this protocol, the client's network address has to be entered by the user instead of being browsed and selected from a list.
Sep 1997 VxWorks Embedded Motorola PPC860 Development
Developed the software for a Motorola PowerPC 860 embedded system running VxWorks. The product was the Tektronix AD007 GPIB-Ethernet Adapter to allow VXI-11 Remote Procedure Call (RPC) communication over TCP/IP to GPIB based instruments. System features included:
  • Flash filesystem
  • Ethernet support
  • FTP server
  • DHCP client
  • HTTP server with web-based management
  • GPIB controller support
  • Win32/UNIX ONC-RPC programming interface
  • VXI-11 RPC programming interface
  • GPIB print capture and redirection
May 1997 Windows NT Serial Port Emulation for ISDN
Developed a Windows NT driver to present the ISDN channels as serial ports/modems to the operating system. The driver dynamically manages incoming/outgoing digital and analog calls, and routing of the calls through onboard 56K modems. This allowed for both dial-in/dial-out RAS and FAX support.
Feb 1997 Handheld PC-Compatible BIOS/Video Support
Modified Phoenix PICO BIOS to support an embedded handheld PC-compatible with touch screen, radio modem, and flash filesystem. Integrated CGA video graphics support and investigated rotated video support.
Jan 1997 Windows NT Ethernet Driver
Developed a Windows NT 4.0 NDIS 3/4 driver for an integrated Ethernet/SCSI PCI adapter.
Oct 1996 Netware FDDI Driver
Developed a Novell Netware 3.x/4.x driver for a PCI based FDDI adapter. The driver developed was both a Netware server driver as well as an ODI Client32 driver.
Aug 1996 Accepted Position at TriplePoint
Jun 1994 thru Oct 1996 Linux Adaptec AIC7xxx SCSI
Developer/coordinator on the Adaptec AIC7xx SCSI development team. My involvement started in the early releases of Linux-1.1 and continued through to the Linux-2.1 version of the kernel. Since then, I have passed on the development to another group of intrepid SCSI driver developers.
Aug 1991 thru Aug 1996 UNIX X-Windows/Motif Development
Developed X-Windows/Motif interfaces for a network based chip tester. Designed and implemented custom Motif widgets to support display and manipulation of the large dataset presented by an IC tester. Developed a software build system that was used throughout the company for consistent/repeatable product releases.
Jul 1993 Embedded Motorola 68HC11 Development
Worked on a team to develop an embedded computer that was used as a crop-duster monitor/control interface as well as a helicopter hook gauge monitor.
Apr 1988 thru Aug 1991 Tektronix 1180x/CSA803 Human Interface Development
Developed embedded firmware for front-panel interface components and extended GPIB and RS232 commands to support new oscilloscope features. Designed and implemented a network based parallel build tool for the oscilloscope firmware.

Back to Company

---- What we can do for you ----
Device Drivers
NDIS Drivers
Embedded Systems
Application Programming

© 2023 TriplePoint Inc.
Home     Expertise     Services     Company     News     Resources
TPI Drivers & Firmware
Updated: 2023-05-31