avatar

magee

Member Since: June 28, 2009

Country: United States

Profile

Bio

Colorado native, transplanted to Washington state, trying to get back home (with a job).

Role

Tech, hobiest

Spoken Languages

english, binary

Programming Languages

C, C++, Qt, PHP5, java, basic.

Quotes

“it’s not a bug, it’s a "feature”

“be careful, temporary fixes inevitably become permanent solutions”

  • News - New Product Friday: Big M… | about 8 months ago

    First thing I thought of when I saw “continue reading” was Starship Troopers “would you like to know more?”, perhaps in the spirit of letting your geek shine you should change the button text.

  • News - Your August Caption Conte… | about 9 months ago

    Seriously, next time we go on tour and you say you want to bring your pet “Rex” along… I thought “Rex” was your dog!!!

  • News - July Caption Contest | about 10 months ago

    Um…. I think you mis-understood me when I said “I don’t see the point.”

  • News - Your June Caption Contest | about 11 months ago

    nice… I was actually going to post something similar, but you beat me to the punch

  • Product COM-11737 | last year

    I’ve been working on my own custom board. I’m using a TDA7719 for audio switching and processing, and a Raspberry Pi with a touchscreen for a GUI. I have a working prototype and some new boards are being turned right now that will hopefully be the final revision. I’m willing to share more details and my project files, as long as it is understood that I am not an engineer so my design is far from perfect and this project is far from complete.

  • Product COM-11737 | last year

    Good to know, thanks for the tip, I was wondering what that noise was. I got it working BTW, it was a mixture of problems. my signal to RST was below 70% of Vd (bad math on my part), so chip never came out of reset. And hence, no response to the power up command.

  • Product COM-11737 | last year

    “ it’s not exactly a drop-in replacement, so we have to redo some things.” Other than the loss of SPI and the analogue audio input, what else changed? I’m racking my brain an re-reading the data sheets over and over trying to figure out why i cant talk to the D60. I was talking to the c40 via i2c, but now wire.endTransmission() returns “2” (nack addr). I am about to put the C40 back in and cut my losses.

  • News - Your April Caption Contes… | last year

    ALLSPARK-FUN kits available soon, plus check our ding and dent section for new items.

  • Product WRL-10906 | about a year ago

    sorry… I had issues with the formatting, above where it says “i&lt8;”, I wanted to say “i<8;”

  • Product WRL-10906 | about a year ago

    This document helped me alot RDS Standard, for Radio Text see page 25.

    This is the code I came up with and have in my project. Keep in mind, I tried to cut out all the un-related code to reduce the size of this post so a direct cut-and paste of the code may not work, this is intended to at least point you in the right direction. Also, no laughing at any grammar/spelling in my code’s comments, I am usually am about three beers in to it by the time I get around to adding comments in my code, which can result in some unpredictable keyboard behavior.

    //called from TunerPowerUpFM mode
    //must be called while tuner is in power up mode (see data sheet)
    void Tuner_EnableRDS(){
      Wire.beginTransmission(SI7435_ADDRESS);
      Wire.write(0x12);//setProperty
      Wire.write(0x00);
      Wire.write(0x15);//RDS Property 0x15 0x00 (interupt settings)
      Wire.write(0x00);
      Wire.write(0x00);
      Wire.write(0x01); //set interupt to when FIFO count met
      Wire.endTransmission();
      delay(3);
    
      Wire.beginTransmission(SI7435_ADDRESS);
      Wire.write(0x12);//setProperty
      Wire.write(0x00);
      Wire.write(0x15);//RDS Property 0x15 0x01 (FIFO count)
      Wire.write(0x01);
      Wire.write(0x00);
      Wire.write(0x04); //set fifo count to 10
      Wire.endTransmission();
      delay(3);
      Wire.beginTransmission(SI7435_ADDRESS);
      Wire.write(byte(0x12));//setProperty
      Wire.write(byte(0x00));
      Wire.write(byte(0x15));//RDS Property 0x15 0x02 (RDS Config)
      Wire.write(byte(0x02));
      Wire.write(byte(0xAA)); //FF=Store group reguardless of errors, AA = dont 
      Wire.write(byte(0x01)); //RDS enable
      Wire.endTransmission();
    }
    
    void Tuner_ReadRDS(){
      Wire.beginTransmission(SI7435_ADDRESS);
      Wire.write(0x24);  //request_RDS_Status
      Wire.write(0x01);  //CLEAR RDS INTERUPT
      Wire.endTransmission();
    
      Wire.requestFrom(SI7435_ADDRESS, 12);    // request 12 bytes from si7435
      delay(10);
      byte data[12];
      int i=0;
      while(Wire.available() && i>3;//shift right 3 bits
      // put payload into it's own array
      byte payload[8] = {data[4],data[5],data[6],data[7],data[8],data[9],data[10],data[11]};
      // by priority  
      if(grouptype==0x04)Tuner_ProcessRTA(payload);//0x04 =Radio text A  
      if(grouptype==0x05)Tuner_ProcessRTB(payload);//0x05 = Radio Text B
    
    }
    void Tuner_ProcessRTA(byte data[]){
        byte segment=data[3];
        bool abFlag=bitRead(4,segment); //text ab flag, changes if display should be cleared (EG.song change)
        segment&=B00001111; //mask out un-needed bits
        for(int i=2; i&lt8; i++){
          if(data[i]==0x0A)data[i]=0x1A;//replace newline chars with subsitute char (for serial port)
        }        
        Serial.print("RTA,");
        if(abFlag)Serial.print("A,");
        else{Serial.print("B,");}
        Serial.print(segment,DEC); //text
        Serial.print(",");
        Serial.print(char(data[4]));
        Serial.print(char(data[5]));
        Serial.print(char(data[6]));
        Serial.print(char(data[7]));
        Serial.print("\r\n");  
    }
    
    void Tuner_ProcessRTB(byte data[]){
        byte segment=data[3];
        bool abFlag=bitRead(4,segment);
        segment&=B00001111;
        for(int i=4; i&lt8; i++){
          if(data[i]==0x0A)data[i]=0x1A;//replace newline chars with sub char
        }        
        Serial.print("RTB,");
        if(abFlag)Serial.print("A,");
        else{Serial.print("B,");}
        Serial.print(segment,DEC);
        Serial.print(",");
        Serial.print(char(data[6]));
        Serial.print(char(data[7]));
        Serial.print("\r\n");   
    }    
    
Name Pieces Total
Wants
9 316.55