Il n'y a aucune raison que cela ne fonctionne pas.
La "dite" programmation consiste en deux actions bien différentes. Pour simplifier la vie arduino les a rassemblée dans un programme paquet : "Graver la séquence d'initialisation".
Action 1 :
Configuration des registres : sortie usine le micro est configuré sur son horloge interne à 8MHz avec un diviseur par 8, c'est à dire qu'il tourne à 1MHz (C'est pour simplifier les tests de fabrication).
Il faut le passer en oscillateur externe et déactiver le diviseur par 8.
Action2 (indépendante de l'action 1)
A la sortie de l'action1 le micro doit toujours être programmé en mode ISCP. Pour permettre la programmation par l'interface série, qui est quand même plus simple, il faut introduire un bout de programme dans une zone réservée de la flash : le bootloader.
Derrière les mots magiques il y a simplement un programme qui transforme l'atmega328p en programmeur comme le bien connu USBasp qui lui même utilise un autre "petit" avr.
Les deux actions sont réalisées en utilisant l'utilitaire écrit par Atmel : avrdude
Compatibilité :
UNO, nano , mini-pro = même microcontrôleur Atmega328p donc ces cartes sont compatibles.
Mega(atmega2560) il ne devrait pas y avoir de soucis, juste contrôler que le programme utilise les bonnes pins. L'ISCP n'est pas forcément sur les mêmes pins entre les deux micros.
Sinon un programmeur USBasp ou TinyUSB coûte moins de 2 €. Ce prix comprend le câble en nappe 10 points et l'adaptateur pour passer de 10 points à 6 points.
Quand j'ai voulu faire cette opération je n'ai pas hésité une minute: entre faire un câblage fougnateux et prendre une solution propre j'ai pris la solution USBasp