The forums are retiring and are now closed for new topics and comments. The existing content will remain online and accessible through 2020 to provide everyone the opportunity to save any relevant information. In the spring of 2021, these Community forums will be taken offline.

Search for shifting forks in Topics


1994 toyota 4x4 5speed v6 how do i get to the shifting forks.

1994 toyota 4x4 5speed v6  how do i get to the shifting forks. some times i only have 2nd and sometimes i only have 3rd 4th 5th and reverse and some times it gets stuck between gears. im sure i have to pull the transmission apart  just want  to make sure

Question by vanrodd    |  last reply



: Arduino + Adafruit wave sheild + IR + Keypad sound board

Hi , was wondering if you could point me in the right direction I'm very new to Arduino I built last year a simple board with adafruit wave shield and added a simple 12 digit key pad to play 12 sounds + power up I have got the codes for the KEYES IR receiver so know the IR is correctly connected and library loaded im trying to integrate the IR code so can change the sounds by IR remote ideally with option of the buttons (if have to loose the buttons and just use remote that's fine) have copied the code below for how it works now just buttons   I found some code for Cylon Pumpkin that works great with just the remote but would also like to integrate the 12 digit keypad Thank you in advance for any help or pointers you can suggest Richard CODE FOR 12 DIGIT BUTTON PRESS /* ADAVOICE is an Arduino-based voice pitch changer plus WAV playback. Fun for Halloween costumes, comic convention getups and other shenanigans! Hardware requirements: - Arduino Uno, Duemilanove or Diecimila (not Mega or Leonardo compatible). - Adafruit Wave Shield - Speaker attached to Wave Shield output - Battery for portable use If using the voice pitch changer, you will also need: - Adafruit Microphone Breakout - 10K potentiometer for setting pitch (or hardcode in sketch) If using the WAV playback, you will also need: - SD card - Keypad, buttons or other sensor(s) for triggering sounds Software requirements: - WaveHC library for Arduino - Demo WAV files on FAT-formatted SD card This example sketch uses a 3x4 keypad for triggering sounds...but with some changes could be adapted to use several discrete buttons, Hall effect sensors, force-sensing resistors (FSRs), I2C keypads, etc. (or if you just want the voice effect, no buttons at all). Connections: - 3.3V to mic amp+, 1 leg of potentiometer and Arduino AREF pin - GND to mic amp-, opposite leg of potentiometer - Analog pin 0 to mic amp output - Analog pin 1 to center tap of potentiometer - Wave Shield output to speaker or amplifier - Matrix is wired to pins A2, A3, A4, A5 (rows) and 6, 7, 8 (columns) - Wave shield is assumed wired as in product tutorial Potentiometer sets playback pitch. Pitch adjustment does NOT work in realtime -- audio sampling requires 100% of the ADC. Pitch setting is read at startup (or reset) and after a WAV finishes playing. POINT SPEAKER AWAY FROM MIC to avoid feedback. Written by Adafruit industries, with portions adapted from the 'PiSpeakHC' sketch included with WaveHC library. */ #include #include SdReader card; // This object holds the information for the card FatVolume vol; // This holds the information for the partition on the card FatReader root; // This holds the information for the volumes root directory FatReader file; // This object represent the WAV file for a pi digit or period WaveHC wave; // This is the only wave (audio) object, -- we only play one at a time #define error(msg) error_P(PSTR(msg)) // Macro allows error messages in flash memory #define ADC_CHANNEL 0 // Microphone on Analog pin 0 // Wave shield DAC: digital pins 2, 3, 4, 5 #define DAC_CS_PORT PORTD #define DAC_CS PORTD2 #define DAC_CLK_PORT PORTD #define DAC_CLK PORTD3 #define DAC_DI_PORT PORTD #define DAC_DI PORTD4 #define DAC_LATCH_PORT PORTD #define DAC_LATCH PORTD5 uint16_t in = 0, out = 0, xf = 0, nSamples; // Audio sample counters uint8_t adc_save; // Default ADC mode // WaveHC didn't declare it's working buffers private or static, // so we can be sneaky and borrow the same RAM for audio sampling! extern uint8_t buffer1[PLAYBUFFLEN], // Audio sample LSB buffer2[PLAYBUFFLEN]; // Audio sample MSB #define XFADE 16 // Number of samples for cross-fade #define MAX_SAMPLES (PLAYBUFFLEN - XFADE) // Remaining available audio samples // Keypad information: uint8_t rows[] = { A2, A3, A4, A5 }, // Keypad rows connect to these pins cols[] = { 6, 7, 8, 9 }, // Keypad columns connect to these pins r = 0, // Current row being examined prev = 255, // Previous key reading (or 255 if none) count = 0; // Counter for button debouncing #define DEBOUNCE 10 // Number of iterations before button 'takes' // Keypad/WAV information. Number of elements here should match the // number of keypad rows times the number of columns, plus one: const char *sound[] = { "Crashing" , "Damaged", "InFlight" , "PowerUp" , // Row 1 = Darth Vader sounds "Brkdown3" , "Brkdown2" , "Brkdown" , "PowerUp" , // Row 2 = Godzilla sounds "Landing", "drain" , "Shutdown" , "PowerUp" , // Row 3 = Dug the dog sounds "Silent", "TakeOff", "Vortex" , "PowerUp" , // Row 4 = Cartoon/SFX sound "PowerUp" }; // Extra item = boot sound //////////////////////////////////// SETUP void setup() { uint8_t i; Serial.begin(9600); // The WaveHC library normally initializes the DAC pins...but only after // an SD card is detected and a valid file is passed. Need to init the // pins manually here so that voice FX works even without a card. pinMode(2, OUTPUT); // Chip select pinMode(3, OUTPUT); // Serial clock pinMode(4, OUTPUT); // Serial data pinMode(5, OUTPUT); // Latch digitalWrite(2, HIGH); // Set chip select high // Init SD library, show root directory. Note that errors are displayed // but NOT regarded as fatal -- the program will continue with voice FX! if(!card.init()) SerialPrint_P("Card init. failed!"); else if(!vol.init(card)) SerialPrint_P("No partition!"); else if(!root.openRoot(vol)) SerialPrint_P("Couldn't open dir"); else { PgmPrintln("Files found:"); root.ls(); // Play startup sound (last file in array). playfile(sizeof(sound) / sizeof(sound[0]) - 1); } // Optional, but may make sampling and playback a little smoother: // Disable Timer0 interrupt. This means delay(), millis() etc. won't // work. Comment this out if you really, really need those functions. TIMSK0 = 0; // Set up Analog-to-Digital converter: analogReference(EXTERNAL); // 3.3V to AREF adc_save = ADCSRA; // Save ADC setting for restore later // Set keypad rows to outputs, set to HIGH logic level: for(i=0; i pinMode(rows[i], OUTPUT); digitalWrite(rows[i], HIGH); } // Set keypad columns to inputs, enable pull-up resistors: for(i=0; i pinMode(cols[i], INPUT); digitalWrite(cols[i], HIGH); } while(wave.isplaying); // Wait for startup sound to finish... startPitchShift(); // and start the pitch-shift mode by default. } //////////////////////////////////// LOOP // As written here, the loop function scans a keypad to triggers sounds // (stopping and restarting the voice effect as needed). If all you need // is a couple of buttons, it may be easier to tear this out and start // over with some simple digitalRead() calls. void loop() { uint8_t c, button; // Set current row to LOW logic state... digitalWrite(rows[r], LOW); // ...then examine column buttons for a match... for(c=0; c if(digitalRead(cols[c]) == LOW) { // First match. button = r * sizeof(cols) + c; // Get button index. if(button == prev) { // Same button as before? if(++count >= DEBOUNCE) { // Yes. Held beyond debounce threshold? if(wave.isplaying) wave.stop(); // Stop current WAV (if any) else stopPitchShift(); // or stop voice effect playfile(button); // and play new sound. while(digitalRead(cols[c]) == LOW); // Wait for button release. prev = 255; // Reset debounce values. count = 0; } } else { // Not same button as prior pass. prev = button; // Record new button and count = 0; // restart debounce counter. } } } // Restore current row to HIGH logic state and advance row counter... digitalWrite(rows[r], HIGH); if(++r >= sizeof(rows)) { // If last row scanned... r = 0; // Reset row counter // If no new sounds have been triggered at this point, and if the // pitch-shifter is not running, re-start it... if(!wave.isplaying && !(TIMSK2 & _BV(TOIE2))) startPitchShift(); } } //////////////////////////////////// HELPERS // Open and start playing a WAV file void playfile(int idx) { char filename[13]; (void)sprintf(filename,"%s.wav", sound[idx]); Serial.print("File: "); Serial.println(filename); if(!file.open(root, filename)) { PgmPrint("Couldn't open file "); Serial.print(filename); return; } if(!wave.create(file)) { PgmPrintln("Not a valid WAV"); return; } wave.play(); } //////////////////////////////////// PITCH-SHIFT CODE void startPitchShift() { // Read analog pitch setting before starting audio sampling: int pitch = analogRead(1); Serial.print("Pitch: "); Serial.println(pitch); // Right now the sketch just uses a fixed sound buffer length of // 128 samples. It may be the case that the buffer length should // vary with pitch for better results...further experimentation // is required here. nSamples = 128; //nSamples = F_CPU / 3200 / OCR2A; // ??? //if(nSamples > MAX_SAMPLES) nSamples = MAX_SAMPLES; //else if(nSamples < (XFADE * 2)) nSamples = XFADE * 2; memset(buffer1, 0, nSamples + XFADE); // Clear sample buffers memset(buffer2, 2, nSamples + XFADE); // (set all samples to 512) // WaveHC library already defines a Timer1 interrupt handler. Since we // want to use the stock library and not require a special fork, Timer2 // is used for a sample-playing interrupt here. As it's only an 8-bit // timer, a sizeable prescaler is used (32:1) to generate intervals // spanning the desired range (~4.8 KHz to ~19 KHz, or +/- 1 octave // from the sampling frequency). This does limit the available number // of speed 'steps' in between (about 79 total), but seems enough. TCCR2A = _BV(WGM21) | _BV(WGM20); // Mode 7 (fast PWM), OC2 disconnected TCCR2B = _BV(WGM22) | _BV(CS21) | _BV(CS20); // 32:1 prescale OCR2A = map(pitch, 0, 1023, F_CPU / 32 / (9615 / 2), // Lowest pitch = -1 octave F_CPU / 32 / (9615 * 2)); // Highest pitch = +1 octave // Start up ADC in free-run mode for audio sampling: DIDR0 |= _BV(ADC0D); // Disable digital input buffer on ADC0 ADMUX = ADC_CHANNEL; // Channel sel, right-adj, AREF to 3.3V regulator ADCSRB = 0; // Free-run mode ADCSRA = _BV(ADEN) | // Enable ADC _BV(ADSC) | // Start conversions _BV(ADATE) | // Auto-trigger enable _BV(ADIE) | // Interrupt enable _BV(ADPS2) | // 128:1 prescale... _BV(ADPS1) | // ...yields 125 KHz ADC clock... _BV(ADPS0); // ...13 cycles/conversion = ~9615 Hz TIMSK2 |= _BV(TOIE2); // Enable Timer2 overflow interrupt sei(); // Enable interrupts } void stopPitchShift() { ADCSRA = adc_save; // Disable ADC interrupt and allow normal use TIMSK2 = 0; // Disable Timer2 Interrupt } ISR(ADC_vect, ISR_BLOCK) { // ADC conversion complete // Save old sample from 'in' position to xfade buffer: buffer1[nSamples + xf] = buffer1[in]; buffer2[nSamples + xf] = buffer2[in]; if(++xf >= XFADE) xf = 0; // Store new value in sample buffers: buffer1[in] = ADCL; // MUST read ADCL first! buffer2[in] = ADCH; if(++in >= nSamples) in = 0; } ISR(TIMER2_OVF_vect) { // Playback interrupt uint16_t s; uint8_t w, inv, hi, lo, bit; int o2, i2, pos; // Cross fade around circular buffer 'seam'. if((o2 = (int)out) == (i2 = (int)in)) { // Sample positions coincide. Use cross-fade buffer data directly. pos = nSamples + xf; hi = (buffer2[pos] << 2) | (buffer1[pos] >> 6); // Expand 10-bit data lo = (buffer1[pos] << 2) | buffer2[pos]; // to 12 bits } if((o2 < i2) && (o2 > (i2 - XFADE))) { // Output sample is close to end of input samples. Cross-fade to // avoid click. The shift operations here assume that XFADE is 16; // will need adjustment if that changes. w = in - out; // Weight of sample (1-n) inv = XFADE - w; // Weight of xfade pos = nSamples + ((inv + xf) % XFADE); s = ((buffer2[out] << 8) | buffer1[out]) * w + ((buffer2[pos] << 8) | buffer1[pos]) * inv; hi = s >> 10; // Shift 14 bit result lo = s >> 2; // down to 12 bits } else if (o2 > (i2 + nSamples - XFADE)) { // More cross-fade condition w = in + nSamples - out; inv = XFADE - w; pos = nSamples + ((inv + xf) % XFADE); s = ((buffer2[out] << 8) | buffer1[out]) * w + ((buffer2[pos] << 8) | buffer1[pos]) * inv; hi = s >> 10; // Shift 14 bit result lo = s >> 2; // down to 12 bits } else { // Input and output counters don't coincide -- just use sample directly. hi = (buffer2[out] << 2) | (buffer1[out] >> 6); // Expand 10-bit data lo = (buffer1[out] << 2) | buffer2[out]; // to 12 bits } // Might be possible to tweak 'hi' and 'lo' at this point to achieve // different voice modulations -- robot effect, etc.? DAC_CS_PORT &= ~_BV(DAC_CS); // Select DAC // Clock out 4 bits DAC config (not in loop because it's constant) DAC_DI_PORT &= ~_BV(DAC_DI); // 0 = Select DAC A, unbuffered DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_DI_PORT |= _BV(DAC_DI); // 1X gain, enable = 1 DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); for(bit=0x08; bit; bit>>=1) { // Clock out first 4 bits of data if(hi & bit) DAC_DI_PORT |= _BV(DAC_DI); else DAC_DI_PORT &= ~_BV(DAC_DI); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); } for(bit=0x80; bit; bit>>=1) { // Clock out last 8 bits of data if(lo & bit) DAC_DI_PORT |= _BV(DAC_DI); else DAC_DI_PORT &= ~_BV(DAC_DI); DAC_CLK_PORT |= _BV(DAC_CLK); DAC_CLK_PORT &= ~_BV(DAC_CLK); } DAC_CS_PORT |= _BV(DAC_CS); // Unselect DAC if(++out >= nSamples) out = 0; } CODE I FOUND FOR IR  ClyonPumpkin That I want to integrate in above   /* * Text-to-speech example to speak the first n digits of pi. * The number is stored in flash, each digit is spoken one at a time. */ #include #include #include SdReader card;    // This object holds the information for the card FatVolume vol;    // This holds the information for the partition on the card FatReader root;   // This holds the information for the volumes root directory FatReader file;   // This object represent the WAV file for a pi digit or period WaveHC wave;      // This is the only wave (audio) object, since we will only play one at a time char eyesound[13]="eye2.wav"; int mute = 0; /* * Define macro to put error messages in flash memory */ #define error(msg) error_P(PSTR(msg)) // IR Remote code int RECV_PIN = 9;  // pin 11 used by SD card interface so select pin 9 for IR IRrecv irrecv(RECV_PIN); decode_results results; long lasttime=0, lastcode=0, timediff=0; //////////////////////////////////// SETUP void setup() {   // set up Serial library at 9600 bps   Serial.begin(9600);               if (!card.init()) {     error("Card init. failed!");   }   if (!vol.init(card)) {     error("No partition!");   }   if (!root.openRoot(vol)) {     error("Couldn't open dir");   }   irrecv.enableIRIn(); // Start the IR receiver } /////////////////////////////////// LOOP void loop() {   if(mute == 0) playcomplete(eyesound);   // check for keypress happened   if (irrecv.decode(&results;)) {      Serial.println(results.value, HEX);      switch (results.value) {        case 0x83228B74:    // 1          playcomplete("command.wav");          break;        case 0x83228F70:    // 2          playcomplete("entertan.wav");          break;        case 0x8322906F:    // 3          playcomplete("extermin.wav");          break;        case 0x83228A75:    // 4          playcomplete("leader.wav");          break;        case 0x8322847B:    // 5          playcomplete("survivor.wav");          break;         case 0x83227887:    // 6          playcomplete("atention.wav");          break;        case 0x8322629D:    // vol up          mute = 0;         // mute off          break;         case 0x83226E91:    // mute          { Serial.println("mute detected");            timediff=millis()-lasttime;            Serial.println(timediff);            if(lastcode!=results.value || (lastcode==results.value && (timediff>1600)) ) {               if( mute == 0 ) { // is mute off?                  Serial.println("toggle off to on");                  mute = 1;      // turn on                  // delay(1000);    // wait a bit for debounce                  break;                 }               if( mute == 1 ) { // is mute on?                  mute = 0;      // turn off                  Serial.println("toggle on to off");                  break;                 }              } // end if             break;           } // end case        } // end switch      lastcode = results.value;      lasttime = millis();      irrecv.resume();   // Receive the next value   } } /////////////////////////////////// HELPERS /* * print error message and halt */ void error_P(const char *str) {   PgmPrint("Error: ");   SerialPrint_P(str);   sdErrorCheck();   while(1); } /* * print error message and halt if SD I/O error */ void sdErrorCheck(void) {   if (!card.errorCode()) return;   PgmPrint("\r\nSD I/O error: ");   Serial.print(card.errorCode(), HEX);   PgmPrint(", ");   Serial.println(card.errorData(), HEX);   while(1); } /* * Play a file and wait for it to complete */ void playcomplete(char *name) {   playfile(name);   while (wave.isplaying);     // see if an error occurred while playing   sdErrorCheck(); } /* * Open and start playing a WAV file */ void playfile(char *name) {   if (wave.isplaying) {// already playing something, so stop it!     wave.stop(); // stop it   }   if (!file.open(root, name)) {     PgmPrintln("Couldn't open file ");     Serial.print(name);     return;   }   if (!wave.create(file)) {     PgmPrintln("Not a valid WAV");     return;   }   // ok time to play!   wave.play(); }

