HobbyKing.com New Products Flash Sale
Reply
Thread Tools
Old Aug 18, 2013, 02:38 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
New Product
EvvGC: 3 axis Gimbal controller (open source)

The original author has elected to do other things and as such I moved most of the information over to this thread. The original thread referenced below is now closed.

Original information is here - http://www.rcgroups.com/forums/showp...07&postcount=1

UPDATE: 20131107: I've created a #EvvGC channel on IRC, it's on freenode.net and you can join if you like... I'll try to hang out there live as well as watch here... but no promises

I'll make every attempt to keep up with all the various changes, etc to this hardware/software platform.

I get this request all the time, so in order to provide for those that would like... I've created a Donation button through paypal. Feel free to use it if you like.



WARNING
These gimbal controller DO NOT require ESC's and are made to work only with GIMBAL motors. Connecting an ESC to the connectors on this board will completely destroy the board, and most likely the ESC as well. Connecting a regular brushless motor will most likely do the same time.... Youve been warned and don't ask how we know... !!!


Update as of 20131018
Description:
EvvGC is an OPEN SOURCE HARDWARE and SOFTWARE 3 axis solution. It utilizes an STM32 processor, an external IMU, and takes a different approach to motor driving with discrete FET's instead of monolithic motor drivers. There are a couple of versions of the board in the wild. You will find v1.2 hardware from a small handful of Chinese companies. When evaluating these 1.2 boards, please make sure you pick the one that has been modified with the addition of the 3k3 resistors on the BSS123 transistors... This was incorporated in the 1.3 redesign, but the 1.2 board from some vendors have been modified by soldering the resistors across the BSS chips already.

Update as of 20131027
v1.3 boards are commercially available from here - http://shop.myairbot.com/index.php/e...roller-14.html

The differences between the 1.2 and 1.3 versions are as follows.
The current version of the hardware is v1.3. It was generated to resolve some fundamental issues with the 1.2 solution. There are pull down resistors on both the high and the low side FET's. The usb interface was corrected to include inline resistors and the appropriate disconnect for host enumeration. Most high power traces were increase in size by 30-50%, an attempt at providing 50-100% more heatsink capability to the high voltage FETs was included. The board is single sided. Additional LED's were added for power and user configuration. the 1.3 and 1.2 boards are fully interchangeable from a software standpoint with one exception. The board labeled vpre1.3ce2 (these were never put into production so it only effects those who may have made them) has the markings for the Pitch and Roll attachment reversed - (this was corrected in the released 1.3 versions). While this matches the schematic, it doesn't match the firmware. When using the pre1.3ce2 hardware, you'll need to connect the Pitch motor to the header marked Roll and the Roll motor to the header marked Pitch.

NOTE: the way you tell a 1.2 board from a 1.3 board is pretty easy, check the below
- the 1.2 boards are clearly marked 1.2
- the 1.2 boards are clearly marked 1.2
- the 1.2 boards have a single LED and it is not a power LED, it is processor controlled so it won't light until you have valid firmware on the board
- the 1.3 boards have 3 LED's see the picture below and one of the LED's is a power indicating LED
- the most distinguishing way to tell a 1.3 vs a 1.2 is that the connectors for the IMU/UART1/4 and the SWD programming port all use a new style micro connector. See the picture below

1.2/1.3 boards
PWM is running at 18khz on the 0.3g and up firmware, up from the 8khz that was in the 0.3e and below used.
Autopan was working on Yaw axis only in all releases of software.
RX control works on the Pitch axis only on 0.3e/g. On the 0.4.x branches, it's working on both Pitch and Yaw on AUX4/3 respectively.

Hardware
All hardware files are located in the github repo
https://github.com/EvvGC/Hardware

Firmware
20131009 - NEW!
We finally have the usb bootloader working, this will allow, once it's loaded for you to load firmware via usb and you won't need to worry about the UART1 and the FET issue. Specifics on installing and using the bootloader are here
http://www.rcgroups.com/forums/showp...postcount=1059

All firmware versions are located in the github repo
https://github.com/EvvGC/Firmware

NOTE on the firmware repos.... The *master branch* is the latest 0.4 firmware setup to build under eclipse. It will only run with optimizations disabled... If you follow the instructions for setting up a build environment, you won't have any problems here.

The original firmware from the original author is in the original-src directory in the repo.

The *Experimental* branch is just that, use at your own risk...

