Saturday
Jan122013

Futaba Transmitter Mod (Fly E-flite Bind and Flys!)

Disclaimer:  Open your radio at your own risk.  I claim no responsibility for any damage caused or warranties voided.

 

I recently modified my Futaba 10C Radio (non-module version) to accept a Spektrum DSM module.  Here is a video overview of the project...

 

The idea originally came from reading this page on connecting a Dragonlink module.  I did not follow their instructions, However I did use their pin-out shown here...

 

 

Based upon this, I wired a 4 conductor audio jack into the transmitter.  Since I wasn't able to thread the nut on, I used some J.B. Weld to secure the jack into place.

 

The wire colors are as follows...

Yellow: PPM

Red: +V

Purple: Ind

Black: Ground

 

Similarly inside the module, I connected another jack.

 

Here are the finished versions...

 

 

 

I accidentally cracked the enclosure for the module while drilling out the hole.  I CA glued it back into place.  It seems to be holding pretty well.

 

If you have any questions please comment below and I will try to fill in more details.

 

 

Wednesday
Jan022013

Snes Controller Mod (Well really, just stuffing a bunch of S&%# into a SNES controller.

I wanted to write a quick post about a fun and easy project I did back before I started this website.  Apologies for not documenting the full process, but this post is more about the idea, as there isn't much to the process itself.  This should be fairly easy for anyone comfortable with basic soldering and doesn't mind working with a dremil tool

I like the idea of being able to run emulated games but still being able to use the original controller.  Retrozone sells a nice board that you can drop into your favorite controller and do just that.  However I wanted to take it a step further by including a way to store the emulator files with the gamepad.  This is what I have come up with...

 

To connect multiple USB devices to the same port, We need to use a hub, since I wanted this to be all in one.  At first I looked into designing a small USB hub, but then I found these small "squid" style cheapo hubs from china, so why re-invent the wheel? The ones I found were only a few dollars a piece, so the price was right.  Pick up a few incase you botch one and to justify the shipping costs.  Also, get a 4 port hub, not more.  The 4 port hubs will usually have a smaller circuit board.  Search around, any hub will do so long as it is "self powered" (doesn't use an external power brick) and you can get it to fit.  Here is a picture of the one I used...

 

Being as the components only pull a few 100mA's of current, power should not be an issue.  I took apart the hub and a 16G thumbdrive and removed all the casing and extra plastic bits so I could save precious space.  I then wired all of the connections point to point.  If you attempt this, you will likely need to mill some of the plastic bits inside the controller to get it to fit.  Once I got it screwed back together, you would never know it had all this stuff in it aside from the USB plug on the end of the wire.

The end result... You plug in the controller, it shows up in windows as a "plug and play" gamepad, and the drive pops up with all the files needed to run the emu.  This all means less fuss searching for where you put the files and more focus on what's important,  gaming.  Plus, since everything is on the controller, you can move it to a different PC and not lose your saves.  Eventually I want to do the same with other systems.

 

Wednesday
Oct032012

Warehouse FPV Flying

I have been working on this for a month or so.  Getting all the shots together, and editing all the sequences took a bit of time.  I hope you enjoy this.  As far as progress on piloting, This is significant for me as I shot the whole thing flying FPV,  no Line of Site flying was done in this video.

I was going for a RCExplorer style video although, I in no way consider myself as good of a pilot as David Windestål.

 

I hope you enjoy this video,  let me know what you think in the comments!

Saturday
Sep152012

GoPro Vibration Dampening using Moongels.

I have been messing with the quadcopter lately and since rebuilding it from the last crash, I decided to take more measures to eliminate or at least dampen some of the vibration I have been experiencing on the GoPro camera.  First I dynamically balanced all the props using a laser from the idea I found on flitetest.

This helped out however I was still getting more vibration then I would like.  I recently heard an idea on thecrashcast podcast where people were using Moongels to dampen vibrations.  Moongels are a product marketed towards drummers who want to eliminate some of the excess ringing on their drums.  I decided to give this idea a try.

I must confess,  I lied took the cheap way out as I didn't use use actual moongels, but rather used those sticky toy things you often find at grocery stores in the front where they have all the candy/toy dispensors for kids.  As I understand it, this is the same material used in moongels.

Here is how I did the assembly.  Meet Roswell,  Roswell is going to sacrifice himself for the better of FPV video everywhere...

 The next thing I did was to make a separate plate to hold the gopro mount itself, I then sandwiched the pieces of the toy between the new plate and the plate on the quad.  I also noticed the buckle for the go-pro had more play in it then I would like, so I used some small pieces of electrical tape to make it fit tighter...

Here is the finished result ready to fly!

 

Lastly, the results.  I made this before and after video to illustrate the difference.  I feel this improved things greatly,  see for youself...

 

 

Friday
Aug172012

Arduino Speed Test

Just for funsies, I had this idea in my head to try to see if I could measure how fast the Arduino Uno can process a very simple loop of code using an oscilloscope. For this experiment I wanted to toggle a pin on, then turn it off while turning another pin on, rinse, repeat.  Basically toggle 2 pins off and on opposite of each other.

For the first part of the experiment I wrote the following code...


void setup() {   //Setup routine (runs once)
  pinMode(5, OUTPUT); //Configure I/O pin 5 as an output
  pinMode(6, OUTPUT); //Configure I/O pin 6 as an output      
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(5, LOW);  // turn off pin 5
  digitalWrite(6, HIGH); // turn on pin 6

  digitalWrite(6, LOW);  //turn off pin 6
  digitalWrite(5, HIGH); //turn on pin 5
}

 

The code above ensures that neither pin is on at the same time as the other.  Using the Arduino's digitalWrite commands, I had to use a line of code to turn one pin off before I could turn another on.  Here is the screenshot from the scope,  the yellow signal trace represents pin5 and the blue trace is pin 6.  The measurements displayed are for the channel associated with Pin5.

 

 

So a few interesting take aways,  the maximum frequency is ~51kHz, I feel this is rather slow considering the Arduino is running at 16MHZ.  The other interesting point is the +Duty% is roughly %25, this makes perfect sense considering the code is 4 parts and pin5 being only represents 1 out of the 4 lines of code, so the math works.  The last thing is the massive overshoot, the waveform peaks at 6.6V and undershoots to -.4V.  This seems extremely "loose" considering it is supposed to be 0-5V.  I am running this board off of 12V power supply but the Arduinos onboard regulator should regulate the operating voltage down to 5V, so I am not sure what to make of this.

Moving forward, I read a chapter in the "Arduino Cookbook" that explains how to set digital pins directly by accessing the bare metal on the chip via its hardware registers.  I have read that this can lead to speed increases by as much as a factor of 30.  So,  I decided to run the experiment again.

With this new code, being as I was manipulating the hardware registers directly, I no longer had to "waste" a line of code to turn a pin off,  I could toggle the states of up to all 8 pins on PortD on or off with a single line of code.  Here is what the new version of the above code looks like.

 

void setup()
{
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}

void loop()
{
PORTD = B00100000; //Sets the output of ALL pins on PortD (0-7) to LOW except Digital Pin 5
PORTD = B01000000; //Sets the output of ALL pins on PortD (0-7) to LOW except Digital Pin 6
}

 

 
And here is the new waveform...

So here we have some expected and unexpected results...  First, the speed has dramatically improved,  The measurements indicate a 1MHz frequency.  This was predicted, it works out to be about 19.5 times faster than the previous code, although I am disappointed that a 30x speed increase wasn't realized.  What I did not expect is the uneven duty cycle of the 2 waveforms.  Pin6 stays on 87% of the time while pin5 is only on for the remaining 13%.  This represents the state of the 2nd (and last) line of code in the loop.  My only thought is the MCU needs time to "Rewind" back to the beginning of the loop.  It actually seems like this requires about %75 of the total time to accomplish this in this example.  Were talking roughly 800nanoseconds (or 800 billionths of a second / .000,000,800 seconds), so in most use cases this is negligible.

 

Perhaps if I knew assembly, even more fun could be had, but for the time being, this will have to suffice.  Hit me up in the comments below to let me know what you think.