Is Luos for me? 🤔
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 the configuration file config.h, Luos allows users 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. Max size of a message (3 * (7 bytes header + 128 bytes data + 2 bytes CRC)).
MAX_MSG_NB2*MAX_CONTAINER_NUMBERMax number of messages for a container that can be buffered.
NBR_PORT2Number of PTP on the node ( max 8). See electronic design page.
Follow @Luos-io Watch Star