Topic by SithLordIII  


Your War Stories

Everyone who has played war simulation games probably has a story to tell, I know I have a few. I would like to hear about your past experiences. This being the internet, anybody can claim to have done anything. Please try to be honest in your stories. Paintball:I was pinned down behind a tree that was barely the width of my body. Three enemies were bunkered up behind a felled tree in front of me, all of them shooting. I could hear their bullets whizzing inches from my head, and I was getting covered in splatter from the paintballs breaking across the tree. If I moved even an inch, I would be exposed. I was completely helpless. One of my buddies ran up to help, taking cover on my right. He was gunned down in less than a minute. I was trapped behind that tree for what seemed like an eternity. Luckily, one of my teammates (we call him Rambo) flanked the bunker, ran up from behind, and shot all of them in the back. When I looked at the cover I was behind, the tree and surrounding area was completely painted. I was on a speedball course behind cover, exchanging fire with (of all people) my brother. I look up, and he is charging up the field directly at me. Panicked, I take some shots at him and nailed him in a very sensitive area. He immediately went down and stayed down for several minutes, rolling around in pain. I captured it on my Gun-cam, you can see the paintball hit it's mark.(I've got plenty of good paintball stories, but I want to keep this short.)Airsoft:We were playing Ambush: VIP, and I was the VIP (No gun. I die, we loose). The course consisted of trails in the woods which lead to an open field. I had to go through the woods and across the field to a designated endpoint. The first leg was uneventful, we saw no action through the trails. When we reached the tree line, we decided it was best to book it across the field. We ran to the tree line, my bodyguard about ten feet ahead of me. He was the first to break the tree line. As soon as he did, he was shot up the leg and chest from near point blank range by a full auto MP5 and toppled over. As soon as I saw this I tried to do three things at once (thinking Oh Spit!): come to a sudden stop from a full on sprint, change direction, and book it in the opposite direction. Let's just say I face-planted and got shot up on the ground. I was stalking a guy who was facing me, staying just inside his peripherals (at least ten feet away). I shot him and, knowing the noise would attract others, immediately went prone in my ghillie suit. I was right, his teammate showed up to investigate. I took him out easily. This attracted a third teammate. I waited a good five minutes and, thinking he had gone, stood up to flank him. Turns out I stood up right in front of him and was subsequently lit up like a Christmas tree. (All these stories may make it sound like I suck at paintball/airsoft, but the most memorable events are often your worst.)Edit.I actually ended up writing an English paper on one of these stories. The Clearing A ski mask pulled over his face, Robert steadied his AK-47. The surrounding shadows merged with his dark sweatshirt and jeans. Shifting his weight, he anxiously scanned the path ahead. Both of us were sitting ducks here, he knew it. We had come to a fork in the road, providing us with two options. We could continue down the well-worn dirt path, or divert to a small, overgrown trail. "Come on." Robert whispered, eying the smaller trail, "Let's go."The objective was simple; navigate a maze of trails through the woods, cross an open field, and reach an endpoint on the other side. There was just one small problem; I must make it to the endpoint alive. I was the designated V.I.P., forbidden to carry a firearm and it was game over if I died. It was Robert's duty to escort me to the endpoint in one piece. Robert disappeared into the overgrown trail. Waiting ten seconds, I continued after him. Pushing aside ferns and thorn bushes, Robert and I slowly advanced. We knew it would be safe, they wouldn't expect us to follow this trail. Nonetheless, we kept a wary eye on the trees and bushes ahead. It was unusually hot, and I was beginning to sweat under my stuffy ghillie suit. The surrounding woods were eerily silent, a calm before the storm. As if on cue, there was a rustle off to our right. Immediately, Robert raised and lowered his palm, swinging his rifle in the direction of the sound. Catching his signal, I crouched low to the ground, adrenaline seeping through my veins. Tense, we waited for the seemingly inevitable. More rustling, this time accompanied by flapping. Robert's finger tightened against the trigger. A form shot out of the bushes, rapidly ascending to the branches above. It is just a bird. Sighing with relief, we rose and continued down the trail.We arrived at the edge of the woods, beyond which lay a small clearing. A mere one hundred feet separated us from the awaiting endpoint on the other side. One hundred feet of open field, it might as well have been a thousand. Robert and I came to the decision that we run across as fast as possible. We would be completely exposed, our fate placed at the mercy of the clearing. Drawing a deep breath, Robert sprinted toward the tree line. I followed, maintaining a distance of ten feet. Approaching a full sprint, Robert burst into the clearing. He managed to complete five strides before a sharp rat-tat-tat shattered the silence. Time slowed, Robert cried out in pain and toppled into the tall grass. He had taken several hits up the chest and legs at point blank range. A dark figure rose from the bushes directly ahead, looming above the surrounding flora. I was sprinting, full speed, to my doom. My mind went blank, overridden by three instincts: stop, turn around, and run. I attempted to complete all of these tasks simultaneously: come to a dead stop from a full sprint, turn one hundred and eighty degrees, and run. Momentum sternly disagreed, sending me in an awkward flying flop to the ground. Stunned, I lay on the forest floor at the edge of the woods. Regaining my senses, I felt several bee stings crawl up my back. I was hit, game over.

