STMBL servo driver - open source projekt z DE

Odpovědět
crinq
Příspěvky: 12
Registrován: 29. 10. 2015, 2:00

29. 10. 2015, 4:07

Hi,
I am one of the STMBL developers. I will try to answer some of your questions. As I can only understand german and english i have to rely on google translate to read this thread. Feel free to correct me if i get something wrong.

Please note: STMBL is still in beta status and under heavy development. Hardware version 3.3 is mainly for testing and not designed for plug and play use. It works and can be used but we guarantee for nothing.

Availability of PCBs:
We have some left (v3.3). Please ask in our IRC channel.

IRAMX from ebay:
This is a different part with lower current rating.
I don't recommend using parts from ebay for a high voltage application.

Price of the F1 and SI8621:
If you buy them from real suppliers (not ebay) which ship on reels or trays the costs are about 2€ for the F1 and 1€ for the SI.

Component size and spacing:
The PCB was not designed for manual assembly. Our pick an place machine can handle 0603 and it is much cheaper than 0805.

ESD:
v3.3 is a development platform. v3.4 will have better ESD protection for the analog stuff. The RS485 chips can handle ESD quite well.

Current sensing and limiting:
We have a single low side shunt inside the IRAMX that we use for overcurrent protection. Also the IRAMX has an integrated protection set to about 25A.
v3.4 will get better current feedback for measuring motor parameters and tuning the motor model. In our tests the deviation of our motor model was less than 10%.

Overvoltage handling:
STMBL v3.3 is designed to work with an external power supply which handles overvoltage. Additionally we can burn energy in the motor (positiv d current) or suppress further recuperation by shortening the motor. Also the overvoltage signal can be routed to an external power switch.

CPU stall:
F4 and F1 will both get hardware watchdogs. Software watchdogs are partly implemented. The PWM timer is designed for motor control and will not freeze if the cpu stalls. The f4 can signal the power supply to shut down. We think about a implementing a third independent kill switch on the high side.

Isolated IO:
We found no cheap and small way to implement a flexible, differential and isolated command interface. v3.4 will have four differential IOs (RS485) and can do nearly any protocol up to 10Mbit/s. We think isolation is better handled on the breakout board or with a small adapter.

Speed F4 <-> F1:
We have a 2Mbit/s UART for communication. We can push it up to 5Mbit/s if needed. As our realtime thread runs at 5kHz there is no need to send more often. We think of moving the current controller to the F1, but it was not yet necessary.

Big resistors:
They are used to quickly discharge the DC link during testing and are part of the voltage divider. v3.4 will have a smd divider as discharge is handled differently.

Voltage regulator symbol:
We didn't have a matching lib for the prototype. Later we never changed it...

Code quality:
As the main development is focused on the F4 part, the F1 code is quite ugly. It will get better sometime.

If you want to help feel free to ask. We always need help implementing and testing new ideas, cleaning up code, writing documentation or helping others getting started.

If you decide to design your own hardware or software please keep it as compatible as possible with STMBL. In this early stage too much deviation will not benefit the project towards a stable base.

If you have any questions or ideas feel free to visit our IRC channel or reply to this post. You will get better answers if you use english or german, as it's easier for us to understand.

Nico

ps. We will be at 32C3 in Hamburg germany at the chaos west/warpzone assembly.
"i hope their idea of a servo is not one of those stepping things" TJoseph Powderly
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

29. 10. 2015, 10:09

Mex píše: Výrazně závažnější je ale volba toho podružného procesoru. Autor tam navrhl procesor STM32F103R6T, což je chip v pouzdře 64pin s velmi malou pamětí 32 KiB flash. Ale protože se moc nepoužívá, tak je docela drahý a stojí na eBay nad 8 USD. Kdyby tam místo něho dal populární STM32F103C8T, tak ten je v pouzdře 48pin (které se bude výrazně lépe osazovat), má 2x tolik tolik paměti flash, a protože se prodává ve velkých kvantech, tak se na eBay dá koupit za 1.5 USD.
Zatím jsem podrobně nezkoumal, jak moc by se musela deska upravovat a jestli to třeba nenaráží na nějaké omezení, ale řekl bych, že ne, protože se z něho používá jenom pár vývodů.
v 64 pinovom puzdre je kopec inych moznosti nez R6. Varianty R8 pripadne RB su dostupnejsie, lacnejsie, s vacsou pamatou a program a DPS ostava bez zmeny
http://www.st.com/web/catalog/mmc/FM141 ... 031/LN1565

