IO-Link communication with Atmega328P chip (UNO)


I have been working on the development of an IO-Link device.
The final idea is to make a product with an on/off signal and two position feedbacks.

For my first development I have been through the different manuals and have used different IO-Link transceivers for communication.
Also I have started to create my own IODD file which I would need for the final product.
This has lead me to the current position and where I am stuck.

My research so far:
I have started with a P+F USB master and connected it to a BALUFF BES-M12MI-PSIC20C.
I have connected and activated both through Pactware (no problems so far).

An Arduino connected to the C/Q line and ground to read the data back and forth (using standard Serial example of Arduino and modified it a bit to directly show Serial input). Baudrate 38400.
To test my own device I have removed the BALUFF sensor and replaced it with my own combination of arduino uno and TIOL111 IO-Link transceiver.

When I look at the com output of the Arduino on the C/Q line it states the same values as with the BALUFF sensor.
However the Master responds as if there were nothing connected.
What could be the cause of an IO-Link master not responding to a similar signal on the C/Q line?

A link to the documentation for IO-Link would be useful.


You ask, I deliver.
Link to the document:

Please let me know if this link worked. I was not able to upload the document directly (size too large).

The link works, but there are over 200 pages in it and I am too lazy to read them all. Can you point out the specific pages that are relevant for your project?


The pages that are currently relevant now are:

  • 46 up to 48 (regarding timing and data octets)
  • 69 up to 78 (regarding startup sequence (where I am now))
  • 217 up to 220 (Annex A because of how the signals are build)
  • 236 up to 239 (Annex B because of the master request messages)

One side note:
I communicate through COM2 (hence the 38400 baudrate).
Also I know that during the start up procedure the master sends messages of M-Sequence TYPE_0.

Thought this might save you some research time too.

I have had a quick look at the introduction in that document but it has not given me any concept of what this IO-Link thing, or system is.

Maybe I'm just lazy, but I doubt if I can help without spending several hours trying to learn about something that I have no use for. And I'm guessing that you have already put in those hours without figuring it out :slight_smile:

Hopefully someone else will come along who is already familiar with IO-Link.


That is true and I understand you point.

Thank you either way for taking a quick look.