stk500 implementation