Home | Our Values | Our Services | Our Skills | Our Products | Our People | Past Projects

Past Projects

 Here are just a few projects that we have worked on:

802.11 Wireless LAN Control Software
Embedded Linux Kernel Drivers
Linux GSM/802.11 VoIP Phone Prototype
Web-Based Remote Server Configuration
Power-PC Ethernet Driver
ATE System for Testing 802.11b Radios
Remote Access Security Software
8051-Based Fluorometer
Printer Networking Firmware


802.11 Wireless LAN Control Software

Customer: Motorola

Technologies: 802.11 WLAN, Windows CE 5.0 and 6.0, Windows Mobile 5.0 and 6.1, eVC++, VS2005, PlatformBuilder, 802.1x authentication, 802.11i, WPA2, AeroPeak wireless packet capture, NDIS.

Summary: We worked with the client through many releases of a suite of 802.11 wireless LAN control software. The software, written in C and C++, runs on various handheld communications devices under both Windows CE and Windows Mobile. The software is composed of both applications and NDIS drivers that configure and control the wireless radio. Among many projects, we:

  • architected and implemented support for the PEAP/EAP-GTC and EAP-FAST 802.1x authentication protocols, including management of PACs.
  • architected and implemented a solution for replacing a proprietary third party 802.1x authentication supplicant with an open source based third-party supplicant, including writing a programmatic front end to encapsulate the communications-specific and data-translation-specific attributes of the supplicant's text-based command and control interface.
  • re-architected a key state machine to resolve chronic design problems - misuse of mutexes, improperly handled race conditions, proliferation of global variables, unserialized event handling, and other flaws - greatly increasing product reliability and greatly improving user-responsiveness.
  • provided general trouble-shooting, including extensive analysis of wireless packet captures to identify issues in the software and, on occasion, in brand-name industry-standard wireless infrastructure devices (i.e., wireless switches and access points/ports).
All work included writing requirements documents, technical specifications, formal test plans, schedule estimates, sales force training presentations, and user documentation.

Challenges:

In the face of inadequate documentation, analyzing the open source based supplicant's source code and behavior to determine what exact commands to send to it to elicit the desired result; and, creating a functional specification for EAP-FAST and its related PAC management requirements based on analysis of the operation of Cisco's ACS Server and Wireless Client.

Top of page

Embedded Linux Kernel Drivers

Customer: Symbol Technologies

Technologies: embedded linux kernel drivers, sockets, Intel IXP425, 802.11 WLAN.

Summary: We designed and coded a sockets-based kernel-space/user-space communications driver and a network packet-switching driver, both for an embedded linux system running on an Intel IXP425 processor. The packet-switching driver switches ethernet packets between the local subnet - which includes a LAN port and two 802.11 radios - and either the linux networking stack, or proprietary software running in user-space. The packet-switching driver uses the communications driver to exchange packets with the user-space application software. The kernel drivers are used in an Access Point device for 802.11 wireless networks. Deliverables included formal documentation on the packet-switching driver's design and implementation.

Challenges: Creating test scaffolding code and an extensive set of test cases to perform a complete logic and coverage test of the packet-switching driver.

Top of page

Linux GSM/802.11 VoIP Phone Prototype

Customer: Divitas and GTek

Technologies: embedded linux, named pipes, 802.11 VOiP, SIP call-setup protocol.

Summary: We worked with two parties to "marry" their two products together into a proof-of-concept prototype: We designed and coded multi-threaded communications "glue" software, based on linux named pipes, that allows the two parties' software applications to communicate. The end goal was to effect a seamless transition from an 802.11 wireless VoIP phone call to a standard GSM cell phone call automatically without user intervention. The prototype was demonstrated at the CeBIT trade show.

Challenges:

Extensive work with one party's SIP protocol stack was needed in order to properly start and terminate the VOiP call.

Top of page

Web-Based Remote Server Configuration

Customer: Blue Pumpkin

Technologies: Java, Applets, Servlets, Java RMI, Server Technology, Browser-based GUIs, HTML, Java Server Pages, and JNI.

Summary: We architected and wrote the intermediate and front-end portions of a multi-tiered web-based system for configuring, monitoring, and controlling a remote Call Distribution Center data-gathering application. The system provides a browser-based user interface that allows multiple users to simultaneously access the data-gathering application via an intermediate web server. The web server serves up HTML and Java applets, and runs a multi-threaded servlet that provides an API to the data-gathering application running on a remote machine. The browser-based UI is comprised of a suite of tightly coupled applets, running in multiple frames, that communicate with each other and with the servlet. The remote data-gathering application provides an RMI-based command interface accessed by the servlet.

