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
Mer 3 Avr 2024 - 11:51 par Silicium81
» radiocommande dji phantom 3 (GL300C) qui ne gère plus correctement la batterie [réparé]
Ven 15 Mar 2024 - 14:00 par Silicium81
» Colle efficace pour recoller les semelles de chaussure
Sam 2 Mar 2024 - 16:25 par Silicium81
» Modification temporisateur H3Y-2
Jeu 29 Fév 2024 - 13:19 par Maxime
» Réparation APN Sony RX100M3
Mar 20 Fév 2024 - 11:51 par Silicium81
» Recharge Dell G3 3779 via Thunderbolt (USB-C)
Mar 16 Jan 2024 - 17:26 par Silicium81
» Connaitre le niveau d'eau dans son puit avec domoticz et ESP Easy
Lun 11 Déc 2023 - 22:10 par Snickers
» Remise en état d'un générateur RF HP8640B
Jeu 7 Déc 2023 - 13:29 par Renaud
» Airzound défectueux
Mar 5 Déc 2023 - 23:30 par Silicium81