added USB communication. compile is currently failing due to weird interrupt errors.