Technology
Internet of Things (IoT)
In recent years, there has been a lot of discussion about IoT.
While this term means different things to different people, it generally refers to using standard protocols to create interoperable devices and networks. Common examples of this include lighting controls and fixtures using Zigbee transceivers, and remote sensors using LoRa. These devices bring the added challenges of not only passing FCC certification, but also passing vendor or standards-body validation to gain access to the trademarked names of the protocols.
Quiet Software has taken multiple projects through FCC and standards certification and is ready to help you do this with your prototype to make it into a shippable product.
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 research 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 accidental 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: IPv4 & IPv6 Quiet Software has been developing wireless technology for over fifteen 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. Wireless protocols: Proprietary 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. With embedded microcontrollers becoming ever more powerful and affordable, almost every device has one or more
processors in it. We specialize in networking these processors together using a variety of technologies. This provides
distributed processing, redundancy, and robust data collection and control systems. These connections allow the data to be ultimately migrated to cloud-based servies such as Amazon AWS, Microsoft
Azure or Google Compute Engine. Software that controls machinery or industrial processes must be reliable. It has to incorporate internal
consistency checks, use watchdog timers to ensure that the unit will never stop working for extended periods of time. It also needs to
monitor all software and hardware for failures, exceptions and error conditions that need corrective action. We specialize in implementing software and firmware that meets all of these requirements. Introducing wireless communications into control systems can have a significant impact on safety. Wireless is inherently
less reliable than a wired connection. This creates the need to fully understand what is required for each end-node to maintain safe
operation even if it loses connectivity to a central control system. The design must incorporate the safety requirements of EACH
end device and make sure that the software will maintain safe operation no matter what happens. Incorporating safety into your design may sound expensive at first, but when you compare it to the costs of
even a single catastrophic failure, it can be quite affordable.Initial System Design
Hardware & Firmware Design
Reliability Enhancement
Optimization of Software Performance
Data Communications & Networking
GE Superbus
CAN (Controller Area Network) including the implementation of CiA (CAN-in-Automation) standard device specifications
IEEE 802.3 / Ethernet
IEEE 802.11 / WiFi
Universal Serial Bus / USB
Multiple proprietary digital radio transceivers from Silicon Labs, Nordic, TI/Chipcon, Micrel & Atmel
Internet Protocol Suite (TCP/IP)
6LoWPAN
CoAP - Constrained Application Protocol
MQTT & MQTT-SN (MQTT for Sensor Networks)
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 (IMAP4)
XMODEM / YMODEM / ZMODEM
Modbus / Modbus+
Wireless Communications & Networking
IEEE 802.15.4
Bluetooth & Bluetooth Mesh
Zigbee 3
Remote Telemetry / Monitoring / Data Collection
Pipe flow & pressure monitoring for oil wells
Tank level monitoring
Status monitoring for 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