Co sa tyka nanasania smt pasty, ja to riesim jej frezovanim(planzety) valcovymi frezkami 0.3mm do mosadznej planzety. Nemusim leptat, je to relativne rychle a dostupne.
Pre LQFP64 je tam pitch 0.5mm co uz je dost jemne a chcelo by to planzetu 0.1mm. Ja mam skladom 0.15 a tej pasty je tam uz vela.
Naposledy upravil(a) bronek999 dne 29. 10. 2015, 10:39, celkem upraveno 1 x.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

29. 10. 2015, 10:27

Neviem ktory konektor si myslel(Mex), ale je tam SWD_IO+SWD_CLK+GND a nic ine nepotrebujes. Na programovanie aj ladenie. konektory JP7 a JP1
A kto ma iny programator tak hned vedla ma vystup 3.3V na konektore JP3

Kto nema programator tak tu je 5 dolarovy (Nehladal som dlho, urcite su aj lacnejsie shopy)
http://www.ebay.com/itm/NEW-Mini-ST-Lin ... SwT6pV2cxz
"napajanie" z cielovej aplikacie nevyzaduje ale pri ladeni moze priamo napajat zariadenie(rozumny odber) 5V alebo 3.3V
lubos
Sponzor fora
Příspěvky: 5091
Registrován: 2. 5. 2007, 3:47
Bydliště: Praha

29. 10. 2015, 10:39

bronek999 píše:
Mex píše: Výrazně závažnější je ale volba toho podružného procesoru. Autor tam navrhl procesor STM32F103R6T, což je chip v pouzdře 64pin s velmi malou pamětí 32 KiB flash. Ale protože se moc nepoužívá, tak je docela drahý a stojí na eBay nad 8 USD. Kdyby tam místo něho dal populární STM32F103C8T, tak ten je v pouzdře 48pin (které se bude výrazně lépe osazovat), má 2x tolik tolik paměti flash, a protože se prodává ve velkých kvantech, tak se na eBay dá koupit za 1.5 USD.
Zatím jsem podrobně nezkoumal, jak moc by se musela deska upravovat a jestli to třeba nenaráží na nějaké omezení, ale řekl bych, že ne, protože se z něho používá jenom pár vývodů.
v 64 pinovom puzdre je kopec inych moznosti nez R6. Varianty R8 pripadne RB su dostupnejsie, lacnejsie, s vacsou pamatou a program a DPS ostava bez zmeny
http://www.st.com/web/catalog/mmc/FM141 ... 031/LN1565

Co sa tyka nanasania smt pasty, ja to riesim jej frezovanim valcovymi frezkami 0.3mm do mosadznej planzety. Nemusim leptat, je to relativne rychle a dostupne.
Pre LQFP64 je tam pitch 0.5mm co uz je dost jemne a chcelo by to planzetu 0.1mm. Ja mam skladom 0.15 a tej pasty je tam uz vela.
Úplně do toho nevidím ale co jsem koukal tak právě typ STM32F103R6T má přímo 1x16 Motor control PWM synchronized AC timer což třeba ta STM32F103C8 nemá. Nevím jaký je to problém ale ten STM32F103R6T je navržený pro řízení motorů a tak bych nevymýšlel kraviny a nechal ho tam.
XpertMill, Gravos, Ninos, Galaad
IQ156
-1500Kč, -520Kč, -1čokoláda, - 28000Kč
www.freeair.cz www.rotexelectric.eu www.retrofitcnc.cz
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

29. 10. 2015, 10:53

STM32F103RB a STM32F103R8 su podla mojich informacii plnou nahradou za STM32F103R6. Hovorim o 64 pinovom puzdre.
Akurat ze ten STM32F103RB ma nizsiu maximalnu teplotu. Ale co sa tyka periferii tak tam je to uplne rovnako. A ako som pisal su dostupnejsie a lacnejsie.


