The process of designing, implementing and deploying programs to run on either a PC or within an embedded device. Conficio primarily focus on firmware for a variety of ARM processors. Conficio are driven by a passion for turning ideas into reality through unparalleled software design services.
The Software design and solutions process starts from the Product Design Specification, this details the functional requirements of the system, including any required communication channels, data storage and bandwidth criteria. The software design solutions team will generate a system level diagram that splits the required modules for drivers, utilities and system level components. Each of these will have a defined interface that will allow the other components a method of integration. The design is cross-referenced to the requirements specification to ensure that the functional components are satisfied.
With a completed design, the process of implementation can start. Our software design engineers use the latest development tools from the silicon manufacturers to ensure that any library code is the latest stable release.
During implementation, unit tests of the firmware modules are performed. These unit tests that are implemented early in the process will grow up to be the base layer of any automated tests required at production. As the software is created, the process moves from implementation to debugging – the process of ensuring that the software is functioning as intended.
In order to maintain the ability to further develop bespoke software features after release to production, Conficio software design agency builds bootloaders into the majority of software that is released. These small items of code allow the client to pass on software updates to their end users over the project lifecycle.
Most software design projects that Conficio Software Design Agency undertake will be built on a bare-bones platform. This allows our engineers to have complete control of the system, ensuring that key requirements are met. However, there are times when RTOSs such as Zephyr are required. This generally occurs when a library stack is required to run a peripheral such as Bluetooth or a Filesystem such as FAT or USB.
Interfacing to peripherals is a small part of firmware development. At the extremes, the software team have been able to achieve high-bandwidth streaming systems over USB and Bluetooth for wireless sensor devices and near real-time of high-accuracy power mode buck converters.
There are many custom software design tools available to engineers. At Conficio, our bespoke software design team use manufacturer specific development environments to write and build code for the selected microcontroller. During the implementation, the software is commented to ensure that when the code requires future modification, the thought processes and ideas behind are readily available. This ensures that any future engineers who are required to add to the code have the correct information in hand, saving time in the future. The most important tool that Conficio uses is version control. Of the multiple software design solutions that are available, Conficio use git with Staging and Release branches to ensure that all modifications to the source code are reviewed and tested before being merged onto a release branch. As software is developed, the team ensure that the code is commented in a style that can be processed by Doxygen. Once analysed, the output that is generated is HTMML that contains the information within the comments. This ensures that the comments and implementation documentation are in sync and readable.
We take your privacy seriously. We do not sell or share your data. We use it to enhance our user experience and analyse the performance of our marketing efforts. To learn more, please see our Privacy Notice.
For every design and development journey...
From concept to manufacture...
Conficio has all the experience and in house capability to answer all of your FAQs and many others not so frequently asked.
At Conficio our team of multi-disciplined product design professionals are on hand to work closely with you to explore your concept and bring your idea to life.