Topic by Spl1nt3rC3ll    |  last reply


8 Reasons you'll rejoice when we hit $8 a gallon gasoline

This article in MarketWatch written by Chris Pummer mostly matches my opinions. My favorite is #2Here is the text:SAN FRANCISCO (MarketWatch) -- For one of the nastiest substances on earth, crude oil has an amazing grip on the globe. We all know the stuff's poison, yet we're as dependent on it as our air and water supplies -- which, of course, is what oil is poisoning.Shouldn't we be technologically advanced enough here in the 21st Century to quit siphoning off the pus of the Earth? Regardless whether you believe global warming is threatening the planet's future, you must admit crude is passé. Americans should be celebrating rather than shuddering over the arrival of $4-a-gallon gasoline. We lived on cheap gas too long, failed to innovate and now face the consequences of competing for a finite resource amid fast-expanding global demand.A further price rise as in Europe to $8 a gallon -- or $200 and more to fill a large SUV's tank -- would be a catalyst for economic, political and social change of profound national and global impact. We could face an economic squeeze, but it would be the pain before the gain.The U.S. economy absorbed a tripling in gas prices in the last six years without falling into recession, at least through March. Ravenous demand from China and India could see prices further double in the next few years -- and jumpstart the overdue process of weaning ourselves off fossil fuels.Consider the world of good that would come of pricing crude oil and gasoline at levels that would strain our finances as much as they're straining international relations and the planet's long-term health: 1. RIP for the internal-combustion engineThey may contain computer chips, but the power source for today's cars is little different than that which drove the first Model T 100 years ago. That we're still harnessed to this antiquated technology is testament to Big Oil's influence in Washington and success in squelching advances in fuel efficiency and alternative energy.Given our achievement in getting a giant mainframe's computing power into a handheld device in just a few decades, we should be able to do likewise with these dirty, little rolling power plants that served us well but are overdue for the scrap heap of history.2. Economic stimulusNecessity being the mother of invention, $8 gas would trigger all manner of investment sure to lead to groundbreaking advances. Job creation wouldn't be limited to research labs; it would rapidly spill over into lucrative manufacturing jobs that could help restore America's industrial base and make us a world leader in a critical realm.The most groundbreaking discoveries might still be 25 or more years off, but we won't see massive public and corporate funding of research initiatives until escalating oil costs threaten our national security and global stability -- a time that's fast approaching. 3. Wither the Middle East's cloutThis region that's contributed little to modern civilization exercises inordinate sway over the world because of its one significant contribution -- crude extraction. Aside from ensuring Israel's security, the U.S. would have virtually no strategic or business interest in this volatile, desolate region were it not for oil -- and its radical element wouldn't be able to demonize us as the exploiters of its people.In the near term, breaking our dependence on Middle Eastern oil may well require the acceptance of drilling in the Alaskan wilderness -- with the understanding that costly environmental protections could easily be built into the price of $8 gas. 4. Deflating oil potentatesOn a similar note, Venezuela's Hugo Chavez and Iran's Mahmoud Ahmadinejad recently gained a platform on the world stage because of their nations' sudden oil wealth. Without it, they would face the difficult task of building fair and just economies and societies on some other basis.How far would their message resonate -- and how long would they even stay in power -- if they were unable to buy off the temporary allegiance of their people with vast oil revenues? 5. Mass-transit developmentAnyone accustomed to taking mass transit to work knows the joy of a car-free commute. Yet there have been few major additions or improvements to our mass-transit systems in the last 30 years because cheap gas kept us in our cars. Confronted with $8 gas, millions of Americans would board buses, trains, ferries and bicycles and minimize the pollution, congestion and anxiety spawned by rush-hour traffic jams. More convenient routes and scheduling would accomplish that.6. An antidote to sprawlThe recent housing boom sparked further development of antiseptic, strip-mall communities in distant outlying areas. Making 100-mile-plus roundtrip commutes costlier will spur construction of more space-efficient housing closer to city centers, including cluster developments to accommodate the millions of baby boomers who will no longer need their big empty-nest suburban homes.Sure, there's plenty of land left to develop across our fruited plains, but building more housing around city and town centers will enhance the sense of community lacking in cookie-cutter developments slapped up in the hinterlands. 7. Restoration of financial disciplineFar too many Americans live beyond their means and nowhere is that more apparent than with our car payments. Enabled by eager lenders, many middle-income families carry two monthly payments of $400 or more on $20,000-plus vehicles that consume upwards of $15,000 of their annual take-home pay factoring in insurance, maintenance and gas.The sting of forking over $100 per fill-up would force all of us to look hard at how much of our precious income we blow on a transport vehicle that sits idle most of the time, and spur demand for the less-costly and more fuel-efficient small sedans and hatchbacks that Europeans have been driving for decades. 8. Easing global tensionsUnfortunately, we human beings aren't so far evolved that we won't resort to annihilating each other over energy resources. The existence of weapons of mass destruction aside, the present Iraq War could be the first of many sparked by competition for oil supplies.Steep prices will not only chill demand in the U.S., they will more importantly slow China and India's headlong rush to make the same mistakes we did in rapidly industrializing -- like selling $2,500 Tata cars to countless millions of Indians with little concern for the environmental consequences. If we succeed in developing viable energy alternatives, they could be a key export in helping us improve our balance of trade with consumer-goods producers. Additional considerationsWeaning ourselves off crude will hopefully be the crowning achievement that marks the progress of humankind in the 21st Century. With it may come development of oil-free products to replace the chemicals, pharmaceuticals, plastics, fertilizers and pesticides that now consume 16% of the world's crude-oil output and are likely culprits in fast-rising cancer rates.By its very definition, oil is crude. It's time we develop more refined energy sources and that will not happen without a cost-driven shift in demand.