Este stoji za zmienku pouzity krystal pre oba MCU. Hned by som ich vyhodil a nahradil nejakym murata CSTCE8M.
Povodne su zbytocne drahe(ak sa uz maju menit plosaky)
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

29. 10. 2015, 5:57

bronek999 píše:Neviem ktory konektor si myslel(Mex), ale je tam SWD_IO+SWD_CLK+GND a nic ine nepotrebujes. Na programovanie aj ladenie. konektory JP7 a JP1
A kto ma iny programator tak hned vedla ma vystup 3.3V na konektore JP3
Já jsem nepsal, že to není řešitelné. Psal jsem, že to není ideální. A když už bych do desky vrtal, tak to prostě udělám líp.
bronek999 píše:v 64 pinovom puzdre je kopec inych moznosti nez R6. Varianty R8 pripadne RB su dostupnejsie, lacnejsie, s vacsou pamatou a program a DPS ostava bez zmeny
Ano, tak to jistě je, že by se tam dal strčit stejně velkých chip vyšší řady. STM dodržuje kompatibilitu slušně.
Jenže já bych tam právě raději dal menší chip (rozměrově menší), ale výkonem lepší a výrazně levnější a dostupnější.
QFP48 osadíš i se zavřenýma očima, u QFP64 už si na to musíš dát záležet. A to větší pouzdro tam nepřináší nic navíc, naopak to zabírá víc místa, blběji se osazuje a je dražší.

S výměnou krystalu souhlasím, ale jinak (díky za upozornění). Rozhodně bych tam nedával rezonátor, ale nechal bych tam krystal. Tady sice o přesnost až tak nejde, ale proč ji zbytečně degradovat. Ale vlepil bych tam nejobyčejnější TH krystal v pouzdře HC49S, který koupím na každém rohy za 5 Kč. Krystaly v TH provedení používají i velcí kluci, třeba výrobci různých WiFi a jiných krabiček (které se dělají v hodně velkých tisícových sériích).
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

29. 10. 2015, 6:23

lubos píše:Úplně do toho nevidím ale co jsem koukal tak právě typ STM32F103R6T má přímo 1x16 Motor control PWM synchronized AC timer což třeba ta STM32F103C8 nemá. Nevím jaký je to problém ale ten STM32F103R6T je navržený pro řízení motorů a tak bych nevymýšlel kraviny a nechal ho tam.
STM dělá v řadě 103 tři výkonové rodiny: Low-density, Medium-density a High-density. Vyšší rodina má vždy vše z té nižší a něco navíc.
Autorem navrhovaný procesor je z kategorie Low-density, mnou navrhovaný je z Medium-density. Ten mnou navrhovaný je menší, ale vybavenější, levnější a dostupnější.

Rád bych se pozastavil u věty "tak bych nevymýšlel kraviny". Musím říct, že takový názor člověka velmi "povzbudí" do další práce.

No a tak se ptám (nejen Tebe, ale všech ostatních zájemců): mám dál "vymýšlet kraviny" nebo ne?
Slíbil jsem, že nechám udělat tišťáky, a to chci dodržet (pokud o to bude zájem). Já ale původní driver 1:1 podle původního zdroje stavět určitě nebudu. Takže klidně nechám udělat původní tišťáky pro ostatní, a pokud mě mezitím nepřejde nadšení pro servodriver, tak si pak nechám udělat upravené pro sebe, už v "nekomunitním" režimu.

Moje motivace ke stavbě není získat driver o pár USD levněji, než bych ho koupil na eBay (přitom s rizikem problémů, plynoucích z beta-charakteru toho driveru).
Mojí motivací je se do toho driveru ponořit, a to jak po HW tak po SW stránce, a dostat to "do ruky". Takže cílem je se v problematice zorientovat tak, že když dostanu do ruky nějaký servomotor, tak jenom osciloskopem oměřím enkodér/resolver a už dopředu vím, že ho budu umět připojit.
Uživatelský avatar
packa
Příspěvky: 6945
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

