Ultrasonic Resurrection: Replacing the STC Microcontroller with ATmega328P
What happens when a VEVOR ultrasonic cleaner goes silent? I decided to bring it back to life, not by fixing it, but by hacking it. In this project, I replaced the dead STC 8H1K24 microcontroller with a trusty ATmega328P running at 16MHz, and reused the original control panel (buttons + display) to build a fully working system again. A deep dive into reverse engineering, firmware rebuilding, and hardware hacking, Arduino47 style !
Cézar1 – Display Handling (Mother Board Reverse Engineering)
Lien vidéo de test
https://youtu.be/sUoeD4W6efY
//FR
Un ami est venu me voir avec un appareil en panne, un nettoyeur à ultrasons qui avait soudainement cessé de fonctionner. Étant lui-même un expert en technologie, il avait déjà diagnostiqué le problème : une carte de commande défectueuse.
Comme il avait besoin de l'appareil rapidement, il en a acheté un nouveau. Avant de jeter l'appareil défectueux à la poubelle, il me l'a proposé.
J'ai accepté et, après une rapide vérification, j'ai confirmé que la carte de commande ne répondait effectivement plus du tout. Il s'est avéré que la carte de commande était assez inhabituelle, je n'ai trouvé aucune documentation ni référence en ligne.
Cet été étant particulièrement chaud, je suis resté la plupart du temps à l'intérieur, à la recherche d'un projet à réaliser pour m'occuper.
C'est alors que j'ai ressorti le nettoyeur à ultrasons en panne et que j'ai décidé de relever comme un défi de le remettre en service.
Après quelques analyses et rétro-ingénierie, j'ai défini des objectifs fonctionnels clairs pour le nouveau contrôleur :
-- 4 modes de nettoyage :
28 kHz – continu
28 kHz – pulsé (2 s ON / 2 s OFF)
40 kHz – continu
40 kHz – pulsé (2 s ON / 2 s OFF)
Contrôle de la minuterie : de 0 à 30 minutes
Contrôle de la température : par boucle PID, de la température ambiante à 80 °C
Ces spécifications étant prises en compte, j'ai commencé à concevoir un nouveau système de contrôle basé sur l'ATmega328P, en réutilisant le panneau d'origine avec ses boutons et son écran.
Comme toujours, je suis convaincu qu'il faut rendre à César ce qui appartient à César ; appelons donc cette partie Cézar1 et Cézar2, en hommage à ceux qui ont fait des découvertes clés avant moi.
Cézar1 – Gestion de l'affichage (rétro-ingénierie de la carte mère)
La carte de contrôle d'origine utilisait un TM1640B pour piloter 9 afficheurs à sept segments. J'ai décidé de conserver le module d'affichage existant et de le réutiliser avec le nouveau contrôleur. Heureusement, quelqu'un avait déjà déchiffré le protocole de communication ! Les fonctions que j'ai utilisées pour l'interface avec le TM1640B proviennent de cet excellent article de blog : https://skyduino.wordpress.com/2012/05/16/arduino-afficheur-7-segments-16-digits-base-tm1640/
Cézar2 – Lecture de la thermistance CTN La gestion de la température était également au programme. La carte d'origine utilisait une thermistance CTN standard ; il me fallait donc implémenter une lecture analogique et une conversion en degrés Celsius correctes. Les formules et la méthode que j'ai suivies sont bien expliquées ici : https://arduino-france.site/thermistance/
Discussion (0 commentaire(s))