Repackaged R/C + Arduino KAP Controller



  • edited February 2016
    David is right about how to free the rx board. It beats me how they manufactured the thing - the antenna cannot be removed without cutting plastic.To make mine foldable and less bulky I actually cut away quite a lot of plastic. That let me fit it into the same bag as the rig and EOS M.

  • Really interested in making one of these, i have a Pololu A-Star 32U4 Mini SV. Where would someone get the gears necessary? Would any 2.4 GHZ transmitter/receiver work?

  • Although I cut my own gears using a laser cutter, you can get gears from the places that sell 'robot' stuff like HobbyTronics in the UK or HobbyLobby in the USA.

    Dave Wheeler's code is aimed at the r/f module that is part of the CT6B cheap 6 channel transmitter that goes under various names, FlySky, Turborix, HobbyKing etc. With modifications it would work with other r/f modules that take ppm input (but I discovered today that the r/f module in Spektrum transmitters does not).
  • edited February 2016
    I get my gears from

    Not just any 2.4GHz tx/rx is going to work for this. We're using the Hobby King T6A unit because it has an RF module that accepts a PPM signal as input from the microprocessor. As far as I know, this is the only 2.4GHz R/C set that has this design.

    That being said, the Hobby King T6A is ridiculously inexpensive at $25.

    [Edit: Dave Mitchell beat me to the punch on that response. He's correct, of course, that there are other brands reselling the same transmitter as the HK-T6A. I didn't mean to contradict that.]
  • Ok, I found a place for gears, what are you guys using for the tooth per inch and pitch on the pinion and main gear?
    thanks John
  • My pan mechanism uses a 16 tooth gear on the axle and a 60 tooth gear on the servo. Both are 32 pitch (32 teeth per inch of diameter, I think.)

    That high ratio (large gear on the servo, small on the axle) works well with an unmodified servo and arduino-controlled rotation. (My arduino code uses constant acceleration when it moves the servos, so motion is pretty smooth.) When using manual R/C control, such high gear ratio makes for twitchy, fast rotations and it's easy to overshoot the target and start the rig oscillating.

    I think most R/C KAP rigs use pan servos modified for continuous rotation. Then the gear ratio can be reversed (large gear on the axle, small one on the servo) for slower, easier controlled motion.

    I have a really neat way of mounting a gear on a screw, too. Remind me to post something about that soon. :-)
  • edited February 2016
    I think Tom's "love of the act as much as it is a love of the results" comment is spot on. Having followed this thread with great interest I am now ready to order up supplies to construct my own version of Wheeler's Wonder.

    During January I spent some pleasurable time at the workbench constructing a new cradle for my Canon EOS M3. Its definitely time to get that puppy aloft. My Canon EOS M rig has been my main KAP cradle for two years now. I have been quite pleased with the EOS M coupled with Canon's EF-M 11-22mm wide angle zoom and will use that same lens with the EOS M3. It is interesting to note that Dave Wheeler and Dave Mitchell both use an EOS M with the new transmitter.

    M3 cradle components

    Components made for my new Canon EOS M3 cradle

    M3 cradle partilly assembled

    The M3 cradle partially assembled. All that is left is tidying up the wiring and programming the radio.

    I really appreciate Dave Wheeler's fine design work in this controller. Dave has talked to me on and off over the years about the potentials of a microcontroller-based TX for KAP and this project delivers on so many fronts - miniaturization, extendability, multiple modes of operation, affordability. That Dave has taken such care with documentation and supported those who have undertaken this build is a remarkable gift. I am thankful as well for reports back from the various builds underway.

    As I start to dig deeper into Dave Wheeler's documentation I find myself wondering about a few things.

    1) The repackaged Spektrum radio I am currently using has memory for storing ten model setups. I use this capacity to quickly reconfigure the transmitter in the field when I change camera cradles. I can achieve the same function by loading different 'sketches' into the Arduino in Dave's controller design but I usually do not have a laptop in the field. Perhaps there is a way to load 'sketches' from an iPhone or iPad. Or, perhaps there is enough memory space left to store the parameters for multiple cradles. I believe I will be shifting between EOS M3, EOS M, and a separate EOS M3 hemispherical fisheye cradles with the former in use 90% of the time.

    2) Dave's video explains that pan rotation and tilt can occur in 'bump' steps of 15 degrees or with 'joystick at perimeter' commands that speed past multiple steps. It is unclear to me whether the cradle can settle in positions that are between the 15 degree steps. I think I would find it desirable to do so.

    3) As Dave Mitchell notes the controller design includes a command for a HoVer channel and I think I see a screen indicator for landscape or portrait status. I wonder if it would be helpful to have an audible tone to indicate which state has been activated by the southeast HoVer toggle. As it stands now I frequently switch HoVer modes but rarely look at my transmitter while KAPping.

    4) Recent posts by both Daves suggest that the Spectrum RF modules are not compatible with Dave's controller design. I had hopes up that I might be able to use the module out of an old, spare 'park flyer' Spectrum DX6. It's RF module interface has but three wires: power, ground, and signal. I wonder what type of signal it transmits? Dave Mitchell's recent post regarding Spectrum RF compatibility has probably saved me a few hours of head scratching.

    Spektrum DX6 RF module

    The RF board in my old Spectrum DX6 transmitter.

    5) I am hoping that this is the correct radio for harvesting an RF module and receiver - Hobby King 2.4Ghz 6Ch Tx & Rx V2 (Mode 2). Am I right? Its the V2 part that has me guessing.

    Let me close by thanking Dave Wheeler again for this wonderful, and wonderfully generous, project. I look forward to great fun at the workbench.


    ps. Dave - please do show us your neat way of mounting a gear on a screw!
  • Cris,

    I haven't said much in this thread about future plans but many of the items you brought up are definitely on my roadmap. And, while engineering KAP controls is usually something I do in fits and starts without regard for deadlines, the upcoming KAPiCA trip is motivating me to complete some overdue work on this controller. So many of the things you brought up will probably be done this Spring.

    The ability to store parameters and switch between rigs is high on my list. It's awkward asking everyone to modify the sketch as necessary for their own rigs. And I was hoping to have a second KAP rig in a demonstrable state by May and would want to use a single controller for both rigs as you described. So the next version will need to support parameters to set servo positions and ranges, etc. These will be stored in non-volatile memory. Reloading sketches in the field is out of the question.

    The 15 degree per step constraint could be relaxed, I think. There were several reasons for that, most of which are moot now, for example the original design used a rotary encoder that worked in 15 degree "clicks". The code would need to change quite a bit since the assumption of 24 steps in a circle is deeply ingrained, but this would be a change for the better in my opinion.

    The HoVer control, as it stands right now, is activated by pushing the joystick to "Southeast", which activates this switch, then sliding the joystick up to "East" for horizontal or "South" for vertical. It's not a toggle but an absolute setting. Still, I don't think I could do it successfully without looking at the display. I imagine, Cris, you'll want to make a custom case for your unit. (The one I used is actually no longer stocked by Sparkfun.) In that case, it would be trivial to add a physical toggle switch to perform the HoVer function.

    [On the subject of joystick controls, in the field I've found it difficult to activate the various modes and switches available in the corners of the joystick range. When moving the joystick to NE, for example, it's too easy to hit N or E instead, then the controls go into tilt select or pan select modes instead. I think I'm going to change this so you need to press down on the joystick, then move to a corner to active the controls in the corners.]

    Finally, you brought up the Spektrum transmitter module. Dave Mitchell and I have been emailing each other about that just today! He's planning a project to repackage a Spektrum transmitter, pairing it with an Arduino. It doesn't use the PPM interface that my code is based on, but it can be operated via a serial port almost as easily. I wonder if we could put both PPM and Spectrum DSM2 support into my code base in a future version?

    So KAP Controller 2.0 is definitely in the works with most of the functionality you want. And what isn't provided, I think you can add yourself with a little customization.

    Dave Wheeler

  • Thanks for the brief Dave, sounds good. Quick question before we head out. Is the Hobby King radio I mention above the correct one to buy as an RF module organ donor?
  • Yes, that's the one. The V2 had me wondering, too, for a minute there. But I confirmed that mine was a V2 also.

    Do make sure you select the appropriate warehouse when you order it, though. Your link brought me to the International warehouse, which will happily ship you a unit all the way from China. Hobbyking has a US east and US west warehouse as well with much better shipping times.


  • edited February 2016

    thanks for the photos of your new rig - I particularly like your new leg support design - very ingenious. My own rig now attempts to mimic your earlier designs, with threaded inserts in the rig mating with screw threads projecting from the legs, but the new design seems much neater. I presume the legs are held together by elastic that runs through holes in the sides and out the top?

    One other detail puzzles me (it was present in earlier rigs of yours too) and that's the projecting lug on the aluminium hover camera support. In the assembled photo it has what appears to be a length of bent wire attached to it. Is this just to support cables running from rig to camera?

    Finally, as Dave W says, I hope to be working on Arduino support for the DSM r/f modules used in Spektrum transmitters. I have an cheap old E-Flite TX (see below) that is Spektrum compatible (it happily talks to my Spektrum AR6000 receiver). The little r/f board (an X10EMTX) is attached to the main board by just 3 wires - 3.3v, ground and the DSM serial signal.


  • edited February 2016
    Hi Dave Mitchell -

    I think the new leg detail will turn out fine. The legs for each side of the cradle are joined by elastic cord and fit onto a little leg bracket projecting from the cradle's side pieces. I think mounting the legs will be a little less fiddly than my previous rig's screw-in legs although those work fine as well.

    GentLED-shutter on EOS M

    Wire bracket holding the GentLED-Shutter IR LED in front of the Canon EOS M's IR remote receiver. The EOS M3 has the IR remote receiver on the other side of the camera.

    The little projecting lug / bent wire you asked about is indeed a means to place my GentLED-shutter in front of the EOS M3's IR remote receiver window. I did this with my earlier EOS M cradle and it worked out well. I will start a separate thread describing the EOS M3 cradle build to avoid cluttering up this transmitter thread.

    And speaking of this transmitter thread I am getting quite excited about starting my build of Dave's transmitter design and have ordered the items from Dave's materials list with three exceptions.

    I did not order the Bluetooth module as it does not seem to be playing an active role at this point. The clear plastic project case is NLA so I will probably mill a substitute out of hardwood with the goal of being quite compact. My current plan is to power the TX with two 18650 3.6V Li-ion batteries in series. I have been using these batteries in several flashlights (I have an LED flashlight problem) and have been happy with them. I think the nominal 7.2 VDC provided will be fine with the RF module and the Arduino Pro Micro serves as the voltage regulator for the other remaining components. Thus, it looks like I will not need the Polulu adjustable voltage regulator.
  • Cris,

    You are correct. The bluetooth is playing no role and the voltage regulator should be unnecessary.

    And if you're going to mill a custom case, I'd encourage you to think about the controls you want. My design was minimal with everything controlled through the joystick. But Al's had many discrete switches and knobs. I mentioned you might want a separate HoVer switch. Perhaps you also have your own preference for pan and tilt inputs. The joystick could still be used for switching modes, accessing menus, etc.

    Bottom line: it's pretty easy to modify the software to adopt new controls. And I'd love to see what you come up with.


  • I would second Dave's comments above.

    The most important switch for long term flexibility would be a binary coded decimal thumb wheel switch (BCD) like one of these:

    This would allow you to change between different modes or even completely different rigs while in the field.

    A few extra on/off switches would also be useful while the rig is airborne. In my case these include switching from potentiometer to joystick mode, rig video Tx power on/off via RC and a few others. A HoVer switch would be useful in your case.


  • I have a few observations to share regarding 3.3V vs 5V Arduinos.

    You all have probably noticed that there are Arduinos available that run at 3.3 volts instead of 5. The 3V units always run at 8MHz, though, instead of 16MHz for the higher voltage. My system was based on a 5V, 16MHz Arduino. If I had used a 3.3V, 8MHz Arduino, the voltage booster would have been unnecessary and the voltage divider resistors between the Arduino and transmitter could be omitted. But would the processor be fast enough?

    This morning, I finally tried it out. The longest single function in the main loop, the display refresh function, takes about 100ms on a 3.3V, 8MHz processor. This means that polling of the joystick button would be blocked for that period -- a quick button press could be missed. (On the 5V, 16MHz version, this is only 50ms, which I think is acceptable.)

    This problem could be addressed in software by using an interrupt routine to read the button.

    Also, at 8MHz, the PPM Generator code needs to change. That change is fairly trivial, though. I have a version of it working on a 3.3V Arduino now as part of a PAP transmitter I'm building.

    So to sum up, the code, as it exists today, won't work on a 3.3V, 8MHz Arduino. But the changes to support it are fairly minor. If anyone feels they need that, let me know. I might be able to take care of it quickly.

    Dave Wheeler

    P.S. Dave Mitchell asked me this morning if the Serial port would work at 125000 on a 3.3V Arduino, which prompted this experiment. And, yes, it does. :-)

  • There seems to be a bug in the Arduino code I recently updated on Github.

    This came to my attention this week. I noticed it first while working on my new PAP transmitter. But then Laurent Dupire reported the same issue. I thought I should mention it here in case anyone else has experienced it.

    The problem is that the PPM signal to the transmitter doesn't have enough pulses. In some cases only two channels are represented. Sometimes I see four. Other times it works fine.

    I'm working on tracking this down. And, of course, I'll post an update here when the code on Github is fixed.

  • Any video on cutting up the transmitter to get the trx module and ant out without damage and the servo mount procedure?

  • Almost. I just repeated that procedure with cameras rolling two weekends ago. I just need to edit the footage together and post it somewhere. I'll bump that up on my priority list. By Saturday I should have something.

  • The bug in the Arduino code, which affected the PPM generation, has been addressed now. The latest code on has been updated to reflect the change.

    Of course, if anyone sees this or any other bug in the future, please bring it to my attention.

    Dave Wheeler
  • jwlayton, I've been working on that video I promised. It should be simple: just edit together one long take from two cameras. But I know nothing about video editing and I'm about ready to throw the laptop across the room. It's gonna be another day or two.

  • no problem.
  • edited March 2016
    Here's that video showing how to remove the RF module from the R/C transmitter.

    (I never realized how often I used the word "unit." Weird.)

    [Edit: I replaced the low quality version with HD. Ah, much better.]
  • Good job Dave - very clear.
  • Yesterday Cris reported another bug: When I fixed the last bug, I accidentally uploaded the PPM generator configured for an 8MHz Arduino instead of 16MHz.

    So this morning I corrected that and there's another update on the Github site. The latest code can be found here, as usual:

  • Great job on the video. Thanks
  • Question, I have an 11.1 volt lipo battery that when fully charged reads 12.4 and the radio requires 12 volts, Does the transmitter module take the same 12 volts so i can use the lipo battery. The audrino has a voltage regulator if you use the raw input so it should work for that.
  • The RF module has a voltage regulator of it's own. I think you can feed it anything above 3.3 volts and it will work. I don't know what the maximum might be but, as you pointed out, it takes 12+V from 8 AA batteries when it's in the R/C transmitter.

    That voltage regulator, I believe, is just a simple LDO (low dropout) regulator, though. This means it wastes any extra power you supply above 3.3V.

    So, yes, you could power both the RF module and Arduino from an 11.1 volt Lipo battery. But it would be far more efficient to power it from 7.4V or something lower.


  • Bugs, bugs, bugs.

    Cris sent me an email this evening pointing out some problems with the shutter servo output in the latest incarnation of the code. Basically the shutter never fires. If you've tried downloading the code since Jan 13, this probably affects you.

    I should have a corrected version posted within a few days.

  • Hello everyone,
    If you have problems to convert your tensions, I can help you.
  • edited March 2016
    I have received the components for my iteration of Dave Wheeler's fine TX design. I felt vaguely guilty about tearing apart the Hobby King T6A V2 without it ever seeing normal use but I got over it quickly enough. Dave's instructions and diagrams are clear and the breadboard assembly went smoothly. After quick test runs of the display and thumbtack using 'sketches' from their vendors I plugged the components together, loaded Dave's software from GitHub and - voila - I am on my way.

    Arduino TX breadboard test

    The TX is connected to the receiver and all servos are turning in the right direction and in sync with the display.

    Dave has been very helpful as I sort my way through the software. As someone not particularly familiar with C++ this has been an interesting and entertaining puzzle like experience. As the software is becoming more intuitive I am turning my attention to assembling the components for actual use. This packaging project might take a while but promises to be fun as well.

    I am having a good time; come on in, the water is fine.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

In this Discussion