Device Driver Development
What is device driver? A device driver is a collection of
subroutines and data within the kernel that constitutes the
software interface to an I/O device. SolovatDesign has experience in
development of both types of device drivers: character and block
drivers.
In a past some of our development managers have worked with
Logitech in research and development of the latest input devices:
Sensor Touch Pad (for pen and finger), analog joysticks (the cursor
navigated based on earth gravitation), precise mechanical mouse,
calculation algorithms for data output from field sources, etc.
Our developers have received several patents in this field and in
particular in the analog joystick design area.
Below is a list of device driver areas where our team has domain
expertise:
- Win32, Windows CE at DDK level
- Linux at kernel and device driver level
- Porting device drivers between any of the above OS
- Symbian EPOC-32 mobile OS
- Serial devices: RS232C, RS422, IrDA and USB
- Plug 'n Play
Bluetooth Keyboard Drivers For Mobile Devices
Customer's product, the fabric keyboard unit, consists of a fabric
sensor that allows key press positions to be converted to key
codes via an electronics interface. The key codes are transmitted
to the target device over the bluetooth link using a serial port
profile. A set of device drivers was developed to reside on target
devices (phones/PDA's) that would allow the PDA/Phone to receive
input from Bluetooth Keyboard, via the Bluetooth link (using SPP).

USB Redirection Driver
The USB Redirection system makes a wide variety of USB devices available across a network,
using either a direct network connections or Windows Terminal Services Remote Desktop Protocol.
To use a remote USB device, users of the system will not have to perform any additional installation or configuration other
than connecting to the remote USB device using the system.
Server virtualization requires more than just sharing and balancing access to CPU, RAM and disk space.
An important component missing from many virtualization solutions is shared access to the explosion of USB devices,
not only printers but scanners, cameras, webcams, CD and DVD burners, and an ever-expanding list of new devices.
Our systems engineers created a solution to share USB devices not just within a single operating-system family,
but across multiple operating systems and environments.
For example, one user can plug a USB scanner into his Macintosh and his neighbor can use it on his Windows machine as
if it were plugged in locally.

Printer driver development
The rapid development of the Linux platform in the recent years
lead to some problems associated with the absence of full support
from some leading software companies. One of the leading
electronic manufactures met the same issue. They contacted us to
develop a component for a new printer line to show a printer
connected to a Linux machine as a NetWare print-server.
The main difficulty was that Novell provides development tools
only for DOS and Win32, and does not document internal NDS
components. There is a Novell client in Linux, but its
capabilities were obviously not enough.
In the course of the project, a fully functional version of the
printer driver with native SPX support was developed. Since the
documentation obtained from Novell was insufficient for this
purpose, part of the required information was found out through
reengineering. The project was successfully completed within the
time frames set by the customer.
Technologies: C, IPX/SPX, NetWare, NDS