THE AUTHORS OF THIS SOFTWARE ACCEPT ABSOLUTELY NO LIABILITY FOR ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS EXTREMELY UNWISE TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of harming persons must have provisions for completely removing power from all motors, etc, before persons enter any danger area. All machinery must be designed to comply with local and national safety codes, and the authors of this software can not, and do not, take any responsibility for such compliance.
This software is released under the GPLv3.
This Repository is a fork of the original project STMBL, an open-source servo drive designed for Retrofitting CNC machines and Robots. It supports Industrial AC and DC servos.
You can read the documentation to learn more about this project.
We are proposing a new revision of the project making significant improvements and updates:
- H-bridge
- Power connectors
- Bulk Capacitor
- Heat dissipation components and case
- Other obsolete components
First we needed to replace the original and obsolete H-bridge IRAM256 with a more powerful and easily available one. We chose the Infineon IKCM30F60GD capable of peak output currents up to 60Amps instead of 30 of the original bridge.
During our tests with earlier prototypes we noticed that the original power connectors overheated and even got damaged when the board drove big loads.
So we decided to replace power connectors, both HV DC input and 3 Phase output with golden plated XT60PW and MR60PW connectors from Amass®, designed for high current up to 60Amps.
We have relocated big bulk capacitors outside in a rectifier module as close as possible to the drives. Instead internally we kept a more compact MKP Polypropylene snubber capacitor for decoupling the bridge HV power supply.
We also optimized heat dissipation components and layout, reducing overall volume by half compared to the original design.
there were several other components that have been replaced because they have become obsolete:
- ACT4088US-T (DC/DC converter) replaced with RT8259GE from Richtek.
- With DC/DC converters, the power inductors have also been updated to:
- ZLDO1117G33TA (LDO 3.3V 1A) replaced with its new version LDL1117S33R from STMicroelettronics
- both microUSB connectors have been updated to the more modern USBc
/stmbl/lib/soes-esi/STMBL_ECAT.xml - Description of Ethercat device eeprom.bin - EEPROM file for this configuratio of AX58100
This project is CiA 402 csp dummy on STM32F405x. Dummy as in loopback: does nothing, received target position is reported as actual position. CiA 402 is implemented,>
The stuff I am doing aims at STMBL rather than ODrive (hence I started with oldschool StdPeriph libs), but both projects use STM32F405. One EtherCAT codebase done pr>
I have been working on that for some time now, and this is where I got:
- software licensing prohibits us from using Beckhoff SSC for open source, it leaves us SOES with GPL. For code generation tool, one can purchase EtherCAT SDK from r>
- hardware (boards designed by me) seems to be working. Slave nodes are reaching OP on both LAN9252 and AX58100
- measured performance shows that we better focus on AX58100. In freerun, with STM32F40x SPI1 at max speed, ecat_slv() loop takes < 20 us so we can easily get linuxc> Just check out https://github.com/OpenEtherCATsociety/SOES/blob/master/soes/hal/rt-kernel-twrk60/esc_hw.c (ET1100 code) vs https://github.com/OpenEtherCATsociety/SOE>
- CiA 402 is implemented and works with TwinCAT NC, SOES works in mixed mode with DC sync
/esi_refcontains relevant ESI file examples from misc sources/lib/cia402is CiA 402 servodrive state machine implementation, indepenent from used CANopen implementation/lib/soesis copied OpenEthercatSociety/SOES/soes content for easier future upgradeability./lib/soes/hal/ax58100has added HAL for AX58100 over SPI/lib/soes_hal_bspcontains PDI drivers (for STM32F4 SPI with StdPeriph)/lib/soes-esicontains CoE Object Dictionary (OD), and EtherCAT Slave Info (ESI)/lib/soes-esi/ax58100_patchedcontains ESI files prepared for ASIX 58100 ESC by runningpatch_esi.pyscript
This projec uses AX58100 - SPI breakout rev 1
#STMBL PMSM ethercat config
link pid
link pmsm
link smartabs_fb0
link misc
link ethercat
conf0.r = 1.262658 # append to config
conf0.l = 0.019329 # append to config
conf0.polecount = 5.000000 # append to config
conf0.mot_fb_offset = -2.176324 # append to config
conf0.psi = 0.054751 # append to config
conf0.j = 0.000277 # append to config
conf0.o = 0.001396 # append to config
conf0.d = 0.000386 # append to config
conf0.f = 0.041576 # append to config
conf0.pos_bw = 42.811371 # append to config
conf0.vel_bw = 500.000000 # append to config
conf0.vel_d = 7.330830 # append to config
New sserial RS422 bus on 500 Mbaud speed (with adddressing)
link pid
link pmsm
link smartabs_fb0
link misc
link sserial
load avg
avg0.rt_prio = 1.0
avg0.frt_prio = 1.0
sserial0.baude = 500000
sserial0.adr = 2
sserial0.pos_fb = smartabs0.encoder_vals
linrev0.scale = 8388608
avg0.mult = 1
avg0.lpf = 5
avg0.in = sserial0.pos_cmd
linrev0.cmd_in = avg0.out
conf0.r = 1.262658 # append to config
conf0.l = 0.019329 # append to config
conf0.polecount = 5.000000 # append to config
conf0.mot_fb_offset = -2.176324 # append to config
conf0.psi = 0.054751 # append to config
conf0.j = 0.000277 # append to config
conf0.o = 0.001396 # append to config
conf0.d = 0.000386 # append to config
conf0.f = 0.041576 # append to config
conf0.pos_bw = 100 # append to config
conf0.vel_bw = 500.000000 # append to config
conf0.vel_d = 7.330830 # append to config
conf0.vel_g = 0.9 # append to config
If you want to get a prototype of this board contact us here.