Bare Bones Radio Code Snippets. In main, define the following: //set to KRKT Albany at 99.9Mhz initially volatile uint16_t current_fm_freq = 9990; //0x2706, arg2, arg3; 99.9Mhz, 200khz steps extern uint8_t si4734_wr_buf[9]; extern uint8_t si4734_rd_buf[9]; extern uint8_t si4734_tune_status_buf[8]; extern volatile uint8_t STC_interrupt; //indicates tune or seek is done You will also need this: //****************************************************************************** // External Interrupt 7 ISR // Handles the interrupts from the radio that tells us when a command is done. // The interrupt can come from either a "clear to send" (CTS) following most // commands or a "seek tune complete" interrupt (STC) when a scan or tune command // like fm_tune_freq is issued. The GPIO2/INT pin on the Si4734 emits a low // pulse to indicate the interrupt. I have measured but the datasheet does not // confirm a width of 3uS for CTS and 1.5uS for STC interrupts. // // I am presently using the Si4734 so that its only interrupting when the // scan_tune_complete is pulsing. Seems to work fine. (12.2014) // // External interrupt 7 is on Port E bit 7. The interrupt is triggered on the // rising edge of Port E bit 7. The i/o clock must be running to detect the // edge (not asynchronouslly triggered) //****************************************************************************** ISR(INT7_vect){STC_interrupt = TRUE;} //****************************************************************************** Port E inital values and setup. This may be different from yours for bits 0,1,6. // DDRE: 0 0 0 0 1 0 1 1 // (^ edge int from radio) bit 7--| | | | | | | |--bit 0 USART0 RX //(shift/load_n for 74HC165) bit 6----| | | | | |----bit 1 USART0 TX // bit 5------| | | |------bit 2 (radio reset, active high) // (unused) bit 4--------| |--------bit 3 (TCNT3 PWM output for volume control) DDRE |= 0x04; //Port E bit 2 is active high reset for radio DDRE |= 0x40; //Port E bit 6 is shift/load_n for encoder 74HC165 DDRE |= 0x08; //Port E bit 3 is TCNT3 PWM output for volume PORTE |= 0x04; //radio reset is on at powerup (active high) PORTE |= 0x40; //pulse low to load switch values, else its in shift mode Given the hardware setup reflected above, here is the radio reset sequence. //hardware reset of Si4734 PORTE &= ~(1<=64) {rssi = 0xFF;}