Anybus M40 Ethercat module migration from M30

Hi, we just started using the Ethercat M40 module. Previously we have been using M30 module for Dnet/Modbus TCP/Profibus Etc. we had initially tested out with M30 module for the Ethercat and everything seems to be working ok. But when we go to M40 module, I can see the module go into NW_INIT state and multiple requests coming from the M40 Ethercat module, which our system responds to as not implemented. This seems to work for the M30 module and it goes into Waiting state. But for the M40 module it enters Error state. Is there any specific command that the M40 module is expecting to be implemented that is not needed for M30?
We communicate over serial port if that makes any difference.



An application for a m30 should be able to work with an m40. Have you reviewed section D of the design guide?

hmsi-27-334.pdf (

You may also want to verify the hardware design is compatible with the m40. see section a6 hms-hmsi-216-126.pdf (


Hi Deryck,

Yes i have reviewed those sections. On the hardware side i did notice the difference in the MI pins which i changed to detect correctly. And I am able to monitor the communications back and forth between the Anybus module and our microcontroller.
Our implementation is very simple so we haven’t implemented most of the functions we just use it to read write some process data, which is mapped to ADI’s.

With the M30 module it is asking for the following:
Object FE Instance 0 Attribute 3 command 0x01
Object FE Instance 0 Attribute 4 command 0x01
and then asking multiple data from Object F5 which i reply with error 0x06 (not implemented)

With the M40 Module i see the module asking for:
Object FE Instance 0 CMD ext 0 command 0x13
Object FE Instance 0 CMD ext 0 command 0x14
Object FE Instance 0 CMD ext 0x0100 command 0x15
Object F5 Instance 1 CMD ext 0x1E
Same as above i respond to all these as not implemented at which point the module seems to go into state 7 (exception state)

So it looks like once the module is going into Init state, the M40 and M30 are looking for completely different info on the Host application side.

I guess the only other thing i can see is the OM pins. I think for us we don’t have anything connected. Would this cause an issue? I would have thought this would give an error even when we try to communicate to it. But if it will only cause error at end, then this may be the issue as our OM pins are left floating… we are using serial communication at 57.6k baud rate

Hi @kkarkala ,

This migration guide might be a helpful here. migration-guide—hms-scm-1202-043.pdf (

I’m not sure i follow the context to the requests. Can you enable debugging and share the logs?