Derniers sujets
Mauvais firmware + hack oscilloscope Tektronix
Page 1 sur 1
Mauvais firmware + hack oscilloscope Tektronix
J'ai eu la mauvaise idée de vouloir mettre à jour le firmware de mon oscilloscope... Je relate l'aventure car au final j'y ai gagné en performance
J'utilise un oscilloscope Tektronix TDS1001C-EDU (2 voies 40MHz/500Mech/s) et j'ai raté la mise à jour du firmware en me trompant de fichier... Malgré l'indication à l'issue de la mise à jour que tout c'était bien passé, au redémarrage l'oscillo était briqué, bloqué avec les 3 leds allumées, écran bleu et commandes inopérantes...
La seule solution pour le débloquer était de reprogrammer la flash rom avec un contenu non corrompu. Ayant accès au même oscillo, j'ai donc dessoudé la rom de celui-ci, lu la mémoire et ressoudé celle-ci à la place de la rom de l'oscillo briqué. L'oscillo a repris vie et fonctionne maintenant normalement (ouf).
La rom dessoudée (c'est un boitier TSOP48 au pas de 0,5mm...):
La rom sur le programmateur (un TL866II-plus):
Où cela devient interessant, c'est qu'en faisant des recherches pour essayer de trouver le contenu original de la rom (pour éviter de devoir dessouder celle de l'oscillo ok), je suis tomber sur la possibilité d'un hack concernant les oscilloscopes équipés du même hardware (série 20xxB)
La carte doit être celle-ci:
Ce hack nécessite justement de dessouder la rom pour la modifier et changer le numéro du modèle (le bridage est uniquement logiciel pour des oscillos ayant une bande passante entre 30MHz et 200MHz)
Le hack en question: https://www.eevblog.com/forum/testgear/tektronix-tds1000b-series-hacks/
Un script en Python est même proposé pour automatiser la modification de la rom. Il y a quelques octets à modifier et surtout une cheksum à recalculer sur une zone de la mémoire.
J'ai donc essayer d'applique le script sur le contenu de la rom lue avant de reprogrammer la rom que j'avais briquée avec le mauvais firmware
Après quelques errement liés a ma méconnaissance totale du langage Python, j'ai finalement réussi à passer la rom a la moulinette du scrip
Il a fallut utiliser la version 2.7 de python et comprendre comment faire passer le nom de fichier en paramètre. En fait, j'ai placé le script renommé patch2.py et le contenu de la rom renommée rom.bin dans le dossier racine de Python 2.7, ouvert une fenêtre dos à la racine de Python 2.7 et tapé: 'python patch2.py rom.bin' (sans les apostrophes).
Le script est très légèrement modifié pour lui faire reconnaitre la rom car l'octet d'identification de mon modèle (0x28) lui était inconnu.
Le script modifié: script modifié
Pour ceux qui en aurait besoin, le contenu de la rom du TDS1001C-EDU non modifié: rom flash TDS1001C-EDU (8Mo)
Après programmation de la rom avec le contenu modifié par le script, et ressoudage de la rom, l'oscilloscope à bien redémarré et s'identifie maintenant comme un TDS2022B:
La ligne 'calibrage automatique en panne' signifie seulement qu'il faut refaire un calibrage automatique Après exécution de celui-ci (touche Utilitaire, Exécuter Auto-cal) tout rentre dans l'ordre
La visualisation d'un signal sinusoïdal à 200MHz est une formalité et l'atténuation est très faible (on est très loin des -3dB attendus à la limite de la bande passante !)
Pour attendre les -3dB, il faut monter à 316 MHz !!
Pas mal pour un oscillo avec une bande passante de 40MHz à l'origine... J'ai maintenant un 200MHz et la fréquence d'échantillonnage à quadruplé passant de 500Mech/s à 2Gech/s.
J'utilise un oscilloscope Tektronix TDS1001C-EDU (2 voies 40MHz/500Mech/s) et j'ai raté la mise à jour du firmware en me trompant de fichier... Malgré l'indication à l'issue de la mise à jour que tout c'était bien passé, au redémarrage l'oscillo était briqué, bloqué avec les 3 leds allumées, écran bleu et commandes inopérantes...
La seule solution pour le débloquer était de reprogrammer la flash rom avec un contenu non corrompu. Ayant accès au même oscillo, j'ai donc dessoudé la rom de celui-ci, lu la mémoire et ressoudé celle-ci à la place de la rom de l'oscillo briqué. L'oscillo a repris vie et fonctionne maintenant normalement (ouf).
La rom dessoudée (c'est un boitier TSOP48 au pas de 0,5mm...):
La rom sur le programmateur (un TL866II-plus):
Où cela devient interessant, c'est qu'en faisant des recherches pour essayer de trouver le contenu original de la rom (pour éviter de devoir dessouder celle de l'oscillo ok), je suis tomber sur la possibilité d'un hack concernant les oscilloscopes équipés du même hardware (série 20xxB)
La carte doit être celle-ci:
Ce hack nécessite justement de dessouder la rom pour la modifier et changer le numéro du modèle (le bridage est uniquement logiciel pour des oscillos ayant une bande passante entre 30MHz et 200MHz)
Le hack en question: https://www.eevblog.com/forum/testgear/tektronix-tds1000b-series-hacks/
Un script en Python est même proposé pour automatiser la modification de la rom. Il y a quelques octets à modifier et surtout une cheksum à recalculer sur une zone de la mémoire.
J'ai donc essayer d'applique le script sur le contenu de la rom lue avant de reprogrammer la rom que j'avais briquée avec le mauvais firmware
Après quelques errement liés a ma méconnaissance totale du langage Python, j'ai finalement réussi à passer la rom a la moulinette du scrip
Il a fallut utiliser la version 2.7 de python et comprendre comment faire passer le nom de fichier en paramètre. En fait, j'ai placé le script renommé patch2.py et le contenu de la rom renommée rom.bin dans le dossier racine de Python 2.7, ouvert une fenêtre dos à la racine de Python 2.7 et tapé: 'python patch2.py rom.bin' (sans les apostrophes).
Le script est très légèrement modifié pour lui faire reconnaitre la rom car l'octet d'identification de mon modèle (0x28) lui était inconnu.
Le script modifié: script modifié
Pour ceux qui en aurait besoin, le contenu de la rom du TDS1001C-EDU non modifié: rom flash TDS1001C-EDU (8Mo)
Après programmation de la rom avec le contenu modifié par le script, et ressoudage de la rom, l'oscilloscope à bien redémarré et s'identifie maintenant comme un TDS2022B:
La ligne 'calibrage automatique en panne' signifie seulement qu'il faut refaire un calibrage automatique Après exécution de celui-ci (touche Utilitaire, Exécuter Auto-cal) tout rentre dans l'ordre
La visualisation d'un signal sinusoïdal à 200MHz est une formalité et l'atténuation est très faible (on est très loin des -3dB attendus à la limite de la bande passante !)
Pour attendre les -3dB, il faut monter à 316 MHz !!
Pas mal pour un oscillo avec une bande passante de 40MHz à l'origine... J'ai maintenant un 200MHz et la fréquence d'échantillonnage à quadruplé passant de 500Mech/s à 2Gech/s.
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Hier à 11:27 par Silicium81
» Circuit imprimé- piste fusible
Lun 18 Nov 2024 - 13:34 par Silicium81
» conversion greencitybike monte-carlo 24V lipo ---> 36V lipo
Sam 9 Nov 2024 - 18:55 par soltes
» Remise en état d'un analyseur de spectre R3361A Advantest
Mar 29 Oct 2024 - 13:58 par Silicium81
» LCD couleur 6.5" sur R3361A
Mar 22 Oct 2024 - 18:43 par Silicium81
» Un BMS Home made
Lun 14 Oct 2024 - 16:31 par Silicium81
» Dell G3 3779 qui ne démarre plus [résolu]
Dim 29 Sep 2024 - 14:37 par Snickers
» Chargeur batterie universel DC/DC 150W
Mar 24 Sep 2024 - 18:20 par Silicium81
» Protection BMS contre les surtensions sur circuit de charge.
Ven 16 Aoû 2024 - 14:35 par legraybat