Page 1 sur 3

[Ignitech] ┌┘ Acquisition de données └┐

Posté : 13 mai 2020, 15:25
par seb42
C'est dommage que je lise ce post un peu tard, mais j'ai fait un peu de reverse engineering sur le protocole de communication RS232 avec l'Ignitech !
On peut facilement refaire un petit bout de logiciel pour récupérer TPS, régime moteur, tension.
A partir de là on peut enregistrer tout cela en temps réel avec un PC ou toute autre carte disposant d'une RS232.
J'ai pas encore poussé à étudier la partie écriture des paramètres, mais avec un peu de patience c'est réalisable.

Config série : 57600 8 BITS 1 STOP Pas de parité (pas de handckeck)
Le protocole est un protocole binaire question/réponse. Il faut analyser les trames pour essayer de trouver les valeurs recherchées
Typiquement pour récupérer les valeurs en temps réel (échantillonnage 100ms voir moins si on veut) :

Le PC envoie une trame de 102 octets totalement vide (0) avec le 1er octect à 0x30 (hexa)
30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

L'Ignitech répond avec une trame de 102 octets commençant par 0xB0
B0 A3 08 03 00 E3 38 05 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BC BD BC BD 01 01 71 71 00 00 1D 00 1D 00 00 00 00 00 00 00 00 00 00

En cherchant bien et en jouant avec le régime moteur on arrive à extirper les valeurs attendues : exemple
38 05 Hexa => Tension d'alimentation => 14 341 mV => 14,341 V

Je peux pousser le truc... si certain se sente intéressé !

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 13 mai 2020, 15:28
par poulpito
si tu arrive à faire un dataloger avec un tit arduino ca peut être vachement sympa :)
pas certain que ca intéresse grand monde mais pourquoi pas j'ai jamais pris le temps

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 13 mai 2020, 15:34
par TiTi
Ça peut être intéressant d'avoir un boîtier à dispo (en location pour l'amortir par exemple) pour que chacun puisse faire un run et ensuite l'analyser comme j'ai fait.
Surtout si le truc se fait tout seul !! Moi j'ai rentré plus de 1000 paires de points à la main !!!

Après reste à savoir bidouiller les courbes... Surtout le faire sans avoir un banc d'essai à dispo :mrgreen:

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 13 mai 2020, 22:50
par marcopolo
seb42 a écrit :C'est dommage que je lise ce post un peu tard, mais j'ai fait un peu de reverse engineering sur le protocole de communication RS232 avec l'Ignitech !
On peut facilement refaire un petit bout de logiciel pour récupérer TPS, régime moteur, tension.
A partir de là on peut enregistrer tout cela en temps réel avec un PC ou toute autre carte disposant d'une RS232.
J'ai pas encore poussé à étudier la partie écriture des paramètres, mais avec un peu de patience c'est réalisable.

Config série : 57600 8 BITS 1 STOP Pas de parité (pas de handckeck)
Le protocole est un protocole binaire question/réponse. Il faut analyser les trames pour essayer de trouver les valeurs recherchées
Typiquement pour récupérer les valeurs en temps réel (échantillonnage 100ms voir moins si on veut) :

Le PC envoie une trame de 102 octets totalement vide (0) avec le 1er octect à 0x30 (hexa)
30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

L'Ignitech répond avec une trame de 102 octets commençant par 0xB0
B0 A3 08 03 00 E3 38 05 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BC BD BC BD 01 01 71 71 00 00 1D 00 1D 00 00 00 00 00 00 00 00 00 00

En cherchant bien et en jouant avec le régime moteur on arrive à extirper les valeurs attendues : exemple
38 05 Hexa => Tension d'alimentation => 14 341 mV => 14,341 V

Je peux pousser le truc... si certain se sente intéressé !
Oui oui très intéressant :bravo

Génial pour la tension batterie :ouioui

Et le régime moteur, tu l'as trouvé ?


Continue :youpiii

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 10:48
par seb42
Oui j'ai pas mal avancé sur le sujet. J'ai trouvé l'algo de ckecksum en fin de trame du protocole pour vérifier la validité des données envoyées : c'est un simple Checksum 8Bit XOR
J'arrive à extraire :
- RPM régime moteur
- Tension batterie
- TP mais je dois vérifier en mettant un potentiomètre car j'ai une Transalp de 93 sans...

Exemple d'une Trame complète :
B0 F7 07 02 00 19 39 06 00 00 00 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 F1 FF FF 01 01 70 70 00 00 1D 00 1D 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5B CD

