2015-03-24 22:37:45 +00:00
DISCLAIMER
===
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.
2014-10-28 12:20:28 +00:00
stmbl
=====
2015-05-08 10:01:36 +00:00
**PCBs are now available, let me know if you are interested.**
2015-07-12 10:51:06 +00:00
2015-10-02 11:25:50 +00:00
**IRC: #stmbl on irc.hackint.eu**
2015-05-08 10:01:36 +00:00
stmbl is an open source servo drive designed for Retrofitting CNC machines and Robots. It supports Industrial AC and DC servos with up to 320V and 1kW.
Documentation about the PCB and pinout of the feedback connector:
https://github.com/rene-dev/stmbl/wiki/Pinouts
https://github.com/rene-dev/stmbl/wiki/PCB
2015-04-01 05:05:15 +00:00
##### Hardware version 3.2
2015-03-24 22:37:45 +00:00
![top ](http://rene-dev.github.io/iramx32top.jpg )
![bot ](http://rene-dev.github.io/iramx32bot.jpg )
2014-10-28 12:20:28 +00:00
2014-11-08 08:51:00 +00:00
##### Driving a Bosch Turboscara
https://www.youtube.com/watch?v=Ue98HE76paI
##### Drivetest
https://www.youtube.com/watch?v=sMeV4SCu4TA
2015-01-18 20:23:51 +00:00
##### Drivetest with asymmetrical load
https://www.youtube.com/watch?v=seEV_i7o1NI
2014-10-28 12:20:28 +00:00
2015-01-18 20:23:51 +00:00
####Supported Motors
* Synchronous AC Servos
* DC Servos
2015-03-24 22:37:45 +00:00
* 2 Phase HF spindle motors
2014-11-10 21:45:14 +00:00
* IRAMXv2 Hardware testet up to 320V
2014-10-28 12:20:28 +00:00
2015-01-18 20:23:51 +00:00
####Supported Feedback systems
* Resolvers
* Incremental encoders
* sin/cos encoder interpolation
2015-03-13 13:14:09 +00:00
* Mitsubishi absolute encoders
2015-01-18 20:23:51 +00:00
2014-10-28 15:20:56 +00:00
####TODO
* AC Async
* saving parameters to flash
2014-10-28 12:20:28 +00:00
####Directories
* hw/eagle/ Eagle board files and schematics
* hw/spice/ Spice simulation for resolver interface
2015-01-18 20:23:51 +00:00
* src/ STM32F4 code, command, feedback and control loop
* stm32f103/ STM32F1 code, running on the HV side, generating PWM
2014-10-28 12:20:28 +00:00
* term/ Terminal with scope and local history. Supports UHU servo and stmbl.
2014-10-28 15:20:56 +00:00
####Building the firmware
##### Requirements
* gcc-arm-none-eabi-gcc https://launchpad.net/gcc-arm-embedded/+download
* stlink https://github.com/texane/stlink
2014-10-28 15:30:11 +00:00
2014-10-28 15:20:56 +00:00
##### Flashing
Add gcc and stlink to your $PATH
2014-10-28 15:30:11 +00:00
make
make burn
2014-10-28 15:20:56 +00:00
####Building Servoterm
##### Requirements
* cmake >= 2.8
2014-11-21 11:05:47 +00:00
* gcc >= 4.8 or clang
2014-10-28 15:20:56 +00:00
* wxwidgets >= 3.0
* libserialport http://sigrok.org/wiki/Libserialport
2014-10-28 15:30:11 +00:00
2014-10-28 15:20:56 +00:00
##### Compiling
2014-10-28 15:30:11 +00:00
cd term/
mkdir build/
cmake ../
make
2014-11-24 09:35:41 +00:00
####Using Servoterm
##### Testing HAL
HAL can be tested without any hardware connected to the STM32F4discovery.
* Flash STM32F4discovery(STlink and USB OTG must be connected)
* Launch Servoterm, Click refresh, and connecto to STM32 Virtual ComPort
2015-07-20 23:06:32 +00:00
entering 'list' prints a list of hal pins.
2014-11-24 09:35:41 +00:00
The current default config is for a 4 pole AC permanent magnet motor with resolver feedback, using an encoder for command.
> net0.fb <= res0.pos = 0.000000
net0.fb is driven by res0.pos, and its current value is 0. Pins can be connected to other pins, or fixed values.
This example connects the sine wave generatror to wave view 0.
Offset and gain can be controlled with the sliders below Channel 1(black).
```
term0.wave0 = sim0.sin
sim0.amp = 10
sim0.freq = 5
```
To disconnect a pin, connect it to itself
```
term0.wave0 = term0.wave0
```