The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.

Here’s an excerpt:

The concert hall at the Syndey Opera House holds 2,700 people. This blog was viewed about 14,000 times in 2011. If it were a concert at Sydney Opera House, it would take about 5 sold-out performances for that many people to see it.

Click here to see the complete report.

Posted on by | Leave a comment

X-Plane Flight Simulator – Tuning The Graphics

CH 750 Ready For Takeoff

I was looking for a realistic flight simulator so I could practice stalls and slips.  After a bit of a romp around the ‘net I rediscovered X-Plane by Laminar Research.  I had tried it before but my computer and graphics card weren’t powerful enough and I couldn’t get it to run at a high enough frame rate.  As a result, I abandoned it.  I have a newer computer and graphics card now so it was worth having another look at the software.

I downloaded the demo version (10.X) from their web site and tried it out.  The simulation was working well but I had to disable a lot of the rendering options in order to get the frame rate up.  My computer has 8 CPUs so computing power wasn’t the issue.  The obvious culprit was the video card.  I found a more powerful graphics card that wouldn’t break my budget, and the performance increased dramatically.

My current system configuration:

  • I7 Microprocessor (8 CPUs) with 12 Gigabytes of memory.
  • Radeon HD 6670 Video Graphics Card.
  • 24 inch video monitor.
  • Saitek EVI Force joystick
  • Saitek Proflight Rudder Pedals
  • X-Plane Version 10.X installed from DVDs and upgraded via the ‘net.
X-Plane Video Capture
One of the cool features of X-Plane is the video capture mode.  Use CTRL+SPACEBAR to toggle it on and off.  The movies will be placed in X-Plane’s base folder, and they’re numbered in sequence to prevent file collisions.  I’ve thrown in a relatively short clip where I’m landing the CH 750.  The best part is that the movies can be reviewed later so you can pick out your mistakes (and the stuff you did right.)

Tuning X-Plane’s Rendering Options

The objective is to get as much performance from the graphics card as possible while keeping the frame rate high enough to allow the simulation to flow smoothly.  In other words, if you enable a rendering option it will reduce the frame rate, so you’ll need to pick and choose the options that you want and sacrifice the ones that place too great a load on the system.

The procedure involves disabling all of the rendering options and then running the simulation to get the ‘no load’ or baseline frame rate.  Once the baseline has been established, begin enabling rendering options one at a time in order to determine their impact on the frame rate.

Disable the options that cause a 5 or more frame per second drop in the frame rate.  These options are the expensive ones in terms of the demands they make on the system, so we’ll leave them for last and re-enable them if the frame rate allows it.

If the frame rate budget is limited it may be necessary to compromise and leave some options disabled if the system can’t tolerate the load.

Tuning Procedure

Establish the baseline or ‘no load’ frame rate by turning off all of the rendering options and running the simulation:

  1. Run X-Plane.
  2. Press the ‘P’ key to pause the aircraft while you make adjustments.
  3. Go to Settings->Data Input & Output.
  4. Click the rightmost check box beside ‘framerate.’  This will cause X-Plane to display the current instantaneous frame rate at the top left of the screen.
  5. Exit the Data Input & Output properties page.

The screen capture (left) shows the check box that must be set in order to display the frame rate in the simulation.  The screen capture (right) shows what should appear on the screen.  The first column (f-act) contains the frame rate measurement.  In this case, the value is 54.47 frames per second.

Disable all of the rendering options, AI traffic and simulated weather.  The screen captures show what I had set in my flight simulator (click on the image to see the full size version):

Turn off as many rendering options as possible:

Go to ‘Settings->Operations & Warnings’, and make sure that the ‘Flight Models Per Frame’ value is set to ’01′.  Go back to the simulation and take a look at the frame rate:

No Load (Baseline) Frame Rate

My system was rendering approximately 70 frames per second with the simulation paused.  The frame rate dropped to about 65 FPS when the simulation wasn’t paused.

Working Through The Options

Go to Settings->Rendering and pick an option to enable.  It doesn’t matter which one because you need to work through them all eventually.  Return to the main window and fly the plane while you check the frame rate.  The new value shows how that option is impacting your system.  Some helpful hints:

  • Work with one option at a time to avoid confusion.
  • Turn the option on and check the frame rate.
  • Turn the option off again and check the frame rate.  If the frame rate doesn’t return to it’s previous value you’ll have to restart the program (exit and start over) in order to clear out any residual goo the setting may have caused.

When I reviewed the rendering options on my system, I found that the following items had a significant impact on the frame rate:

  • Simulated weather.  For example: wind, clouds, wind shear, precipitation.  These settings may be found in Environment->Weather.
  • Any setting that deals with particles such as clouds or mist.
  • Roads and car traffic.
  • Rendering shadows and some other lighting effects.
  • Anti-alias value set too high.
  • Anisotropic value set too high.
  • Models Per Frame set too high (Settings->Operations & Warnings).

Basic Options for >60 FPS

I found that I could keep my system’s frame rate above 60 by turning off all weather effects, leaving the Models Per Frame at 1, and using the settings shown in the screen capture shown above.

Budgeting for ‘Expensive’ Options

Now that I know which options place the greatest load on my system (your system may be different depending on the CPU and graphics card) I can budget the remaining frame rate to include the ones that I want most (The remaining frame rate is the difference between the current frame rate and the minimum frame rate required to achieve smooth movement in the simulation.)

For example, if I add scattered cumulus clouds at 18,000 to 20,000 feet the sky takes on a more realistic appearance, but the frame rate decreases from 60 FPS to 40 FPS.  I decided to keep the frame rate at or above 30 FPS, so my remaining budget is 10 FPS.

It’s possible to go lower than 30 FPS, that’s just my personal preference (at the moment.)  Some more experimentation may show that I can go lower and still achieve good results…

If The Baseline Frame Rate is Too Low?

If the baseline frame rate is between 20 to 30 FPS when all of the options are disabled, you need to decide if you can live without the other rendering options or to upgrade your video card.

I was using a Sapphire HD 2600 PRO video card but the best rate I could achieve was 30 FPS with a limited number of rendering options.  I decided to replace it with an HD 6670 and the baseline frame rate increased to 70 FPS.  When I finished screening the options the frame rate was over 60 FPS, giving me a 30 FPS budget for add-ons.

Conclusion

X-Plane takes a little effort to configure but the results are worth it.  The graphics are great and the flight model is very realistic, but it needs a good graphics card to work properly.

As a side note, I can run my RealFlight 5.5 with all of the graphics options enabled and it doesn’t load this card down at all.