B0 (Hex) = id commande
F7 07 = Rpm = 2039 tr/min
02 00 = TP Je pense que c le TP mais je dois vérifier
19 39 = Tension = j'avais fait une erreur sur mon 1er message = 14 617 mV
CD = A la fin est le checksum 8 Bit XOR

Je pense qu'on a l'avance ici : 70 70 mais je dois affiner pour comprendre le codage
Ensuite j'ai une quantité de données que je dois analyser plus finement. Je pense que l'on doit retrouver l'avance calculée par le CDI avec la courbe, et les quelques entrées discrètes.
J'ai aussi j'étais un coup d’œil aux trames envoyées lorsque l'on vient modifier les paramètres... mais je me demande ca un sens que je creuse sur ce sujet.

Je sors actuellement ca sur mon bout de soft :

Démarrage :
Voltage: 11.28, Rpm 0, Tps 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Voltage: 11.23, Rpm 0, Tps 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Voltage: 11.23, Rpm 0, Tps 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Voltage: 12.68, Rpm 2589, Tps 3 10 10 10 10 1 1 74 75 0 0 20 0 20 0
Voltage: 13.43, Rpm 1719, Tps 3 30 31 30 31 1 1 6E 6E 0 0 1E 0 1F 0
Voltage: 12.63, Rpm 1249, Tps 3 46 47 46 47 1 1 6E 6E 0 0 1E 0 1F 0
Voltage: 13.60, Rpm 1616, Tps 3 5F 60 5F 60 1 1 6E 6E 0 0 1D 0 1C

Accélération :
Voltage: 14.13, Rpm 1972, Tps 3 F0 F0 FF FF 1 1 6F 6F 0 0 1E 0 1F 0
Voltage: 14.08, Rpm 1989, Tps 3 F0 F0 FF FF 1 1 70 6F 0 0 1E 0 1F 0
Voltage: 14.03, Rpm 3142, Tps 3 F0 F1 FF FF 1 1 78 79 0 0 1E 0 1E 0
Voltage: 14.03, Rpm 3237, Tps 3 F0 F0 FF FF 1 1 7A 79 0 0 1D 0 1D 0
Voltage: 13.97, Rpm 3413, Tps 2 F0 F1 FF FF 1 1 7B 7B 0 0 1E 0 1E 0
Voltage: 14.03, Rpm 3638, Tps 4 F0 F0 FF FF 1 1 7D 7C 0 0 1E 0 1D 0
Voltage: 14.03, Rpm 3711, Tps 3 F0 F0 FF FF 1 1 7D 7D 0 0 1E 0 1D 0
Voltage: 13.97, Rpm 3780, Tps 3 F0 F0 FF FF 1 1 7E 7E 0 0 1E 0 1E 0
Voltage: 14.03, Rpm 3806, Tps 3 F0 F0 FF FF 1 1 7E 7E 0 0 1E 0 1E 0
Voltage: 14.03, Rpm 3840, Tps 3 F1 F0 FF FF 1 1 7E 7E 0 0 1E 0 1E 0
Voltage: 13.97, Rpm 3870, Tps 2 F0 F0 FF FF 1 1 7E 7E 0 0 1E 0 1E 0
Voltage: 14.13, Rpm 2239, Tps 2 F0 F1 FF FF 1 1 71 71 0 0 1D 0 1D 0
Voltage: 14.13, Rpm 2259, Tps 2 F1 F0 FF FF 1 1 72 71 0 0 1D 0 1D 0
Voltage: 14.08, Rpm 2197, Tps 3 F0 F0 FF FF 1 1 71 71 0 0 1D 0 1D 0
Voltage: 14.03, Rpm 2267, Tps 2 F0 F0 FF FF 1 1 72 72 0 0 1D 0 1D 0
Voltage: 14.13, Rpm 2280, Tps 3 F0 F0 FF FF 1 1 72 72 0 0 1D 0 1D 0
Voltage: 14.13, Rpm 2258, Tps 3 F0 F0 FF FF 1 1 72 71 0 0 1D 0 1D 0

Arret avec passage de la 1er et béquille :pasmafote

