Commit dc4955ff authored by Arnaud WATLET's avatar Arnaud WATLET
Browse files

Reviews developing_hardware_components.rst doc

parent c17d0db8
No related merge requests found
Showing with 16 additions and 13 deletions
+16 -13
......@@ -9,16 +9,17 @@ within an OhmPi system.
OhmPi is an open source system and contributions in terms of hardware and software are welcome. However, in order to
maintain the project on tracks and promote exchange and reuse, it is necessary that contributors
Developing a new hardware component is
Developing a new hardware component should ideally follow a few basic steps.
Two cases should be distinguished when dealing with hardware development components:
1- Hardware component development that complies with the way the OhmPi Hardware System works. This means that this development
focuses on improving a component (reduce cost, improve performance, adapt range to specific applications,
design with easily available parts...). The created hardware component will expose the minimal functionalities required
1- Developments of a hardware component that comply with the way the OhmPi Hardware System works. Such developments typically
focus on improving an existing component (reduce cost, improve performance, adapt range to specific applications,
design with easily available parts...). The newly created hardware component will expose the minimal functionalities required
by hardware_system for this type of component.
2- Hardware component development that introduces changes in the way the OhmPi Hardware System works. This means that
the development does not only focus on improving a single component but also on the way to operate the system. A
2- Developments of a hardware component that introduce changes in the way the OhmPi Hardware System works. Such
developments do not only focus on improving a single component but also on the way to operate the system. A
discussion with developers of the OhmPi_Hardware and OhmPi classes should be initiated at a very early stage to investigate
the best ways to design and implement a working solution.
......@@ -28,16 +29,18 @@ First the hardware board/device should be conceived and designed. The Ohmpi team
import their boards within KiCAD and that both schemas and PCB are shared.
When developing a new component Class, always start your development in a new branch.
1- Create a new python file or make a copy and modify an existing similar component file.
In this python file Create a new class based on the relevant abstract class of abstract_hardware_components.py.
1- Create a new python file or make a copy and modify an existing similar component file. All hardware component modules
are stored in the ohmpi/hardware_component directory.
In the newly created python file, define a new class based on the relevant abstract class of abstract_hardware_components.py.
Implement the abstract methods to interact with your hardware. Name the file according to the name of the component.
Place it in the ohmpi/hardware_component directory.
Make sure to place this new python module in the ohmpi/hardware_component directory.
2- Create a new configuration file or make a copy and modify of an existing configuration file.
In this file describe you system including the new component in the HARDWARE_CONFIG dictionary.
2- Create a new configuration file or make a copy and modify an existing configuration file. All existing config files
are stored in the ohmpi/hardware_component directory.
In this newly created config file, describe your system including the new component in the HARDWARE_CONFIG dictionary.
Name it config_XXX.py where XXX should be replaced by an expression describing the system.
Place it in the ohmpi/configs directory.
Make sure to place your new config file in the ohmpi/configs directory.
3- Create a new script or make a copy and modify of an existing script for testing the component.
In this script write python code where you will conduct the tests of the required functionalities of the new component.
In this script, write python code where you will conduct the tests of the required functionalities of the new component.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment