About
The
SRV-1 is a very nice blackfin platform with a camera, and wifi. They goal is to get something like the Myro python library embedded onto the SRV-1 so that users can program their robot in python rather than control it wirelessly.
Wireless
The SRV-1 runs as an ad-hoc device and is running a DHCP server. I haven't had any luck connecting to it from a linux box but it was pretty straight forward with OS X. By selecting the SRV1 device and waiting a minute for the networking to update (grab a IP address, updating the routing table...) I am able to ping and telnet to port 10001. My radio wasn't configured correctly due to some testing Surveyor was doing before shipping to me but my arp table showed me a device at 192.168.0.15. If you are having trouble finding your SRV-1's IP address this is a good place to look.
u-boot
In order to get linux up and running one must first have u-boot in place. Luckily Surveyor had already put u-boot on my board but I couldn't figure out how to launch it. Every time I connected to the controller I found that I was in the SRV-1 firmware. Talking to Surveyor illuminated my dim mind. The board was setup with u-boot which would auto-launch the SRV-1 firmware after the typical 5 sec timeout and one can reset the blackfin by shorting pins 1 and 2 on the J1 header.
it took me a little bit to connect to the device after power up so I was missing the timeout and the SRV-1 firmware was launching, however, now I am able to establish my telnet session, reset the blackfin and interrupt u-boot in time to prevent the autoboot. From here I need serial tools on my host computer to upload the uClinux image to the SRV1 via XMODEM. Darwinports has the
lrzsz tools so once those are installed I'll move on to booting linux.
The magic file transfer procedure turned out to be:
- Telnet to the SRV-1 on port 10001
- Reset SRV-1 and interrupt u-boot to get to u-boot console
- loady to tell u-boot to expect a YMODEM transfer
- Quit telnet with ^] then quit to fully break the tcp connection to the SRV-1
- From the host issue something like sx -b --tcp-client 192.168.0.15:10001 --ymodem uImage.ext2
- -k is a valid option (according to help) but sx would not take it
- --tcp-client wasn't in the help menu but is a valid option
uClinux
There has been a bit of head banging trying to get all my ducks in a row but the stars have aligned and I got uClinux up. My radio was setup with a 115.2kbaud connection but the current uClinux image is set to run at 57.6kbaud so once you start linux you corrupt the console. I tried a few things to reconcile this but in the end bit the bullet, and reset everything to run at 57.6kbaud. This was a bit tricky and I can see people having trouble with it so here's what worked from me:
- Get to u-boot console
- Change baud rate to 57600: set baudrate 57600
- This tells you to change your baud rate then press enter
- Point your web browser (or telnet to port 9999) to the SRV-1
- Change the Channel 1 baudrate to 57600 and Apply Settings
- Again telnet to the SRV-1 on port 10001 and press enter
- Remember to save to write the new baudrate environment variable to flash so its there when you reboot the SRV-1
That should set everything up to run at 57600. Its takes a bit longer to download the uClinux image but everything works well. Now that I have linux running (and python 2.4.4) I can start playing around with the system a bit more...
--
ChristopherPepe - 07 Dec 2007