Shop OBEX P1 Docs P2 Docs Learn Events
QuadX - my latest Propeller with Propellers - Page 5 — Parallax Forums

QuadX - my latest Propeller with Propellers

12357

Comments

  • rpdbrpdb Posts: 101
    edited 2012-06-29 21:49
    I had the motors spinning on my quad running without props installed with Jasons quadx v2 with a sparkfun 6dof board. The motors are Goldline AXI2217/20 840kv driven by YGE 30 (not YGEi 30) ESCs. I was running of my bench supply at 9.1 volts and all was fine. I raised the votage to 11.1 volts to match the liPo I have.
    The motors reved higher and then quit and the current went very high 2.5A. I now have four dead ESCs. One is shorted and 3 have low current draw but no response, no LED just dead.

    Are these perhaps older ESCs that can't handle the 250 Hz update rate of the Servo8fast.spin like I read in an earlier post about analog servos? I have looked for specs on the YGE 30 but can only find info on the YGE 30i. The YGE 30 has a label rated at 4 LiPo or 12 NiCad/NMH (which should be about 14.4 volts).

    I wanted to cry, but instead I ordered 4 Turnigy Plush 30 ESC from Hobby King. I hope these will work as they are rated at 16.8volts. Has any one had experience with these ESCs? Can they handle the 250Hz update? Is there a method to reset the YGE 30 ESC?
  • ratronicratronic Posts: 1,451
    edited 2012-07-01 13:26
    rpdb I have 25AMP Turnigy Plush ESC's and I set them to Hoverfly's recommendation's and that seem's to work well with Jason's code. Maybe Jason has some input on this.
    Also it is not a good thing to run brushless motor's unloaded (no propeller's) at high R.P.M.

    esc.PNG
    454 x 405 - 20K
    esc.PNG 19.6K
  • JasonDorieJasonDorie Posts: 1,930
    edited 2012-07-01 14:26
    2.5 amps isn't high for a loaded motor, but for an unloaded one it could be. It's possible that the battery eliminator on the ESC was the problem, as those tend to be where the bulk of the heat generation comes from. They're converting the input voltage down to the 5v required by the external electronics (servos and receiver) and they can interfere with each other if multiple units are connected together without removing the power (red / center) pin from the connector on all but one unit.

    Running the motors at high RPM without props is a bad idea because there's no airflow over the motor to cool it. Many of these motors are designed with this airflow in mind, so without a propeller connected they won't handle their rated amperage. This is why motors for helicopters are usually marketed as such, and have built-in fans.

    It is very, very unlikely that the high PWM rate would burn out the ESC. It's possible to burn out analog servos because of the way they're built, but an ESC is simply reading the pulses with a microcontroller - there's no direct connection between the pulse width / rate and the output like there is on an analog servo. In the only case I've seen where the ESC didn't like the high pulse rate, it simply didn't respond at all.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2012-07-01 15:48
    I have added the version of Servo8Fast.spin that handles arbitrary pin assignments to the first post of this thread.

    Use it like this:
      'Start the servo driver cog
      ESC.Init
    
      'Configure the pins
      ESC.AddFastPin(8)
      ESC.AddFastPin(9)
      ESC.AddFastPin(10)
      ESC.AddFastPin(11)
      ESC.AddSlowPin( 12 )  
      ESC.AddSlowPin( 13 )
    
      'Set the initial output values (LOW throttle goes here)
      ESC.Set(  8, Output[0] )
      ESC.Set(  9, Output[1] )
      ESC.Set( 10, Output[2] )
      ESC.Set( 11, Output[3] )
      ESC.Set( 12, Output[4] )
      ESC.Set( 13, Output[5] )
    
      'Start the servo output routines
      ESC.Start
    
  • nomadnomad Posts: 276
    edited 2012-07-02 01:55
    hi Jason,
    thanks for your code
    it's correct, that i can "copy and paste" this source-snippet into your original code ?
    or gives a special Source Servo8Fast.spin ?
    thanks
    regard nomad
  • JasonDorieJasonDorie Posts: 1,930
    edited 2012-07-02 08:16
    That code is just showing how to use it. The original QuadX code does not have Output[4] or Output[5], so those lines and the AddSlowPin lines will have to be removed, and you will need to change the pin numbers.
  • nomadnomad Posts: 276
    edited 2012-07-02 23:52
    hi jason,
    thanks for your reply, i take it
    regards nomad
  • rpdbrpdb Posts: 101
    edited 2012-07-05 15:51
    Thanks for everyones reply and help,

    I have a question about outrunner motors. I have ordered Turnigy plush 30 ESC to controll some gold line AXi 2217/20 motors (which are 14 pole motors). The Turnigy data states they will handle 2, 6 and 12 pole motors. All of these motors are apparently 3 phase motors to which the ESC provides a digitally stepped three phase signal, each phase offset by 120 degrees?

    Does a 14 pole motor insert extra permanant magnets in the rotor to offset AC synchronos motor "slip" in the stator to increase efficency?


    Will Turnigy Plush 30 ESC control a 14 pole motor?
  • Mark_TMark_T Posts: 1,981
    edited 2012-07-06 09:09
    There are many many different 3-phase motor winding schemes, electrically they all behave the same and the commutation frequency divided by half the number of magnet poles = commutation rate / 6. Thus for 14 poles 7000rpm = 4900Hz commutation rate.

    BLDC motors have no slip.
  • ratronicratronic Posts: 1,451
    edited 2012-07-11 14:16
    @Jason were you going to share your L3G4200D code with us? The code I posted earlier in this thread the gyro is probably not set up properly and I would like to see how you went about setting it up.
  • JasonDorieJasonDorie Posts: 1,930
    edited 2012-07-11 19:28
    Dave - I should be able to share that code with no issues, but I haven't tried it with the flight code. I because of the larger range of numbers returned by the L3G4200D, I'm guessing the PIDs and some of the control code would need to be scaled a bit to compensate. If you PM me your email address I'll send it to you directly.
  • ratronicratronic Posts: 1,451
    edited 2012-07-12 08:47
    Email sent!
  • rpdbrpdb Posts: 101
    edited 2012-07-13 18:55
    Thanks for your help every one.

    The Turnigy Plush 30s and connectors arrived yesterday, still waiting on the programmer, plenty of soldering to do tonight..

    Jason, I had all four of the YGE ESCs connected to the servo header on the prop proto board and selected 5v for servo pwr. I think this is where I destroyed the ESC as they were trying to supply 5v also through their BEC function.

    D RAT, you are running the Plush 25s, very similar to the 30s I have now, and I was wondering if you removed the 5v center pins from all of your ESC servo connectors? Do they run ok on just Data and ground pins?

    Mark_T, I counted 12 windings in the motors which makes sense for a 3 phase motor, but feel 14 magnetic detents as I slowly rotate the motors by hand. I assume they are wired Wye with center to ground connected to chassis ground? Or are BLDCs wired Delta. They must be Delta or how does an outrunner motor on a carbon frame get ground? Do you know of a good source for information on BLDCs?

    Good news is that prop proto still works, gyro still works, DCM works, groundstation works, reciever works, PCM output works and follows Tx joysticks. Getting closer to flying!!!!
  • ratronicratronic Posts: 1,451
    edited 2012-07-13 19:20
    rpdb you need to cut the middle power leed from three of the ESC's and leave the fourth ESC power leed connected (It does not matter which of the four) to power the input to the 3.3v regulator for the Propeller. Just make sure you only use the power from one ESC and leave the other three center power leads disconnected/cut.
  • rpdbrpdb Posts: 101
    edited 2012-07-13 19:32
    I would assume that all four leads must be disconnected, as the 3.3v regulator derives power from the 6-9v input on the proto board looking at the schematic of the proto board as does the 5v regulator. By the way, I was wondering if you have output from the 6DOF accelerometer and if so, what address are you using in the IMU3200 object? Thanks Dave,

    Robert
  • ratronicratronic Posts: 1,451
    edited 2012-07-13 19:52
    The way I wired my Prop protoboard was to take the power from one ESC only and connect it to the +5v supply (input to the 3.3v regulator) on the protoboard.

    Edit: the 6dof addresses I explained in post#91 in this thread. I do not have the IMU3200.
  • rpdbrpdb Posts: 101
    edited 2012-07-13 22:03
    Thanks Dave,

    I have mine wired to take the power from the LiPo to the 3.5 mm plug to the proto board. Now that you explained that I understand why you have one BEC for supply to the prop board. I am probably wasting power running the 5v linear regulator right now, but eventually I intend to use the 5v for servos on a camera PTZ.

    Is it ok to run the ESCs from a very good regulated triple output bench power supply with CC/CV? I now understand that the Plush controllers look for battery type and cells. Could this confuse the ESC controllers in thier battery detection mode?
  • ratronicratronic Posts: 1,451
    edited 2012-07-14 07:51
    Robert I use a 12v 15amp external supply to check ESC/motor's sometimes. The main thing about using an external supply for testing ESC/motor's is not so much how well regulated it is but that it has the amperage needed for your ESC/motor's. My Plush controller can be set for any battery type and still work. I think those battery type settings have to do with when the controller starts to shut down as that type of battery starts getting low. I could be wrong maybe Jason will chime in. The BEC connector from the ESC is meant to power servo's. You can use the power from multiple BEC connectors to power different things i.e, servos, camara, Propeller etc. with a common ground. Just make sure you do not connect multiple (more than one) ESC/BEC center power connection's together as they can conflict with the other ESC's.

    Edit: I should probably point out that regular servos can be destroyed using Jason's fast servo code.
  • rpdbrpdb Posts: 101
    edited 2012-07-20 18:37
    Thanks again Dave,

    I spent the past week evenings soldering connectors, flux wash and heat shrink on my new Turnigy Plush 30s. I tested each YGE 30 as I removed them and only one still works, hoping I can use that one to troubleshoot/repair the others. It is indeed a bad idea to connect BEC power together.

    The Turnigy programmer arrived and I set to specs you showed me from hoverfly. I am testing each as I install, and I see what you mean about the current for a bench supply. My triple output will work in parallel mode at 10 ampere, but that still won't be enough to run all four motors as each will draw 5 amps or more, so I found an old Inmac UPS that has a 20 amp output at 12 volts.

    I like your idea of using just one ESC BEC to power the Proto board.

    Now I just have to figure out how to program the settings on this Futaba T7C transmitter for gain. What settings should I use to start? Are the gains only set for aileron, elevator and rudder, or throttle also?
  • ratronicratronic Posts: 1,451
    edited 2012-07-20 19:42
    Robert I have a Futaba 6J transmitter and I had to reverse the aileron, elevator, rudder and throttle channels. I also use the dual rate switch for the aileron, elevator, and rudder channels. I think Jason has recommended adding exponential to the throttle which I haven't done yet.
  • rpdbrpdb Posts: 101
    edited 2012-07-20 20:24
    I have all four motors running and set the configuration as X flight, the 6DOF board bisects the X with the front (solder holes) to the front. I throttle up a little and all four motors begin. LF and LR slow to a stop, RF and RR increase a bit until I back off the throttle. Still the Right motors follow the throttle but the left slow to a stop.

    At rest, what pulse width should I want to see on the Elev, Aileron, and Rudder inputs to the Proto from the receiver? Should they be at 1500 mS and adjust the Transmitter to go 25% to 2000 mS and 25% down toward 1000 mS?
  • ratronicratronic Posts: 1,451
    edited 2012-07-20 20:35
    The aileron, elevator and rudder channels should all be at 1500us when the sticks are not touched. I think my dual rate is set at 50%. I had first learned about Futaba transmitter channels being backwards reading the Hoverfly sport guide.
  • rpdbrpdb Posts: 101
    edited 2012-07-20 21:00
    Thanks Dave,

    I meant uS. I'll fire up the sillyScope and check it out. I just messed with the Reverse on the Tx setup and now have opposite motors stopping, so I think I am on the right track now. I do have feed back effects from the 6DOF changing the motor speed.

    I see alot of talk on all the different quad forum posts about gain settings. I also see some reference to gain in Jasons QuadXv2 code. Am I correct to assume that I should work on the gain of the transmitter to affect the sensitivity of the joysticks?

    Thanks,

    Robert
  • ratronicratronic Posts: 1,451
    edited 2012-07-21 10:17
    Jason's QuadXV2 filter is set by a couple of switch settings on his transmitter to four filter values - no filter, Filter_Light, Filter_Moderate, and Filter_Heavy. Right now I usually fly with no filter but I set up Jason's code to be able to switch between no filter and one of the filters by only using the gear switch by commenting out his filter code setup and replacing it with this -

    EDIT: Do not reverse gear channel
    if( Gain > 0 )                '(gear switch up - light filter) 
      Gx += Filter_Light ** (GXLP - Gx)                            
      Gy += Filter_Light ** (GYLP - Gy)                            
      Gz += Filter_Light ** (GZLP - Gz)                            
    else                          '(gear switch down - no filter)  
      Gx := GXLP                                                   
      Gy := GYLP                                                   
      Gz := GZLP
    

    The Hoverfly Sport board set's it's gain settings by adjusting one of the end point's for the gear channel.

    Also for the microsecond output for each of the receiver's channels the transmitter should be set to output this -

    Stick position-us output

    aileron left-higher
    aileron right-lower
    elevator down-lower
    elevator up-higher
    rudder left-higher
    rudder right-lower
    throttle down-lower
    throttle up-higher
    gear switch up-higher
    gearswitch down-lower

    Edit: You should also trim the aileron, elevator, and rudder channels to as close to 1500us as you can get it. Jason allows for a +/- dead band of 5us.

    Edit2: The Hoverfly gain settings I think adjust the PID settings for the craft.
  • rpdbrpdb Posts: 101
    edited 2012-07-21 18:50
    Thanks Dave,

    I have some really dumb questions, but I am working without documentation. What sould be the "gain or gear switch" on the futba transmitter. I have switches labeled A, B, D, E, G and H. The switch labeled E is a three position switch, and switch H is a momentary switch. So, my question is: "what switch is common to use for "gear", or gain as I see in the code? I don't have that gain channel from the reiverer to the Protoboard hooked up yet, I'll have to figure out what channel that comes out on the reciever. Which switch do I use?

    All the infomation I can find on the interweb assumes that I already know this, skips these basics and goes into topics such as proportinal or exponential gain and mixing. I need the basics.

    I am now working on the Info your sent me about setting a center pont, trying to trim to 1500uS.

    Second dumb question: "is the rudder control joystick the LR of the throttle(U/D) left hand control stick? Elev and Aileron x Elev and yAilero of right hand joystick?

    I never flew a helicopter before, but I did stay at a "Holiday Inn" once. "I'll keep trying until I am flying.


    Thanks,

    Robert
  • ratronicratronic Posts: 1,451
    edited 2012-07-21 19:36
    Robert the rudder is the throttle moving from left to right and controls the yaw - which way your craft points CCW or CW. The aileron tilts the craft left or right and the elevator tilts the craft front or back (front/back elevator=up/down). The gear switch is channel 5 and marked "A" on my transmitter right above the throttle.
  • ratronicratronic Posts: 1,451
    edited 2012-07-23 10:08
    Robert also there is a gyro_oreintation variable that can be set to compensate for how your gyro is physically mounted. Jason's program expects response like this from the gyro -

    The X axis responds tilting the craft left/right = +/- numbers
    The y axis responds tilting the craft front/back = +/- numbers
    The z axis responds rotating the craft ccw/cw = +/- numbers

    Here is a little test program that will show how your gyro is reporting the axis as it is mounted now on the serial terminal.
    CON
      _clkmode = xtal1 + pll16x
      _xinfreq = 5_000_000
     
    OBJ
      Gyro  : "ITG-3200-pasm.spin"                         
      Dbg   : "FullDuplexSerial"
        
    VAR
      long igx, igy, igz
    PUB Main
        
      
      Gyro.Start( 17, 16 )
      dbg.start(31,30,0,115200)
      repeat
        dbg.tx(1)
        dbg.str(string("X Axis ",11))
        dbg.dec(igx += gyro.getrx)
        dbg.str(string(13,13,"Y Axis ",11))
        dbg.dec(igy += gyro.getry)
        dbg.str(string(13,13,"Z Axis ",11))
        dbg.dec(igz += gyro.getrz)
        waitcnt(clkfreq/100+cnt)
    
  • rpdbrpdb Posts: 101
    edited 2012-07-23 22:08
    Thank you so much Dave,

    I got all the controlls set to 1500 uS (except throttle), it took a while to go through the menus on the Futaba. My scope has cursors for time/voltage so I was able to set the sub trim within about 10uS centered. I also found and enabled the "A" switch for gain and changed the section of code as you suggested. I now have a good degree of control and all four motors are responding to the transmitter.

    I have gyro to the groundstation.exe, but have not messed with changing any configuration there. I have run Jasons DCM code and the gyro follows me when I am facing the front of the quad. (configured as X). Is this correct? When you wrote X left and right are you looking at the front of your craft or from the back like you are in the drivers seat?

    Thanks again Dave, I appreciate your help and patience with my questions.

    I am now just getting prop screws set down with loctite and adding lock washers and nylock nuts.

    Robert
  • ratronicratronic Posts: 1,451
    edited 2012-07-24 08:35
    If the DCM code screen object moves and follows the movement of the IMU (even if it is not in the correct direction ) then most likely your accellerometer and gyro are working. I was off by 1us describing Jason's deadband for the rudder, aileron, and elevator channels. You only have a +/- deadband of 4us for the program to see the sticks not touched. In otherwards you need to set the trim on those control sticks so that they are more than 1495us and less than 1505us not touched, otherwise the program will think you are starting to move that stick.

    Edit: When I say left or right, front or back I am looking at it from the quads perspective.

    Here is a program I made using Jason's code to read the receiver channels for the QuadX to the serial terminal. This is what I use to trim the channels. It shows the microsecond output of the aileron, elevator, rudder, throttle and gear receiver channels in decimal #'s.
    Con                                                          
                                                             
      _CLKMODE = XTAL1 + PLL16X                              
      _XINFREQ = 5_000_000  
      
    Var
      long a[5]
                                            
    Obj
                                                         
      pst : "parallax serial terminal"
       rc : "rc_receiver_6"
       
    Pub main | i
      
      pst.start(115200)
      rc.setpins(111111)
      rc.start
      repeat
      
        repeat i from 0 to 4  
          a[i] := rc.get(i)   
        
        pst.char(1)
        pst.str(string("Aileron  ",11))
        pst.dec(a[1])
        pst.str(string(13,"Elevator ",11))
        pst.dec(a[2])    
        pst.str(string(13,"Throttle ",11))
        pst.dec(a[0])    
        pst.str(string(13,"Rudder   ",11))
        pst.dec(a[3])    
        pst.str(string(13,"Gear     ",11))
        pst.dec(a[4])    
            
        waitcnt(clkfreq/100+cnt)
    
  • ratronicratronic Posts: 1,451
    edited 2012-07-24 09:59
    Robert also now that you are getting close to flying I would recommend that before you actually fly it (do not touch for at least 2 seconds after power up to allow the gyro to setup) I would find a way to SAFELY hold it by hand staying clear of the propellers and then give it enough throttle so that you can feel it giving some lift.

    At that point while you are holding it up in the air you should feel it try to resist your rocking it from side to side and front to back. If you feel that resistance to rocking it back and forth then give it a shot. If you do not then you still have something to work out.

    Make sure you have a firm grip and throttle up slowly while holding for the first time in case you still have something wrong.
Sign In or Register to comment.