initial pull request

Upgraded opts parse to argparse.  Added firmware upgrade logic.