Posted in Airplanes | Leave a comment

Aeroworks Edge 260

I purchased this plane as an ARF from Leading Edge Hobbies.  The air-frame is constructed of balsa and covered in plastic.

The plane is designed to be light and it shows during flight.  The low wing loading allows it to float through the air and do 3-D maneuvers with ease.

The plane features optional side force generators that can be installed on the wing tips to provide additional lift during knife edge maneuvers.  Less rudder is required to maintain altitude, and since the pitch angle is lower the motor has less work to do to keep the plane in the air.

The photo on the left shows the parts that come with the kit (photo taken from the Aeroworks website.)  The plane is also available in a yellow color scheme.

Electronics

  • Generic brushless motor, 20 ounces of static. thrust, 9×4.5 APC Slow flyer prop.
  • 20 Amp generic speed control.
  • Spektrum 6 channel receiver (ailerons on separate servos to allow flaps or spoilers to be mixed during flight).
  • 9 gram generic servos.
  • 1300 mAH Nanotech Lithium Polymer battery (low internal resistance, high discharge rate), provides over 10 minutes of flight.
  • All up weight of the plane is approximately 15 ounces.

Construction Tips

I didn’t like the technique the manual described for gluing the main wing into the fuselage.  It said to poke holes in the wing covering with a pin and then wick thin CA into the joint between the wing and the fuselage to hold it in place.  The problem is that the glue won’t stick to the plastic film and the pin holes don’t provide enough surface area to create a strong bond between the wood in the wing and the wood in the fuselage.  It would really suck if the main wing became loose during flight.

I removed the covering from the center of the wing where it joins with the fuselage so wood was making contact with wood.  I installed the main wing in the fuselage and lined it up.  I marked the wing to show where the edge of the fuselage was.  I used a sharp hobby knife to score the covering (without cutting the wood) until I could remove it.  You should leave about 1/16 of an inch of covering inside the marks so the covering goes into the joint to make it look finished.

I replaced the wing in the fuselage and repeated the alignment and wicked thin CA into the joint to fasten it in place.  No more worry about the main wing breaking loose.

Flying Characteristics

There was plenty of power for climbing so I took the plane up to a comfortable altitude and began trimming it out.  It’s a very light plane for it’s size and practically floats through the air.

I discovered during the first flight that it had a tendency to pitch up and climb while upright and to pitch down and lose altitude when it was inverted.  If the C of G was too far back it would pitch up when inverted or upright.  The symptom seemed to indicate that the ailerons were out of alignment with the airfoil, causing more lifting force on one side of the wing than the other.  I used the sub-trim in my radio to tilt both ailerons up (think spoiler) to take away some of the lifting force from the top of the wing.  After some test flying and fine tuning I was able to get the plane to fly straight while upright or inverted, and at any airspeed.

The plane has a tendency to float and stall during landings, so I rigged the landing gear switch on my transmitter to add about 10 to 15 degrees of spoiler to reduce the amount of lift provided by the wing.  The result was a nice gentle glide slope and better control during the flare.

There were no surprises in terms of the flying characteristics of the plane.  I expected the elevator maneuver to be poor, with distinct, alternating stalls and mushes as it descended.  It’s characteristic of that wing design.

Suicide slides (knife edge position, full opposite rudder, descending vertically) left something to be desired.  I increased the throw of the rudder and they became more vertical, but not straight down as I’d hoped.

Conclusion

This plane can fly slow or fast and performs equally well in 3-D and conventional flight modes.  There’s plenty of power for climbing vertically and hovering during the entire flight.

Posted in Airplanes | Leave a comment

Animal-X 3D (Forward Swept Wing) Flying Demo

Posted in Airplanes, Indoor Flying | Leave a comment

DX7 Transmitter Interface for Windows

Introduction

This as a project that I’ve been considering for a while (too many toys, not enough time.)  If I design it as a building block I can re-use it in my other projects.

Overview

The audio output of the computer can be connected to the training cable input jack on the DX7 using a specially configured cable that can be constructed using audio adapters.  A Direct Show source filter will be used to synthesize the signal for the transmitter.  The signal will be sent to the default audio output device and then on to the DX7.

Reverse Engineering the DX7 Interface

  

The first step is to look at the signal being sent by the DX7 with an oscilloscope to take measurements.  I had found a free oscilloscope program that uses the audio input of the computer to take measurements, and I was curious to see how it would compare to the BK Precision 2160 Oscilloscope on my bench.  The results can be seen in these photos.

The image on the left is the software oscilloscope, and on the right is the BK Precision.  The plot produced by the software is distorted due to the bandwidth limitations of the PC’s audio card, and contains artifacts that I suspect are the result of the audio input decoupling capacitor.

I used the BK Precision to take measurements and documented the results below.

The long flat section at the beginning of the signal is used to tell the receiver where the signal begins.  Following that are 8 channels of data that are separated by 0.4 millisecond stop pulses (the ones that go negative.)  The positive going pulses vary in duration from 0.7 to 1.5 milliseconds to control the position of the servo arm.

The gray numbers within the positive pulses indicate the channel assignment.  Refer to the table at the right titled ‘Channel Assignments’.

Signal Synthesis

I divided the frame into 18 sections corresponding to the state transitions in the signal.

I placed the information for each section in two tables, one for duration and the other for amplitude.

The servo pulse duration is recalculated when a new value arrives.

With the table to guide the process, it’s a simple matter to write a function to synthesize the signal.

Since the signal is cyclic, the first step is to determine where ‘t’ falls within the cycle.  The input value ‘t’ could be greater than a cycle, so the input time is divided by the cycle time and the remainder ‘tm’ is used as the position within the current cycle.

The output value is calculated by iterating through the duration table, subtracting the duration of each section from tm until the result goes negative.  That indicates that tm fell within the current section, and the corresponding value is looked up in the amplitude table and returned as the result.

The function is continuous so it can calculate discrete samples for any sample rate or buffer size (time span.)

This photo shows the signal at the audio-output jack of my laptop.

I’ve adjusted the amplitude of the waveform in the software to produce a signal that’s 1.4 volts peak to peak.

There’s some ringing at the top and bottom of the pulses that I suspect is caused by the output circuitry of the sound card.

The ringing shouldn’t be an issue since the DX7 (probably) has input conditioning circuits to reject such noise.

Transmitter Interface Test Panel (software)

I wrote a test program in C# to exercise the interface.  Marshaling was used to import the functions from the API dll, and C# wrappers were written around the marshaled functions to provide an interface to the synthesizer.

