Technology Pricing Appstore Blog Docs Download

General integration consideration


Luos works as a code library running on nodes. To match Luos library with your hardware, Luos offers a Hardware Abstraction Layer for various devices in LuosHALHardware Abstraction Layer used to fit Luos with various hardware designs..

  • LuosHAL: This repository provides a list of family devices covered to match the Luos library with your hardware.
  • Luos: This is the main library you will be working with.

To make it work in your environment, you have to:

  • Include the Luos lib folders in your project compilation;
  • Select the right LuosHAL for your device family in LuosHAL folder, and include luos_hal.c, luos_hal.h and luos_hal_config.h in your project;
  • Change, if necessary, luos_hal_config.h in you project, the default configuration created by Luos (before including luos.h) in order to match LuosHAL with your hardware (eg: match pins with your design);
  • Include luos.h on your source file.


Through a configuration file, Luos allows user to customize many parameters needed for the library. these parameters can be set as compiler variables listed above:

ParametersDefaults valueDescription
PROTOCOL_REVISION0Luos protocol version
DEFAULTBAUDRATE1MbpsDefault network bauderate
MAX_DATA_MSG_SIZE128Number of bytes of the data field
NBR_NAK_RETRY10Number of retries to send after a received NAK
MAX_CONTAINER_NUMBER5Number of containers in the node (memory optimisation)
MSG_BUFFER_SIZE3*size_msgMessage buffer size (3 * (7 bytes header + 128 bytes data + 2 bytes CRC))
MAX_MSG_NB2*MAX_CONTAINER_NUMBERNumber of tasks that can be created (every message can create one or more tasks)
NBR_PORT2Number of PTP on the node ( max 8)
Follow @Luos-io Watch Star