as of 20131214 - The current version is 0.4.5.2 and is located here
https://github.com/EvvGC/Firmware/releases
- The latest GUI is located here
https://github.com/EvvGC/Firmware/tr...rsions/GUI/0.4

Both of the versions above are required to be used together. If updating from a 0.3x or prior experimental firmware, you will need to:
- read your "P" values from the eeprom and multiply them by 10, change them to this new value and write them back
- adjust the roll offset (bottom right of the GUI) to 0.0 or whatever value you need it to be

A new code base is in the works with a much better organized structure. It also included a proven mechanism for using the data from the gyro, accel, etc.

IMU
- ONLY support for the MPU 6050 I2C sensor.... Other I2C only sensors could be used, but software only supports the MPU 6050 at the moment... (In theory the 6000 would work too, but only on the I2C bus)

Motors
- 22xx series motors with 70/80 turn wiring
- 3xxx series motors
- 40xx series motors
- 50xx series motors with 150/180 turn wiring
- 80xx series motors

Batteries
- 2S - not sure I'd go this low, but probably would work in a pinch
- 3S - sweet spot most likely
- 4S - 1.2 board may have some issues here as some components were only spec'd at 15V
- 20130825 - due to the limitation of the p-channel mosfet on the input, and the High output FET's which have a rating on the gate of 20V, 4S is the max battery size on either platforms

v1.3 hookup drawing (thanks acc007)


Original Author videos
STM32 Based 2 axis Brushless Gopro Gimbal (0 min 19 sec)

evvgc AutoPan test (1 min 18 sec)


Recent Development Videos
Evvgc - 2 axis test (1 min 1 sec)


Alan
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Mar 06, 2014 at 04:38 PM.
Reply With Quote
Sign up now
to remove ads between posts
Old Aug 18, 2013, 02:39 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
WARNING, WARNING, WARNING

NEVER, EVER, connect lipo power and the usb/serial adapter to UART1 at the same time, you will damage your FET's at the least and most likely your processor. 2 of the FET's use the same lines as the UART does - You've been warned... (hopefully this is a temporary concern, once we get the usb bootloader up and functional, you won't use UART1 to flash the boards).

WARNING 2
The AUX ports all have 3V3 on the middle pin. If you connect a receivers servo output to this connector without removing the voltage pin from the RX, you may put 5V (not all receivers output 5v, but most do) on to the 3V3 buss and the processor, this would damage the processor - so dont do this!

WARNING 3
The 3v3 voltage regulator on this board is only rated at 500ma of current. That regulator is currently rated only to support the board and the IMU, not other accessories should be connected to the 3v3 power from this board

You will need one of the below to flash the board via the UART1 interface. please verify whatever you use before you use it, it should only put out 3v3 and not 5V or you will damage your processor

This one is known to work on the cheap side.
http://www.hotmcu.com/cp2102-module-...5.html?cPath=8

And this one from sparkfun
https://www.sparkfun.com/products/9873

Firmware Flashing over USART1

1.Install "Flash Loader Demonstrator" http://www.st.com/web/en/catalog/tools/PF257525 (v2.6)
2.Disconnect all motors and power supply(battery) from controller.
3.Put Jumper on BOOT0 and NRST!! (marked B and R on the 1.3 board)
4.Connect "USB To COM" converter to USART1 port. GND to GND, 3.3v to 3.3v, RX to TX, TX to RX. (CP2102 converter is perfect for that, also it has 3,3v output, and it is cheap) NOTE that some CP2102 boards has swapped RX and TX labels. If you have one of these, it will be RX to RX and TX to TX.
5.Connect converter to USB and open "Flash Loader Demonstrator"
6.Select your COM port and BR=115200
7.Disconnect NRST
8. press Next>Next>Next>Select HEX file from project directory>Next
9.If successful, disconnect USART1, connect motors and supply.

Specific Flashing instruction are here with screen shots
http://www.rcgroups.com/forums/showp...&postcount=178

20131115 UPDATE: I created a flash video for all of it's ugliness
EvvGC - Flashing firmware (11 min 14 sec)


1.3 Boot connector pin out as follows - Top to bottom oriented with USB on left side, VR on right, motor connectors up, and other connectors down
B)oot0
R)nrst
There should be an itty bitty silkscreen with a B and R in the same order as the pins around the header.

1.3 board UART connectors pin out as follows - Top to bottom oriented with USB on left side, VR on right, motor connectors up and other connectors down.
GND
TX
RX
3v3