The program has a DirectShow test graph that splits the output of the synthesizer.  One feed goes to the audio output jack and the other goes to a software oscilloscope so I can view the waveform in real time.

There’s a slider for each servo channel (even channel 8), with a checkbox for reversing the direction of operation.  The numeric read-outs above the sliders show the servo position value (16 bits, unsigned, 0..65535) that was read back from the synthesizer as a means of confirming the values it’s receiving.

The ‘Start’ and ‘Stop’ buttons are used to control the DS filter graph, and were added for debugging purposes.  Normally the graph would run continuously until the program is shut down.

I’ve tested the program with my DX7 transmitter and the Animal-X Biplane (prop removed, of course.)  All of the channels work and the servo motion is smooth and free of jitter.

I observed a 2 second delay (latency) between the slider movement and the servo response.  The synthesizer was sending frames too quickly, so they were backing up in the audio output queue.  Think of it as a lineup in a convenience store.  If customers are coming in more quickly than the cashier can deal with them then a lineup forms.  The idea here is to avoid a lineup.

I modified the synthesizer to limit the number of frames being sent out each second in order to prevent stale data from collecting in the audio output buffer.  The careful starving of the downstream buffer prevents too much stale information from accumulating.  As a result, when the servo position is updated the new data is sent out immediately and doesn’t have to wait.

Testing of the modified algorithm indicates that the response to the slider movement is immediate when the signal is observed on the oscilloscope.

Cable Specifications 

The output amplifier of a typical PC sound card is analog.  These amplifiers are not current limited, so if you short them out or place too small a load on them the amplifier will be damaged.

Great care must be taken to configure the cable that connects the PC to the transmitter in order to avoid damaging the sound card.

The objective is to wire one of the output channels to the input of the DX7.  This can be hard wired, or audio cables and adapters can be used.

Get a stereo mini to RCA cable and RCA to mini adapter.  I had a stereo adapter, but a mono adapter would be better.  Connect one of the RCA plugs from the audio cable to an RCA jack on the adapter.  Leave the other one disconnected!  The objective is to connect the output signal from the PC to the tip of the mini plug going into the DX7.  If the ‘NO TRAINEE’ message comes on the radio screen, move the RCA plug to the other jack on the adapter.

To Do:

  • Test the transmitter and model to see if latency is still an issue.


Posted in Airplanes, Computers, DirectShow, Software | 2 Comments

Minibuckle

It’s been really hot and humid out lately so I’ve been flying early in the morning and late in the evening just before dark when it’s cooler.  I’ve been spending my ‘down time’ building a Mini Turnbuckle.  Rolly did a pretty good job explaining the construction details at the club meetings and on the KRCM.org website:

http://krcm.org/Rollys_Build_Files/MiniBuckle_Files/Rollys_MB_Build_Files.html

so all I’m planning to do here is take some notes of my latest project and do some analysis of the power system (motor/ESC/prop).

I had a ton of stickers kicking around in my workshop so I thought I’d go for a NASCAR look with an R/C theme for the fuselage covering.  I made see-through panels over the ribs of the main wing using transparent red covering that was left over from my last Turnbuckle build.

I built my first Turnbuckle wing without dihedral because I wanted to see how it would fly and because I wanted something similar to my Ultra Stick that bit the dust a few years ago.  I found that it’s much more difficult to get the Turnbuckle into a flat spin without dihedral, so this one will have it.

MiniTurnbuckle Components

  • All up weight: 2 lbs, 11 oz (43 ounces)
  • Wingspan: 48 inches
  • Wing Chord: 12 1/4 inches
  • C of G: 25% = 3 inches, 33% = 4 inches.
  • Fuselage length: 40 inches (prop to rudder)
  • Rolly recommended the E-Flite Power 15
  • Prop: APC 11x8E Electric
  • ESC: 40 Amps
  • Battery: Rhino 2350 3-Cell 25C (58.75 amps max discharge)

I found an online motor calculator at http://www.brantuas.com/ezcalc/dma1.asp, so I used it to estimate the performance of the power system.  In this case I’m using a 3 cell battery and found that an 11×8 prop was a good match for the motor:

The calculator indicated that the motor will draw 38.6 amps at full throttle with a static thrust of 77 ounces.  The thrust to weight ratio is 180%, which makes the plane an excellent aerobatic and 3-D performer.

I measured the full throttle current with an in-circuit amp meter and got 34.5 amps, which is the specified maximum current for the motor.  The motor, battery and ESC temperatures appeared to be normal, but I’ll need to do some test flights and stress them further to see how they hold up.

I did the calculations for the power system with a 4 cell battery and found the following:

The ideal prop size is 10×6 and the motor current is approximately the same as before, but the static thrust has increased to 83.2 ounces, resulting in a thrust to weight ratio of 193%.  An extreme aerobatic performer

I think that either of these configurations would be safe and wouldn’t risk burning out the motor or ESC.

If you like to push the envelope, a 4 cell battery with an 11×5 prop would draw 43 amps, according to the calculator.  Rolly’s using an 11×5.5 prop, which the calculator predicts would draw about 46.5 amps.  If you design for the maximum rated current (which the motor can endure for 15 seconds) then you need to manage the throttle so you don’t keep the power on too long and risk burning out the motor.  You’ll also need a 50 or 60 amp ESC.  The Power 15, 4 Cell LiPoly @ 35C to 70C, 50 Amp ESC and 11×5.5 prop were the ones that Rolly recommend to me, and that’s what I’m planning to put on the plane once my parts arrive.

Determining the Right Prop Experimentally

The rig below is a bellcrank that transfers the thrust from the motor to the scale so it can be measured.  It has an in-circuit meter to measure the current to the motor.  You can test different scenarios by increasing the prop diameter and/or pitch incrementally until you find the one that fits your application.

(Below: I used piano wire at the fulcrum, but if you wanted to get fancy you could use bearings. I don’t think the losses due to friction are worth worrying about considering the size of the motors I’m testing.  I wasn’t building a super-precise instrument, just something to have a little fun with.)

For example, if I were looking for the best prop for hovering a 3-D airplane, I’d be looking for maximum static thrust with low pitch props.  If I were looking for the best airspeed, I’d be using high pitch props.  The idea is to pick a prop that causes the motor to draw it’s maximum rated working current to ensure that the maximum amount of power is being transferred to the prop.

You can do something similar when the plane is sitting on a smooth surface.  Use a tether with a fishing scale in it, and a current meter.  Try different props until you find one that puts the proper load on the motor.

Flight Test