Voltage: 13.97, Rpm 2356, Tps 2 F0 F0 FF FF 1 1 72 72 0 0 1D 0 1D 0
Voltage: 13.97, Rpm 2343, Tps 3 F0 F0 FF FF 1 1 72 72 0 0 1E 0 1E 0
Voltage: 13.97, Rpm 2327, Tps 3 F0 F1 FF FF 1 1 72 72 0 0 1E 0 1E 0
Voltage: 13.86, Rpm 2339, Tps 2 F1 F0 FF FF 1 1 72 72 0 0 1E 0 1E 0
Voltage: 13.33, Rpm 551, Tps 24 F0 F0 FF FF 1 1 6E 6E 0 0 1B 0 34 0
Voltage: 12.57, Rpm 0, Tps 24 0 0 0 0 0 0 0 0 0 0 1B 0 34 0
Voltage: 12.36, Rpm 0, Tps 24 0 0 0 0 0 0 0 0 0 0 1B 0 34 0
Voltage: 12.09, Rpm 0, Tps 4 0 0 0 0 0 0 0 0 0 0 1B 0 34 0
Voltage: 12.14, Rpm 0, Tps 3 0 0 0 0 0 0 0 0 0 0 1B 0 34 0
Voltage: 12.04, Rpm 0, Tps 4 0 0 0 0 0 0 0 0 0 0 1B 0 34 0

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 12:25
par seb42
Je viens de trouver l'avance cachée dans les données :
Voltage: 14.13, Rpm 2239, Tps 2 F0 F1 FF FF 1 1 71 71 0 0 1D 0 1D 0
71 71 (Hexa) : elle est ici -> Décimal = 113 °. L'astuce est de soustraire 100° (pourquoi ?? :idea :idea :idea ) soit 13° d'avance à 2239 Rpm
On faisant une petite régression linéaire sur la courbe d'avance saisie, on retombe sur la bonne avance.

Pour vérif : (Orange RPM, Bleu Avance en °)
Image

Question : pourquoi 2 avances ?

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 12:35
par Rolibulle
Cylindre AV et AR ?

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 13:30
par Flan
Mon grain de sel: Ce topic frise le génie :bravo

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 14:10
par stefter
p'tet crée un nouveau topic car là on s'eloigne de l'installation!

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 14:44
par TiTi
Et est-ce qu'on sépare la programmation et l'analyse des données de Seb ?

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 16:39
par seb42
poulpito a écrit :si tu arrive à faire un dataloger avec un tit arduino ca peut être vachement sympa :)
pas certain que ca intéresse grand monde mais pourquoi pas j'ai jamais pris le temps
C'est un bonne idée. Si tu as une carte avec un port série et la possibilité de faire du stockage sur une carte SD ou autre.
Perso je n'ai pas ce genre de matos ! Mais si tu me le prêtes je te fais le petit soft en quelques heures ! :ouioui :ouioui :ouioui
Le plus long était d'analyser les trames pour retrouver les valeurs... j'ai tout décodé sur les trames de monitoring. J'ai :
Tension, RPM, TP (validé), Avance 1, Avance 2, Max Avance 1 et 2, Présence capteur 1 et 2
De quoi faire un logger pour générer vos maps :)
stefter a écrit :p'tet crée un nouveau topic car là on s'eloigne de l'installation!
Pas faux !! :pasmafote :pasmafote
TiTi a écrit :Et est-ce qu'on sépare la programmation et l'analyse des données de Seb ?
Euh... je vous laisse décider... je suis un peu tout novice ici :? :? :-)

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 19:34
par TiTi
Ne pas oublier que sur TCI donc bécanes à partir de 96 et avec TPS il n'y a plus qu'un seul capteur d'allumage au lieu de 2 !

Re: ┌┘ Installation d'un CDI programmable IGNITECH └┐

Posté : 14 mai 2020, 20:46
par Flan
seb42 a écrit :
TiTi a écrit :Et est-ce qu'on sépare la programmation et l'analyse des données de Seb ?
Euh... je vous laisse décider... je suis un peu tout novice ici :? :? :-)
Oui! Mais on peut mettre en post 1 du topic d'analyse des données un lien vers ce topic ci (et inversement) :ouioui

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 18 mai 2020, 14:40
par TiTi

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 06 juin 2020, 23:51
par TiTi
Alors Seb, tu arrives à progresser ?

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 09 juin 2020, 09:05
par seb42
Et bien, je pense avoir fait le tour de la question. J'ai accès à toute les informations que je peux logger et sauvegarder (voir mes posts plus haut)
Si vous trouvez une utilité à avoir un logger je peux développer un truc :
- Sur PC : il suffit juste de le brancher sur la liaison série et de mettre le pc portable dans le top case ou autre
- Arduino : C'est plus sympa avec une petite carte arduino glissée sous la selle. Il faut une carte arduino avec un module SDCard pour stockage des données et porte série. Je n'ai pas ca sous la main mais si quelqu'un l'a, je peux faire le soft assez rapidement.
- Raspberry Pie : j'en ai une qui traîne. Je dois pouvoir bidouiller un truc. J'ai aussi des vieilles cartes au boulot qui pourrait faire l'affaire...