29. 10. 2015, 6:34

já jsem odhodlán to prubnout , pokud do toho pujdeš a uděláš tišták a napálíš procesory tak budu vděčný , případně můžu osadit , znám pár velice schopných maníků - studentů coto rádi za pár korun osadí , takže pokud zajistíš tištáky , tak já je můžu osadit a poslat k nahrání firmware.
Já bohužel nemám na tyto programátor
lubos
Sponzor fora
Příspěvky: 5091
Registrován: 2. 5. 2007, 3:47
Bydliště: Praha

29. 10. 2015, 6:45

Pokud by se upravoval tišták tak za mě by se hodilo měřit fázové proudy a pak by se do budoucna dalo ovažovat o vektorovém či sinusovém řízení motorů. Zatím jsem se moc nekoukal jak je tam řešený ten výkonový prvek, mám pocit že má vnitřní proudové ochrany což je vždy trochu problém když se může odpojit když se mu něco nelíbí.
XpertMill, Gravos, Ninos, Galaad
IQ156
-1500Kč, -520Kč, -1čokoláda, - 28000Kč
www.freeair.cz www.rotexelectric.eu www.retrofitcnc.cz
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

29. 10. 2015, 7:03

crinq píše:Hi,
I am one of the STMBL developers. I will try to answer some of your questions. As I can only understand german and english i have to rely on google translate to read this thread. Feel free to correct me if i get something wrong.
Nice to see you on the forum in such obsure language, such is Czech. ;-)
crinq píše:IRAMX from ebay:
This is a different part with lower current rating.
I don't recommend using parts from ebay for a high voltage application.
Thanks for the info. But I hope it will be OK for basic tests in beginning.
crinq píše:CPU stall:
F4 and F1 will both get hardware watchdogs. Software watchdogs are partly implemented. The PWM timer is designed for motor control and will not freeze if the cpu stalls. The f4 can signal the power supply to shut down. We think about a implementing a third independent kill switch on the high side.
Are you sure?
Both CPU has watch-dog, of course. But at least in STM32F1 is watch-dog not enabled (in current firmware).
crinq píše:Isolated IO:
We found no cheap and small way to implement a flexible, differential and isolated command interface. v3.4 will have four differential IOs (RS485) and can do nearly any protocol up to 10Mbit/s. We think isolation is better handled on the breakout board or with a small adapter.
Yes, if it has to be flexible, it will be little bit problematic.
But I think, that most of this driver will be used in systems with STEP/DIR controlling (LinuxCNC, Mach, GRBL etc.).
So it may be good to put on the board in addition 2-3 cheap but fast optrons (6n137 for example).
crinq píše:Speed F4 <-> F1:
We have a 2Mbit/s UART for communication. We can push it up to 5Mbit/s if needed. As our realtime thread runs at 5kHz there is no need to send more often. We think of moving the current controller to the F1, but it was not yet necessary.
Yes, 2 Mbit/s must be enough. But in documentation is written 5 Mbit/s, with possibility 10 Mbit/s. I think 10 Mbit/s is not possible on F1 (without overclocking).
crinq píše:Voltage regulator symbol:
We didn't have a matching lib for the prototype. Later we never changed it...
:-)

One more question:
What is the reason you have used Low-density CPU STM32F103R6 in big package (64pin) instead of smaller (48pin), better equipped and cheaper STM32F103C8, please?
I'd like use the STM32F103C8 instead of, which will be easier to solder, easier and cheaper to buy. In doing so, I would have to modify the firmware of course, so I´d made a small clean-up of code and opened a watch-dog.

Nice day
Mex
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

29. 10. 2015, 7:17

lubos píše:Zatím jsem se moc nekoukal jak je tam řešený ten výkonový prvek, mám pocit že má vnitřní proudové ochrany což je vždy trochu problém když se může odpojit když se mu něco nelíbí.
Má centrální měření proudu na DC přívodu.
lubos
Sponzor fora
Příspěvky: 5091
Registrován: 2. 5. 2007, 3:47
Bydliště: Praha

29. 10. 2015, 7:29

