Delta ASDA-B3A-E help with Wiring Diagram needed

Hello everyone,

I have a servo system with a Servo Motor from Delta Electronics, part number ECM-B3M-C20604RS1, and the respective Servo Drive, in my case ASD-B3A-0421-E, which can use EtherCAT communication. My motor is rated for 400W, 220V, F40-F80 frame, 1.27Nm, and 2.4Arms; the drive has similar ratings. I want to control my system with Arduino, but I am running into quite a lot of problems and questions. I have the Arduino Uno R4 Wifi board and I even bought an EtherCAT shield, the EasyCAT EasyCAT , as I thought it would be an easy plug-and-play situation of mounting the shield on top of the arduino board and connecting it through an ethernet CAT5e cable to the drive, but that is not the case.

I have now kind of given up on the whole EtherCAT connection as I think it might be overcomplicating it, but if someone has some insight and would know how to guide me through this it would be more than welcome.

However, assuming I won't be using EtherCAT... I can connect the arduino through the CN1 port for I/O connection. I also have a 24V DC external power supply for powering this. My system uses 220V AC single phase as the main power source, which I get from the wall socket, and I have already done the wiring there, so the drive is connected to the main source and the motor is properly connected to the drive. I have checked and it works. I am now missing the wiring for the arduino + 24V + I/O connection parts.

I have found the diagram in page 3-105 of the manual useful (make sure to look for diagrams for B3A-E drives, as the manual contains different models and so different diagrams). The diagram in page 3-5 was also helpful, but I do not think it contains much information on the wiring I have to do now. I know the basics of electric circuits but I do not understand everything, and this is out of my knowledge. Could someone please guide me through the wiring for connecting both the arduino board and the 24V power supply to the CN1 connector?

I'm fairly new to electronics/electrical engineering. From my understanding from the diagram in page 3-105, these are some of the connections for the power supply:

  • pin 5, COM+ in CN1 -----> + end 24V power supply
  • pin 6, DI1- -----> - end 24V power supply
  • pin 7, DI2- -----> - end 24V power supply
  • pin 8, DI3- -----> - end 24V power supply
  • pin 9, DI4- -----> - end 24V power supply
  • pin 15, DO1+ -----> + end 24V power supply
  • pin 16, DO1- -----> - end 24V power supply
  • pin 17, DO2+ -----> + end 24V power supply
  • pin 18, DO2- -----> - end 24V power supply

are these correct?

This is the diagram from page 3-105 that I was referring to:

Also, the manual mentions PULL_HI_S and PULL_HI_P (pins 13 and 14) in CN1 and says they should be connected to 24V if using open collector type when sending position pulses. What does that mean? Is that my case? Do I have to connect the PULL_HI pins to the 24V then or not? And if so how do I wire that? PULL_HI pins are mentioned in pages 3-46 and 3-47 of the manual.

I have attached a link to the user manual for my servo motor and drive, which are from the same series. Refer to the specific part numbers mentioned above when looking through the manual. It is very long but contains very useful information. However, it does not talk about Arduino at all, hence why I need some help. https://filecenter.deltaww.com/Products/download/06/060201/Manual/DELTA_IA-ASD_ASDA-B3_UM_EN_20230428.pdf

I really appreciate any help :folded_hands: thank you so much in advance!!

Quite a lot to unpack there. Before we go to far, if you have model ASD-B3A-0421-E then it does not appear to support pulse input, ref page 1-5. Can you confirm? [*]

For EtherCAT, the shield would be for slave device. In your case, you Arduino would be a master, and the great thing about Ethercat is that the master does not special hardware, just an ethernet connection. So I think you could use an Ethernet shield instead (I'm uncertain of compatibility with Uno R4).

You would not normally need to use PULL_HI with Arduino. However, the drive current on UNO R4 may be insufficient, this type of drive nearly always use optocouplers.

  • Edit: the table appears to be wrong, the rest of the doc states the opposite.

Well, studying further, the servo drive can not use typical TTL inputs. The differential drive method is not compatible with Arduino I think.

Therefore I would use the "open collector NPN" arrangement shown on page 3-53

Choosing suitable transistors is outside my wheelhouse unfortunately.

Hi there. Thank you so much for replying, I really appreciate the help.

Since you mention that the Arduino would be an EtherCAT master, does that mean I can just place the EasyCAT shield I linked above on top of my Arduino board and then connect that to the drive using a CAT5e cable? I am unsure and doubting the whole EtherCAT functionality thing because of a response I got from the EasyCAT manufacturers when I asked them about how to connect the board and shield to the drive. This is what they told me:

"To realize Your application, You need an EtherCAT Master (and a motion controller), but with the EasyCAT boards, You can only make EtherCAT slaves like I/O or others devices, but not Masters; thus, You can’t use our board to make Your application.
To realize a Master You only need a simple Ethernet shield like the Arduino Ethernet Shield 2 Arduino Ethernet Shield 2 — Arduino Official Store and an open source EtherCAT Master library like this: GitHub - OpenEtherCATsociety/SOEM: Simple Open Source EtherCAT Master adapted to the Arduino processor, that is not easy to do I suppose.
At the end, the EtherCAT architecture require that to realize a Master You don’t need a special hardware but just an Ethernet adapter; instead, to realize a slave, You need special chips (in our case, the Microchip LAN9252) to manage the communication. But a Slave cannot be a Master, because the hardware is completely different, even if they seem similar."

I have never used EtherCAT before, and barely used Arduino for that matter, so I do not know how any of this works. Do you think EtherCAT would be the way to go? Or would you recommend going via connecting the Arduino board to the CN1 connector? Is it even possible to use the drive without using EtherCAT?

In your response you mention "The differential drive method is not compatible with Arduino I think." What do you mean by that? Can I use Arduino or is it not compatible?

I see that you mention you would use open collector NPN, so that means I need to incorporate the PULL_HI pins. However, my main question is still about how to wire the whole thing. I really do not know much about electric circuits and connections, so I am pretty lost when wiring the Arduino and the power supply to the CN1 connector. Taking into account that I would need to look for suitable transistors on my own, could you please help me with the wiring of it all? Even with the most basic stuff, like what pins in the Arduino should I be using?

I can't say for sure, the software could be complicated to set up. When I used EtherCAT, I ran a master on a PC. There appears to be a some code for Arduino GitHub - lipoyang/SOEM4Arduino: Simple Open EtherCAT Master Library for Arduino

I would say for now the pulse input should be an easier way forward.

They give the option for differential drive or open collector, so open collector is the only option.

I'm not an EE, and would not want to suggest anything that might damage your kit. Perhaps some people more experienced will chime in.

Okay, thank you so much for your time and help.

If anyone is reading this, I still need guidance with the wiring as I am fairly new to electrical engineering so I am pretty lost regarding how to connect everything. If anyone thinks they can help, please give me a shout.

In any case, thanks again @bobcousins , I really appreciate the help.