Our ELEV-8 crew (Nick and Kevin) are working closely with Jason Dorie - he's got everything he needs at this point. Jason can reply about what he plans on doing, but we're shooting for having fully open code for the SPORT (and OPEN, same board basically). This work in progress shall grow quickly and become a very complete product line at Parallax. We've sold everything we've made, quickly.
Ken Gracey
Thanks for the update! Can you post the Propeller pin connections for the Sport board or are they proprietary?
I assume I'm allowe to post this since my code will contain them and be open.
I have my flight code better than half ported (new pin assignments are all done, made multiple servo objects for new new pin banks, etc). I've successfully programmed the sport board, but haven't gotten debug output from it yet. I had to take last night off, but I'm hoping to get something running tonight. The physical connection order is a little odd - I'm guessing layout considerations drove the pin numbers, not coding ease.
This is from memory (still in bed):
Esc side: p0-p3, p25, p27, p30-p31
R/c: p8-p12, p15
Gyro: p18,p19 (SDA/SCL), p17 (clkin)
Led: p5,p6
Speaker: p7
I assume I'm allowe to post this since my code will contain them and be open.
I have my flight code better than half ported (new pin assignments are all done, made multiple servo objects for new new pin banks, etc). I've successfully programmed the sport board, but haven't gotten debug output from it yet. I had to take last night off. Hoping to get something running tonight. If I've gotten any of those pins wrong I'll post fixes, and the physical connection order is a little odd too. I'm guessing layout considerations drove the pin numbers, not coding ease.
I played a hunch this morning before heading to work - It didn't make sense that I couldn't talk to the chip, get debug output, or see code run, but I could program it. I just tried changing the PLL to PLL8x instead of 16 and boom! I get responses now. Looks like they're using a 10 MHz - I'm blinking an LED every 40_000_000 cycles and comparing it to the second hand on a clock, and they're in sync.
Also, setting DIRA[6] := 1 gives you a blue LED, DIRA[5..6] := %11 gives you a cyan LED, so they're doing some funky multiplexing on it.
That's all I know for the moment, but it should get you started.
Wow. I thought the 14MZ was a little over the top (it plays MP3 files) but the 18MZ has topped it.
I have my R/C object listening to the correct channels on the Elev-8. Getting valid gyro readings will be hopefully later tonight.
How are you figuring this out? Following traces on the PCB? Can't we get this information directly from HoverFly if they are planning to allow open source software to run on the Sport?
I got the info from Kevin a little while ago. I assume that they don't have a schematic because I wasn't sent one, but I figure as long as I have the pin numbers I can figure out anything else fairly quickly.
The R/C object needed modification because it only worked for continuous pin ranges, so I've written a custom variant for the Sport, and it supports all 6 channels. The servo outputs are built in banks of 8, but I'm going to make a custom one of those as well, so it just deals with the 8 Sport outputs correctly in one cog. (the current version uses two different servo objects, each set for a different bank of 8).
They also use the CLKIN pin which my code doesn't - just have that tied to ground. I'm hoping I can just pull it low and configure it to use the gyro internal clock and not have to change anything else. I wasn't getting valid gyro outputs this morning, but then I realized that the serial connection shares pins with the ESCs, which is partially why I was having so much trouble getting it to communicate. I ended up having to leave for work before I got a chance to check it after disabling those ESC pins.
To elaborate on my higher-level plans, I'm hoping to complete the following:
- A version of my QuadX software that fully supports the Sport hardware.
- Single cog 6 channel R/C reader hard-wired for the Sport pins
- Single cog 8 channel ESC / servo driver (it will support both 250 Hz ESC pins and 50 Hz servo pins)
- Single cog ITG-3200 interface object
- Startup similar to the HoverFly Sport, including the arm/disarm sequence, with LED and speaker cues
- Remote setting of the PID gains using the 5th R/C channel, OR fixed setting using the GroundStation software
- Support for different frame configurations (see below)
- Configure throttle range on all ESCs simultaneously
- A version of my GroundStation software that supports the above, written specifically for the Sport
- See live gyro readings
- Adjust control sensitivity
- Adjust PID gains
- Change frame layout between Quad / Octo +, Quad / Octo x, Hexa 6, Hexa Y, Tri-Y with a tail servo, or Octo-8.
The different frame configurations (specifically anything that's not a quad) will take some time as I don't have physical setups to test them with. I have a MaxBotics sonar sensor on the way and hope to be able to support an altitude hold mode as well, much like the Sport does.
It's unfortunate that they chose to put two of the ESCs on pins 30 & 31. I had hoped to do a motor config / test mode where the ESCs would all be zero'd, but one output would be suppressed, making that one beep. The software would tell you which motor it SHOULD be, and you'd just hunt around on the plugs until the right one was beeping. But I can't use the serial connection while the ESC ports are in use, so that's out. I could still do it for anything up to 6 motors, I suppose, but their standard quad configs use those two pins, so if I want something you can just re-flash and fly, it won't work.
Jason this is great. I was going to put together a protoboard and that gyro with your code. This is great in that if somebody wanted to insert say a light show in another cog at start up we could pimp out our Elev-8 to look like a ufo.
My current code has independent settings for yaw & roll/pitch. I'd like to be able to set a fixed "ratio" in the ground station software and then have a multiplier on the switch. In practice I doubt anyone's going to change them much once they're set, so having fixed values allows you to open up those channels for extra things, like pan/tilt for a camera.
@Dave - The ProtoBoard / ITG combo flies really well, and it'd be cheaper (though a bit more effort - there's soldering involved. )
I haven't gotten to the point where I can fly my code on the Elev-8 yet so I can't compare them, but theirs is very stable. Their rudder feels a little less responsive than mine does, but so far that's the only difference I've been able to put my finger on. It has a slightly different feel, but from what I know at this point they're very close.
I would like to be able to adjust the yaw gain in flight. Much the same way as for a helicopter. Sometimes I use heading lock, sometimes not. If it could be set up in the ground station software to choose which is modified in flight, then that would be great for my purposes.
It flies! I've successfully ported the QuadX flight code to the HoverFly Sport board, adjusted all the pin configs, and added an arm / disarm sequence like the Sport. It's pretty stable, but I still need to tune the PIDs for the new frame / motor config and some changes I made.
It's too dark to shoot video outside, but I thought I'd have a little fun with it in the meantime:
I doubt there will be a lot of people setting up 8 motors anyway - I can just disable those pins unless those motors are actually used and it'll work for almost everyone.
I've seen it - it's a commercial system, and costs about $1K - look up Wookong Autopilot. It is very stable - I like that you can toss it and it figures it out. I want mine to be that good.
I have the Elev-8 / HoverFly Sport flying reasonably well. Mine isn't as stable as the Sport board, but it's close, and still needs tuning.
I haven't balanced the props or anything, so there's some vibration, but the Sport board doesn't seem to care - HoverFly's code is very stable and does a remarkable job of filtering out noise, so they're earning their paychecks.
I have a number of ideas for things to try to improve it, but I'll probably just get the current code tuned as well as I can and release it so other people can start tinkering with it.
I'm just starting to dig through my ELEV-8 kit getting ready to start assembly and have a couple of (probably dumb!) questions.
1) Step 1 in the assembly guide says that the motor leads should be 13" long. Does that 13" include the pigtails that are attached to the motors and the ESCs or should I cut 13" pieces of red wire?
2) On the ESC the connections to the motors are labeled A, B, and C. How do I know which motor leads are A, B, and C?
David I cut the smaller red wire into 12 13" lengths and those attach to the motor leads. The ESC connections can be hooked to any of the motor leads but you will want to be able to swap two of them to change motor direction so it spins the proper
direction. I just finished mine last night (thanks Ken for the part I needed!) and going to try it out today.
Also I wanted to say one problem I ran into (I should have carefully RTFM'd) is make sure to program your ESC's ahead of time if you solder their power leads to the wiring harness.
David I cut the smaller red wire into 12 13" lengths and those attach to the motor leads. The ESC connections can be hooked to any of the motor leads but you will want to be able to swap two of them to change motor direction so it spins the proper
direction. I just finished mine last night (thanks Ken for the part I needed!) and going to try it out today.
Edit: 12 13" leads instead of '9'
Thanks. I'm also trying to decide where the blue connectors are supposed to go. My guess is that one goes on the power leads for each of the ESCs and that the other is used to connect to the battery. Is that correct? I guess that would mean that one side of each of the blue connectors would have to be soldered directly to the leads coming from the ESCs and the other side would have to be soldered to short pigtails that would then have to connected in pairs to join the single pair of wires going to the battery. That's what it looked like was happening in the assembly video anyway. The HoverFly manual actually shows all four of the ESCs being connected together rather than pairs being connected and then the two pairs being joined. Which is the better approach?
Thanks,
David
P.S. You can probably tell that I've never assembled anything like this before. Sorry for all of the dumb questions!
Comments
Hi David,
The HoverFly manual can be found here:
http://www.hoverflytech.com/uploads/HoverflySPORTUsersGuideV1_1.pdf
I believe it shows all the pin numbers.
Jim
EDIT I don't see pin numbers, but there are pretty colored pictures of the connectors.
Esc side: p0-p3, p26-p27, p30-p31
R/c: p8-p12, p15
Gyro: p18,p19 (SDA/SCL), p17 (clkin)
Led: p4 - p6 (enabled by setting DIRA[ pin ] := 1 )
Speaker: p7
I assume I'm allowe to post this since my code will contain them and be open.
I have my flight code better than half ported (new pin assignments are all done, made multiple servo objects for new new pin banks, etc). I've successfully programmed the sport board, but haven't gotten debug output from it yet. I had to take last night off, but I'm hoping to get something running tonight. The physical connection order is a little odd - I'm guessing layout considerations drove the pin numbers, not coding ease.
Edit2 : Corrected a couple pin settings
Also, setting DIRA[6] := 1 gives you a blue LED, DIRA[5..6] := %11 gives you a cyan LED, so they're doing some funky multiplexing on it.
That's all I know for the moment, but it should get you started.
Yes, encouraged and we have the support of Hoverfly to publish our own code.
Ken Gracey
Sheesh, look at this radio - even has a built in camera!
http://www.futaba-rc.com/systems/18mz.html
I have my R/C object listening to the correct channels on the Elev-8. Getting valid gyro readings will be hopefully later tonight.
The R/C object needed modification because it only worked for continuous pin ranges, so I've written a custom variant for the Sport, and it supports all 6 channels. The servo outputs are built in banks of 8, but I'm going to make a custom one of those as well, so it just deals with the 8 Sport outputs correctly in one cog. (the current version uses two different servo objects, each set for a different bank of 8).
They also use the CLKIN pin which my code doesn't - just have that tied to ground. I'm hoping I can just pull it low and configure it to use the gyro internal clock and not have to change anything else. I wasn't getting valid gyro outputs this morning, but then I realized that the serial connection shares pins with the ESCs, which is partially why I was having so much trouble getting it to communicate. I ended up having to leave for work before I got a chance to check it after disabling those ESC pins.
- A version of my QuadX software that fully supports the Sport hardware.
- Single cog 8 channel ESC / servo driver (it will support both 250 Hz ESC pins and 50 Hz servo pins)
- Single cog ITG-3200 interface object
- Startup similar to the HoverFly Sport, including the arm/disarm sequence, with LED and speaker cues
- Remote setting of the PID gains using the 5th R/C channel, OR fixed setting using the GroundStation software
- Support for different frame configurations (see below)
- Configure throttle range on all ESCs simultaneously
- A version of my GroundStation software that supports the above, written specifically for the Sport
- Adjust control sensitivity
- Adjust PID gains
- Change frame layout between Quad / Octo +, Quad / Octo x, Hexa 6, Hexa Y, Tri-Y with a tail servo, or Octo-8.
The different frame configurations (specifically anything that's not a quad) will take some time as I don't have physical setups to test them with. I have a MaxBotics sonar sensor on the way and hope to be able to support an altitude hold mode as well, much like the Sport does.
It's unfortunate that they chose to put two of the ESCs on pins 30 & 31. I had hoped to do a motor config / test mode where the ESCs would all be zero'd, but one output would be suppressed, making that one beep. The software would tell you which motor it SHOULD be, and you'd just hunt around on the plugs until the right one was beeping. But I can't use the serial connection while the ESC ports are in use, so that's out. I could still do it for anything up to 6 motors, I suppose, but their standard quad configs use those two pins, so if I want something you can just re-flash and fly, it won't work.
I haven't gotten to the point where I can fly my code on the Elev-8 yet so I can't compare them, but theirs is very stable. Their rudder feels a little less responsive than mine does, but so far that's the only difference I've been able to put my finger on. It has a slightly different feel, but from what I know at this point they're very close.
It's too dark to shoot video outside, but I thought I'd have a little fun with it in the meantime:
Listen carefully - you should recognize the tune.
For pin 30 & 31 program esc issue, are ther other pins (even themporary not flying situation) we can use for grondstation<>elev-8 setup ?
I doubt there will be a lot of people setting up 8 motors anyway - I can just disable those pins unless those motors are actually used and it'll work for almost everyone.
Its stability is stunning.
But you cant play with the program it is not an open project !
http://www.youtube.com/watch?feature=player_detailpage&v=bFCQrzMUsTs
Jean Paul
I haven't balanced the props or anything, so there's some vibration, but the Sport board doesn't seem to care - HoverFly's code is very stable and does a remarkable job of filtering out noise, so they're earning their paychecks.
I have a number of ideas for things to try to improve it, but I'll probably just get the current code tuned as well as I can and release it so other people can start tinkering with it.
Jason
Jean paul
1) Step 1 in the assembly guide says that the motor leads should be 13" long. Does that 13" include the pigtails that are attached to the motors and the ESCs or should I cut 13" pieces of red wire?
2) On the ESC the connections to the motors are labeled A, B, and C. How do I know which motor leads are A, B, and C?
direction. I just finished mine last night (thanks Ken for the part I needed!) and going to try it out today.
Edit: 12 13" leads instead of '9'
Thanks. I'm also trying to decide where the blue connectors are supposed to go. My guess is that one goes on the power leads for each of the ESCs and that the other is used to connect to the battery. Is that correct? I guess that would mean that one side of each of the blue connectors would have to be soldered directly to the leads coming from the ESCs and the other side would have to be soldered to short pigtails that would then have to connected in pairs to join the single pair of wires going to the battery. That's what it looked like was happening in the assembly video anyway. The HoverFly manual actually shows all four of the ESCs being connected together rather than pairs being connected and then the two pairs being joined. Which is the better approach?
Thanks,
David
P.S. You can probably tell that I've never assembled anything like this before. Sorry for all of the dumb questions!