La question est : en avez vous l'utilité ? Si oui je m'y colle avec plaisir !

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 09 juin 2020, 09:36
par TiTi
Comme je le disais ce serait un module itinérant (en "location") pour tous ceux qui ont un Ignitech/TCI et veulent travailler leurs courbes.

Mise en place bu boîtier, run type de pilote, étude des données pour affiner les courbes.

Il faut obtenir ce genre de graphique :

Image

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 10 juin 2020, 22:59
par marcopolo
Moi je veux bien un bout de code sur Arduino pour afficher les valeurs tension batterie, tours/min, avance
:bravo

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 10 juin 2020, 23:38
par Alain22
tout le monde n''est pas informaticien :roll:

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 11 juin 2020, 08:28
par seb42
marcopolo a écrit :Moi je veux bien un bout de code sur Arduino pour afficher les valeurs tension batterie, tours/min, avance
:bravo
Tu as une carte arduino ? tu as quel modèle ?

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 11 juin 2020, 08:30
par TiTi
Alain22 a écrit :tout le monde n''est pas informaticien . créez un nouveau forum informatique :roll:
Ça reste moto. Ici pour programmer de la meilleure façon l'Ignitech. Marco c'est très probablement pour son tripmaster maison.

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 11 juin 2020, 13:30
par marcopolo
seb42 a écrit :
marcopolo a écrit :Moi je veux bien un bout de code sur Arduino pour afficher les valeurs tension batterie, tours/min, avance
:bravo
Tu as une carte arduino ? tu as quel modèle ?
Oui la Nano


voilà mon tripmaster, graisseur de chaîne ...

Image

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 11 juin 2020, 15:33
par seb42
marcopolo a écrit :
seb42 a écrit :
marcopolo a écrit :Moi je veux bien un bout de code sur Arduino pour afficher les valeurs tension batterie, tours/min, avance
:bravo
Tu as une carte arduino ? tu as quel modèle ?
Oui la Nano
voilà mon tripmaster, graisseur de chaîne ...
C'est tout beau :) Bien joué !
J'ai regardé le schéma électronique de la nano : il y a un port série avec un FTDI derrière pour se brancher en USB sur le PC. Ce n'est donc pas utilisable en état pour se brancher sur l'Ignitech.
Si tu n'utilises pas le port série dans ton soft, on peut l'utiliser mais il faut remettre un max232 pour passer du TTL en niveau de sortie RS232 pour aller sur l'ignitech.

Autre solution, on peut apparemment utiliser d'autres broches pour les faire fonctionner en UART en utilisant la softwareSerial
https://www.arduino.cc/en/Reference/softwareSerial

Je vais peut être en acheter une de carte. Une nano ou une Uno !
J'ai trouvé ca !
https://www.amazon.fr/Elegoo-ATmega328P ... r_1_1_sspa

Si on le fait, on peut greffer une carte SD ensuite pour logger les données et mettre au point nos courbes d'avance !

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 11 juin 2020, 16:42
par Guigz
J'ai des cartes arduino, un peu toutes les tailles, Uno, nano et micro , je vous montrer ce que j'ai ce soir :-D

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 11 juin 2020, 17:12
par TiTi
Faut que je me refasse une salve d'acquisition avec des branchements plus corrects !

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 11 juin 2020, 18:11
par poulpito
tu pourrai nous détailler ton analyse de trame complète ?
sur la fin tu n'étais pas encore certain des avances :bravo

sur les bits de fin (F0 F0 FF FF 1 1 6E 6E 0 0 1B 0 34 0 par ex) tu dois avoir le status des :
3 ouput multifonction
status des 2 pickup coil input
Status des 2 input multifonction
Servo Mesured (si actif)

Sur une transalp
Input1= rien
Input2= béquille/neutre enfin tout ce qui empêche de démarrer
pas de servo
Output1/2/3=rien

et sinon oui l'astuce la plus simple sous arduino c'est le software serial sachant que l'autre port on le garde intacte si on programmer sans soucis en gardant l'arduino branché
mais on peut avoir des soucis donc le mieux c'est avoir une prise DB9, raccordée aux ligne serial de l'arduino (UART TX/RX et on oublie pas de croiser)