to cenrální měření není úplně ideální,
Myslel jsem spíš něco takového co je na obrázku, mít možnost měřid odděleně proud pro 2 fáze ( třetí se dá v pohodě dopočítat). Na obrázku se obvod který to řeší ale dá se to vyřešit i jinak.
Přílohy
1.png
Naposledy upravil(a) lubos dne 29. 10. 2015, 7:38, celkem upraveno 1 x.
XpertMill, Gravos, Ninos, Galaad
IQ156
-1500Kč, -520Kč, -1čokoláda, - 28000Kč
www.freeair.cz www.rotexelectric.eu www.retrofitcnc.cz
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22396
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

29. 10. 2015, 7:34

myslim ze tyhle vykonovy svaby ma GSK v driverech a myslim ze jsem tam videl pridavne mereni proudu na tistaku
to omezeni prepeti DC busu bych nechal na zdroji
tj dokreslit jeste tistak napajeciho zdroje pro dc bus na ktery by se povesila jedna nebo vic os
jako je to u dospelych systemu pohonu
Vsechna prava na chyby vyhrazena (E)
Grad
Příspěvky: 2073
Registrován: 13. 7. 2014, 9:32

29. 10. 2015, 8:32

Pěkně se to tady rozběhlo :) a tak dík Mexovi i dalším, že se toho tak aktivně analyticky ujali.
Motivace k účasti různých lidí tady v tomto vlákně bude různá a tak prosím o zdrženlivost při komentování názorů jiných, pro zachování "dobré nálady" :wink: .
Na druhou stranu, aby se nám to díky invenci všech zůčastněných nerozjelo všemi možnými směry, zvažte zda :
1. se držet rozjetého projektu, tak jak je definován - určením, funkcemi, HW, SW a korigovat toto v rámci toho, případně výrobních možností
2. definovat vlastní určení a následné požadované funkce a pak zanalyzovat tento rozjetý projekt po stránce použitelnosti HW i SW pro nově definované cíle
crinq
Příspěvky: 12
Registrován: 29. 10. 2015, 2:00

29. 10. 2015, 10:35

Hi Mex,
could you please translate my post for the others? I don't think most of you can understand me. Would german be better?
Mex píše: Nice to see you on the forum in such obsure language, such is Czech. ;-)
You caused a lot of github traffic :)
Mex píše: Thanks for the info. But I hope it will be OK for basic tests in beginning.
Should work, please compare the datasheets.
Mex píše:Are you sure?
Both CPU has watch-dog, of course. But at least in STM32F1 is watch-dog not enabled (in current firmware).
The F1 has a communication timeout in SW and the F4 has a complex state machine for faults.
HW watchdogs are on the TODO list.
Mex píše:Yes, if it has to be flexible, it will be little bit problematic.
But I think, that most of this driver will be used in systems with STEP/DIR controlling (LinuxCNC, Mach, GRBL etc.).
So it may be good to put on the board in addition 2-3 cheap but fast optrons (6n137 for example).
STEP/DIR is shit, but we have to support it for the Mach guys. We prefer quadrature or real protocols.
Currently we are implementing Mesanet Smart Serial. In future we will use a custom rs485 link to our ethernet breakout board.
Mex píše:Yes, 2 Mbit/s must be enough. But in documentation is written 5 Mbit/s, with possibility 10 Mbit/s. I think 10 Mbit/s is not possible on F1 (without overclocking).
The F1 tops out at about 5.4Mbit/s.
Mex píše: One more question:
What is the reason you have used Low-density CPU STM32F103R6 in big package (64pin) instead of smaller (48pin), better equipped and cheaper STM32F103C8, please?
I'd like use the STM32F103C8 instead of, which will be easier to solder, easier and cheaper to buy. In doing so, I would have to modify the firmware of course, so I´d made a small clean-up of code and opened a watch-dog.
The STM32F103R6 was cheap and available when we started this design and it is nearly pin compatible with our F4. The next version will use more F1 pins. We will see if 48pins will be enough.
Before modifying the firmware please talk to us (best in IRC). We have some plans for the F1. If we work together it will benefit all.

Nico
Odpovědět

Zpět na „Ostatní elektronika“