- Posts: 1136
Extra inputs for Devo Tx's
- HappyHarry
- Offline
mwm wrote:
7e is just so nice to carry and comfortable light controller, many love it!! And deviation is fantastic!
But it's no smaller and far less capable than a 6S. Which makes me think that most people love it because it's cheap.
yep it's cheap , and when comparing to the 6S more importantly it's still available.
my only worry with the disappearance of the 7e and/or the standard mixer in future development is that with the lack of it people will instead of choosing a devo 10 will go for something like a 9xr pro with a multiprotocol board. which will be comparable in cost to a modded up 7e and less cost than a modded up devo 10 (or they may even a go for a FlySky/Hobbyking FS-T6/TGY-i6 which looks to be shaping up to be the opentx '7e'). because afais most use deviation due to the multiple protocols, and thanks to PB's multimodule work which was then taken on and modded by midelic's great work in the multiprotocol board it's not the only game in town anymore.
and i know you've said before loosing community doesn't really bother you but imo the community are the heart of projects like this. i just hope that most feel up to making an ultimate 7e like others have done and i'm planning to do
Please Log in or Create an account to join the conversation.
- victzh
- Offline
- Posts: 1386
Availability of 6s and visibility of color screen in daylight are also factors.
Nobody likes hardware limitations of Devo 7E and we praise PhracturedBlue for devising such a nice scheme. It's not developer's pet, we'd prefer it to have more ROM.
Please Log in or Create an account to join the conversation.
- mwm
- Topic Author
- Offline
HappyHarry wrote:
mwm wrote:
7e is just so nice to carry and comfortable light controller, many love it!! And deviation is fantastic!
But it's no smaller and far less capable than a 6S. Which makes me think that most people love it because it's cheap.
yep it's cheap , and when comparing to the 6S more importantly it's still available.
They're still available, but hard enough to find that people keep track of the shops: www.rcgroups.com/forums/showthread.php?t=2630954&highlight=devo
my only worry with the disappearance of the 7e and/or the standard mixer in future development is that with the lack of it people will instead of choosing a devo 10 will go for something like a 9xr pro with a multiprotocol board. which will be comparable in cost to a modded up 7e
I don't think the prices are comparable. Let's ignore the cost of the extra modules, since both solutions need that. The cost of a 7E is $50 to $60 SHIPPED. The cost of a TH9X is $80 or more from places with free shipping. You can get it for $60 (mode 1 only!?) or so from the HK china warehouse or $70 (either mode) from a US warehouse, but that doesn't include shipping. Shipping from the US warehouse (which usually gives me a better price than the China warehouse + shipping) is another $7. So it costs about 50% more than a 7E.
And it's not as good a transmitter. The 7E has better gimbals (even though they aren't as good as the 6S), haptic feedback and telemetry out of the box. The TH9X can be modded for that, and the DIY module provides telemetry, but it's spotty compared to deviation. And the damn thing is still memory limited!
Do not ask me questions via PM. Ask in the forums, where I'll answer if I can.
My remotely piloted vehicle ("drone") is a yacht.
Please Log in or Create an account to join the conversation.
- HappyHarry
- Offline
- Posts: 1136
mwm wrote: I don't think the prices are comparable. Let's ignore the cost of the extra modules, since both solutions need that. The cost of a 7E is $50 to $60 SHIPPED. The cost of a TH9X is $80 or more from places with free shipping. You can get it for $60 (mode 1 only!?) or so from the HK china warehouse or $70 (either mode) from a US warehouse, but that doesn't include shipping. Shipping from the US warehouse (which usually gives me a better price than the China warehouse + shipping) is another $7. So it costs about 50% more than a 7E.
And it's not as good a transmitter. The 7E has better gimbals (even though they aren't as good as the 6S), haptic feedback and telemetry out of the box. The TH9X can be modded for that, and the DIY module provides telemetry, but it's spotty compared to deviation. And the damn thing is still memory limited!
I was more comparing to the cost of a devo10 as that's the next entry point cost wise if the 7e is dropped, so comparing it to the 7e is moot really and the9xr pro is definitely less expensive than a d10, as for the gimbals I respectfully disagree, as I personally feel no difference between them, (in fact of my 3 'decent' tx's the only ones I do feel a difference with is my jr dsm9x).
but enough playing devils advocate, I've done very little for this project so the decision isn't mine to make. I'll just mod to an ult7e and compile my own binaries if needs be
Please Log in or Create an account to join the conversation.
- Richard96816
- Offline
- Posts: 208
mwm wrote:
They're [Devo 6s] still available, but hard enough to find that people keep track of the shops: www.rcgroups.com/forums/showthread.php?t=2630954&highlight=devo
Sounds like they've ceased production and are selling off remaining stock. Soon to be extinct.
Please Log in or Create an account to join the conversation.
- SirDomsen
- Offline
I'm recently trying to add switches to the Devo F4. I think trainer port should be the same as on Devo7e.
What I want to add:
- 2 3-way switches
- 3 2-way switches
All are connected to an Arduino Pro mini (5V, 328, 16MHz)
This is my Sketch:
// Devo 7e PPM input
// For use with Arduino Nano V3.0
// Based on sketch by Ian Johnston
// Analog pin assignments
/*
int AI_Pin_A1 = 2; // potentiometer #1 pin
int AI_Pin_A2 = 3; // potentiometer #2 pin
int AI_Raw_A1; // Analog In raw var - 0->1023....
int AI_Raw_A2;
int A1_uS = 750; // potentiometer #1 us
int A2_uS = 750; // potentiometer #2 us
*/
int sw1_uS = 750; // 3-way switch #1 us
int sw2_uS = 750; // 3-way switch #2 us
int sw3_uS = 750; // 2-way switch #1 us
int sw4_uS = 750; // 2-way switch #2 us
int sw5_uS = 750; // 2-way switch #3 us
int Fixed_uS = 300; // PPM frame fixed LOW phase
int pulseMin = 750; // pulse minimum width minus start in uS
int pulseMax = 1700; // pulse maximum width in uS
// Digital pin assignments
int outPinPPM = 10; // PPM out
int inPinD2 = 2; // 3-way switch #1 pin for position 1. Positions 1 and 3 combine for middle position.
int inPinD3 = 3; // 3-way switch #1 pin for position 3
int inPinD4 = 4; // 3-way switch #2 pin for position 1
int inPinD5 = 5; // 3-way switch #2 pin for position 3
int inPinD6 = 6; // 2-way switch #1 pin for on
int inPinD7 = 7; // 2-way switch #2 pin for on
int inPinD8 = 8; // 2-way switch #3 pin for on
ISR(TIMER1_COMPA_vect) {
ppmoutput(); // Jump to ppmoutput subroutine
}
void setup() {
pinMode(outPinPPM, OUTPUT); // sets the digital pin as output
pinMode(inPinD2, INPUT); // sets the digital pin as input
digitalWrite(inPinD2, HIGH); // turn on pull-up resistor
pinMode(inPinD3, INPUT);
digitalWrite(inPinD3, HIGH);
pinMode(inPinD4, INPUT);
digitalWrite(inPinD4, HIGH);
pinMode(inPinD5, INPUT);
digitalWrite(inPinD5, HIGH);
pinMode(inPinD6, INPUT);
digitalWrite(inPinD6, HIGH);
pinMode(inPinD7, INPUT);
digitalWrite(inPinD7, HIGH);
pinMode(inPinD8, INPUT);
digitalWrite(inPinD8, HIGH);
// Setup timer
TCCR1A = B00110001; // Compare register B used in mode '3'
TCCR1B = B00010010; // WGM13 and CS11 set to 1
TCCR1C = B00000000; // All set to 0
TIMSK1 = B00000010; // Interrupt on compare B
TIFR1 = B00000010; // Interrupt on compare B
OCR1A = 22000; // 22mS PPM output refresh
OCR1B = 1000;
}
void ppmoutput() { // PPM output sub routine
/*
// Channel 1 - Analog 1
digitalWrite(outPinPPM, LOW);
delayMicroseconds(Fixed_uS); // Hold
digitalWrite(outPinPPM, HIGH);
delayMicroseconds(A1_uS); // Hold for A1_uS microseconds
// Channel 2 - Analog 2
digitalWrite(outPinPPM, LOW);
delayMicroseconds(Fixed_uS); // Hold
digitalWrite(outPinPPM, HIGH);
delayMicroseconds(A2_uS); // Hold for A2_uS microseconds
*/
// Channel 3 - 3-way switch #1
digitalWrite(outPinPPM, LOW);
delayMicroseconds(Fixed_uS); // Hold
digitalWrite(outPinPPM, HIGH);
delayMicroseconds(sw1_uS); // Hold for sw1_uS microseconds
// Channel 4 - 3-way switch #2
digitalWrite(outPinPPM, LOW);
delayMicroseconds(Fixed_uS); // Hold
digitalWrite(outPinPPM, HIGH);
delayMicroseconds(sw2_uS); // Hold for sw2_uS microseconds
// Channel 5 - 2-way switch #1
digitalWrite(outPinPPM, LOW);
delayMicroseconds(Fixed_uS); // Hold
digitalWrite(outPinPPM, HIGH);
delayMicroseconds(sw3_uS); // Hold for sw3_uS microseconds
// Channel 6 - 2-way switch #2
digitalWrite(outPinPPM, LOW);
delayMicroseconds(Fixed_uS); // Hold
digitalWrite(outPinPPM, HIGH);
delayMicroseconds(sw4_uS); // Hold for sw4_uS microseconds
// Channel 7 - 2-way switch #3
digitalWrite(outPinPPM, LOW);
delayMicroseconds(Fixed_uS); // Hold
digitalWrite(outPinPPM, HIGH);
delayMicroseconds(sw5_uS); // Hold for sw5_uS microseconds
// Synchro pulse
digitalWrite(outPinPPM, LOW);
delayMicroseconds(Fixed_uS); // Hold
digitalWrite(outPinPPM, HIGH); // Start Synchro pulse
}
void loop() { // Main loop
/* Read analog pins
AI_Raw_A1 = analogRead(AI_Pin_A1);
AI_Raw_A2 = analogRead(AI_Pin_A2);
// Map analog inputs to PPM rates for each of the channels
A1_uS = AI_Raw_A1 + pulseMin;
A2_uS = AI_Raw_A2 + pulseMin;
// Potentiometer limits
if (A1_uS <= 750) A1_uS = 750; // Min
if (A1_uS >= 1625) A1_uS = 1625; // Max
if (A2_uS <= 750) A2_uS = 750;
if (A2_uS >= 1625) A2_uS = 1625;
*/
// 3-way switch #1
if (digitalRead(inPinD2) == 0)
{
sw1_uS = 750;
}
if ((digitalRead(inPinD2) == 1) && (digitalRead(inPinD3) == 1))
{
sw1_uS = 1190; // Center us, may need to adjust this
}
if (digitalRead(inPinD3) == 0) {
sw1_uS = 1625;
}
// 3-way switch #2
if (digitalRead(inPinD4) == 0)
{
sw2_uS = 750;
}
if ((digitalRead(inPinD4) == 1) && (digitalRead(inPinD5) == 1))
{
sw2_uS = 1190; // Center us, may need to adjust this
}
if (digitalRead(inPinD5) == 0)
{
sw2_uS = 1625;
}
// 2-way switch #1
if (digitalRead(inPinD6) == 0)
{ sw3_uS = 1625;
}
else
{ sw3_uS = 750;
}
// 2-way switch #2
if (digitalRead(inPinD7) == 0)
{ sw4_uS = 1625;
}
else
{ sw4_uS = 750;
}
// 2-way switch #3
if (digitalRead(inPinD8) == 0)
{ sw5_uS = 1625;
}
else
{ sw5_uS = 750;
}
}
I wired like this:
3-way switch #1: Pin1 D2
Pin2 GND
Pin3 D3
3 way switch #2: Pin1 D4
Pin2 GND
Pin3 D5
2 way switch #1 Pin 2 GND
Pin3 D6
2 way switch #2 Pin 2 GND
Pin3 D7
2 way switch #3 Pin 2 GND
Pin3 D8
PPM D10 --> Black wire on Trainer port (named as "Game-TX" on the board
When i try to get any input nothing happens
Sadly I have no scope, can't even see if something is coming out the Arduino
Could anyone have a look at my sketch and verify if it's OK?
Is the black cable at the Trainer port surely the right one? Its name confuses me...
Thanks in Advance!
Edit: Problem solved, my bad! Did not setup the TX properly
Please Log in or Create an account to join the conversation.
- SirDomsen
- Offline
Using the sketch from 1 post above, everything seems to work fine.
But what I'm wondering about: In the sketch, minPPM is 750uS, middle 1190 and max 1625. In the Devo PPM menu you can select channel middle, it is preselected to 1500. My switches work as they should, but WHY? Shouldn't the points be far too low? Are there some differences between the PPM timing in Arduino and in DEVIATION?
Would be nice if someone could explain that to me.
Please Log in or Create an account to join the conversation.
- Deal57
- Offline
- Posts: 857
Deviation Devo7e 3way switch mod, A7105, NRF24L01
Devo6s 2x2 switch mod, trim mod, haptic, multimodule, A7105, NRF24L01, CC2500
Devo12e 4-in-1 with voice mod -- it speaks!!
Please Log in or Create an account to join the conversation.
- Epitaph
- Offline
- Posts: 291
SirDomsen wrote: Hi,
I'm recently trying to add switches to the Devo F4. I think trainer port should be the same as on Devo7e.
What I want to add:
- 2 3-way switches
- 3 2-way switches
All are connected to an Arduino Pro mini (5V, 328, 16MHz)
This is my Sketch:// Devo 7e PPM input // For use with Arduino Nano V3.0 // Based on sketch by Ian Johnston // Analog pin assignments /* int AI_Pin_A1 = 2; // potentiometer #1 pin int AI_Pin_A2 = 3; // potentiometer #2 pin int AI_Raw_A1; // Analog In raw var - 0->1023.... int AI_Raw_A2; int A1_uS = 750; // potentiometer #1 us int A2_uS = 750; // potentiometer #2 us */ int sw1_uS = 750; // 3-way switch #1 us int sw2_uS = 750; // 3-way switch #2 us int sw3_uS = 750; // 2-way switch #1 us int sw4_uS = 750; // 2-way switch #2 us int sw5_uS = 750; // 2-way switch #3 us int Fixed_uS = 300; // PPM frame fixed LOW phase int pulseMin = 750; // pulse minimum width minus start in uS int pulseMax = 1700; // pulse maximum width in uS // Digital pin assignments int outPinPPM = 10; // PPM out int inPinD2 = 2; // 3-way switch #1 pin for position 1. Positions 1 and 3 combine for middle position. int inPinD3 = 3; // 3-way switch #1 pin for position 3 int inPinD4 = 4; // 3-way switch #2 pin for position 1 int inPinD5 = 5; // 3-way switch #2 pin for position 3 int inPinD6 = 6; // 2-way switch #1 pin for on int inPinD7 = 7; // 2-way switch #2 pin for on int inPinD8 = 8; // 2-way switch #3 pin for on ISR(TIMER1_COMPA_vect) { ppmoutput(); // Jump to ppmoutput subroutine } void setup() { pinMode(outPinPPM, OUTPUT); // sets the digital pin as output pinMode(inPinD2, INPUT); // sets the digital pin as input digitalWrite(inPinD2, HIGH); // turn on pull-up resistor pinMode(inPinD3, INPUT); digitalWrite(inPinD3, HIGH); pinMode(inPinD4, INPUT); digitalWrite(inPinD4, HIGH); pinMode(inPinD5, INPUT); digitalWrite(inPinD5, HIGH); pinMode(inPinD6, INPUT); digitalWrite(inPinD6, HIGH); pinMode(inPinD7, INPUT); digitalWrite(inPinD7, HIGH); pinMode(inPinD8, INPUT); digitalWrite(inPinD8, HIGH); // Setup timer TCCR1A = B00110001; // Compare register B used in mode '3' TCCR1B = B00010010; // WGM13 and CS11 set to 1 TCCR1C = B00000000; // All set to 0 TIMSK1 = B00000010; // Interrupt on compare B TIFR1 = B00000010; // Interrupt on compare B OCR1A = 22000; // 22mS PPM output refresh OCR1B = 1000; } void ppmoutput() { // PPM output sub routine /* // Channel 1 - Analog 1 digitalWrite(outPinPPM, LOW); delayMicroseconds(Fixed_uS); // Hold digitalWrite(outPinPPM, HIGH); delayMicroseconds(A1_uS); // Hold for A1_uS microseconds // Channel 2 - Analog 2 digitalWrite(outPinPPM, LOW); delayMicroseconds(Fixed_uS); // Hold digitalWrite(outPinPPM, HIGH); delayMicroseconds(A2_uS); // Hold for A2_uS microseconds */ // Channel 3 - 3-way switch #1 digitalWrite(outPinPPM, LOW); delayMicroseconds(Fixed_uS); // Hold digitalWrite(outPinPPM, HIGH); delayMicroseconds(sw1_uS); // Hold for sw1_uS microseconds // Channel 4 - 3-way switch #2 digitalWrite(outPinPPM, LOW); delayMicroseconds(Fixed_uS); // Hold digitalWrite(outPinPPM, HIGH); delayMicroseconds(sw2_uS); // Hold for sw2_uS microseconds // Channel 5 - 2-way switch #1 digitalWrite(outPinPPM, LOW); delayMicroseconds(Fixed_uS); // Hold digitalWrite(outPinPPM, HIGH); delayMicroseconds(sw3_uS); // Hold for sw3_uS microseconds // Channel 6 - 2-way switch #2 digitalWrite(outPinPPM, LOW); delayMicroseconds(Fixed_uS); // Hold digitalWrite(outPinPPM, HIGH); delayMicroseconds(sw4_uS); // Hold for sw4_uS microseconds // Channel 7 - 2-way switch #3 digitalWrite(outPinPPM, LOW); delayMicroseconds(Fixed_uS); // Hold digitalWrite(outPinPPM, HIGH); delayMicroseconds(sw5_uS); // Hold for sw5_uS microseconds // Synchro pulse digitalWrite(outPinPPM, LOW); delayMicroseconds(Fixed_uS); // Hold digitalWrite(outPinPPM, HIGH); // Start Synchro pulse } void loop() { // Main loop /* Read analog pins AI_Raw_A1 = analogRead(AI_Pin_A1); AI_Raw_A2 = analogRead(AI_Pin_A2); // Map analog inputs to PPM rates for each of the channels A1_uS = AI_Raw_A1 + pulseMin; A2_uS = AI_Raw_A2 + pulseMin; // Potentiometer limits if (A1_uS <= 750) A1_uS = 750; // Min if (A1_uS >= 1625) A1_uS = 1625; // Max if (A2_uS <= 750) A2_uS = 750; if (A2_uS >= 1625) A2_uS = 1625; */ // 3-way switch #1 if (digitalRead(inPinD2) == 0) { sw1_uS = 750; } if ((digitalRead(inPinD2) == 1) && (digitalRead(inPinD3) == 1)) { sw1_uS = 1190; // Center us, may need to adjust this } if (digitalRead(inPinD3) == 0) { sw1_uS = 1625; } // 3-way switch #2 if (digitalRead(inPinD4) == 0) { sw2_uS = 750; } if ((digitalRead(inPinD4) == 1) && (digitalRead(inPinD5) == 1)) { sw2_uS = 1190; // Center us, may need to adjust this } if (digitalRead(inPinD5) == 0) { sw2_uS = 1625; } // 2-way switch #1 if (digitalRead(inPinD6) == 0) { sw3_uS = 1625; } else { sw3_uS = 750; } // 2-way switch #2 if (digitalRead(inPinD7) == 0) { sw4_uS = 1625; } else { sw4_uS = 750; } // 2-way switch #3 if (digitalRead(inPinD8) == 0) { sw5_uS = 1625; } else { sw5_uS = 750; } }
I wired like this:
3-way switch #1: Pin1 D2
Pin2 GND
Pin3 D3
3 way switch #2: Pin1 D4
Pin2 GND
Pin3 D5
2 way switch #1 Pin 2 GND
Pin3 D6
2 way switch #2 Pin 2 GND
Pin3 D7
2 way switch #3 Pin 2 GND
Pin3 D8
PPM D10 --> Black wire on Trainer port (named as "Game-TX" on the board
When i try to get any input nothing happens
Sadly I have no scope, can't even see if something is coming out the Arduino
Could anyone have a look at my sketch and verify if it's OK?
Is the black cable at the Trainer port surely the right one? Its name confuses me...
Thanks in Advance!
Edit: Problem solved, my bad! Did not setup the TX properly
Did you leave everything on this sketch for it to work with the 2 potentiometers too?? I see they are specified in A1 and A2, but still learning and not sure if you removed anything lower down pertaining to them, and you don't mention them in the actual post you wrote.
Please Log in or Create an account to join the conversation.
- SirDomsen
- Offline
Please Log in or Create an account to join the conversation.
- Epitaph
- Offline
- Posts: 291
SirDomsen wrote: I commented it out but it*s still there
OK so I just need to figure out how you comment something out so I can comment it back in hehehehe
Please Log in or Create an account to join the conversation.
- SirDomsen
- Offline
Please Log in or Create an account to join the conversation.
- Epitaph
- Offline
- Posts: 291
You learn something new every day!! coding is no longer greyed out in the Arduino program!!
Please Log in or Create an account to join the conversation.
- TheSFReader
- Offline
- Posts: 64
Please Log in or Create an account to join the conversation.
- Epitaph
- Offline
- Posts: 291
In case anyone else wants to see which one it is
Please Log in or Create an account to join the conversation.
- Cereal_Killer
- Offline
TheSFReader wrote: I would like to add additional inputs to my Devo 7e (at least a temporary button to serve as a "dead man switch" for acro/level mode), and have the arduino and buttons to mae it, but wonder how best to connect it. How did you do it ? Is there a best way to connect to the ppm entry ? a male jack ? solder directly inside ?
No need to add the arduino and extra parts for what you want. Just setup a virtual channel with a trim button and mix that into your flight mode channel. I just did this yesterday and it works perfect.
After setting it up with the trim switch and virtual channel and getting it working I've added a momentary button on the right shoulder that is electrically the same switch as the trimmer I setup the virtual channel with. That allows me easier access to hit that button in an emergency.
Taranis X9E | DEVO 10 | Devo U7E | Taranis Q7
What I do in real life: rivergoequestrian.com/
Please Log in or Create an account to join the conversation.
- TheSFReader
- Offline
- Posts: 64
Please Log in or Create an account to join the conversation.
- yoodog
- Offline
- Posts: 15
Please Log in or Create an account to join the conversation.
- Deal57
- Offline
- Posts: 857
Deviation Devo7e 3way switch mod, A7105, NRF24L01
Devo6s 2x2 switch mod, trim mod, haptic, multimodule, A7105, NRF24L01, CC2500
Devo12e 4-in-1 with voice mod -- it speaks!!
Please Log in or Create an account to join the conversation.
- karl.h
- Offline
- Posts: 7
Instead of a pot you could use a rotary encoder that, via a small microcontroller, pulsed the extra trims available. Then just just use a mix to get the desired output. You wont be able to see the position of the "pot" but you could display that on the screen instead. You could of course just use the trim buttons but this might provide a better feel, especially when you want more than just a couple of clicks.
Please Log in or Create an account to join the conversation.
- Home
- Forum
- Development
- Development
- Extra inputs for Devo Tx's