1.3 board I2C connector pin out at follows - top to bottom
SCL
SDA
GND
3V3

1.3 board SWD (Jtag) pinout - left to right
TMS/SWDIO
GND
TCK/SWCLK
3V3
and you'll need to jumper over to the NRST pin on the boot0/reset header

1.3 board AUX 1-5 pinout
Signal
3v3
GND

Connectors for the 1.3 mini sockets - i2c, uart1, uart4, and swd connections - ordered the second link will advise if they work...

http://www.ebay.com/itm/Mini-Micro-1...item27d510dda5

http://www.ebay.com/itm/Micro-JST-1-...item232dae16a3

STM VCP driver for windows
http://www.st.com/web/en/catalog/too...chtype=keyword

NOTE: if you have problems with the link above, try my dropbox link - https://dl.dropboxusercontent.com/u/...w-stm32102.zip
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Jan 03, 2014 at 11:34 PM.
Reply With Quote
Old Aug 18, 2013, 02:45 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
The A, B, C's of gimbals.

a) MAKE SURE YOU *NEVER* CONNECT LIPO WHILE YOU ARE ALSO CONNECTED TO UART1!!! THIS WILL BLOW UP THE FET's and the PROCESSOR so don't do it!

b)make sure your gimbal with the camera installed and not connected to the board is *balanced perfectly*, you should be able to put the camera in any orientation (even if 3 axis) and it stay there and not move. There also should be no drag from any of the axis, it should move freely and rotate fully

c) make sure you upgrade to the latest firmware as of todays date (20130929) that is 0.4.2 located here
https://github.com/EvvGC/Firmware/releases

d) after the firmware is updated (see post 2 in this thread of instructions), remove the usb/serial adapter from UART1 and connect it to UART4 (or if you have a 1.3 board - install the ST VCP driver at the bottom of post 2 of this thread and connect your pc to the usb port)

e) use GUI version 0.4 from this link for tuning, etc.
https://github.com/EvvGC/Firmware/tr...rsions/GUI/0.4

f) verify the *dot* in the IMU orientation picture in post 3 of this thread, is has to be that orientation or nothing will work

g) tuning should occur one motor at a time. Start with pitch with the other motors disconnected, once you have pitch working correctly then add roll - tweak pitch if needed and tune roll, then finally add yaw and repeat

h) a good starting point for tuning would be
P=.40, D=.30-40, and power at 50% and go from there.

i) make sure you zero the roll-offset in the bottom right on the GUI, btw, you click on an item in the gui and drag your mouse to change things - yes, I know this is a PITA, but I didn't create it and I'm not going to spend the time fixing it right now.

And finally, remember there is NO FREE LUNCH, this isn't a simple process and there is no perfect *start here* values, every gimbal, motor, camera will make all the tuning process unique.

However, it's been done by countless people and it's proven to work with everything from 2000-8000 series motors.

Notes:
If the LED on the board is glowing constant once you are powered up, then the IMU is talking to the board, if it's blinking its not. - if the later, check wiring it should be 3v3-3v3, ground-ground, scl -scl and sda-sda (lots of people cross the scl and sda lines and that wrong).

Once you get 0.4 firmware loaded, you can connect to it via putty or other terminal software and issue a "d" command and it will show you your I2C errors and other debugging information. NOTE, it's another "d" to turn that off and it can cause issues with your gimbal so don't leave it on while you are trying to tune.

Be sure and let us know how it goes.
Alan
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Dec 06, 2013 at 09:06 AM.
Reply With Quote
Old Aug 18, 2013, 04:48 PM
Registered User
Joined Mar 2011
6 Posts
Great info! Thx
MrFawlty is offline Find More Posts by MrFawlty
Reply With Quote
Old Aug 18, 2013, 04:58 PM
Registered User
Joined Nov 2011
41 Posts
Anyway of troubleshooting the 1.2 board for faults. I don't have a short. I have double checked with a magnifying lens.
hitinson is offline Find More Posts by hitinson
Reply With Quote
Old Aug 18, 2013, 05:12 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
Quote:
Originally Posted by hitinson View Post
Anyway of troubleshooting the 1.2 board for faults. I don't have a short. I have double checked with a magnifying lens.
Thanks for moving it over hear...

Ok, let's start at the top.

a) did you build the board or buy it? If that later, why do you think it has a short?

