[quote author="ginpb"]Amazing project!!!, how will you communicate with the quadcopter? IR, BT or ISM? Still committed to the 5x5 form factor? . Have you take in consideration using a smaller micro, like a cortex-m0 BGA? a little harder to solder but will be smaller. If the DCM is done on the Inertial sensor, the pic will only have to manage the communication and the PID?. Again, great project. Can't wait to see the first test.[/quote]
For now simple serial over BT, but if this works the final version won't use BT but something that allows "simple" network communication. Probably zigbee or derivatives and more than likely in the 2.45GHz band.
This is a prototype and I don't know if it's going to work, so I want to keep costs at a minimum. If I wanted to use a microcontroller in BGA or any package with exposed pad/balls I would have to neccesarily use a 4-layer PCB (of course I could route the thing in 2 layers, but the routing would be crappy as hell) and if I chose BGA's I would have to order a stencil to solder the thing reliabily. So that's why I chose the SSOP package. Basically to keep costs at minimum for now. We'll get fancy if the thing works.
Besides, I prefer PIC32 over similar range ARM based microcontrollers. Basically I'm in love with microchip's peripheral library for PIC32, and I haven't found anything remotely similar for ARM micros. I did a large project with a PIC32 (my very first project with a PIC32) and developing was a breeze. Configuring the peripherals to do just what I wanted was extremely easy. And I used every single peripheral available in that PIC except for the SPI port.
Quick update: S107 tail motors arrived. Propellers aren't here yet, but I had one tail propeller of a broken helicopter laying around. I set up a motor test device attaching the motor to a post and the post to a precission scale and letting the motor/propeller push against the scale as hard as it could. It gave about 1,7g of thrust. Clearly not enough. I've ordered larger propellers and we'll see how they perform. I would need about 4g of thrust per motor...
Don't worry, a full implementation of the DMP stuff has been released by invensense. Their project is for MSP430 but the libraries used are easily portable. What they give you is basically the raw image to be sent to the DMP via I2C and a lot of methods to configure it by changing some of the registers inside. They let you configure basically everything, from the update rate to the output format or the functions you want to be enabled (6DoF fusion, gyro autocal, etc.) It's also seems to be very well documented. All we "should" do is implement the functions that manage the I2C communication and make sure that variable's datatype format does match with the ones used by MIPS M4K architecture.
At least it looks like it has all you need, we'll see later. One thing that worries me is that DMP updates at 200Hz and that might be too slow...
[quote author="bearmos"]This looks like a really fun project, erdabyz!
[quote author="erdabyz"]It will use 4mm coreless tail motors and propellers from SYMA S107 helicopters. Maybe that won't be powerful enough and bigger motors will be required, who knows. Each motor features an independent integrated H-bridge from Texas Instruments (DRV8837)[/quote]
I have a re-branded SYMA S107 and the tail motor is pretty wimpy (good for its size/weight, but still doesn't provide a lot of thrust). The tail motor also burned out after a few dozen flights. If you have them laying around and are sampling most of the other parts, go for it. But, if you need to buy them, I would go for something with a bit more oomph:). Now, the main rotor motors are a different story entirely (each copter has two). They are bigger and would require much more current at full power, but should give you more than enough power. Weight vs thrust isn't something I have a lot of experience with - so take all this for what it's worth (probably not much)...[/quote]
I'm part of an IEEE students branch in my university. Recently some of the members got crazy with a focalprice promotion on S107's at half the price. Suddenly we had a bunch of them flying around. They are the most rugged pieces of engineering I've ever witnessed. We had one flying with a severely broken blade "fixed" with adhesive tape, the battery hanging loose (and not a original one, but one twice the capacity), some structures removed and the tail motor almost hanging and with a broken propeller. It not only did fly (vibrating a fucking lot) but it was still agile and somewhat controllable. Eventually a blade finally broke apart and we now have it waiting for a replacement propeller, and it'll probably be sent to the manufacturer for breeding pourposes. That was one of the motivations to consider the SYMA S107 motors. I have bough 5 of them and also 10 6x12mm more powerful motors just in case. The holes in the arms are there to support 4mm diameter motors but it won't be a problem to fit 6mm ones in there with some dirty hack.
The target weight for this quadcopter would be about 10g.
[quote author="Markus Gritsch"]I see. Maybe you could have opted for the non-USB version PIC32MX130 to have more IO pins and use the USB connector only for charging. Although then the firmware could only be updated with a PICkit 3.
BTW, the HID bootloader takes quite some amount of flash, so you might have little left for your firmware. Maybe the PIC32MX250 is better suited.
Anyways, very cool project. Looking forward to updates from you :)[/quote]
Damn it, without optimizations it takes 43% of my flash (I'm actually using PIC32MX220F032B because neither F128 nor F64 were readily available at distributors). Hopefully the 60 days trial of optimizations makes it slimmer. If not i'll have to sample some F128's.
[quote author="Markus Gritsch"]This is amazing! Keep up this awesome work.
I would really prefer to have some kind of ICSP pins/holes/pads on the PCB: 1) programming the bootloader before soldering the PIC32 is cumbersome. 2) Development of the firmware without debugging capability is really a pain.
If PCB real estate is a concern: I used some small custom 50 mil spaced pin headers, which work fine and don't take much space on the PCB.[/quote]
There are SSOP28 sockets available for relatively cheap if it turns out to be required. I have had success in the past programming PIC's before soldering by holding them against an adaptor PCB with the required footprint. I know that ICSP for PIC32's uses faster communication and its much more sentive to bad or poor connections but well, I'll try. Yeah, no debugging is also a pain but I hope that sending traces over the serial link will be enough. I also have PIC32 boards to try and debug parts of the code if required.
The problem isn't space but lack of pins. I have used every single I/O of the PIC32 and I couldn't break out ICSP1 pins as I had to use these for the serial interface. I could use them to program the thing before soldering the bluetooth module if that's required. I struggled a lot of time with the remappable pins configuration to get the easiest layout without interfering peripherals.
I also had to use a SSOP28 version of the PIC32. Smaller packages with more pins are available and I don't fear them at all. It's just that power and ground couldn't be properly routed with a leadless package with exposed pad in a 2-layer PCB. And grounding in this case MUST be properly done. We have RF, sensitive sensors, a fast microcontroller and 4 motors. Improper grounding would be devastating.
If this turns out to work, next revision will have a 4 layer PCB, a PIC32 with more pins and a different type of radio integrated in the PCB that would allow easy network communications. The final goal is to build a lot of these and make them collectively fly. I'm working at the RF group of my university and we're planning on designing a full-featured MIMO testbench and one of the likely applications would be radio-based localization. If everything works we could maybe use that equipment to localize microquadcopters in 3D space and make them do cool things. I'm aware that all this has already been done but our approach would cost much less money.
But well, for that to happen a lot of time will have to pass and a lot of work will have to be done. For now this is just the result of me thinking about cool ways to fill a 5x5cm board.
This is something I've been working on these days. The other day I was thinking about what would be the coolest possible thing you could fit in a 50x50mm 2 sides PCB. How about a quadcopter?
I'm aware that miniquadcopters have already been done but I'm not sure if anyone has tried to fit one in such a small size. I've tried to design one that would fit. It's powered by a PIC32 and it uses a MPU-6050 as the inertial sensor, which will implement the motion-apps firmware inside to offload the main processor from motion fusion algorithms. I've thrown in a MAX1555 as battery charger via a microUSB port which will also be used to program the PIC via bootloader, as no ICSP pins are available. The PIC will have to be programed with the bootloader before soldering. I'll figure out how to do that. It also has a MPL3115A2 precission altimeter/barometer for altitude control and a TPS63031 as the main switchmode buck-boost regulator for everything but the motors (maybe overkill, but I couldn't find anything smaller). It will use 4mm coreless tail motors and propellers from SYMA S107 helicopters. Maybe that won't be powerful enough and bigger motors will be required, who knows. Each motor features an independent integrated H-bridge from Texas Instruments (DRV8837). Surely I could have just used a discrete mosfet per motor, but I didn't want to prematurely limit the capabilities of the thing. Maybe it turns out powerful enough to perform backflips and fly inverted, and motor direction control would be required for that. It uses a cheap HC-05 serial to bluetooth module for communications. Other radio options were thought and I don't fear RF desings, but I just wanted to keep things simple for now on that side.
As always here's the board and schematics. Schematic is crappily laid out, but I've tried my best to route the PCB. Beore you say it, I'm aware that the 22uF capacitors are placed in one of the worst possible spots and that they will likely break or crack sooner than later. We'll see. I've also checked that the microUSB connectors can indeed be soldered. [attachment=0] Don't expect too many updates on this one, but I'll tell you and provide code if it finally works. For now boards and components have been ordered. First prototype will be built in about 15 days and firmware development will start at some time. The question here is will they fly? Only time will tell!.
[quote author="j0hnth0m"]I curious about your schematic. Earlier you referenced the EMTheremin article and also the Hotrodding article. The latter article has an updated schematic with a few key changes to the original design. Which version did you base your design upon? Were there any significant departures from the original design you care to share? I was very interested in your comments regarding capacitor selection but failed to completely grasp which capacitors you where upgrading.
I am actually also starting down this same path but don't have nearly the experience you obviously do so I'm trying to glean as much from you posting as possible.
Thanks.[/quote]
Right now my pitch antenna is completely out of tune and the volume one can't be completely tuned. I ran out of capacitors so I made a new order with more values to try out. They arrived yesterday, I hope I can do more testing this weekend and finally get it properly going.
I'll post final schematics and things when i get it fully working. I'm not sure about why is there such a mismatch between the original design and mine....
I'm almost there. I got the volume antenna to work just right if I load the circuit with my scope, and to somewhat work without load. For that I've had to almost double the capacitance in the volume oscillator and to more than double the inductance. It's weird because the oscillating frequency doesn't get reduced too much with these changes... now I got it at about 400kHz
Good news: EVERYTHING WORKS. Every potentiometer does what it's supposed to do, the oscillators oscillate, the thing sounds and it's sensitive to my hands
Bad news: tuning the thing is a pain in the ass.Well, tuning the volume antenna is a pain in the ass. I can only get it to sound if I load the circuit with the probe of my o-scope in the middle of the coil sausage and leave the volume antenna unconnected, using the compression fitting as the antenna. No matter how much I adjust the coil, it simply doesn't get in resonance. Also the oscillating frequency is a bit too high, I get about 550-600kHz where I should be getting 450kHz. I think that is the problem. Maybe going SMD and having much less parasitic capacitance between components is what's happening here.
Who knows, I'll try and make some simulations to understand what I'm seeing and probably I'll have to order moar capacitors to get the thing going.
At least now I know it works, so those who wanted a PCB please PM me with address and that.
[quote author="ian"]I find the toothpick unreasonably difficult :)[/quote]
Toothpick fails because wood is porous and it absorbs your fluxes so the paste thickens and doesn't properly stick to the board. Paste has two fluxes, one liquid that helps wetting and cleaning and one solid (which melts with the solder itself) that helps solder flow. You must use something that isn't porous. I use the tip of my tweezers but any plastic toothpick would do I guess. My method is to apply a reservoir drop 2mm away from the tip of the tweezers and let it drip to the tip. Then you just dab the tip agains the pads and most times the right amount is dispensed. Big reservoir drop for big pads, small reservoir drop for 0402's and such. Gravity does the rest.
I found that I could only do this with the chipquick stuff and I have to wait till it gets to room temperature (always store paste in the refrigerator). Lodestar paste is just too thick for that.
As promised, here are the antennas: I got two volume antennas made because the first one wasn't perfect enough for my father's standars. Unfortunately that tube isn't made for such bends and some of the chrome plating has scorched, and the tube has some markings on it (diameter, material, type of tube and all that stuff). Anyways, i'm more than happy with the result and maybe in the future I'll get some chrome paint and make them perfect, but they are good as they are and the shape is just perfect. They are longer than they should because I'll have to tune the thing and they'll require adjustments, so better to have extra material than to be short.
I also show the two compression fittings for the volume antenna.
Also turns out that this copper is solid enough so I won't have to fill them with rosin.
I use top quality chipquik paste. I stenciled 24 robots like this: viewtopic.php?f=19&t=2594&p=42524#p42524 (two-side load boards) and I didn't even spend half a 35g syringe, wasting quite a lot of paste in the stencilling process (basically I wasted all leftover paste stuck to the squeegee after each run, and I did runs of 4-6 robots)
I mean, why hoarding solder paste when a quality syringe would last the average (and not so average) user more than the product's shelf life?
I tried the LodeStar paste and the only compliants I have is that it smells bad and its flux is quite hard to clean off. The behaviour was much like chipquik paste and it didn't pop off or boil or spill or anything. My PICqueño (which has a TQFP28 and a TQFP64) was soldered with lodestar paste and a crappy etched copper stencil and it turned out with very few shorts.
Anyways I still prefer the pro stuff. It smells so good and it's so easy to clean....
Update: In this week I have done a couple of things in my spare time between hours of study. I'll have my last final this monday and then I'll be free for a week and things will speed up a lot.
The antennas are almost done. I'm getting a set made of chromed copper and a set made of chromed steel. The chromed steel tubing that was available was 12mm wide, maybe too much, so I'll probably use the copper ones. The volume antennas are already done, but the copper pitch antenna still needs some straightening because the copper tube came in a roll, and that requires a special tool. They'll probably be finished this sunday and I'll post pics.
The wooden case is mostly designed. I have it 3d modelled in sketchup and I'll assemble it next week. The aluminium front plate will have to wait a bit but I'll mount the components somehow to make a test run.
I soldered the remaining through-hole components in the PCB and made the coil "sausages" for both antennas. Here's a picture of it: