Software Design
1 Introduction
Kappa can design your software from start to end, or can also consult on your existing software. Software for embedded processors is essentially the media for Kappa Electronics to make Motor Control a tangible discipline. It allows us to practically implement estimators, control topologies, power electronics algorithms and graphical user interfaces.
2 Architecture
3 Object Oriented
4 Semiconductor Vendor Independent
We are not in the back pocket of any semiconductor company! We believe that our customers should not be captive to any particular architecture. Kappa will provide an unbiased proposal when it comes to selecting their motor control components. Our software is coded in such a way that source code can be compiled on any processor, whether it is an ARM®, or proprietary architecture, so the software will be completely portable. The use of a hardware abstraction layer (HAL) allows the source code to abstract the peripheral interface, focusing on the actual functionality of the system.

5 Coding Guidelines
With the purpose of making the code readable and to have the same look and feel of our software, we follow open source coding guidelines. We also use portable types, to make sure all the code is as portable as it can be when building code for 16-bit, 32-bit or even 64-bit architectures.
Even though we have a suggested coding guideline, we at Kappa are not locked in with a particular format, and we are flexible to follow our customers’ coding styles.
6 Documentation
We at Kappa use Doxygen for our software and module documentation, as it provides the features needed to create HTML and PDF outputs, with figures, equations, and also source code documentation, with hyperlinks, API lists, diagrams, etc. To learn more about Doxygen, visit: www.doxygen.org

7 Example
In order to illustrate an example of software developed by Kappa, refer to the following three documents:
7.1 Source File, File Name: pi.h
This source file shows an implementation of a proportional-integral (PI) controller, as well as some run time functions. These functions are implemented as inline functions to improve execution speed, as they would not cause function calls or branching.

7.2 Module Documentation, File Name: pi_manual.pdf
Full documentation of this module is generated by Doxygen, in PDF format, showing the implementation of the object, its functions, and also a theoretical background with equations. At the end of the module overview section, an example using a simulation environment, in this case Scilab, showing how the module can be tested and how users can become familiar by modifying parameters and inputs.

7.3 Simulation, File Name: test_pi.xcos
Users can use an open source simulation environment like Scilab to get familiar with a particular module. The test_pi.xcos example shows how useful a simulation of a module can be, since it helps users exercise the module without the need of any hardware or any physical system. It also allows monitoring all intermediate signals as needed for debugging purposes.

Top-down Methodology

- Wide range of motor control software features to choose from.
- Experience with multiple processor platforms.
- Frees you to pick the hardware components you want based on best features, NOT vendor software!