b) if you built it... then start here. With your VOM or DMM.
- no power connected... first thing to do is check the 3v3 bus to ground, it should be open no resistance
- do the same for the motor bus
- if this is a 1.3 board, check the 5v bus too
- all of these should be open, no resistance

c) next check that no adjecent pins are shorted on your processor? I start at pin 1 and check the next one, then to the next pin I check back and foward 1 pin. You are looking for direct shorts... and you'll have to follow the schematic to see, some pins are indeed connected together.

d) make sure you put the processor in correctly, it's easy to install it 90 degress off because there are 2 marks on the processor.

Start there and report back.

Alan
aadamson is offline Find More Posts by aadamson
Reply With Quote
Old Aug 18, 2013, 05:15 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
Ok... WOW, did I just become hooked on stencils..... That was and awesome build process and the board came out looking *perfect*....

For those that are going this route... please check the guys from oshstencils.com... An outstanding service. I ordered mine with 1" borders and the little credit card squeegee that they gave me was *perfect*.... 1 pull through of Kester Easy Profile 256 solder and done. Cleaned up, fit all the parts, backed it in my reflow over (converted Walmart toaster over) and it looks *outstanding*... I want to check just a couple of things and do my pre-powerup checks, but I'M HOOKED... I'll never build a board again without a stencil... (unless it's a little tiny one ...)...
aadamson is offline Find More Posts by aadamson
Reply With Quote
Old Aug 18, 2013, 07:16 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
Had to provide the obligatory circuit board photos for everyone ...
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Sep 05, 2013 at 11:01 PM.
Reply With Quote
Old Aug 18, 2013, 07:47 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
Quote:
Originally Posted by aadamson View Post
Had to provide the obligatory circuit board photos for everyone ...
Ok, 3v3 is up and functional... no shorts on 3v3, 12-motor, or 5v usb... powered board from usb port (NOTE, this only works on the 1.3 boards)... How did we ever live with no power LED ... glad we added that on the 1.3 boards.

Alan
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Aug 18, 2013 at 09:40 PM.
Reply With Quote
Old Aug 18, 2013, 08:51 PM
Registered User
United States, AL, Birmingham
Joined Jul 2013
47 Posts
Hi Alan,

I have three new boards from OSHpark I am ready to build.
Do you have a link to the stencil artwork that you might post?
Do you have a BOM on Mouser for this board that you can share?

Tony
tmarone is offline Find More Posts by tmarone
Reply With Quote
Old Aug 18, 2013, 09:09 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
Quote:
Originally Posted by tmarone View Post
Hi Alan,

I have three new boards from OSHpark I am ready to build.
Do you have a link to the stencil artwork that you might post?
Do you have a BOM on Mouser for this board that you can share?

Tony
Tony the link to the BOM is in the hardware git repo. In the readme at the bottom, just follow the bouncing ball and you can either order from Digikey or from Mouser.

https://github.com/EvvGC/Hardware

The stencil is already in the git repo as well. Specific link to 1.3 files here

https://github.com/EvvGC/Hardware/tr...r/EvvGC%20v1.3

just upload that zip file to the oshstencil.com site...

Couple of notes on the stencil. Order the holding frame if you don't have one... And also tape down the holding frame on the sides, not the corners, this will leave no ridges that you have to hop over when you pull the squeegee... make sure there area that the stencil goes is clear of any tape ridges.

Tape the top edge of the stencil across the top frame holder and I positioned things with the 3 motor connectors up and the VR and UART/RX connectors down. Then I pulled solder from the top to bottom... Worked GREAT!

In a word it's AWESOME!

Alan
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Aug 18, 2013 at 09:19 PM.
Reply With Quote
Old Aug 18, 2013, 09:13 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
Quote:
Originally Posted by aadamson View Post
Ok, 3v3 is up and functional... no shorts on 3v3, 12-motor, or 5v usb... powered board from usb port (NOTE, this only works on the 1.3 boards)...

Alan
Ok, and processor is up and functional... Bootloader access confirmed via UART1

*AND YES* i made sure that Lipo was disconnected before I attempted this ...

I'm also going to repost the link to the 2.2 version of the flash tool.... I could not get the 2.3,4, 5 or 6 version to work. I don't know what it is, but it kept telling me that I needed to clear the security bits... I think this may be what some are experiencing with trying to flash this processor.... It seems that no two Host USB ports are the same and I think this is a USB issue on the PC, not the processor.

