Technology
Embedded Systems
Embedded systems have a number of characteristics that make implementing them a challenge for the programmer accustomed to working in the desktop or server computing environment.
They are typically resource constrained, with limited RAM, program storage and CPU speed. Efficient coding becomes vital to a successful design.
The tasks to be performed can have very tight and precise timing requirements.
The systems tend to run for extended periods of time, and are expected to be highly reliable.
All of Quiet Software's engineers are highly experienced at developing successful embedded systems. We do not subscribe to the idea that inexperienced programmers can successfully implement an embedded system if they are merely given detailed enough specifications.
Research & Development
Our focus is on reasearch and development of products for our clients. We focus on creating technology and successful products,
while respecting the intellectual property and trade secrets of our clients. We are willing to enter into reasonable non-disclosure and
confidentiality agreements with our clients to assist them in protecting their confidential and proprietary information. We also avoid having
clients in competing business or overlapping technologies to help reduce the risk of accidential disclosure of confidential
information.
To the greatest extent possible, we try to work with our clients to fully understand their requirements and needs and to provide an
accurate estimate of the scope and cost of the project. Although this can and does cost money we have found that this investment ultimately pays
off in a successful project. If the complexity justifies it, we may propose a small initial project with the goal of preparing a detailed proposal to
accurately outline the costs of the full project. Especially when working with today's microcontrollers, hardware and firmware design are a collaborative process where the firmware
designer needs to understand what features are needed in the processor, work with the hardware designer on selecting the correct processor, and
then advise the hardware designer on how the processor should be hooked into the circuit. Since most of the pins on a modern microcontroller
can perform multiple functions depending on how they are configured by the firmware, a successful hardware design is a collaboration between the
hardware and firmware designers. This has been one of Quiet Software's strongest areas. We have a proven track record of working with client systems that are not
performing at the expected level of reliability, analyzing those systems, and fixing the problems so that the system delivers the required level
of performance. First, we deal with the low-hanging fruit: Does the code compile without warnings? Typically 80 or 90% of the compiler warnings
are harmless, but a few of them will point toward serious flaws in the code. Next, we add consistency checking to the code. Even a system with nothing more than a single LED can blink an error code to
indicate where the code detected a problem. It can seem counter-intuitive to intentionally crash the system in a consistency check to issue an
error code, but as you eliminate the problems the overall system reliability goes up rapidly. We also pay special attention to memory allocation and memory management. Memory leaks, and code that continues to use a memory
block after it was freed can lead to mysterious failures in systems that have otherwise been running normally for lengthy periods of time. An excellent example of this was a data collection and control system that was integral to the operations of a large manufacturing
facility. This system had been running flawlessly for several years and it suddenly started crashing several times a day. We were brought in
to find out why. Since the obvious symptom of the failure was that the memory pool was exhausted, we instrumented the memory allocation routines.
This led to the discovery that an error condition handler was attempting to free a memory block twice. The error was ultimately traced back to
the fact that a data communications cable was resting against the housing of a large electric motor which created a communications error every
time it started up. We fixed the programming errors, but also suggested that the factory relocate the cable to fix the problem immediately
without having to wait for a new code release. This is usually done as a follow-on to the reliability enhancement process, and focuses on making the device do its job faster.
It can also focus on reducing the code size to provide the space to implement additional features, or to allow the use of a smaller/cheaper
microcontroller. This process begins with analyzing and profiling the code to understand what routines are most critical and where the most benefit
will be realized. Once the bottlenecks have been identified, those routines will be modified or rewritten. If ultimate performance and
smallest possible code size is required, specific routines may be rewritten in assembly language. Processors such as the 8051 that are poorly
suited to the C or C++ languages realize the greatest benefit from assembly language coding. Code that interacts with mass-storage devices such as hard disks, CD-ROM drives or tape drives may improve dramatically if it can
be rewritten to keep up with the native data rate of the device and minimize rotational delays or seeking. This is a core skill of Quiet Software's engineering team. We have experience with multiple communications protocols and hardware, including: RS-232, RS-422 & RS-485 including multidrop. Networking & communications protocols include: Internet Protocol Suite (TCP/IP) Quiet Software has been developing wireless technology for over five years, focusing on using low-cost digital transceivers
operating in the ISM (Industrial/Scientific/Medical) Bands under the FCC Part 15.247 rules. We've developed systems for both the 900MHz and the
worldwide standard 2.4GHz bands. We have achieved ranges of up to 1.5 miles (using 900MHz) and built systems for both point-to-point and
multipoint wireless networks. Quiet Software has taken the basic wireless technology it developed and adapted it for the following applications: Monitoring and control of primary & emergency lighting systems.Initial System Design
Hardware & Firmware Design
Reliability Enhancement
Optimization of Software Performance
Data Communications & Networking
Modbus & Modbus+
GE Superbus
IEEE 802.3 / Ethernet
IEEE 802.11 / WiFi
Universal Serial Bus / USB
Multiple proprietary digital radio transceivers from TI/Chipcon, Micrel & Atmel
Serial Line Internet Protocol (SLIP) & Point-to-Point Protocol (PPP)
Simple Network Management Protocol (SNMP v1, v2 & V3)
Simple Mail Transport Protocol (SMTP)
Post Office Protocol (POP3) & Internet Message Access Protocol (IMAP3)
XMODEM / YMODEM / ZMODEM
Modbus / Modbus+
Wireless Communications & Networking
Remote Telemetry / Monitoring / Data Collection
Pipe flow & pressure monitoring for oil wells
Tank level monitoring
Status monitoring for Duncan parking meters and remote parking purchases
Broadcast Advertising messages for shopping carts
Mobile panic button system with location information
Wire-replacement applications for a variety of different communication protocolsDistributed Systems
Industrial Controls
Designing with Safety in Mind
