Skip to the content
2 layers94.5 × 74.4 mmAx58100-stm32-ethercat, the printed circuit board in 3D

Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

Size
94.5 × 74.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
184
Nets
222
Pads
729
Tracks, vias
2,016, 221
Pours
26
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
19 Dec 2023
Updated
22 Oct 2025

Overview

Ax58100-stm32-ethercat is an open-source printed circuit board by MetalMusings, from the MetalMusings/MyOwnEtherCATDevice repository on GitHub. It is a 2-layer board of 94.5 × 74.4 mm with 184 parts on 222 nets, routed with 2,016 tracks and 221 vias.

It is built around the STM32F407VGT6, AX58100LT and TLP292-4(E, with the 24LC32A/P, AMS1117-1.2 and AMS1117-3.3 among its other parts. Its parts include 71 resistors, 52 capacitors, 21 diodes, 18 connectors and 10 ICs. It belongs with the STM32 boards of this library.

Main components

9

README

README.md

MetalMusings EtherCAT device

This repository contains the EtherCAT devices I have designed, built and put in use in linuxcnc.

Everything should be here:

  • Schematics, PCB layouts, and what is needed to build the boards.
  • Software tools to create an ESI-file and program the ESC eeprom.
  • Software tools to create the application running on a STM32F407VG.
  • A big learning curve is hidden in here as well

I have (so far) used two different ESC ICs: LAN9252 and Ax58100. Both work, I can't really see a difference. The Ax58100 has a leg spacing of 0.4 mm, 0.5 mm for the LAN9252, if that matters. On paper the Ax58100 has more builtin functionality like stepper motor drivers, but the documentation is lacking. Or my understanding of the documentation is lacking. The Ax58100 supposedly has more efficient access to registers and data. The indirection scheme is the main objection to using LAN9252, I have read. The LAN9252 is the true and tested IC of the two. If you don't know, go for the LAN9252.

The EtherCAT cards, which I call EaserCAT cards, use an EtherCAT chip and a normal MCU. I have used the STM32F407VGT6. The EaserCAT chip does the network talk and other EtherCAT things. The STM32 does the application things, like reading and setting pins high or low, reading encoder inputs, generate stepper motor pulses and other interesting applications one can think of. There is a narrow interface between the two: SPI and a couple of lines for synchronization. Any decent MCU can do that, it doesn't have to be a STM32F407VGT6. I have tested with a esp32 with success. Feel free to experiment with other processors.

I learned most of what I know about EtherCAT through a number of Youtube videos I made. There are accompanying git branches. For example, for video 8 you can check out the Video8 branch to get the software tree in the state at the video. More info on the videos, which are now more of historical interest, but also a bit of learning by following this link

And of course, this work builds on the work of many others. This would not be possible without their work. I'm just reusing what they did and maybe expanding on it.

Here is the start of building instructions

EaserCAT 2000 - a testbench for ESC+MCU, SOES, stepper generator, linuxcnc

Picture of EaserCAT 2000 board

This was the first card that got used in Linuxcnc. Follow link here I think I got it working pretty well in the end. There was, and still is, an issue with synchronization between the linuxcnc servo-loop and the ESC DC loop. I don't remember the status of it anymore, it was some time ago I worked with it. The main thing was that it lacked optocouplers and isolation for the external signals.

EaserCAT 3000 - All in one board with Ax58100

Picture of EaserCAT 3000 board

This card is an evolution of the EaserCAT 2000 and was intended to be used in my plasma cutter. It features four stepper driver outputs, input for a THCAD arc voltage card, an encoder, an analog output (for spindle +- 10V), eight digital inputs, four digital outputs, plus some 12 I/O for any possible extension. The IOs are isolated from the MCU.

However, I couldn't get this card to work, almost at all. The Ax58100 didn't even load the eeprom. Struggling with the documentation for the Ax58100, which formed my negative opinion about that, I gave up and let it sit for over half a year. It was first when someone came and asked questions around it I had another look. I built a new board, and it all started to work. At time of writing it all seems to work.

The latest vesion of the firmware has all parameters for step generators as PDOs.

Link here

EaserCAT 4000 - THCAD reader

Picture of EaserCAT 4000 board

Faced with the problems with the EaserCAT 3000 board, and still wanting to use EtherCAT in my upcoming plasma cutter, I made this board whos single purpose is to read the PWM frequency from Mesa's THCAD board.
The THCAD board reads the voltage between the plasma torch and the workpiece which is around 100V. Highly isolated, and with a voltage to frequency converter it delivers a differential pwm signal. The frequency of this signal can be related to the voltage.
That's what is needed for linuxcnc torch height control.

In the tests on the bench this can read at least up to 200 kHz, but its's better to be below 100 kHz. The THCAD has a frequency divider one can set to make the frequency range nicely match this. It seems to work fine so far. Implementation is with interrupts.
A better option would have been to use TIM2's PWM_INPUT function, which can work with several MHz frequency. I tried the PWM_INPUT method a lot but couldn't get it to work. The current method still works, though. If time and interests are in phase with the moon, I might look at PWM_INPUT again.

This board is now relegated to history, replaced by the EaserCAT-6000.

Link here

EaserCAT 5000 - Digital IO without MCU

Picture of EaserCAT 5000 board

A card just doing Digital Input and Digital Output. The intentions were to read limit switches and some other switches around the plasma torch. And to switch on the plasma torch. It's a single LAN9252, configured for local IO. Optocouplers are attached to IO pins for isolation. It has been tested on the bench, it works with TwinCAT.

HOWEVER, it doesn't work, and will not work, with linuxcnc. As I've learned, the IgH EtherCAT master needs a CoE client (CANopen over EtherCAT). The LAN9252 in DIO mode is only an EtherCAT client and can't be turned into a CoE client. And the IgH EtherCAT application interface for real-time communication can not be downgraded to work with a pure EtherCAT client, it requires a CoE client.

To add CoE functionality means to add number of objects at certain positions in the client and that can not be done to the LAN9252. It is what it is. In a setup with LAN9252 with MCU, those objects are created in the firmware, so there it works.

This board is now relegated to history, replaced by the EaserCAT-6000.

EaserCAT 6000 - Digital IO and frequency input

Picture of EaserCAT 6000 board

Finally, a card that's actually used in a real system. This card is used in my plasma cutter. It has 12 digital inputs, 4 digital outputs and a frequency counter to get the input from Mesa's THCAD (reader of voltage between plasma nozzle and workpiece).
All digital IOs are opto-isolated and the frequency input uses a RS-485 receiver.

In the plasma cutter, it does the job. There are three ECT60 stepper motor drivers. And the EaserCAT-6000 card. It handles limit switches for X, Y and Z, floating switch, break-away switch, and plasma Arc OK signal. There is room for e-stop and other switches.
The plasma torch is switched on using one of the digital outputs.
THCAD is an older model with full voltage input. Frequency divider is set to 1/32.

This board replaces EaserCAT-4000 and EaserCAT-5000.

Inside the cabinet

Link here

A few weeks later and I've used this card in the plasma cutter for quite a bit of cutting and it hasn't missed a beat. Works so well. THC follows the sheet surface up and down. Awesome.

EaserCAT Torch Height Control - EaserCAT 7000 with THTIC and THTIC2

Actually something useful again - not one, but two, plasma torch voltage readers. They replace the THCAD board and comes with the entire chain from voltage reading to the introduction of a calibrated voltage to linuxcnc for use in QtPlasmaC.

Let's start with the plasma cutter. There is either a THTIC or THTIC2 mini-board, which reads the plasma torch voltage, and through a voltage divider lowers it to about 2 Volts during cutting. This voltage is converted by an analog to digital converter and feeds the digitized voltage to the EaserCAT 7000 board via an I2C bus (cable). The EaserCAT 7000 board makes the voltage available both as the raw read voltage for further scaling, or as a calibrated voltage using entered calibration constants.

The plasma torch voltage is DCEN - DC Electrode Negative. The workpiece ground is often connected to ground/earth. With ground as the reference voltage, the plasma torch voltage ranges between 0 V and -200 V. An inverting operational amplifier switches the polarity for the ADC. The ground planes on the circuit board are connected to the workpiece ground.

An important feature of THCTIC and THCTIC2 is that the plasma voltage side is isolated from the linuxcnc signal side. The isolation level is better than 1.5 kV. This is achieved by an I2C isolator and an isolated DC-DC converter. The difference between the two cards is the choice of ADC. THTIC uses MCP3221 and THTIC2 uses ADS1014. Both are 12-bit analog to digital converters, ADS1014 is perhaps an 11-bit, both with sampling rates around 3 kHz. A newly measured voltage value can be obtained every 1 ms. Of course you only choose one of the two. Since it seemed pretty easy when I did it, I made two different ones. Always good to have options.

The boards are relatively small, 42x30 mm. Voltage 5V in, current less than 10 mA. I2C Data and clock.

THTIC

THTIC THTIC

THTIC2

THTIC2 THTIC2

EaserCAT-7000 Digital IO and I2C voltage reader

THTIC2

EaserCAT-7000 is an EaserCAT-6000 board where the THCAD frequency input has been replaced by the I2C bus. There are twelve digital inputs and four digital outputs.

Currently the EaserCAT-7000 can handle two I2C voltage readers, on different I2C addresses.
Configuration of the connected I2C devices is done by setting the voltage reader type in SDOs 0x2000:1 and 0x2001:1 for device 1 and 2. The I2C device type is set to 0 by default. A zero means no I2C ADC. Entering a 1 in 0x2000:0 selects the MCP3221, and a 2 in 0x2000:0 selects the ADS1014.
The I2C address for the ADC is written into SDOs 0x2000:2 and 0x2001:2. The address for the MCP3221 is selected when it is purchased - there are 8 different models each with a different I2C address 0x48-0x4f. The THTIC2 board has the address fixed at 0x48; can be modified during pcb assembly to 0x49 quite easily - check datasheet. Short version is to cut Addr-Gnd and add Addr-Vcc.

Pay attention to the polarity when connecting the plasma voltage leads the THTIC and THTIC2. Varc+ must have higher voltage potential the Varc- (as one would expect). The voltage divisor may need to be adjusted, there is now one 100 kOhm resistor and a 2.2 kOhm resistor, which brings down 100 V to around 2 V. Adjust as needed. For high voltage, pay attention to the max allowed voltage of the resistor. The ADC likes to have around 2-3 Volts when cutting.

The experience with these cards has been very good. I used the THTIC a lot, cutting for at least an hour of cutting time, with THC enabled and active. A status variable shows that it has been working the whole time, no stops or resets. After that I switched to the THTIC2 card and have been using that since. Works really well.

THCLIP Enable ohmic sensing with the IPTM-60 torch

This is for the torches known as IPT-60 PT-60 S45 IPTM-60 IPTM-80 and many more that have blowback start with the torch tip exposed and normally shortened to the torch electrode. Normally this torch can't use ohmic sensing since all parts are connected to ground. At least on my machine, a Herocut 8000, the blowback start cable from the torch can be cut during sensing. This enables ohmic sensing and it continues to operate in other situations.

THCLIP

THCLIP

I tried at first to use the normal Arc voltage reader to detect any contact between the torch and the work piece during probing. However, that was not reliable - it seems there is electronics involved with the arc voltage. Don't want to know details.

I put a second voltage reader THTIC2 close to the THCLIP and measure the 24V applied after the relay. Monitoring this voltage turns out to be reliable and makes the ohmic sensing work really well.

I have made an adaptation to the EaserCAT 7000 to handle the contact. The relay has a short, some 10 msecs, setup time. The read voltage must therefor first go above the voltage limit before it starts to scan for the voltage to go below the voltage limit which indicates contact.

The Trafimet torch hose connectors are called FY0022 and FY0023. The relay is a 24V 40A standard car relay. Check out the Kicad schematics for the other parts.

Schema Leads 1 and 4 are the blowback arc start ground leads in my torch. They get cut by the relay during ohmic sensing. Voltage is measured on connector J3, between pin 1 and pin 2.

Ready for use

License

Don't violate the original licenses. No warranties. Use it any way you like.
Remember: It is a hobby project, not a product.

Parts

184
QtyValueFootprintReferences
330.1uFCapacitor_SMD:C_0805_2012MetricC1, C2, C11, C12, C14, C15, C16, C17, C19, C20, C21, C22, C23, C24, C25, C26 +17
154k7Resistor_SMD:R_0805_2012MetricR10, R13, R17, R28, R41, R44, R45, R46, R48, R64, R65, R67, R68, R69, R71
94k7Resistor_SMD:R_0603_1608MetricR2, R3, R4, R5, R6, R7, R8, R9, R42
9Red ledLED_SMD:LED_0603_1608MetricD2, D4, D6, D8, D10, D12, D14, D16, D20
810pFCapacitor_SMD:C_0805_2012MetricC29, C30, C31, C32, C34, C35, C36, C37
81kResistor_SMD:R_0603_1608MetricR19, R20, R21, R22, R23, R24, R25, R26
839kResistor_SMD:R_0603_1608MetricR30, R31, R32, R33, R34, R35, R36, R37
849.9Resistor_SMD:R_0805_2012MetricR49, R50, R51, R52, R53, R54, R55, R56
8Yellow ledLED_SMD:LED_0603_1608MetricD1, D3, D5, D7, D9, D11, D13, D15
7510Resistor_SMD:R_0805_2012MetricR57, R59, R60, R61, R62, R63, R70
51kResistor_SMD:R_0805_2012MetricR12, R15, R18, R38, R39
522Resistor_SMD:R_0805_2012MetricR29, R40, R43, R47, R58
5BLM18EG221SN1DCapacitor_SMD:C_0805_2012MetricB1, B4, B5, B6, B7
410uFCapacitor_SMD:C_0805_2012MetricC13, C38, C41, C42
4330Resistor_SMD:R_0603_1608MetricR11, R14, R16, R27
3TLP292-4Package_SO:SOIC-16_4.55x10.3mm_P1.27mmU3, U4, U5
218pFCapacitor_SMD:C_0805_2012MetricC51, C52
22.2uFCapacitor_SMD:C_0805_2012MetricC5, C18
222pFCapacitor_SMD:C_0805_2012MetricC8, C10
2BLM18EG221SCapacitor_SMD:C_0805_2012MetricB2, B3
2Blue ledLED_SMD:LED_0603_1608MetricD17, D18
2Green ledLED_SMD:LED_0603_1608MetricD19, D21
2J0011D01BNLHakansLibrary:PulseJack JB0011D01BNLIN1, OUT1
1120Resistor_SMD:R_0805_2012MetricR1
112k 1%Resistor_SMD:R_0805_2012MetricR66
11uFCapacitor_SMD:C_0805_2012MetricC45
124LC32APackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU8
124V FieldConnector_Phoenix_MC:PhoenixContact_MCV_1,5_2-G-3.5_1x02_P3.50mm_VerticalJ12
15V Power INConnector_Phoenix_MC:PhoenixContact_MCV_1,5_2-G-3.5_1x02_P3.50mm_VerticalJ11
18 MHzCrystal:Crystal_HC49-4H_VerticalY1
1AMS1117-1.2Package_TO_SOT_SMD:SOT-223-3_TabPin2U9
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U7
1AX58100HakansLibrary:LQFP-80-1EP_10x10mm_P0.4mm_EP5.3x4.5mm_ThermalViasU10
1DACConnector_Phoenix_MC:PhoenixContact_MCV_1,5_3-G-3.5_1x03_P3.50mm_VerticalJ13
1EncoderConnector_Phoenix_MC:PhoenixContact_MCV_1,5_5-G-3.5_1x05_P3.50mm_VerticalJ10
1In1-4Connector_Phoenix_MC:PhoenixContact_MCV_1,5_4-G-3.5_1x04_P3.50mm_VerticalJ6
1In5-8Connector_Phoenix_MC:PhoenixContact_MCV_1,5_4-G-3.5_1x04_P3.50mm_VerticalJ7
1In_opt1Connector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ14
1In_opt2Connector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ16
1MAX3485CSA/ESAPackage_SO:SO-8_3.9x4.9mm_P1.27mmU1
1NXK25.000AE12F-KAB6-12Crystal:Crystal_SMD_SeikoEpson_TSX3225-4Pin_3.2x2.5mmY2
1Out_optConnector_JST:JST_XH_B6B-XH-A_1x06_P2.50mm_VerticalJ18
1Output1-2Connector_Phoenix_MC:PhoenixContact_MCV_1,5_4-G-3.5_1x04_P3.50mm_VerticalJ8
1Output3-4Connector_Phoenix_MC:PhoenixContact_MCV_1,5_4-G-3.5_1x04_P3.50mm_VerticalJ9
1STLINKConnector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ17
1STM32F407VGT6Package_QFP:LQFP-100_14x14mm_P0.5mmU6
1SW PBButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1Serial usart1Connector_JST:JST_XH_B4B-XH-A_1x04_P2.50mm_VerticalJ15
1Step1Connector_Phoenix_MC:PhoenixContact_MCV_1,5_3-G-3.5_1x03_P3.50mm_VerticalJ1
1Step2Connector_Phoenix_MC:PhoenixContact_MCV_1,5_3-G-3.5_1x03_P3.50mm_VerticalJ2
1Step3Connector_Phoenix_MC:PhoenixContact_MCV_1,5_3-G-3.5_1x03_P3.50mm_VerticalJ3
1Step4Connector_Phoenix_MC:PhoenixContact_MCV_1,5_3-G-3.5_1x03_P3.50mm_VerticalJ4
1THCADConnector_Phoenix_MC:PhoenixContact_MCV_1,5_4-G-3.5_1x04_P3.50mm_VerticalJ5
1TXS0108EPWPackage_SO:TSSOP-20_4.4x6.5mm_P0.65mmU2

More from MetalMusings/MyOwnEtherCATDevice

7
  • 2 layers112.5 × 65.6 mmEaserCAT-7000, the printed circuit board in 3D

    EaserCAT-7000

    MetalMusings/MyOwnEtherCATDevice

    Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

    138 parts93
  • 4 layers89.9 × 59.2 mmEthercat stm32, the printed circuit board in 3D

    Ethercat stm32

    MetalMusings/MyOwnEtherCATDevice

    Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

    134 parts93
  • 2 layers89.2 × 58.9 mmTHCAD reader, the printed circuit board in 3D

    THCAD reader

    MetalMusings/MyOwnEtherCATDevice

    Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

    126 parts93
  • 2 layers89.2 × 58.9 mm8In-8Out LAN9252-only, the printed circuit board in 3D

    8In-8Out LAN9252-only

    MetalMusings/MyOwnEtherCATDevice

    Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

    99 parts93
  • 2 layers41.5 × 30.5 mmTHTIC, the printed circuit board in 3D

    THTIC

    MetalMusings/MyOwnEtherCATDevice

    Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

    27 parts93
  • 2 layers41.5 × 30.5 mmTHTIC2, the printed circuit board in 3D

    THTIC2

    MetalMusings/MyOwnEtherCATDevice

    Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

    27 parts93
  • 2 layers47.3 × 35.4 mmTHCLIP, the printed circuit board in 3D

    THCLIP

    MetalMusings/MyOwnEtherCATDevice

    Documentation accompanying the "Make My Own EtherCAT device" video serie on Youtube.

    12 parts93

Similar boards

  • 2 layersESC board, the printed circuit board in 3D

    ESC board

    amurr/EtherCAT-Slave-Controller-board-KiCAD-design

    49 parts
  • 2 layers33.5 × 23.4 mmHack, the printed circuit board in 3D

    Hack

    Hack-a-Day/HaDge_HW

    A wearable thing for Hackaday folks.

    33 parts
  • 4 layers220 × 100 mm3U220-Support, the printed circuit board in 3D

    3U220-Support

    PTrUNB/3U220mm-Odoird-H2-H3-PSU

    Basic DCDC 2.8 to 48VDc power supply included

    198 parts
  • 4 layers85 × 56 mmNano, the printed circuit board in 3D

    Nano

    EnzoRF/nanoberry

    Single-board computer based on i.MX6 ULL

    229 parts21GPL-3.0
  • 4 layers74 × 41.2 mmStm32-netnode, the printed circuit board in 3D

    Stm32-netnode

    vincerodriguez/stm32-netnode

    stm32f407-based network node to report temperature in apartment

    84 parts
  • 2 layers78 × 60 mmIce viz, the printed circuit board in 3D

    Ice viz

    muni-works/vcad

    BRep CAD kernel in Rust/WASM

    44 parts442Apache-2.0
  • 2 layers104.1 × 71.1 mmMinifp, the printed circuit board in 3D

    Minifp

    eigenco/frankenpi

    This is an experimental project to connect Raspberry Pi with the help of cheap Cyclone IV FPGA board to 8-bit ISA bus to act as multiple different devices.

    69 parts139

Questions

How big is the Ax58100-stm32-ethercat PCB?

It measures 94.5 × 74.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Ax58100-stm32-ethercat use?

184 parts, built around the STM32F407VGT6, AX58100LT, TLP292-4(E and 24LC32A/P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Ax58100-stm32-ethercat KiCad files?

From the MetalMusings/MyOwnEtherCATDevice repository on GitHub, at the commit this page was made from: the board is Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Kicad/Ax58100-stm32-ethercat.kicad_pcb and its schematic Cards/EaserCAT-2000/Kicad/Ethercat-stm32.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Ax58100-stm32-ethercat design in my own project?

Its repository states no licence, so its author keeps all rights: ask MetalMusings before reusing the design.