Topic by Keith-Kid    |  last reply


How to ride DH safely

1. Always wear a helmet, wear body armor as well when needed (how much depends on course, and what you find to be suitable) at all times. 2. Look ahead of you. The faster you are going the further ahead you should look. 3. Stay focused and try not to concentrate or think while you are going at high speed, this tends to slow you down and/or cause accidents...practice alot and everything should come naturally with flow! - Before a run get a song or something that gets you "in the mood" in the back of your mind,and go for it - before you know it you'll be through the track/race no problem...you should all ready know the track turn for turn before doing this. 4. Make sure your tires have appropriate tread on them and are not cracking/damaged 5. Check your bike over in the parking lot before going up the lift. Ride it around and check the brakes and tire pressures. 6. Get enough sleep before riding and especially before racing. 7. Don't drink or get high before racing or riding (you can do it, and seen it done, but if you want to win or want to be safe...don't) 8. Stay relaxed and dialed in on the bike, be as relaxed as possible mentally before you start a race but be pumped physically at the same time. 9. Know the track as well as you can before racing it (the later steps will go into greater detail on how to do this). 10.Learn to 'pump through the ruff stuff'-pull up on the face and push down on the back side of bumps/rocks/landing trannys, etc... 11. Stay light on the back brake as much as you can and try to lock it as rarely as possible if at all...it may cause you to wash out. Only lock the brake on extremely sharp turns or to get into a turn if a cuttie won't be efficient enuff. 12. Try to go as fast as you can when you can-->PEDAL PEDAL PEDAL like a bat out of hell in the open or out of turns when/where ever you can. 13. Practice "cutties". 14. Buy the "Fundamentals" DVD available here on pinkbike.com or at most bike shops and study it...take notes if you have to. You will find how to do "cutties" on the DVD as well as many many more "fundamentals" for DH riding-----> BUY IT, you will be glad you did. 15.Off camber: make sure you weight your outside foot and stand the bike on the egde of the tire, that way it will stick 16. Rock gardens: the faster the better- you will bobble across the top and be on you way before you know it, rather than getting packed down and ending up with major arm pump. 17. Braking: only ever do real braking in straight lines, you can brake on corners but do it conservatively and only to slide around sharp turns better as it may cause you to wash out as mentioned above. The less you brake the faster you go and fast riding is a winning formula- think about that. 18. >>>Don't Crash It can have you out for the rest of the season and that can prevent you from winning races----obviously. Just dont ride like an idiot and attempt things that will probably end in you getting hurt. Ride within your limits! 19. (Words of Pro Down hiller Steve Peat from the "fundamentals" DVD mentioned above) "Stay as light as you can on the bike and pump through the back side of rocks or rough sections as a skateboarder pumps a vert ramp" to gain or maintain speed and momentum. 20. Trust your tires throughout the course. If you believe and have faith in your tires grip, chances are they will have grip fine. If you don't trust your tires and BELEIVE that they wont grip and you will probably fall, chances are they won't grip and as a result you will indeed fall. 21. Walk the track and look for new lines or which lines are best to take and are the fastest 22. Tuck when ever possible to conserve energy. Pedal hard in the open spots before the ruff stuff then tuck and pump and repeat. 23. True your wheels to increase your speed and pedalling efficiency 24. Don't use big fat mud bog tiresfor DH(i.e. 2.6"-3.0") EVER...unless your DH course happens to be a downhill mud swamp 25. Learn to brake with out losing traction , this helps in straight line braking before turns. 26.Push yourself in the warmups, (not stupidly) and give 95% of what your maximum was when you were pushing yourself, in the actual race. This way you wont fall, but you are still hauling a$$. 27.Practice shift points, it is very important to be in the right gear at the right time or youll be sucking wind trying to pedal a flat stretch in too high of a gear. On a fast stretch where you need to begin pedaling to maintain that speed, youll be spinning out. Know what gear to start in and what gear you need to be in at every point in the track. 28. If all else fails look fast across the finish line where everyones watching. 29.When learning, set your fork/and or shock harder than you would normally, this will teach you to use to body rather than relying upon the bike. 30. Try to pick memory markers for your self; tree stump, odd looking rock, etc... and break the course down in your head so you can become very quick overall. 31. Practice simple skills such as manuals (good for roots), Hops, roots/rocks) and of course cutties 32. Commit to berms, brake on a berm and it will end it tears, aim to "rail the berm" to do this - hit the berm at a speed that isnt too fast (this will cause you to slip up it) and not to slow (you will slip down and is slower duh) The ideal speed should carry you round as g forces will push you into the berm. 34.Take a couple of the "Learn to race" clinics offered before many of the sanctioned races. 35.Play with your set up, everything from seat angle, to brake postioning- it can all make a big difference. The more comfortable you are on the bike the faster youll go, the steepness can be different for each course(for instance) so tweak it a little each time but dont EVER change your entire setup before a race. 36.When walking the course, look back up at it. You will find new lines looking up rather then down. 37. While riding (including in the air) never squeeze the seat with your knees. This makes it impossible to flow smoothly, and makes you a ridged weight to be tossed around at the mercy of the trail. It may feel safer, but it will cause you to wreck and lose speed when you would not otherwise. In the air also, it you pinch your seat then you can not compress the lip and extend for landing. Also you can not whip and prepare for upcoming turns and bumps. The ONLY time that pinching your seat would be appropriate is when doing a suicide no hander which, if you can do it without loosing speed, is a cool way to entertain the crowd. 38.Learn to crash,it is an important skill to have that will save you alot of trouble in the long run. 39. Work your way up to the big stuff. Even if you are a good rider always warm up on an easier trail then go for the harder stuff you set out to conquer. Same for riding in general- dont go tackle the hardest trail on the mountain without first being able to do the easy ones---this may sound somewhat obvious but alot of people just cant get this bit of logic into their skulls without being told directly. 40. If the drop doesn't have a great tranny, hit it with more speed. this will cause you to have increased foreward momentum and less downward ( static ) momentum and make the landing smoother. let your bike go off the drop first. 41. If you are in the air ( off a jump drop or whatever... ) and your back end starts to dip too much, tap your back brake, this will cause the front end to dip forward. ( this is used all the time in Motocross) WARNING: Use this with caution and only when its a neccesity. 42. XC riding will make you faster. I always love watching the out of shape downhillers crossing the finish line and nearly having a hear attack. The more tired you are the more mistakes you make and the more likely you are to get hurt. Pedal! Then pedal more! 43. Train like a mofo. During my DH racing times I would spend the summer mornings doing 5-8 runs on local dh trails then dirt jumping and XC riding in the afternoon= Legs that were strong/fast as hell. Dont forget to train in the off season too. 44. Develop a training schedule not just for biking and racing but to keep in shape in general. The more you ride the better you will be. Like Ito was saying, do as much of each mountain biking discipline as possible with emphasis on Down hill. Cedric Gracia wins because he is a great all around rider as is Minaar. 45.Commit to the front end of your bike in corners. Watch Sam Hill, no-one does it better. NOTE: BEFORE DOING THIS, make sure you have practiced it and know how to do this technique at speed (Note is courtesy of Iceboy) 46. Don't pedal like a mad man out of the gate. Pedal, but let your bike gather speed and focus on keeping it. Racing comes down to one thing - exit speed , in particular your speed out of corners. Wait until you feel the flow before you start pushing it harder. If you pedal too hard from the start you'll flip in 60 seconds and get back on your bike a go harder to make up the time. Then you'll flip again. Speaking from experience on this one! It's all about being 'zen'. At least that's what all the dudes who keep beating me are telling me. Learn how to go as fast as you can through turns and sections to know your limits. 47. Make your riding FEEL slow when you are going fast! If you feel fast it's because the trail is catching up with you too quickly for you to process all the info in a comfortable time frame. Probably because you are too busy worrying about going fast and not feeling the flow. Look out, you are about to flip. It's that zen thing you're missing. 48. Practice having FLOW in all your riding, down hill (speed as well as flow), Dirt jumps (flow), XC(speed and flow), what ever (FLOW)... 49.Dont be intimidated by other riders, stay focused on what you have to do not what they are doing, if they crash pay atention to why, and try not to make the same mistake. 50. Learn to go over jumps at as high a speed as possible with out overshooting or losing speed by going too high. Jumps and learning to land them without thinking is a VERY beneficial skill to have... (if you want to stay low coming of jumps learn to soak up the lip...you will go just as far but you'll stay lower) 51. When doing a j-hop, bunny hop or going up the face of a jump don't forget to push into the ground and then come up to get more air. 53. The rougher the place you are riding the more ralaxed and flowy you should be trying to go . 54. Spend time at the track and just watch other riders(especially how they are going through the tricky sections that you are having trouble with), see what they are doing wrong and try to not make the same mistakes, also watch for where the speed spots of the section are. 55.Read Brian Lopes's & Lee McCormick's book " Mastering Mountain Biking Skills", this book covers everything you need to know in great detail from top to bottom, it is with out a doubt the most comprehensive guide for how to ride/race mountain bikes and how to handle and practice everything involved in riding. I HIGHLY RECCOMEND IT, and would say that it is the BIBLE for Mountain Biking! 56.Look where you want to go not at what you are trying to avoid. if you stare at the tree you are trying to go around instead of the trail around it you will more often than not hit the tree. 57. As mentioned previously-The faster you are going the further ahead you should look, always look at what lies further ahead when riding downhill AND avoid staring at your front wheel--staring at your front wheel will slow you down drastically and often will lead to crashing. 58.To re-inerate what Harding.Thomas was saying; do not focus on obstacles like stumps logs and rocks, because thats were you will go instead of where you want to go. In essence, keep an eye on where you want to go and you will go there. Do not look down at what your riding over, let your bike deal with the terrain, thats what its for. This is a very important tip to increasing speed and improving flow. 59. Before you go riding, I find that a simple 10 minute warm up on flat land and practicing tight turns and j-hops helps loosen you up and calms you down If you have any other tips, tell me! ill post them in the list.

Topic by struckbyanarrow