Reason I say that, is that sometimes I can use 2.4, but usually not. 2.2 has never failed me ...

https://dl.dropboxusercontent.com/u/....2.0_Setup.exe

BTW, here is what I did to stuff the components... I printed the BOM in the PDF in the hardware repo (under the 1.3 board) this has a nice version of the BOM inside of it.... I then sorted all the components into Capacitors in the order they were listed on the BOM, then resistors, also in the order they were listed on the BOM.

I stuff the board that way too. Caps first, resistors second, then I just pulled the other parts as they came... I'd do LED's next, Diodes next, then the larger item. I ended with processor and usb last.

Also, *DONT* try to position the parts perfectly.... If they are way off ok, nudge them with an xacto blade, but if they are on the solder, but a little crooked, not worries, the surface tension when molten will position them correctly... AND DO NOT, *mash* parts down into the solder... Just drop them where they need to go and make sure they are basically aligned.... Couple of notes here... multi leg parts... get the lets on top of the pads, not between them, but don't mess up the solder on the pads or you'll have lots of solder bridges to deal with.

Also get yourself some bent tweezers. Something like these...
https://www.sparkfun.com/products/retired/9227

Alan
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Aug 18, 2013 at 09:26 PM.
Reply With Quote
Old Aug 18, 2013, 09:15 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
Quote:
Originally Posted by aadamson View Post
Firmware Flashing over USART1

WARNING, WARNING, WARNING

NEVER, EVER, connect lipo power and the usb/serial adapter to UART1 at the same time, you will damage your FET's at the least and most likely your processor. 2 of the FET's use the same lines as the UART does - You've been warned... (hopefully this is a temporary concern, once we get the usb bootloader up and functional, you won't use UART1 to flash the boards).

1.Install "Flash Loader Demonstrator" http://www.st.com/web/en/catalog/tools/PF257525 (v2.6)
2.Disconnect all motors and power supply(battery) from controller.
3.Put Jumper on BOOT0 and NRST!! (marked B and R on the 1.3 board)
4.Connect "USB To COM" converter to USART1 port. GND to GND, 3.3v to 3.3v, RX to TX, TX to RX. (CP2102 converter is perfect for that, also it has 3,3v output, and it is cheap) http://www.ebay.com/itm/1pcs-New-USB...item5d411e9ab1 NOTE that some CP2102 boards has swapped RX and TX labels. If you have one of these, it will be RX to RX and TX to TX.
5.Connect converter to USB and open "Flash Loader Demonstrator"
6.Select your COM port and BR=115200
7.Disconnect NRST
8. press Next>Next>Next>Select HEX file from project directory>Next
9.If successful, disconnect USART1, connect motors and supply.
I'm going to refine this a little for 1.3...

Try the 2.6 flashloader, but if that doesn't work, revert back to the 2.2 version that I posted above and try that.

Alan
aadamson is offline Find More Posts by aadamson
Last edited by aadamson; Aug 20, 2013 at 05:37 PM.
Reply With Quote
Old Aug 18, 2013, 10:19 PM
Registered User
United States, GA, Atlanta
Joined Dec 2010
2,059 Posts
Geez, wouldn't you know it, I'm trying to bring up hardware and ala42 is giving me new firmware complete with Virtual Comm Port support (VCP)... while we can't flash over it yet, this can be used for debugging, any form of CLI, even the GUI to talk to the board...

Oh, this is really good news... But you'll have to wait... I'm not going to be distracted from my task at hand... Getting 3 boards up and running!

... Alan
aadamson is offline Find More Posts by aadamson
Reply With Quote
Reply


Thread Tools

Similar Threads
Category Thread Thread Starter Forum Replies Last Post
Discussion Why no 3 axis brushless gimbal controller? AliB Multirotor Talk 14 Jan 16, 2014 10:04 PM
Discussion Using 2 x 2 axis brushless boards to control a 3 axis gimbal squamish_chief Multirotor Talk 3 Aug 30, 2013 11:24 PM
Build Log EvvGC 3/2axis Brushless Gimbal Controller (Open Source) evvaldis Multirotor Talk 1793 Aug 25, 2013 01:43 PM
For Sale EvvGC 3-axis Brushless Gimbal Controller Board L_Antos Aircraft - Electric - Multirotor (FS/W) 4 Aug 11, 2013 10:13 PM