Networking Education

One thing that I noticed after attending a week 0 (and seeing it last year at CTTD) is having the programming team trained on networking basics and troubleshooting networking problems. (ie. troubleshooting network connectivity issues when attempting to connect to the robot, pushing code to the robot with problematic computers – We had 4646 SSH compiled code over to the RoboRio because our programmer’s computer doesn’t have a native ethernet port and couldn’t USB over :P)
We are a student driven team, so being able to provide training like this BEFORE issues happen would be nice so students can troubleshoot issues with minimal intervention by us mentors. Has anyone else done this or have ideas on what to educate them on?

Thanks!

You’ve mentioned some good ideas already. I am a software engineer by trade and I regularly find FRC networking issues to be frustrating :rolleyes:

I think you definitely want to cover the basics of IP networking, things like:

  • IP addresses (and the specific 10.TE.AM.X ones you need to use)
  • DHCP versus static IPs, and how to configure them on the computers you use including your driver station
  • how to configure networking on your PCs, enable/disable adapters, enable/disable firewalls and VPN
  • how to ping, ssh, ftp
  • how to use the RoboRio web interface
  • switches, hubs, routers, APs, and how the robot radio works, both off-season, in the pits, and within FMS

You can go through specific scenarios that are likely to come up in the pits, like:

  • I reflashed the robot radio and nothing connects
  • I can’t access the RoboRio web interface
  • I can’t deploy code from Eclipse to the RoboRio
  • The Driver Station PC can’t connect to the RoboRio

Some of the preventative measures I would take include:

  • make sure that your programming laptop has an Ethernet port :smiley:
  • bring extra Ethernet and USB cables into your pit
  • bring copies of the FRC software installers including the 2017 updates, firmware files, etc.

Reading the FMS whitepaper wouldn’t hurt, in addition to the above topics.

Thanks for the tips! I’m adding them to my list to go through with our programming team. As far as scenarios go, we have had the last 2 happen at the last 2 events we have been too (and of course our lead programming mentor isn’t there, so I was left to troubleshoot to the best of my networking abilities which I’ve learned through several cyber defense competitions).

Thanks for this suggestion too! We don’t have as much of an issue with FMS (since we have FTAs to assist) than we do trying to do stuff in our pit/practice field when we’re off FMS.

Packet tracing is also great when debuging connections with coprocessors an/or custom components.

Set up Cheesy Arena and have a play around with it. It’ll give you the opportunity to essentially learn the ins and outs of how FMS works.

Both are good ideas down the road, however I’m just wanting to get them started to a point of where they can troubleshoot issues in the pit on their own (ie. issues with pushing code or issues with testing code on the robot)

Thanks for your help!

I cannot stress error message literacy enough. Wifi/cell service isn’t always available at events (and hotel wifi is notoriously awful). Make sure you know what all the status messages you see during deployment mean, so that if something fails, you have an idea of what part is failing. Learn to read errors given to you by the RoboRIO, DS, and any other computer software/equipment you use. Keep a log of errors you see from here forward, write down the message you get, what it means, and how you fixed it. Also do this for when things go wrong with hardware! If your code is giving you really weird output and it turns out that something just wasn’t plugged in/was plugged in wrong, write down the type of weird output you got and what was wrong mechanically/how to fix it in case it happens again. Being familiar with error messages allows you to quickly and easily solve the problem with minimal googling:)