July 24 2011 – I flew the 3-cell battery and 11x8E prop for it’s first flight at the field today.  The battery, motor and ESC didn’t get too hot, and the plane flew well, but it wasn’t as snappy as Rollys setup.  It wasn’t bad however and flew quite well with the 3 cell setup.

I spent most of the flight tweaking the trim tabs.  The C of G was right on (33%) and I was able to fly upright and inverted without putting too much pressure on the elevator .

July 27 2011 – I put some more flights up and there wasn’t very much wind, so I was able to get a better feel for how the plane is performing.  The plane is really light, and with so much wing area it practically floats.  It doesn’t require a lot of power to fly.  It has enough power to pull it’s self into a loop, but it will not fly vertical for long before it stops climbing and hovers.

I had measured the full throttle static thrust at 41 ounces, but the motor calculator had predicted 77 ounces.  The vertical climb confirmed that my measurement was correct and the motor calculator was in error.  That’s why you check things on the ground.

These flights were longer, but the temperature of the motor, battery and ESC remained well within their safety limits.

August 1 2011 – I finally had a chance to put up a flight with the 4-cell battery (Nanotech 2650 35C to 70C), 60 Amp ESC, and APC 11.5.5E.  The full throttle current was measured at 33 amps.  This battery doesn’t appear to warm up at all during a flight where I’m pushing it pretty good, and the plane can do vertical climbs.  The motor gets hot, but not so hot that I had couldn’t touch it.

The plane will fly ‘sport’ with a 3-cell battery and an 11 inch prop, and gets quite peppy with the 4-cell battery.  Rolly’s tried a 12 inch prop on the 4-cell,  so that will work in a pinch too.  Just manage the throttle and stay under 15 seconds at full throttle.

 

Posted in Airplanes | 2 Comments

KRCM 36th Annual Father’s Day Fun Fly – 2011

The weather was perfect all weekend.  Sunny, not a cloud in sight, with just a slight breeze.  It’s difficult to tell from these photos because most of the pilots and spectators where on the other side of the clubhouse at the time, but the fun fly had approximately 60 pilots with their spouses, children, pets and flying paraphernalia in attendance.

There were pilots from as far away as Pennsylvania, New York State, Connecticut, Ottawa, Toronto, and the Kingston area competing for fun and prizes in three classes: Junior, Sportsman, and Expert.

Members of the Sayre Pennsylvania club come to the KRCM fun fly each year, and KRCM members attend the Sayre fun fly.  This exchange is a tradition that goes back over 36 years.

One of the highlights of the event was a 68% scale model of a home built airplane that was popular in the 1950′s.  The fellow in the red and white striped shirt is about six feet tall, to give you some idea of the size of the plane.  The wing span is 17 to 18 feet.  The pilot was made from a foam mannequin head and a black wig.  I can’t remember the exact size of the engine, but I believe it was 220 cc.  This model won the ‘Pilots Choice’ award.

This photo was taken on Sunday after the fun fly was over, which explains the lack of warm bodies.  The guys were putting up a few more flights before they returned home.

There were over a dozen crashes during the competition, some causing minor damage, and some that were more serious.  There was a spectacular mid-air collision, involving the fellow who is walking between the tents, that turned the planes involved into confetti.

Gord and I were flying combat with the balls.  My ball was slightly damaged during the battle.  I’ve decided to make a new one out of heavy EPP foam.  The weight won’t change much, but it’ll be able to take more abuse.  It should also be able to hold it’s shape better when it gets hot in the van.

Lots of sun, fun, and flying.  A perfect weekend.

Posted in Airplanes | Leave a comment

Spektrum DX7 to DX8 Migration

I purchased a Spektrum DX8 recently and started migrating some of my model setups to the new transmitter.

I found that many  of the settings could be copied over (manually) without any adjustments, but the gyro gains had to be adjusted because the range of values had changed.

The gyro gain setting in the DX7 ranges from 0% to 100%, with 50% being the reference value.  When the value is below 50% the gyro is in rate mode, and the gain increases as the value is decreased.  Values above 50% put the gyro in head-hold mode, and the gain increases as the value is increased.  The DX8 values range from minus 100% to plus 100%, with zero being the reference.  Positive values put the gyro in head-hold mode, while negative values put it in rate mode.

To convert DX7 values to DX8, take the gyro gain from the DX7, subtract 50, and multiply by 2.  For example, my gyro gain was 62% (head hold), so (62-50)*2 = +24%.  If the setting was 38% for rate mode, then (38 – 50) * 2 = -24%.

I’m just getting to know the radio, but some of the features that I like include:

  • timer operated by the throttle.
  • normal, stunt 1, stunt 2, and throttle hold have independent gyro gain settings.
  • the ability to make backup copies of your models on the SD memory card.
  • press the clear and back switches when the transmitter is on, and you can access the model select menu.
  • use the throttle hold switch as a safety shutoff for the helicopter motor.
  • the mixes have a ‘trim’ setting that allows the output channel to be trimmed in sync with the input channel.  Great for 4 aileron biplane mixes and the fun ball;
I’ve put up a flight with the Animal-X and my HK-450 and the radio worked well.  The resistance of the sticks is greater than the DX7, but I like that because I get a much better feel for where they are.  The added pressure and different feel takes a little getting used to.
Posted in Airplanes | Leave a comment

Got Balls… the movie.

May 25 2011

Gord and I have done combat with these, and they work great.  He won the first round a few days ago, and I ended up replacing the cowl ring around the prop with a two-layer laminated ring to give it more strength, which I should have done in the first place.  I had run out of replacement props (8×4 DD), but I had one that had been modified by trimming 1/2 inch off each tip to make a 7x4DD.  The smaller prop works just as well, and I can still hover with it.

This plane is maneuverable, and it can fly fast or slow, and roll into any position without losing lift or altitude.  I’m having fun flying it.  If I wasn’t, it would be gone by now (foam is cheap.)

Gord and I did combat again last evening, and I happened to win this round (sorry Gord.)

Gord brought one of these things out to the field a while ago.  It’s different, and I thought it was cool so I built one too.  This was a TLAR (That Looks About Right) project, designed as it was built.  I gave it the same wing area as the Animal-X so I could use use the same hardware and be confident that the plane would be able to perform and have lots of power for 3-D maneuvers.  FlyingBall-Tiled>

This plane flies well in any orientation.  I gave it a crazy paint scheme on purpose so onlookers wouldn’t have any real clue about which part is the top of the plane.  I like to fly it at a 45 degree angle, or knife edge, or inverted, or spin it like a top, just to help confuse things.  I painted the top rudderon yellow to mark the top of the plane.  It’s easy to see in flight so I can stay oriented.

