Apenas hoy empecé a leer sobre pinguino y buscando temas aquí en el foro encontré este.
Si quieres usar el mismo bootloader que pinguino (basado en el proyecto PUF), debes indicarle al programador que coloque el código .hex que cargues en la dirección 0x2000, ya que el bootloader de pinguino está desde la 0x0000 a 0x1fff, y manda a la dirección 0x2000 para ejecutar el código del usuario.
Por otro lado, pinguino genera archivos .hex (igual que arduino, pero no he revisado en dónde los guarda este último).
Por último, creo que lo que buscas es simplemente un bootloader para no necesitar de programador, busca aquí en el foro, hay algunos proyectos interesantes de usaurios usando el bootloader de Microchip, o algún otro.