added generic version (no AVR control)