Pour la carte SD, n'importe quel module à quelques centimes passe ^^ il faut juste avoir un port SPI (MOSI/MISO) sur l'arduino puisque c'est la dessus que ca se branche. :ouioui

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 11 juin 2020, 19:02
par Guigz
Voilà ce que j'ai :

https://www.casimages.com/i/20061107115830789.jpg.html

Si y'a besoin n'hésitez pas !

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 12 juin 2020, 12:47
par seb42
poulpito a écrit :tu pourrai nous détailler ton analyse de trame complète ?
sur la fin tu n'étais pas encore certain des avances :bravo
Voici en détail et pour rappel :

Config série : 57600 8 BITS 1 STOP Pas de parité (pas de handckeck)

Pour que l'Igniteck donne les mesures de monitoring il faut lui envoyer en 1er une trame de 102 Octets (et la renvoyer bien sur de manière cyclique) :
Le PC envoie une trame de 102 octets totalement vide (0) avec le 1er octect à 0x30 (hexa) et biensur le checksum à la fin qui est dans ce cas 0xCF (hexa)
Le checksum est un simple XOR sur les données.

L'Ignitech répond avec une trame de 102 octets commençant par 0xB0 et se terminant par le checksum qui sera à calculer pour vérifier qu'il n'y a pas d'erreur.
Ensuite on décode chaque octet reçu. Voici le codage que j'ai fini par déduire.

Colonne 1 : c'est le numéro d'octet dans la trame donc de 0 à 101 pour ceux qui suivent. Il y a des trous, car certains ne servent pas.
Colonne 2 : une description de la signification de la donnée

0 Identifiant de la commande (toujours 0xB0 dans notre cas)
1 RPM Vitesse de rotation LSB
2 RPM Vitesse de rotation HSB
3 Lecture TPS LSB (valeur brute adc)
4 Lecture TPS HSB (valeur brute adc)
5 Tension d'alimentation mV LSB
6 Tension d'alimentation mV HSB
37 Kill Switch No=0 Yes>0
38 Retard No=0 Yes>0
39 Start Limiter No=0 Yes>0
40 Clutch Master No=0 Yes>0
41 TP En pourcentage 0-100%
42 2 Special out No=0 Yes>0
43 1 Special out No=0 Yes>0
48 Capteur 1 d'allumage 0=No Signal
49 Capteur 2 d'allumage 0=No Signal
50 Avance 1 calculée soustraire 100°
51 Avance 2 calculée soustraire 100°
54 Avance Maximum sur cylindre 1 LSB
55 Avance Maximum sur cylindre 1 HSB
56 Avance Maximum sur cylindre 2 LSB
57 Avance Maximum sur cylindre 2 HSB
62 RPM Passe en rouge >0 (à mon avis si supérieur au limiter)
63 Motor off/on 0=Off 1=On
66 Input 1 : Open=0 Grounded>0
67 Input 1 : Open=0 Grounded>0
68 3 Special out No=0 Yes=1
69 CKPS 1 Polarity 0=Positive 1= Negative
70 CKPS 2 Polarity 0=Positive 1= Negative
71 Erreur capteur 1/2 à analyser bit à bit (TODO)
99 >1 Indique une erreur de programmation des données
100 Version soft ignitech
101 Checksum XOR

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 12 juin 2020, 12:49
par seb42
Guigz a écrit :Voilà ce que j'ai :

https://www.casimages.com/i/20061107115830789.jpg.html

Si y'a besoin n'hésitez pas !
Merci c'est sympa, tu as de quoi faire.
J'ai un copain qui va m'en prêter une (uno) ! Il en a 3 donc je vais pouvoir me débrouiller !

Re: [Ignitech] ┌┘ Acquisition de données └┐

Posté : 12 juin 2020, 12:49
par seb42
poulpito a écrit : et sinon oui l'astuce la plus simple sous arduino c'est le software serial sachant que l'autre port on le garde intacte si on programmer sans soucis en gardant l'arduino branché
mais on peut avoir des soucis donc le mieux c'est avoir une prise DB9, raccordée aux ligne serial de l'arduino (UART TX/RX et on oublie pas de croiser)

Pour la carte SD, n'importe quel module à quelques centimes passe ^^ il faut juste avoir un port SPI (MOSI/MISO) sur l'arduino puisque c'est la dessus que ca se branche. :ouioui
On est d'accord ;)