Challenges: Experimentally determining the exact behavior of Java RMI so that information passed between the servlet and the remote data-gathering application could be properly managed.

Top of page

Power-PC Ethernet Driver

Customer: Symbol Technologies

Technologies: Power-PC PPC405EP, RTOS, Ethernet MAC, PHY, MII, object-oriented design, SmartBits.

Summary: We re-architected and re-wrote ethernet driver firmware used in an RF Port device for 802.11 wireless networks. The firmware runs on an IBM PPC405EP Power-PC processor as part of a multi-threaded real-time embedded application running under the MultiTask! RTOS. Development was performed using GNU C++ tools on Sun Solaris. Work included configuring and controlling the processor's EMAC (Ethernet Media Access Controller), using the processor's MAL (Memeory Access Layer) to transfer packets between the EMAC and memory, and controlling an external PHY chip via an 802.3u standard MII (Media Independent Interface) implemented in the EMAC. To simplify any future porting effort, the object-oriented driver design is partitioned into hardware-dependent and hardware-independent objects, with an interface between the two parts that is enforced using an abstract base class. Work also included testing link auto-negotiation and driver throughput with SmartBits test equipment. Deliverables included training material for the engineers that inherited the firmware.

Challenges: Writing work-around code to detect whether the PHY chip had "crashed" due to electrostatic discharge and to reset it if it had; and controlling the PHY chip in such a way that its link state would survive across an intentional reset of the processor.

Top of page

Automatic Test Equipment (ATE) System for Testing 802.11b Radios

Customer: Symbol Technologies

Technologies: Windows CE; Wireless 802.11b radios; TCP/IP sockets; DNS; DHCP; FTP.

Summary: The system is composed of a “Host” running Windows 2000 Server and a PC104-based radio test “Fixture” running Windows CE. We initially implemented a sockets-based communications protocol over TCP/IP in an embedded multi-threaded real-time environment for passing application messages and files between the Host and the Fixture. Follow-on work included configuring the Windows CE kernel to support additional features such as multiple ethernet cards, reworking the Host and Fixture code architecture using object oriented design techniques so that multiple radio types could be supported with a minimum of code changes, improving the performance of the Host-Fixture communications by a factor of 10 or more, adding support for interfacing to a bar code scanner and a controllable power supply, simplifying the system startup process by using industry-standard protocols such as DHCP, FTP, and DNS, and reworking existing internal documentation to accurately reflect system design, setup, and operation.

Challenges: Configuring the Windows CE kernel to support various configurations, such as multiple network interface cards; designing a command interface that was compatible across different radios.

Top of page

Remote Access Security Software

Customer: Axent Technologies, Inc.

Technologies: Drivers and application software for Windows 95, NT, and CE, serial driver configuration, modem communications.

Summary: We wrote application and driver software to allow security applications to monitor the serial data stream in order to perform user authentication with a remote host in such a way as to be transparent to standard communications applications. The same application and drivers were ported to many versions of Windows, including Windows CE.

Challenges: Analyzing the rich feature set and capabilities of the Windows serial driver so that our driver could precisely mimic it in order to remain transparent to standard communications applications.

Top of page

8051-Based Fluorometer

Customer: Turner Designs

Technologies: 8051-based microcontroller, Keil IDE, I2C, EEPROM.

Summary: We redesigned and coded an existing embedded real-time program that periodically samples the fluorescence of algae in water and then calculates and reports algae concentration values. The firmware, written in C using the Keil IDE, runs on an 8051 processor without a real-time kernel in a power-conscious environment. Follow-on work on this and other derivitive products included upgrading the firmware to accomodate new CPU and LCD chip variants. This entailed reviewing the new hardware design and working with the client to correct errors, checking all 8051 function register values and correcting incompatibilities, and writing firmware to emulate the old CPU chip's built in I2C controller used for writing configuration values and log information to EEPROM.

Challenges: Improving the firmware's performance so that it met its target design criteria while still preserving battery life.

Top of page

Printer Networking Firmware

Customer: Apple Computer, Inc.

Technologies: Zilog Z8018x, real-time operating systems, Zilog SCC 85C30, HDLC, AppleTalk networking, EtherTalk, LocalTalk.

Summary: We wrote all of the firmware used for AppleTalk network communications in various Apple printer products, The firmware included a complete AppleTalk stack, a high-speed serial LLAP driver for LocalTalk, and an EtherTalk NIC driver. We helped debug prototype hardware in close cooperation with Apple's engineers. Apple incorporated our AppleTalk stack into a number of its products.

Challenges: The cost-sensitive nature of these products obliged us to fit the code and data into very small memory footprints.

Top of page

Home | Our Values | Our Services | Our Skills | Our Products | Our People | Past Projects

Last updated June 2010