Welcome, Guest. Please Login.
Surveyor Corporation Surveyor SRV-1
Home Help Search Login

Surveyor Robotics Forum

Welcome to the user support forum for Surveyor SRV-1 robots, SRV-1 robot controllers and SVS stereo vision systems. To register for this forum, please send an email to support@surveyor.com which includes your desired forum user name, your registration email address, and a brief explanation of why you wish to join, and we will create a forum account for you.

Please note that there is a Search button in the forum toolbar for forum topics. Another effective search method for the entire surveyor.com site is to use Google, e.g. "xyz site://www.surveyor.com" where "xyz" is the search topic.



Pages: 1 2 
Send Topic Print
RSSI problems (Read 15180 times)
admin
YaBB Administrator
*****




Posts: 3606
Re: RSSI problems
Reply #15 - 03/28/08 at 12:31pm
 
Make certain you click on the COM port that you're using and try the Test button first.  If that connects, you should be able to use their terminal
Back to top
 
 

SRV-1 Development Team
Surveyor Corporation
Email WWW   IP Logged
atl03001
YaBB Newbies
*




Posts: 26
Re: RSSI problems
Reply #16 - 03/29/08 at 12:42pm
 
Are you using the XCTU version 5110 (the beta release)? I was using 5.1.0, which could have been the problem, since the beta version allows for 'over the air' config. I'm asking because the ftp from digi.com is down so I can't dl 5110.
Back to top
 
 
  IP Logged
admin
YaBB Administrator
*****




Posts: 3606
Re: RSSI problems
Reply #17 - 03/29/08 at 1:46pm
 
I have an old version - 4.98 or 5.01
Back to top
 
 

SRV-1 Development Team
Surveyor Corporation
Email WWW   IP Logged
atl03001
YaBB Newbies
*




Posts: 26
Re: RSSI problems
Reply #18 - 04/05/08 at 12:33pm
 
I figured the easiest way to get RSSI is by entering the Xbee's AT command mode- it sends back a hex value of the actual loss in dB/m. I can enter this mode in HT pretty easily by entering '+++' and then the command 'ATDB', then exiting by the command 'ATCN' (or waiting 3 seconds for the timeout). However, I'm trying to do this with the firmware onboard, but I can't seem to figure out how to make it work..I made a new case and do the following:  
 
     case 'O':      //Get RSSI info
                 delayUs(100000); //No commands for 1/10 second to enter AT mode
                 uart0SendString((unsigned char *)"+++");
                 delayUs(50000);      //Delay 1/2 sec to get into AT mode
                 uart0SendString((unsigned char *)"ATDB");      //Command to get RSSI info, in db/m
                 uart0SendChar((unsigned char *)"\n");            //Press enter
                 rssi= uart0GetCh();      //Get first number, in hex
                 rssi2=uart0GetCh();      //Get second number, in hex
                 uart0SendString((unsigned char *)"ATCN"); //Exit AT mode
                 delayUs(100000);      //Delay 1/10 sec to get out of AT mode
                 uart0SendChar((unsigned char *)rssi);
                 uart0SendChar((unsigned char *)rssi2);
                 uart0SendChar((unsigned char *)" dB/m");
                 break;
 
But this doesn't seem to work: the string '+++' is displayed on the HT instead of making the Xbee go into AT mode. I also tried doing separate uart0SendChar((unsigned char *)"+") 3 different times, but got the same results..Any ideas?
Back to top
 
 
  IP Logged
admin
YaBB Administrator
*****




Posts: 3606
Re: RSSI problems
Reply #19 - 04/05/08 at 1:37pm
 
I never had much luck accessing the "+++" monitor mode from the processor, which is why the PWM RSSI signal was interesting.  In theory, it should be possible to figure out the timing of emulating a human operator, but I haven't found that to work well in practice - there seems to be a lot of sensitivity to timing of the commands and responses.
Back to top
 
 

SRV-1 Development Team
Surveyor Corporation
Email WWW   IP Logged
atl03001
YaBB Newbies
*




Posts: 26
Re: RSSI problems
Reply #20 - 04/27/08 at 11:57am
 
I finally got the RSSI info from the AT mode! I made a new case in the main.c and called this function (which I put in the utils.c file). The 'ATCN' part is commented out because I'm still trying to get the timing to work correctly. However, there is a ten second time-out (which you can modify using the AT command ATCT), so it will return to transparent mode.  
 
unsigned char ATmode() {
 
     unsigned char a, b, c, d;
     unsigned char aconv;
     unsigned char bconv;
     unsigned char result;
     
     uart0SendChar('+');
     delayUs(200000);  //delay 2/10 sec to simulate user entry
     uart0SendChar('+');
     delayUs(200000);  //delay 2/10 sec to simulate user entry
     uart0SendChar('+');
     delayUs(200000);  //delay 2/10 sec to simulate user entry
     a= uart0GetCh();
     b= uart0GetCh();
 
     if (a=='O' && b=='K')      //If AT mode is entered:
     {
 
           delayUs(1000000);      //Xbee protocol- no characters sent for 1 second
 
           uart0SendChar(0x41);      //A
           delayUs(200000);
           uart0SendChar(0x54);      //T
           delayUs(200000);
           uart0SendChar(0x44);      //D
           delayUs(200000);
           uart0SendChar(0x42);      //B
           delayUs(200000);
           uart0SendChar('\r');      //ENTER
           delayUs(200000);
           a= uart0GetCh();      //First char sent is a new line
           a= uart0GetCh();
           b= uart0GetCh();
     }
     
           /*Exit AT mode
           uart0SendChar('0x41');      //A            
           delayUs(200000);
           uart0SendChar('0x54');      //T
           delayUs(200000);
           uart0SendChar('0x43');      //C
           delayUs(200000);
           uart0SendChar('0x4E');      //N
           delayUs(200000);
           uart0SendChar('\r');
           delayUs(300000);*/
           
 
 
     if (a>0x2F && a<0x3A)
     {
           aconv= a-0x30;      //Convert number from ascii to hex equivilant
     }
     
     if (a>0x40 && a<47)
 
     {
           aconv= a-0x31;      //Convert letter A-F to hex equivilant
     }
 
     if (b>0x2F && b<0x3A)
     {
           bconv= b-0x30;
     }
     
     if (b>0x40 && b<47)
 
     {
           bconv= b-0x31;
     }
 
           result= aconv*0x10 + bconv;            //Convert ab to hex number, return result
           
           return result;      
}
Back to top
 
 
  IP Logged
Pages: 1 2 
Send Topic Print