The all-up weight is 6.5 ounces.  The hardware I used includes:

  • 2204/14 brushless motor and 8×4 GWS DD prop.
  • 10 amp (generic) speed controller.
  • (generic) Spektrum 6 channel Rx.
  • (4) 5 gram servos.
  • All up weight is 6.5 ounces.
  • C of G is approximately 5.25 inches.
  • Krylon Short-Cuts (paint) from Michaels, and masking tape.

I had built a motor stand some time ago and used it to test some motors and props that I had.  The DD propellers turned out to be the the most efficient.

The motor is mounted as a pusher.  The foam ring around the prop is 2 inches wide, and 10 inches in diameter.

This plane is built from EPP foam, which is quite soft, so it needs to be reinforced with a carbon fiber tensioning rod.  The purpose of the rod is to stretch the foam taught (like a kite) to help it maintain it’s shape.

Glue the ends of the carbon fiber rod to the foam, and let it stretch the foam a bit.  Then, very carefully add hot glue along the outside of the rod to help hold it in place.  When finished, the foam should be taught like a drum, and flat.

I was going to use a tensioning rod on the vertical profile, but after I had put some test flights on it I decided that it wasn’t necessary.

Transmitter Programming

This plane has four control surfaces.  The horizontal control surfaces are configured as elevons.  The rudder consists of two control surfaces, an upper and lower.  Each control surface has its own servo and receiver channel.

  1. Configure the horizontal control surfaces as elevons.  In the Spektrum transmitter, this is done by selecting the delta wing configuration.  Connect the left surface to the aileron channel and the right surface to the elevator channel.
  2. The upper rudder servo is connected to the rudder channel on the receiver and is configured as a standard rudder.
  3. The lower rudder servo is connected to the 6th channel of the receiver (aux2).  In the transmitter, this channel is referred to as ‘flaps’ (go figure).
  4. Custom Mix 1: Rudder to Flaps, always on.  Set the proportions to 100% in each direction.  The upper and lower rudder surfaces should move together in response to the rudder stick on the transmitter.  Trm: Enable will allow both surfaces to be adjusted as one large rudder surface using the rudder trim.
  5. Custom Mix 2: Aileron to Rudder, always on.  Set the proportions to 100% in each direction.  The upper rudder should move in response to the aileron stick to help roll the plane.
  6. Custom Mix 3: Aileron to Flaps, always on.  Set the proportions to 100% in each direction.  The lower rudder should move in response to the aileron stick to help roll the plane.

When the programming is complete the horizontal control surfaces should act as elevons.  The vertical control surfaces should act as rudderons (rudder + ailerons).  When the ailerons are used, all 4 control surfaces should move.

2011-June-20

Poor little fella bit the dust yesterday.  We were flying combat when it suddenly decided to commit suicide.  The servos I was using wouldn’t stay in trim and kept drifting, and I wasn’t able to maintain control.  Crunch.

2011-June-23

The new ‘Fun Ball’ is ready to go.  I used heavier EPP foam, so now the all up weight is 8 ounces.  1.5 ounces heavier than the previous one, but it should hold it’s shape better and be a little more difficult to damage.  I replaced the funky servos with Hextronik 9g servos from a dead helicopter I had.

Posted in Airplanes, Indoor Flying | Leave a comment

Forward-Swept Flying Wing

May 28 2011

This is the third incarnation of the forward swept flying wing design.  The wing chord and forward sweep have both been increased.  When I calculated the 25% C of G location it was 1 inch from the leading edge of the wing, measured from the center, and the 15% C of G location was right at the leading edge.  I knew I’d have to move the motor further forward in order to be able to balance the plane.

I needed to find out how far forward the motor should be, so I tacked a section of foam on the front with hot glue, and suspended the motor from it.  I moved the motor around until the wing balanced.  The motor’s position determined the length of the forward portion of the fuselage.

I was able to get the plane out for a test flight in the afternoon.  There was a 10 Km wind.  The plane was flying well, with no apparent pitch stability issues.  The rudder responded well, but the response to the elevator and ailerons was sluggish.  The motor seemed under powered, so it was difficult to get into a hover or pull the plane into a loop.  The EPP foam has a rough surface that causes additional drag, so even though the plane is approximately the same weight as my other models, the flight times were shorter.

Tentative Specifications:
  • 8×4 DD prop, 2204/14 motor, 10 Amp ESC, 800 mAH 2-cell LiPoly battery.
  • (3) 5 gram servos.
  • 6 channel Spektrum Receiver, transmitter programmed for flying wing and rudder.
  • EPP Foam Construction, 1/8 inch carbon fiber tubing for a wing spar
  • 26 inch wingspan, 25 inches long
  • Weight: 5.1 ounces (without battery).
Revisions:
 
 
 
I made the following changes to address the issues from the first flight:
  • Installed a more powerful motor, a 2204/14.
  • Set the electronic speed controller timing to high.
  • Increased the chord of the elevons to increase roll/pitch rate.
  • Shortened the tail, placing the rudder hinge line at the rear of the wing.

[ to do:  more flights, more fine tuning]  I need more stick time with this one to find out what it’s quirks are.  The goal is to create a highly maneuverable model that’s capable of regular and 3D aerobatics.  This design is flying well enough that I’m not planning to discard it yet, and with some fine tuning I may be able to get it flying the way I like.


Posted in Airplanes | Leave a comment

Fender American Telecaster Build (Inspired by the Brent Mason signature model)

I’ve owned a number of guitars in the past, including:  a Hohner Les Paul (copy), an Ibanez double-neck (6 string/12 string), a Gretsch Tennessean,  a Gibson Les Paul Deluxe, a Peavey T-60, and my last guitar which was an American Standard Telecaster.

I owned the Telecaster for about 20 years but I decided to sell it recently because it didn’t have the classic Telecaster sound .  It had a rosewood fretboard, wider frets, and was much mellower sounding than a standard Telecaster with a maple neck.  I really liked the sound that my guitar heros were getting.  Guys like Ray Flacke [Ricky Scaggs band], Don Rich [Buck Owens], Steve Piticco, Brent Mason, Johnny Highland, Brad Paisley, Danny Gatton, and Albert Lee.

I wanted a guitar that was a little fancier than the typical off-the-shelf Telecasters at the local music store.  Nothing really outrageous, just some gold hardware, pearloid tuning knobs and pick guard, pearl accents or inlay, and Humbucking pickups.

I was surfing the net looking at custom Telecasters to get ideas from when I found a video of Brent Mason playing his signature series Telecaster (manufactured by Gibson, but currently out of production, I believe.)  If you’d like to view the video, follow this link: http://www.youtube.com/watch?v=FaP97Z5bS_4.

