Go Down

Topic: Has anyone hacked a Tesco's £1 AM/FM Sports Radio (Read 2371 times) previous topic - next topic

P18F4550

Mar 27, 2013, 08:31 pm Last Edit: Apr 08, 2013, 09:48 pm by P18F4550 Reason: 1
Yes their chucking these things out at £1 so I thought it had to be worth it for a quid,
after cracking it open i was supprised to find an FM/AM chip inside controlled by a 2 wire interface, I will probe it tonight but im guessing (hoping) it might be i2c, better still, the chip is already on a daughterboard, and they labelled the pinout, how thoughtful of them





I've established the radio chip is at address 0x80


Now to play

It Seems i may have made an error, according to the datasheet the i2c address is 0x80 not 0x40 and the annaliser show's , maybe i set the sample rate wrong


P18F4550

@ seadanzig,
Not really, i've had alot of family commitments and been unable to tinker with it, but tonight i did buy another radio because the chip on the first one was covered in silicon gunk, this one isn't.

The chip is marked BK1088 and the datasheet is http://aitendo3.sakura.ne.jp/aitendo_data/product_img/radio/BK1088/BK1086-88%20Datasheet%20v1.0.pdf

So i will be studying that tonight and hopefully make a bit of progress over the next few days

seadanzig

Thats cool im new to all this. Is that a logic analyser your using?

P18F4550

Hi All,

I don't have much experience with i2c and would be most gratefull if someone could answer this question

when writing to one register I do this?
Code: [Select]
  Wire.beginTransmission(id);
  Wire.write(0x06);    // reg to write to
  Wire.write(0x00);    // highbyte
  Wire.write(0xb5);    // lowbyte
  Wire.endTransmission();


when writing to a number of registers one after the other I do this?
Code: [Select]
 
unsigned int testFM[]=
{
0x80, 0x00,  // Reg 0x00
0x10, 0x80,  // Reg 0x01....
... code cut to save space .....
0x00, 0x00,  // Reg 0x27
0x44, 0x00,  // Reg 0x28
0xff  //end
};

  int i=0;
  Wire.beginTransmission(id);
  Wire.write(0x00);   // start at address 0
  while(testFM[i] != 0xff)
  {
    Wire.write(testFM[i]);      // send highbyte
    Wire.write(testFM[i+1]);  // send lowbyte
    i+=2;
  }
  Wire.endTransmission();


Thanks

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy