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 !
Ultrasonic Resurrection_En : SEE New Features
Sweep 28 kHz – standard cleaning
Pulse 28 kHz / 40 kHz – for fragile objects
Extended Sweep 40 kHz – intensive cleaning
Degassing (5 min) – before use
Power tests (3 min) – demonstration or calibration
User settings:
Duration: 0 to 30 min (excluding fixed modes)
Temperature: 0 to 80°C (automatic heating)
Power (test): P25, P50, P75, P100
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
Ultrasonic Resurrection_Fr :
VOIR les nouvelles fonctionnalités
Nouveau code : VEVOR_HACK_V2.ino
Le nettoyeur à ultrasons modifié permet de contrôler la fréquence d'émission, la puissance, la température et la durée de fonctionnement. Il propose plusieurs modes adaptés à différents types de nettoyage (fin, intensif, dégazage, test, etc.).
Modes disponibles :
Sweep 28 kHz – nettoyage standard
Pulse 28 kHz / 40 kHz – pour objets fragiles
Sweep étendu 40 kHz – nettoyage intensif
Dégazage (5 min) – avant utilisation
Tests de puissance (3 min) – démonstration ou calibration
Réglages utilisateur :
Durée : 0 à 30 min (hors modes fixes)
Température : 0 à 80°C (chauffage automatique)
Puissance (test) : P25, P50, P75, P100.
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/
Mises à jour de l'auteur