I thought the middle pickup was an interesting idea and the wiring was relatively easy to do, so I added it to my wish list.

I had considered purchasing a Telecaster to customize from one of the local music stores but I’d be paying for machine heads, pickups and other hardware that I really didn’t want.  I’d have to sell off the unwanted items in order to get my money back.  After considering my options I decided to purchase the items I needed through online auctions.  There are  plenty of vendors online that sell Genuine Fender parts.

I was able to purchase a great neck from a fellow in New Hampshire, and a really sweet ash guitar body with transparent red finish from someone in California.  As it happened, the guitar body had three pickup cavities so I could install the third pickup for the Brent Mason configuration without butchering the body and possibly altering it’s characteristics.

Here are some photos of the body and neck that were taken as I assembled the guitar:

I was able to get Fender gold plated machine heads online, and replaced the metal tuning knobs with pearloid knobs that I had ordered from Stewart McDonald.  I found a vendor online who etches custom neck plates so I had them engrave my initials on one.

Here’s the partially assembled guitar.  The bridge pickup is missing in this photo.  It was shipped from Minnesota via priority post, but when it arrived at my apartment building it was put in the wrong mailbox, which resulted in it’s being shipped back to the vendor.

The vendor wasn’t willing to pay for priority post again, so it was re-shipped by regular mail, and it took forever to get here.

In the meantime, I assembled the parts that I had on hand, set up the guitar and tried it out.

 

Setting It Up

I couldn’t justify buying fancy gauges and special tools to build one guitar.  Stewart MacDonald has an awesome selection by the way, but I was able to improvise.

Note:  The specifications (string height, etc) for the Telecaster setup are published on the Fender website.

Feeler Gauges

I used the butt end of drills as feeler gauges to set the height of the strings above the fretboard.  Then I used them to adjust the height of the pickups.

Neck Adjustments

The rod in the neck had been loosened to prevent it from bending after the strings were removed.  Once the strings were on and tuned up the force they exerted on the neck was causing it to bend forward, as one might expect.  I tightened the rod, waited to allow the neck to settle, and then checked the fretboard to see if it was level.  I repeated this procedure until the fretboard was perfectly straight.

Carefully run a metal ruler or straight edge up and down the neck.  If the end of the ruler catches, the neck is bowed forward and the rod needs to be tightened.  If the ruler rocks back and forth on the frets, or if you hold one end on the frets and the other end lifts away from the frets, the neck is bowed back and you need to loosen the rod in the neck.

I think it’s best to work from the neck being bowed forward, and gradually tightening the rod until the fretboard is level.  If you go too far, back off the rod, wait for the neck to settle, and try it again.

Intonation

I used a guitar tuner to tune the open strings, and then checked the tuning at the 12th fret.  If the note at the 12th fret is flat then the distance from the nut to the bridge is too long.  The slider at the bridge must be moved towards the nut to make the string shorter.  This will allow the 12th fret to take a larger portion of the string, making the note sharper.  If the note at the 12th fret is too sharp, the distance from the nut to the bridge is too short, so the slider on the bridge must be moved away from the nut to make the string longer.

Note:  I recommend that you loosen the string before making any adjustments to the sliders.  It will take the strain off them and you’ll avoid stripping the threads.

Wiring

The white pearloid pick guard was made for a Nashville Telecaster, so the holes were already cut for three pickups.  A fortunate coincidence since I happened to be building a guitar with three pickups.

As far as I can tell, based on information I’ve gathered from the Seymour Duncan site and other web pages and message boards that I visited (and there’s no guarantee that this information is correct), the the “Brent Mason” model uses standard Telecaster wiring, but has an additional pickup in the middle position that’s controlled by an independent volume control so you can blend it with the other pickup configurations.  The additional pot also features a push/pull switch that changes the middle pickup coil wiring from series to parallel.

The circuit calls for 500K pots.  Fender pots are 250K, so I used pots intended for a Gibson guitar.  Fender pots have a solid shaft and the knobs are held on by a grub screw.  The Gibson pots have a split shaft, and if you try to put Fender knobs on them the grub screw will crush the slot shut and they won’t sit straight.

I found a piece of hard plastic (aluminum would work too) that was the right thickness to fit snugly into the slot.  I glued it in place with thin CA (Crazy Glue).  Be careful not to use too much because it will wick into the pot and seize it up.  I filed off the plastic so it was flush with the side of the shaft and installed the Telecaster knobs.  A secure fit, and the knobs were sitting straight.

Wiring Diagrams

I found this wiring diagram in a forum somewhere, but I can’t remember where.

I wired my guitar as shown, but when I tried it I didn’t like the sound I was getting.  It was really thin and weak, and had a very strong out-of-phase sound.

I began to experiment with the phasing of the pickups to see if I could make it sound better.  Worst case, if I couldn’t find a combination that worked I could always discard the middle pickup and wire the guitar like a stock Telecaster.  Fortunately, that didn’t happen.

I deviated from the wiring diagram somewhat.  Instead of using a Gibson mini-humbucking pickup at the neck I used a Seymour Duncan SL-59-1 Little ’59 Strat pickup.  I put a Seymour Duncan T3B-STK Vintage Stack at the bridge and a Seymour Duncan STK-S2 Hot Stack in the middle position.

Since these pickups are humbucking they use two coils and the internal impedance is higher.  You have to use a 500K pot in order to avoid placing too great a load on the pickup, which would cause distortion (not the good kind).

Final Wiring Configuration

After some experimentation with the pickup phasing I eventually found a combination that worked.  I’ve included a schematic of my guitars wiring here:

schematic diagram

The updated schematic with my wiring changes

I found that I had to reverse the polarity of both the bridge and neck pickups in order to get a good sound (black wire to ground, green wire as the output, with the red and white wires tied together).  It may have something to do with the physical configuration of the pickup, or the position of the pickup along the string.  My ear says it’s working and that’s what matters.

Then I tried the middle pickup in combination with the others I found that the only setup that sounded good was when it was wired in series.  I modified the wiring so the middle pickup is wired as a series humbucker, and the push/pull switch changes it’s phase with respect to the other pickups.

I put together a short sound clip so you can hear what the guitar sounds like.  It’s not an extensive demonstration of every pickup combination, it’s just a test run to see how it sounds.  The first half is clean, with just a bit of reverb.  The second half is with distortion and reverb.  Brian Fisher Telecaster Sound Clip.


