OSS-EC (Open Source Software for Eectronic Components) is a generic term for open source software (OSS) and related documentation for electronic components (components).
The purpose of OSS-EC is to standardize electronic component programs so that they can be developed with high quality, at low cost, and in a short time.

Feature High portability

  • Standard API by component type
  • Supports a wide variety of RTOS
  • Support for a wide variety of HALs
  • License free (but comply with OSS-EC Terms of Use)
  • Provides many documents

Definition of Terms

OSS-ECOpen Source Software for Eectronic Components
A generic term for open source software (OSS) and related documentation for electronic components (components).
APIApplication interface
XYZComponent Manufacturer Name
ABCDEFComponent model number

Architecture & Files

The OSS-EC architecture and provided files are as follows

Fig.1 Architecture & Files

ABCDEF.cppunchangeableConst data file of model number
ABCDEF.hunchangeableDefine header file of model number
bsl_12345678.cppunchangeableProgram file of this BSL
user_define.hchangeableDefine header file of user
user setting : Port pin, VCC, etc
sample/main.cppchangeableSample program file
Arduino sample.ino
sample/lib.cppchangeable*Library program file of this BSL
sample/lib.cppchangeable*Library define header file of this BSL
oss_ec_include/bsl_12345678.hunchangeableDefine header file of this BSL
oss_ec_include/component_type.hunchangeableComponent type define header file
ADC component & Linear type
oss_ec_include/common.hunchangeableCommon define header file of OSS-EC
oss_ec_include/float_integer.hunchangeableFloating-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.


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_typeReturn data type of bsl_12345678 function
The rtn_type is defined in bsl_12345678.h
bsl_12345678Base Program function name of OSS-EC
The bsl_12345678 function is provided in bsl_12345678.cpp
arg_typeArgument data type of bsl_12345678 function
The arg_type is defined in bsl_12345678.h
tbl_ABCDEFThe 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]
        // 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 );

OS support

OSS-EC provides BSLs supporting many operating systems as shown in Fig. 3.

Fig.3 OS support


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

OSS-EC English
error: Content is protected !!
Scroll to Top