Jump to content

Paul Luby

Members
  • Posts

    211
  • Joined

  • Last visited

    Never

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Paul Luby's Achievements

0

Reputation

  1. Hi Phil No luck on the PCB printer, cost for a copper printer are just too great. I've made a PCB cutter/router instead. I'm still working on/developing it but it is getting there. Paul (AKA Veri-Gash) Edited By Paul Luby on 14/12/2015 19:14:24
  2. Hi Guys Been a while. Have you guys seen this Arduino. Its a cut down Mega 2560. 16 analogue channels, over 50 digital channels and about twice the size of a Nano. Paul (AKA Veri-Gash)
  3. Hi Phill Got me a small sonic bath. Just dump them in there for few days. I tend to use a heavy detergent mix. You can get them for £100 ish on e-bay. I've had mine 10 or so years. Paul (AKA Veri-Gash)
  4. Hi Nick Just caught your post. All the M4's and M6's I've converted have had damaged PCB's which is why I've got them cheap. So can't help with PPM location I'm afraid. Ragards Nano code upload, if you go to the Arduino website and download the Arduino IDE. All you do is write your code in the IDE, connect your Nano to your PC via USB and upload your code. Job done. There are some Arduino versions that need more specialised upload leads/kit and there are ways to upload code that enables you to have access to more memory on the Arduino but don't worry about that until you have to. Any questions please post and I'm sure someone will help. Paul (AKA Veri-Gash)
  5. Hi Guys Here's my latest conversion ready for posting back to the owners. The Sprengbrook was particularly crappy when I got it but has cleaned up nice. Enjoy Paul (AKA Veri-Gash) Edited By Paul Luby on 20/01/2015 22:37:18
  6. Hi Guys Here'a another code Christmas pressie. I'm modifying a Digifleet XP/FM for a guy and he'd like adjustable rates. Given the Arduino I like to use has a limited number of ADC's and the Digifleet uses pot trims all 8 ADC's are used just for the primary flight control axis and the associated trims. So what I've done is a start up routine that detects a zero on a digital input/output pin and if present allows you to set the aileron and elevator low rate using the throttle trim lever and elevator trim lever whilst monitoring the aileron and elevator (these trim levers are below the respective rate select switches on the Tx). When you remove the zero the code writes the low rate values to EEPROM Every time after that when you power up the Tx it loads the rates value from EEPROM. Code below. Its also got the stick/trim pot autocal routine. Cool or what. Enjoy. Paul (AKA Veri-Gash)   if (digitalRead(rateSet) == 0) //start of rate set routine { int ailRateVal = 0; int eleRateVal = 0; int eleTrimMin = (int(EEPROM.read(16))) + (int(EEPROM.read(17))*256); int eleTrimMax = (int(EEPROM.read(18))) + (int(EEPROM.read(19))*256); int throtTrimMin = (int(EEPROM.read(26))) + (int(EEPROM.read(27))*256); int throtTrimMax = (int(EEPROM.read(28))) + (int(EEPROM.read(29))*256); do { ailRateVal = map(analogRead(A1),eleTrimMax,eleTrimMin,0,pulseHigh); // read and set rate values eleRateVal = map(analogRead(A6),throtTrimMax,throtTrimMin,0,pulseHigh); for (int pulseNo = 0; pulseNo <= 4; pulseNo++ ){ digitalWrite(ppm, HIGH); // make ppm output high delayMicroseconds(initPulse); // initialisation pulse digitalWrite(ppm, LOW); // make ppm output low if ( pulseNo == 0 ) delayMicroseconds(basePulse); // control pulses if ( pulseNo == 1 ) delayMicroseconds(basePulse+eleRateVal); if ( pulseNo == 2 ) delayMicroseconds(basePulse); if ( pulseNo == 3 ) delayMicroseconds(basePulse+ailRateVal); if ( pulseNo == 4 ) delayMicroseconds(frameLength-((initPulse*5)+(basePulse*4)+(eleRateVal+ailRateVal))); } } while (digitalRead(rateSet) == 0); EEPROM.write(41,lowByte(ailRateVal)); EEPROM.write(42,highByte(ailRateVal)); EEPROM.write(43,lowByte(eleRateVal)); EEPROM.write(44,highByte(eleRateVal)); }   float ailRate = (int(EEPROM.read(41))) + (int(EEPROM.read(42))*256); float eleRate = (int(EEPROM.read(43))) + (int(EEPROM.read(44))*256); Edited By Paul Luby on 03/01/2015 20:53:23
  7. Hi Guys It's been a while but here's a late Christmas present, some may say its long winded but it is easy to follow. Its a stick/pot auto calibration routine using a double byte configuration. Its pretty easy to work out and I hope it helps. It should be placed in the setup routine and is activated by a digital INPUT having 0 on it (defined by "switchpotCalibrate" in this case). Enjoy. Paul (AKA Veri Gash) if (digitalRead(stickpotCalibrate) == 0) //start of stick calibration routine { int rudMin = analogRead(A0); int rudMax = analogRead(A0); int eleMin = analogRead(A1); int eleMax = analogRead(A1); int throtMin = analogRead(A2); int throtMax = analogRead(A2); int ailMin = analogRead(A5); int ailMax = analogRead(A5); int flpMin = analogRead(A4); int flpMax = analogRead(A4); int rudVal = 0; int eleVal = 0; int throtVal = 0; int ailVal = 0; int flpVal = 0; do { rudVal = analogRead(A0); // read and set stick min and max values eleVal = analogRead(A1); throtVal = analogRead(A2); ailVal = analogRead(A5); flpVal = analogRead(A4); if ((rudVal) < (rudMin)){ rudMin = rudVal; } if ((rudVal) > (rudMax)){ rudMax = rudVal; } if (eleVal < eleMin){ eleMin = eleVal; } if (eleVal > eleMax){ eleMax = eleVal; } if (throtVal < throtMin){ throtMin = throtVal; } if (throtVal > throtMax){ throtMax = throtVal; } if (ailVal < ailMin){ ailMin = ailVal; } if (ailVal > ailMax){ ailMax = ailVal; } if (flpVal < flpMin){ flpMin = flpVal; } if (flpVal > flpMax){ flpMax = flpVal; } } while (digitalRead(stickpotCalibrate) == 0); EEPROM.write(1,lowByte(rudMin)); //write stick values to eeprom EEPROM.write(2,highByte(rudMin)); EEPROM.write(5,lowByte(rudMax)); EEPROM.write(6,highByte(rudMax)); EEPROM.write(11,lowByte(eleMin)); EEPROM.write(12,highByte(eleMin)); EEPROM.write(15,lowByte(eleMax)); EEPROM.write(16,highByte(eleMax)); EEPROM.write(21,lowByte(throtMin)); EEPROM.write(22,highByte(throtMin)); EEPROM.write(25,lowByte(throtMax)); EEPROM.write(26,highByte(throtMax)); EEPROM.write(31,lowByte(ailMin)); EEPROM.write(32,highByte(ailMin)); EEPROM.write(35,lowByte(ailMax)); EEPROM.write(36,highByte(ailMax)); EEPROM.write(41,lowByte(flpMin)); EEPROM.write(42,highByte(flpMin)); EEPROM.write(45,lowByte(flpMax)); EEPROM.write(46,highByte(flpMax)); } } int rudMin = (int(EEPROM.read(1))) + (int(EEPROM.read(2))*256); //read stick values from eeprom on non-calibration start up int rudMax = (int(EEPROM.read(5))) + (int(EEPROM.read(6))*256); int eleMin = (int(EEPROM.read(11))) + (int(EEPROM.read(12))*256); int eleMax = (int(EEPROM.read(15))) + (int(EEPROM.read(16))*256); int throtMin = (int(EEPROM.read(21))) + (int(EEPROM.read(22))*256); int throtMax = (int(EEPROM.read(25))) + (int(EEPROM.read(26))*256); int ailMin = (int(EEPROM.read(31))) + (int(EEPROM.read(32))*256); int ailMax = (int(EEPROM.read(35))) + (int(EEPROM.read(36))*256); int flpMin = (int(EEPROM.read(41))) + (int(EEPROM.read(42))*256); int flpMax = (int(EEPROM.read(45))) + (int(EEPROM.read(46))*256);
  8. Hi Phil No thanks Phill, I'm in the process of convincing the wife to let me have a PCB printer, a little like a 3D printer but for PCB's. Don't want her to think I can get them elsewhere or she might not think I need one Paul (AKA Veri-Gash)
  9. Hi Guys Been a very busy couple of months, what with new job and two new Maine Coon kittens. Our second one came home the day before I started my new job and I've been turning my garden into Stalug 52. Reason is, well, check out the pictures below. We've never shown before and he did rather well at his and our first show. So I've been installing cat escape proof fencing and better CCTV. I think my wife has a new hobby, which means I'll do all the work and she'll collect the Rosettes. On the plus side I now have all the parts for my Vailly Typhoon. Down side is we have decorators coming to do the hall in two weeks, so if I get chance to do anything I'll be amazed. Paul (AKA Veri-Gash) Edited By Paul Luby on 01/11/2014 23:00:25
×
×
  • Create New...