Disclaimer: this article is about my experience building a Telecaster with 3 pickups, inspired by the Brent Mason signature model.  I’ve never had a Brent Mason signature model guitar apart to examine the wiring so I can’t confirm that the schematics that I found on the web are correct.  It was a jumping off point for the project, and I found a wiring combination that works for me and I’m happy with it.  Good luck with your project!

Posted in Guitar | Leave a comment

Real Time Pattern Recognition in Video


I was involved with a project related to computer vision and object tracking in a live video stream.  This is a screen shot of the software that I developed for the project.  It tracks 5 objects at 30 frames per second with no latency.  Needless to say, I have a much better understanding of the challenges associated with doing pattern recognition in images and video.

The Issues

  

Cameras are sensitive to light intensity, and the numbers they produce are proportional to the amount of light hitting the sensor.  Color cameras provide three channels of data that correspond to light intensity information for the red, green and blue color bands.

The image on the left is showing the intensity information from the red channel of an image.  The graph on the right is a visualization of the data in three dimensions.  The darker areas of the image correspond to the low areas, and the bright parts to the high areas.

If you’re doing pattern recognition in video, you’re dealing with 3D surfaces and terrain.  The red, green and blue channels each have terrain that’s unique to the channel. Depending on the application, you can use the terrain from any combination of the three colors, but do the surface comparisons separately.  If you get a consensus then you have a color match.

Challenges

The shape of the terrain is determined by the amount of light hitting the sensor.  If the lighting conditions change, the terrain changes.  If you collect exemplars under one set of lighting conditions and then attempt to use them under different conditions, they simply won’t work because the conditions they were acquired under no longer exist.

Lighting is a critical factor for this type of system.  In addition, a good pattern matching algorithm must be robust in the presence of noise, be aware of the response characteristics of the camera, be capable of recognizing objects within a specified depth of field, and be able to utilize techniques that reduce the amount of computing required to classify an object.

Not all objects are square.  Consider using a mask to select the portions of the object you want to work with and exclude portions that don’t contribute to the result.

Trials and Tribulations

During the course the of this project I made a number of attempts to train an A.I. based solution, one involving software provided with OpenCV, and when that was unsuccessful, another using neural networks which was also unsuccessful.  I felt that I was doing things correctly, but began to suspect that there was some key characteristic of the data that was derailing my attempts.

I began looking at the camera and the data it was providing.  The decision was made to abandon an A.I. solution temporarily and  pursue a prototype using template matching because it’s a less complicated algorithm to implement, so it would speed up the development and testing while the camera issue was being addressed.

I had considered using the template matching routines from OpenCV, but they used a lot of calculations, and as a result were extremely slow.  Vector cosine had been suggested as a possible solution, but when I tried it with my test software I discovered that it produced a lot of false positives.  I needed an algorithm that was fast, while testing both magnitude and order of appearance.

Conclusion

The final solution suggested it’s self after I set up a test case in Microsoft Excel and plotted the results for a matching sample and a non-matching sample in histograms.  I was able to use the information (not based on histograms, too many CPU cycles) to develop an algorithm that accounted for the offset between surfaces, the dead band imposed by the camera noise, and is able to determine very early in the comparison if a match is possible.  In addition, the routines have been parallelized and converted to assembly language to eliminate wasted CPU cycles.  The result is an algorithm that can get through the 370+ million pixel comparisons required to complete the search in less than 32 milliseconds.

Posted in Computers, DirectShow | Leave a comment

Video Capture Demo by 12th Floor Technologies

May 26 2011 – Added ‘Ghost’ effect, see docs below;

This is demo program that I wrote in C# using the DirectShow.NET libraries.  It captures video from a web camera and manipulates the pixel data to create special effects.  It was intended to be a test program that I could use to evaluate web cameras.  The effects are algorithms that I was using in my work.  I thought I’d throw them in because they’re fun to play around with.

Download the program installer from here: <VideoCaptureDemo.msi>

When the installation is complete there will be a folder in the start menu called ’12th Floor Technologies’ where you can find the program.  In addition, there will be a shortcut on the desktop:

Quick Start

When the program runs for the first time there will not be any video.  You need to select a camera.  Click Tools, Program Options, and select one.  Press the Apply button.  The program will attempt to start the camera.  If successful, the camera, image size, color depth, video format and frame rate will be displayed in the status bar.  If not, an error message will appear.  Chances are, if you get an error message there may be some issue with the camera or device driver.

If the image appears, but is upside-down, go back to the Program Options dialog and check the ‘Flip Image Vertical’ box to correct it.

Effects

There are five effects modes.  Use the radio buttons to select the mode, and use the controls to the right to set parameters.  The changes take place immediately so you can watch the results as you make changes.

Don’t worry about getting into trouble.  If you get into a situation where the settings don’t make sense, just press the Reset button and the settings will be returned to their initial state.

Color Effects

The video from the camera contains three channels of light intensity information corresponding to the red, green, and blue color bands.  The check boxes let you turn the colors on and off in any combination you choose.  The invert option reverses the intensity information in the channels.

Here are some examples.  Click on them to enlarge.  The settings that were used are shown on the right.

    

Gray

There’s a well known formula for converting RGB  to gray scale:  gray = (0.299*r + 0.587*g + 0.114*b);  There’s also a well known technique you can use to save CPU time.  The values from the green channel account for 58.7% of the final result, so it’s acceptable to use the green channel as and equivalent to grayscale.  Since the program is copying 8 bit values instead of performing a ton of time consuming floating point operation the ‘conversion’ is much faster.

In this case, the values from the green channel are copied into the red and blue channels to produce a 24 bit grayscale  image.  This also saves memory because the result is stored in the input bitmap.

The numeric up/down controls let you select a range of intensity values.  Values outside the range are set to zero (black).  Here are some examples:

      

The first image is a straight grayscale conversion using the data from the green channel.  The other images use the numeric up/down controls to select a range of intensity values.  Increasing the lower number excludes low intensity values, and decreasing the higher value eliminates brighter areas.

Heat Map

The heat map translates intensity to a color scale representing heat, where blue is cold, green is medium and red is hot.  This is especially interesting if you have an infrared camera to experiment with.  Here are some shots:

      

Oil Paint

The oil paint effect removes the small changes in color that contain shading information, leaving the base colors.  The effect is similar to viewing an oil painting.

Noise

This is the opposite of the oil painting effect.  In this case, the color information is gradually removed, leaving the shading information.  This mode illustrates how noisy the images coming from the camera are.  The noise presents as pixels flickering on and off.

    

Ghost

