This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
lab10 [2016/01/12 13:56] dan.tudose [Building] |
lab10 [2018/01/25 19:03] (current) narcisa_ana.vasile [Building] |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| SLIP is the " | SLIP is the " | ||
| - | Contiki uses SLIP to bridge the wireless IPv6 network onto a PC via a USB connection. So with your Zigduino | + | Contiki uses SLIP to bridge the wireless IPv6 network onto a PC via a USB connection. So with your Sparrow |
| - | On Zigduino, there is only one UART exposed. This means we have to choose between reading debug messages and connecting to our PC via SLIP. This change is exposed by adding " | + | On Sparrow, there is only one UART exposed. This means we have to choose between reading debug messages and connecting to our PC via SLIP. This change is exposed by adding " |
| - | Speaking of the PC side... In order for SLIP to work, something on the host PC has to be listening. Using Instant Contiki, the ' | + | Speaking of the PC side... In order for SLIP to work, something on the host PC has to be listening. Using Instant Contiki, the ' |
| ===== Building ===== | ===== Building ===== | ||
| Line 22: | Line 22: | ||
| < | < | ||
| $ cd examples/ | $ cd examples/ | ||
| - | $ make TARGET=avr-zigduino | + | $ make TARGET=sparrow |
| $ make WITH_SLIP=1 WITH_WEBSERVER=0 -j10 | $ make WITH_SLIP=1 WITH_WEBSERVER=0 -j10 | ||
| $ make upload AVRDUDE_PORT=/ | $ make upload AVRDUDE_PORT=/ | ||
| Line 55: | Line 55: | ||
| fdfd:: | fdfd:: | ||
| - | It's helpful that tunslip6 is putting through the debug messages from the Zigduino. So we can see the boot-up process complete successfully. | + | It's helpful that tunslip6 is putting through the debug messages from the Sparrow. So we can see the boot-up process complete successfully. |
| + | |||
| + | ===== Ping ===== | ||
| + | We should now be able to ping the border router from the host PC. First, we can ping its auto-configured aaaa::/64 address | ||
| + | < | ||
| + | PING aaaa:: | ||
| + | 64 bytes from aaaa:: | ||
| + | 64 bytes from aaaa:: | ||
| + | 64 bytes from aaaa:: | ||
| + | |||
| + | ===== Nodes Beyond the Border ===== | ||
| + | |||
| + | We want to reach more nodes than just the one connected. So let's add a route on the host PC. This "route add" command tells Ubuntu that whenever it wants to reach a node whose IP starts with fdfd::/64, it can send that through the tun0 interface. | ||
| + | |||
| + | < | ||
| + | $ sudo route -A inet6 add fdfd::/64 dev tun0 | ||
| + | $ netstat -r6 Kernel IPv6 routing table | ||
| + | Destination | ||
| + | aaaa::/ | ||
| + | fdfd::/ | ||
| + | |||
| + | Now that we have the route set up, we can put another node on the network, and ping that. | ||
| + | |||
| + | Put anything that speaks RPL on fdfd::1, for example rpl-collect/ | ||
| + | |||
| + | < | ||
| + | $ make TARGET=sparrow savetarget | ||
| + | $ make udp-sender.sparrow.u AVRDUDE_PORT=/ | ||
| + | |||
| + | Now see that we can ping it ok: | ||
| + | |||
| + | < | ||
| + | 64 bytes from fdfd::1: icmp_seq=1 ttl=64 time=67.8 ms | ||
| + | 64 bytes from fdfd::1: icmp_seq=2 ttl=64 time=66.3 ms</ | ||
| + | |||
| + | ====== Using the Webserver ====== | ||
| + | |||
| + | From a PC on our network, we want to view a web page served up by any node on our wireless IP network. This will allow us to look at sensor values or other data stored there. | ||
| + | |||
| + | ===== Building ===== | ||
| + | |||
| + | We'll put the rpl-border-router (with no webserver) on the node connected to the PC, and talk SLIP over USB between it and the PC. The other node will run webserver-ipv6 with ' | ||
| + | |||
| + | < | ||
| + | $ make TARGET=sparrow savetarget | ||
| + | $ make upload WITH_WEBSERVER=0 WITH_SLIP=1 AVRDUDE_PORT=/ | ||
| + | $ cd examples/ | ||
| + | $ make TARGET=sparrow savetarget | ||
| + | $ make WITH_WEBSERVER=webserver-nano -j10 | ||
| + | $ make upload login WITH_WEBSERVER=webserver-nano AVRDUDE_PORT=/ | ||
| + | |||
| + | ===== Running ===== | ||
| + | |||
| + | This has to be done in another window, because "make login" above took over that window. Here we will bring up the tunnel, and try everything out, one thing at a time. Ping the router, ping the webserver, do the ' | ||
| + | |||
| + | < | ||
| + | $ sudo route -A inet6 add fdfd::/64 dev tun0 | ||
| + | $ ping6 fdfd::3 $ ping6 fdfd::1 | ||
| + | $ curl -g " | ||
| + | |||
| + | Here's what success looks like! | ||
| + | |||
| + | < | ||
| + | |||
| + | Plus here's the Wireshark summary of this conversation: | ||
| + | < | ||
| + | | ||
| + | 1 0.000000 | ||
| + | 2 0.242296 | ||
| + | 3 0.242351 | ||
| + | 4 0.242589 | ||
| + | 5 0.630341 | ||
| + | 6 0.630388 | ||
| + | 7 0.898326 | ||
| + | 8 0.898360 | ||
| + | 9 1.258323 | ||
| + | 10 1.258369 | ||
| + | 11 1.550390 | ||
| + | 12 1.550426 | ||
| + | 13 1.842334 | ||
| + | 14 1.842364 | ||
| + | 15 2.098333 | ||
| + | 16 2.098508 | ||
| + | 17 2.334295 | ||