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.


  • 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)


OSS-ECOpen Source Software for Embedded Components
APIApplication interface
XYZComponent Manufacturer Name
ABCDEFComponent model number
BSL(bsl)Base Software Library
OSS-EC main function
12345678The BSL number is an 8-digit number
apApplication program

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

Downloadable sites

OSS-EC can be downloaded from the site.

– Github
– Arduino
– Mbed
– PlatformIO