It’s difficult to demonstrate this one with static images.  Essentially, this is a low pass filter with a really low cutoff frequency.  As a result, it takes a relatively long time to respond to changes in the image.  For example if an object moves in the frame, it will appear as a blur until it stops moving.  The object’s image will gradually fade away at the starting location, and gradually fade in at the new location.

It’s a second order low pass filter with a 0.5 Hz cutoff.  Each pixel is treated as a separate data stream.  As a result, the pixel’s response to light intensity changes is slowed dramatically, producing the effect.

This technique can be used to filter noise from an incoming video stream, and although it uses more memory than Gausian smoothing, it’s much faster.  This algorithm uses 4 pixels to calculate an output value, as opposed to Gaussian smoothing, which would use a minimum of 9 pixels, assuming a 3 x 3 matrix for the weighted average.

The calculations that are performed on the pixels are independent of one another, so the work can be divided between processors, ie: domain decomposition, using a parallel ‘for’ loop.  The threads are working on separate portions of the image, so there’s no need for synchronization.

Performance may may be a an issue on less powerful systems if the frame rate is set too high.  The primary symptom would be high CPU utilization.  If that occurs, go into ‘Program Options’ and decrease the target frame rate.  That will decrease the number of images per second that the computer has to process, which will result in lower CPU utilization.

Conclusion

If you’ve converted a web camera to infrared you can use the heat mapping mode to view the objects around you in terms of the heat they produce (or reflect.)  If you can’t find one to convert, don’t worry, you can still have a lot of fun with the program using a regular web camera.

Posted in Cameras And Video, Computers, DirectShow | Leave a comment

ImageJ – A Public Domain Image Editing Utility


Image J is a Java based image processing program (Wikipedia: ImageJ) that lets you perform a variety of mathematical, logical and other operations on images.  It’s not a run of the mill paint program.  It’s an image ‘calculator’ that lets you manipulate, analyze and apply functions to all or part of an image.  It’s great for doing ad-hoc work or testing an algorithm before you implement it in code.

This is the infrared image of a ceiling lamp that was used in the previous article.  If you right-click on the image below you can save it on your computer and use it to follow along as I perform the next steps with ImageJ.

Start ImageJ.  Go to File, Open, and load the image.  Click Image, Color, Split Channels to separate the red, green and blue channels into separate grayscale images.

The image you select for the next step isn’t critical.  I used the image from the green channel because it appeared to contain less noise.

Click on the window with the image you want to analyze.  Click Analyze, Surface Plot.  Select ‘wire mesh’ and turn off ‘shading’.  Press OK.  The result should be similar to this:

In this 3D plot, the (x,y) coordinates correspond to the pixel positions in the image.  The Z-axis is the value of the pixel, which in this case corresponds to heat intensity.  Colder areas in the image are black, and warmer or hot areas are lighter.  The large bump in the center of the plot corresponds to the region of the image where the ceiling lamp is located.

Conclusion

The web camera that was written about in a previous article was used to capture the image of a ceiling lamp in infrared.  ImageJ was used to plot the heat intensity information as a surface.  This information could be  used to track hot spots, or if the intensity values were calibrated against known samples, the camera could be used to measure or monitor temperature.

 

Posted in Cameras And Video, Computers | Leave a comment

Turn your Webcam into an Infrared Webcam

I needed an infrared camera (heat sensitive) for a project I was working on.  There were some articles on the net about web camera conversions, so I thought I’d try it with a surplus camera that I purchased from Canada Computers.

The sensors in these cameras are sensitive to light ranging from infrared through the visible spectrum.  The optics contain an infrared blocking filter that restricts them to the visible spectrum.  If the IR isn’t removed it makes the image appear fuzzy.

Two things need to be done to convert the camera.  First, the infrared blocking filter must be removed to allow IR to reach the sensor, and a filter must be added to reduce or eliminate visible light.

The pixels in the light sensing chip consist of triplets of sensors with colored filters that select red, green and blue light.  It would be difficult to say what the filters response to infrared is without special equipment to test it.  It worked well enough for my purposes.

When the conversion is complete you’ll have a camera that provides three channels of infrared intensity data with values ranging from 0 through 255 (24 bits per pixel, 8 bits per color.)  The image you see on the computer screen isn’t infrared.  It’s what the infrared intensity values look like when they’re mapped into the RGB color space.

The optics are held on the circuit board by a few screws.  I removed the screws and (carefully) lifted the lens assembly away, exposing the IR filter and the light sensor.  The IR filter is (usually) a flat piece of glass with a pink or red tinge.  In this case, it was held in place over the sensor by the plastic lens housing, and it was easy to remove.

The next step is to find something to use as a filter to block visible light while letting infrared through.  The popular choice is a piece of film negative.  You can purchase a disposable camera, and just take it in for developing.  No need to take any photos.  Just let them know that there are no images so they don’t throw out the negatives.  It’s a matter of trial and error to determine the number of layers needed to get the right amount of filtering.

I installed my visible light filter over the end of the lens assembly on the outside of the housing so it would be easier to make changes.

I needed an infrared light source as well, which explains the circuit board with the infrared LEDs.  I wired them in series so they could be operated from a 12 volt supply (USB is 12 volts, right?)  I glued the film negative in place in the center of the circuit board, and fastened the circuit board on the housing for the lens.

Plug the camera into the computer, and start the webcam software. Go into the webcam setup dialog, and turn off face tracking and auto focus.  IR mode drives the auto focus logic nuts so it’s useless.  Just leave it off.  Set the gain, contrast and brightness where they work the best for you.  I didn’t find that 60 Hz filtering made a difference in my setup.

Here are some photos of a ceiling light.  The one on the left is in the visible spectrum, and the one on the right is in the infrared spectrum.  You can make out the outline of the coiled fluorescent bulb through the semi-transparent plastic cover in the infrared photo.  The ceramic base of the bulb is hot, so it shows up in the photo as a light source.  The black dot in the center is the nut that holds the plastic cover in place.

This photo shows how someone’s face (mine, actually) looks when it’s illuminated by the LEDs.

Conclusion

This is an inexpensive way to build your own infrared video camera.  Use it for fun or as an IR sensor for a pet project.  Some web cameras are better suited to the conversion than others.  In some cases, the IR filter is fixed in the lens housing so you can’t remove it.

The camera I converted was a Logitech Orbit/Sphere AF.  The camera works reasonably well for viewing heat sources like lights and heaters, and if you use an infrared source for illumination it works similar to a regular video camera.  Unfortunately, it doesn’t have the resolution required to see the veins under your skin, which would have been really cool.

Posted in Cameras And Video | Leave a comment