OSS-EC is an abbreviation for Open Source Software for Embedded Components.
The objective of OSS-EC is to develop electronic component programs with high quality, at low cost, and in a short period of time. To this end, OSS-EC is an OSS with the following features.
Feature
- Easily integrated into each product software.(3. Architecture & Files)
- API is common for each component type. (4. API)
- Provide OSS-EC for various OS to match the product. (5. OS support)
- License free if you comply with OSS-EC Terms of Use
- Provide component software interface specifications. Provision of the BSL specification for OSS-EC. Provide test specifications and test results. (6. Dcuments)
- Programs and documentation for the components are available for free download. To make it available globally, it can be downloaded from GitHub and various OS sites.(7. Download site)
Terminology
OSS-EC | Open Source Software for Embedded Components |
API | Application interface |
XYZ | Component Manufacturer Name |
ABCDEF | Component model number |
BSL(bsl) | Base Software Library OSS-EC main function |
12345678 | The BSL number is an 8-digit number |
ap | Application program |
Architecture & Files
The OSS-EC architecture and provided files are as follows
Fig.1 Architecture & Files

ABCDEF.cpp | unchangeable | Const data file of model number |
ABCDEF.h | unchangeable | Define header file of model number |
bsl_12345678.cpp | unchangeable | Program file of this BSL |
user_define.h | changeable | Define header file of user user setting : Port pin, VCC, etc |
sample/main.cpp | changeable | Sample program file Arduino sample.ino |
sample/lib.cpp | changeable* | Library program file of this BSL |
sample/lib.cpp | changeable* | Library define header file of this BSL |
oss_ec_include/bsl_12345678.h | unchangeable | Define header file of this BSL |
oss_ec_include/component_type.h | unchangeable | Component type define header file exp) ADC component & Linear type adc_linear.h |
oss_ec_include/common.h | unchangeable | Common define header file of OSS-EC |
oss_ec_include/float_integer.h | unchangeable | Floating-point/Integer define header file |
* Library functions are provided with functions to assist your application. It is up to the user to decide whether or not to use them.
API
The API is determined by selecting components and BSL functions. For detailed specifications, please refer to the respective BSL specifications.
rtn_type bsl_12345678( arg_type tbl_ABCDEF);
exp) float bsl_00000058( tbl_adc_l_t tbl_S58LM20A );
rtn_type float
bsl_12345678 bsl_00000057
arg_type tbl_adc_l_t
tbl_ABCDEF tbl_S58LM20A
rtn_type | Return data type of bsl_12345678 function The rtn_type is defined in bsl_12345678.h |
bsl_12345678 | Base Program function name of OSS-EC The bsl_12345678 function is provided in bsl_12345678.cpp |
arg_type | Argument data type of bsl_12345678 function The arg_type is defined in bsl_12345678.h |
tbl_ABCDEF | The tbl_ABCDEF table is provided in ABCDEF.h, ABCDEF.cpp |
Fig.2 ADC components of API

It is recommended that the API name be redefined and used as follows.
sample/main.cpp (Mbed)
// redefine #define tempreture_read bsl_00000058 #define humidity_read bsl_00000058 #define tbl_temperature tbl_S58LM20A #define tbl_humidity tbl_CHS_MSS typedef tbl_adc_l_t tmp_struct; typedef tbl_adc_l_t hmd_struct; float tempreture_read( tmp_struct ); float humidity_read( hmd_struct ); void ap( void ) { float val_temperature; // Temperature [degree celsius] float val_humidity; // Humidity [%RH] do{ // Read of Temperature Sensor val_temperature = tempreture_read( tbl_temperature ); // Read of Humidity Sensor val_humidity = humidity_read( tbl_humidity ); // Application cycle wait thread_sleep_for( iSensor_Cyc ); }while(true); }
OS support
OSS-EC provides BSLs supporting many operating systems as shown in Fig. 3.
Fig.3 OS support

Documents
The following documents are available We hope you will find them useful to ensure your quality.
- Specification document of ABCDEF
- Specification document of BSL-12345678
- TestSpec&Result-ABCDEF_12345678
- Specification document of library_name
- TestSpec&Result-library_name
Downloadable sites
OSS-EC can be downloaded from the site.
– Github
– Arduino
– Mbed
– PlatformIO