diff --git a/radio/nrf24L01/nrf-ftdi-ring.c b/radio/nrf24L01/nrf-ftdi-ring.c
index f484375091d54571fd164ea1cac7e858dd1ed293..6e5f3e7966baa6a661af03b839d84a4d1df938fb 100644
--- a/radio/nrf24L01/nrf-ftdi-ring.c
+++ b/radio/nrf24L01/nrf-ftdi-ring.c
@@ -60,12 +60,12 @@ const uint8_t RX_DR = 1<<6; //rx data ready interrupt
 
 uint8_t read_register(uint8_t reg){
    PORTC.OUTCLR = SS_BM; //SS low      
-   _delay_ms(1);  //give time after ss low 
+   _delay_us(1);  //give time after ss low 
    SPIC.DATA = R_REGISTER | reg; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    SPIC.DATA = 0; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    uint8_t temp = SPIC.DATA;
    PORTC.OUTSET = SS_BM; //SS high
-   _delay_ms(1);  //give time after ss high
+   _delay_us(1);  //give time after ss high
    return temp;
 }
 
@@ -76,41 +76,24 @@ USART_data_t USART_data;
 uint8_t token = 0; //token to pass
 uint8_t tempval = 0;
 
-void check_registers(){
+void check_registers(uint8_t id){
+   //debug only
    //enter standby so we can write to configuration register.
    PORTC.OUTCLR = CE_BM; 
-   _delay_us(10);
-
-   //read registers for debug
-   PORTC.OUTCLR = SS_BM; //SS low  
-   _delay_us(10);            
-   SPIC.DATA = R_REGISTER | EN_AA; while(!(SPIC.STATUS & SPI_IF_bm)) {};
-   uint8_t status = SPIC.DATA;
-   SPIC.DATA = 0; while(!(SPIC.STATUS & SPI_IF_bm)) {};  //read
-   uint8_t en_aa = SPIC.DATA;
-   PORTC.OUTSET = SS_BM; //SS high
-   _delay_us(10);            
+   _delay_us(10);         
 
    PORTC.OUTCLR = SS_BM; //SS low  
    _delay_us(10);            
    SPIC.DATA = R_REGISTER | CONFIG; while(!(SPIC.STATUS & SPI_IF_bm)) {};
+   uint8_t status = SPIC.DATA;
    SPIC.DATA = 0; while(!(SPIC.STATUS & SPI_IF_bm)) {};  //read
    uint8_t config = SPIC.DATA;
    PORTC.OUTSET = SS_BM; //SS high
    _delay_us(10); 
 
-   PORTC.OUTCLR = SS_BM; //SS low  
-   _delay_us(10);            
-   SPIC.DATA = R_REGISTER | SETUP_RETR; while(!(SPIC.STATUS & SPI_IF_bm)) {};
-   SPIC.DATA = 0; while(!(SPIC.STATUS & SPI_IF_bm)) {};  //read
-   uint8_t setup_retr = SPIC.DATA;
-   PORTC.OUTSET = SS_BM; //SS high
-   _delay_us(10); 
-
+   usart_send_byte(&USART_data,id);
    usart_send_byte(&USART_data,status);
    usart_send_byte(&USART_data,config);
-   usart_send_byte(&USART_data,en_aa);
-   usart_send_byte(&USART_data,setup_retr);
    usart_send_byte(&USART_data,token);
    usart_send_byte(&USART_data,10);
 
@@ -163,7 +146,7 @@ void check_registers(){
 void rx_from_standby(){
    //enter standby so we can write to configuration register.
    PORTC.OUTCLR = CE_BM; 
-   _delay_us(10);
+   _delay_us(10); //should be 10?
 
    //enter RX mode: set PRIM_RX = 1
    tempval = read_register(CONFIG);
@@ -171,11 +154,11 @@ void rx_from_standby(){
    SPIC.DATA = W_REGISTER | CONFIG; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    SPIC.DATA = tempval | PRIM_RX; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    PORTC.OUTSET = SS_BM; //SS high
-   _delay_ms(1);  //give time to start up   
+   _delay_us(1);  //give time to start up   
 
    //set CE for at least 10 us 
    PORTC.OUTSET = CE_BM;
-   _delay_us(10);
+   _delay_us(10); //should be 10?
 
    //wait for pll to settle
    _delay_us(130);
@@ -208,7 +191,7 @@ void setup(){
    PORTC.PIN2CTRL = PORT_OPC_PULLUP_gc; //pull-up on IRQ
    PORTC.DIRSET = CE_BM; //set up CE pin on PC0
    //set up spic.ctrl
-   SPIC.CTRL   = SPI_PRESCALER_DIV128_gc |        /* SPI prescaler. */
+   SPIC.CTRL   = SPI_PRESCALER_DIV4_gc |        /* SPI prescaler. */
                          (0 ? SPI_CLK2X_bm : 0) |    /* SPI Clock double. */
                          SPI_ENABLE_bm |                 /* Enable SPI module. */
                          SPI_MASTER_bm |                 /* SPI master. */
@@ -255,6 +238,13 @@ void setup(){
    PORTC.OUTSET = SS_BM; //SS high
    _delay_ms(1);  //give time to start up 
 
+   //set data rate to 2 Mbps with high power
+   PORTC.OUTCLR = SS_BM; //SS low      
+   SPIC.DATA = W_REGISTER | RF_SETUP; while(!(SPIC.STATUS & SPI_IF_bm)) {};
+   SPIC.DATA = (0<<5) | (1<<3) | (1<<2) | (1<<1); while(!(SPIC.STATUS & SPI_IF_bm)) {};
+   PORTC.OUTSET = SS_BM; //SS high
+   _delay_ms(1);  //give time to start up    
+
    //flush tx
    PORTC.OUTCLR = SS_BM; //SS low      
    SPIC.DATA = FLUSH_TX; while(!(SPIC.STATUS & SPI_IF_bm)) {};
@@ -287,13 +277,11 @@ void setup(){
    sei();
 
    rx_from_standby();
-
 }
 
 
 // NOTE: we can't do SPIC.DATA &= or |= thing because SPIC.DATA will hold STATUS!!!
 
-
 void send_token(){
    //transition from RX to standby1 (CE=0)
    PORTC.OUTCLR = CE_BM;   
@@ -301,57 +289,50 @@ void send_token(){
 
    //put token in tx fifo
    PORTC.OUTCLR = SS_BM; //SS low
-   _delay_ms(1);           
+   _delay_us(1);           
    SPIC.DATA = W_TX_PAYLOAD; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    SPIC.DATA = token; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    PORTC.OUTSET = SS_BM; //SS high
-   _delay_ms(1); 
-
-   check_registers();      
+   _delay_us(1); 
 
    tempval = read_register(CONFIG);
    PORTC.OUTCLR = SS_BM; //SS low  
-   _delay_ms(1);            
+   _delay_us(1);            
    SPIC.DATA = W_REGISTER | CONFIG; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    SPIC.DATA = tempval & (~PRIM_RX); while(!(SPIC.STATUS & SPI_IF_bm)) {};  //make sure PRIM_RX is low
    PORTC.OUTSET = SS_BM; //SS high
-   _delay_ms(1);
-
-   check_registers();      
+   _delay_us(1);
 
    //pulse CE for at least 10 us 
-   PORTC.OUTSET = CE_BM; _delay_us(15); PORTC.OUTCLR = CE_BM;
+   PORTC.OUTSET = CE_BM; _delay_us(10); PORTC.OUTCLR = CE_BM;
 
    //wait for pll to settle
    _delay_us(130);
 
    //wait until transmit complete
-   usart_send_byte(&USART_data,68); usart_send_byte(&USART_data,10); //for debug on usart   
    while( PORTC.IN & IRQ_BM ){}
-   usart_send_byte(&USART_data,69); usart_send_byte(&USART_data,10); //for debug on usart         
    
    //clear IRQ -- need to be in standby.
    tempval = read_register(STATUS);
    PORTC.OUTCLR = SS_BM; //SS low  
-   _delay_ms(1);            
+   _delay_us(1);            
    SPIC.DATA = W_REGISTER | STATUS; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    SPIC.DATA = tempval | TX_DS; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    PORTC.OUTSET = SS_BM; //SS high
-   _delay_ms(1);
+   _delay_us(1);
 
    rx_from_standby(); //return to RX mode
 }
 
 void read_token(){
-   check_registers();
    //get token from rx fifo
    PORTC.OUTCLR = SS_BM; //SS low
-   _delay_ms(1);           
+   _delay_us(1);           
    SPIC.DATA = R_RX_PAYLOAD; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    SPIC.DATA = 0; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    token = SPIC.DATA;
    PORTC.OUTSET = SS_BM; //SS high
-   _delay_ms(1); 
+   _delay_us(1); 
 
    //transition from RX to standby1 (CE=0)
    PORTC.OUTCLR = CE_BM;   
@@ -360,13 +341,12 @@ void read_token(){
    //clear IRQ
    tempval = read_register(STATUS);
    PORTC.OUTCLR = SS_BM; //SS low  
-   _delay_ms(1);            
+   _delay_us(1);            
    SPIC.DATA = W_REGISTER | STATUS; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    SPIC.DATA = tempval | RX_DR; while(!(SPIC.STATUS & SPI_IF_bm)) {};
    PORTC.OUTSET = SS_BM; //SS high
-   _delay_ms(1);
-   usart_send_byte(&USART_data,255); usart_send_byte(&USART_data,10); //for debug on usart         
-   check_registers();
+   _delay_us(1);
+   //check_registers(66);
 }
 
 int main(void) {
@@ -374,22 +354,18 @@ int main(void) {
    while(1){
       //should be in rx mode here.
       if ( !(PORTC.IN & IRQ_BM)){
-         usart_send_byte(&USART_data,70); usart_send_byte(&USART_data,10);
          read_token(); //in standby
          token = 1-token; //transform token
-         send_token(); //in rx
-         usart_send_byte(&USART_data,66); usart_send_byte(&USART_data,10); //for debug on usart         
+         //check_registers(65);
+         send_token();
       }
-      
       //when we get signal from usart, send a token on nrf
       if (USART_RXBufferData_Available(&USART_data)) {
-         usart_send_byte(&USART_data,64); usart_send_byte(&USART_data,10); //for debug on usart
          USART_RXBuffer_GetByte(&USART_data); //clear usart buffer so we only fire once.
-         check_registers();
-         send_token(); //in rx
-         usart_send_byte(&USART_data,65); usart_send_byte(&USART_data,10); //for debug on usart
+         send_token(); 
+         //check_registers(64);
       }
-      _delay_ms(1000);
+      //_delay_ms(10);
    }
 }
 
diff --git a/radio/nrf24L01/serial-monitor.py b/radio/nrf24L01/serial-monitor.py
index 54bfb554915a54b599bf57f836cd6a9ab04e678e..bcb10d38ead3ea59f9c86f4fc75eb184c50a04bf 100644
--- a/radio/nrf24L01/serial-monitor.py
+++ b/radio/nrf24L01/serial-monitor.py
@@ -4,11 +4,12 @@ serial_ports = ["/dev/tty.usbserial-FTFMIM12", "/dev/tty.usbserial-FT9L39VL"]
 
 ser = serial.Serial(serial_ports[int(sys.argv[1])], 230400)
 print "connecting"
-labels = ['status','config','en_aa','setup_retr','token']
+labels = ['id','status','config','token']
+print "writing to usart"
+ser.write([0])
+'''
 while True:
 	try:
-		print "writing to usart"
-		ser.write([0])
 		bytes = map(ord,ser.readline().strip('\n'))
 		#print "read: ",bytes
 		print bytes
@@ -19,5 +20,6 @@ while True:
 		#	print bytes[len(labels):]
 	except(KeyboardInterrupt):
 		break
+'''
 print "Quitting"
 ser.close()
\ No newline at end of file