BushmanLA
Jul 21, 2009, 12:37 AM
Hi guys, I'm currently writing code for a PIC based PPM generator. Basically it will read 8 analog voltages and convert this into a 'standard' PPM frame that most RC radios will be able to read into their trainer port.
I hope to have the following features in the final design.
8 proportional channels
end point adjustment
trim
aircraft profiles
channel mixing
I'm posting this here because I'm not nearly as familiar with RC radio features as you guys are and I'm hoping to get some advice as to what kind of things would be useful etc.
The basic idea is that many stand alone radio modules can be purchased that accept a PPM signal. The PPM generator could be used instead of buying an expensive RC controller. It can also be used to turn a cheap 4 or 6 channel radio into an 8 channel radio. My main reason for building this is so that I can use my X45 joystick to control my FPV aircraft. I've been flying PC sims for so long I just don't enjoy the feel of a thumb stick.
Anyway, if something like this already exists, or if you have any ideas of features you think should be added. Let me know. I'll be posting my progress here so you can tell me what I'm doing wrong or stupid. I always value the opinions of people who actually know what they are doing :)
So here is the plan so far. I'm using a PIC 18F4525. The PPM frame is generated using the CCP module working in compare mode with timer3.
Timer3 is incrementing every .4us, when the value of timer3 = the value I give to the CCP module, an interrupt is generated, the output pin is toggled, and I calculate and assing a new value to put into the CCP module for the next rise/fall of the signal.
I figured doing it this was has two main benefits.
1. I can program the rest of the user interface etc without worrying about missing the PPM timing.
2. As long as I can calculate and enter the next CCP match value before the time for the toggle has actually passed, there will never be any jitter or signal distortion etc. Since the shortest time I'll ever have is about 300us and I'm executing an instruction every .1us, this is a trivial task.
The interrupt code has been written and is working great so far.
Now I'm working on the AD inputs and converting this into appropriate signal timing.
So a few questions for you guys.
Should I go ahead and make this 12 channels while I'm at it?
How important is exponential rates etc, and what is the most common method of applying it?
What kind of channel mixing options should I try and fit in?
I hope to have the following features in the final design.
8 proportional channels
end point adjustment
trim
aircraft profiles
channel mixing
I'm posting this here because I'm not nearly as familiar with RC radio features as you guys are and I'm hoping to get some advice as to what kind of things would be useful etc.
The basic idea is that many stand alone radio modules can be purchased that accept a PPM signal. The PPM generator could be used instead of buying an expensive RC controller. It can also be used to turn a cheap 4 or 6 channel radio into an 8 channel radio. My main reason for building this is so that I can use my X45 joystick to control my FPV aircraft. I've been flying PC sims for so long I just don't enjoy the feel of a thumb stick.
Anyway, if something like this already exists, or if you have any ideas of features you think should be added. Let me know. I'll be posting my progress here so you can tell me what I'm doing wrong or stupid. I always value the opinions of people who actually know what they are doing :)
So here is the plan so far. I'm using a PIC 18F4525. The PPM frame is generated using the CCP module working in compare mode with timer3.
Timer3 is incrementing every .4us, when the value of timer3 = the value I give to the CCP module, an interrupt is generated, the output pin is toggled, and I calculate and assing a new value to put into the CCP module for the next rise/fall of the signal.
I figured doing it this was has two main benefits.
1. I can program the rest of the user interface etc without worrying about missing the PPM timing.
2. As long as I can calculate and enter the next CCP match value before the time for the toggle has actually passed, there will never be any jitter or signal distortion etc. Since the shortest time I'll ever have is about 300us and I'm executing an instruction every .1us, this is a trivial task.
The interrupt code has been written and is working great so far.
Now I'm working on the AD inputs and converting this into appropriate signal timing.
So a few questions for you guys.
Should I go ahead and make this 12 channels while I'm at it?
How important is exponential rates etc, and what is the most common method of applying it?
What kind of channel mixing options should I try and fit in?