projects:maico_fan
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| projects:maico_fan [2025/11/29 13:30] – [WiFi + Webinterface] admin | projects:maico_fan [2025/12/01 07:39] (current) – [Bonus: the fan itself] admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~META: | ||
| + | title=Maico ECA 100 ipro MCU replacement | ||
| + | description=reverse engineering and hacking Maico fan PCB | ||
| + | keywords=SEO, | ||
| + | ~~ | ||
| + | |||
| + | |||
| ⚠️ PAGE UNDER CONSTRUCTION!⚠️⚠ | ⚠️ PAGE UNDER CONSTRUCTION!⚠️⚠ | ||
| Line 20: | Line 27: | ||
| ===== Disclaimer ===== | ===== Disclaimer ===== | ||
| - | |||
| ⚠️ The PCB is connected to mains 230VAC! Be aware of what you do. This is no kids game, it can be life threatening or worse if you are not careful. \\ | ⚠️ The PCB is connected to mains 230VAC! Be aware of what you do. This is no kids game, it can be life threatening or worse if you are not careful. \\ | ||
| I am not responsible for anything you do, this is not meant to be a tutorial to mimic. It is just a write up of the steps I have taken to achieve a goal I have striven for. \\ | I am not responsible for anything you do, this is not meant to be a tutorial to mimic. It is just a write up of the steps I have taken to achieve a goal I have striven for. \\ | ||
| Line 27: | Line 33: | ||
| ===== reverse engineering ===== | ===== reverse engineering ===== | ||
| - | |||
| The fan consists of a 1-phase AC motor, a PCB controlling it and the shell/ | The fan consists of a 1-phase AC motor, a PCB controlling it and the shell/ | ||
| Unmodified ECA 100 ipro series has the following hardware on PCB: | Unmodified ECA 100 ipro series has the following hardware on PCB: | ||
| Line 62: | Line 67: | ||
| | 20 | GND | Ground | ⚠ directly connected to N-line! | | | 20 | GND | Ground | ⚠ directly connected to N-line! | | ||
| - | **for alternative (test) points, see newly created PCB scan :) \\** | + | **for alternative (test) points, see newly created |
| - | {{: | + | {{: |
| ==== logic analyzer capture ==== | ==== logic analyzer capture ==== | ||
| The Triac is triggered by PIC16 synced to AC-wave signal (provided by opto-coupler). Triacs do not turn off automatically again if fired, unless voltage drops to 0V (or complicated circuit added). So what you see on logic analyze capture is just the triggering signal for Triac (//D0//), not its durance it is turned on. The durance is the point the Triac is triggered till signal of opto-coupler (//D1//) is low (and therefore AC-wave crossing 0V). \\ | The Triac is triggered by PIC16 synced to AC-wave signal (provided by opto-coupler). Triacs do not turn off automatically again if fired, unless voltage drops to 0V (or complicated circuit added). So what you see on logic analyze capture is just the triggering signal for Triac (//D0//), not its durance it is turned on. The durance is the point the Triac is triggered till signal of opto-coupler (//D1//) is low (and therefore AC-wave crossing 0V). \\ | ||
| Line 74: | Line 80: | ||
| ==== PCB scan ==== | ==== PCB scan ==== | ||
| - | + | In 2025 I got hands on a broken PCB (due to water damage) | |
| - | In 2025 I got hands on a broken PCB on Kleinanzeigen, | + | |
| - | {{: | ||
| {{: | {{: | ||
| I admit, I have not cleaned the board properly, as it was corroded and toast anyways. | I admit, I have not cleaned the board properly, as it was corroded and toast anyways. | ||
| The trace of L-line was burned up of this broken PCB, I have redrawn it in pink to show the original trace. \\ | The trace of L-line was burned up of this broken PCB, I have redrawn it in pink to show the original trace. \\ | ||
| - | + | Thanks to the PCB scan, you can see the needed points easily where to solder the wires to. \\ | |
| - | This way naming TestPoints (TP) is easier. | + | |
| - | 5V VCC \\ | + | |
| - | AC \\ | + | |
| - | Triac \\ | + | |
| - | Light \\ | + | |
| ==== Board repair ==== | ==== Board repair ==== | ||
| The broken board I got from Kleinanzeigen has (at least) burned Varistor (VDR1) and capacitor C1. Check for burned through PCB traces and replace those two parts. \\ | The broken board I got from Kleinanzeigen has (at least) burned Varistor (VDR1) and capacitor C1. Check for burned through PCB traces and replace those two parts. \\ | ||
| Also try disconnecting the original sensor (if your version has one) - the humidity sensor I got bundled with is bad too. \\ | Also try disconnecting the original sensor (if your version has one) - the humidity sensor I got bundled with is bad too. \\ | ||
| + | |||
| ==== original humidity sensor ==== | ==== original humidity sensor ==== | ||
| - | |||
| Together with the broken PCBs, I got a humidity sensor (which I did not have at the time of the project). The sensor is glued into a plastic shell, the glue looks to be the same as on the backside of the PCB. \\ | Together with the broken PCBs, I got a humidity sensor (which I did not have at the time of the project). The sensor is glued into a plastic shell, the glue looks to be the same as on the backside of the PCB. \\ | ||
| The plastic cover of the housing has a rubber cover, which is cut open if a sensor is installed. Tip to close it up again: put crepe tape over the hole and close up with [[life_hacks: | The plastic cover of the housing has a rubber cover, which is cut open if a sensor is installed. Tip to close it up again: put crepe tape over the hole and close up with [[life_hacks: | ||
| Line 100: | Line 99: | ||
| Don't have a sensor (version) like me? Read on. \\ | Don't have a sensor (version) like me? Read on. \\ | ||
| + | |||
| ==== PIC16 Firmware dump ==== | ==== PIC16 Firmware dump ==== | ||
| - | |||
| As I now own a PICKit (I have not at the time of doing this project), here is the firmware dump of a PCB with humidity sensor: **< | As I now own a PICKit (I have not at the time of doing this project), here is the firmware dump of a PCB with humidity sensor: **< | ||
| I do not know if firmware differs for models w/o sensor, as the original PCB is still doing its duty in the shared flat. My //guess//: probably same firmware; the pin header is unpopulated. \\ | I do not know if firmware differs for models w/o sensor, as the original PCB is still doing its duty in the shared flat. My //guess//: probably same firmware; the pin header is unpopulated. \\ | ||
| Line 107: | Line 106: | ||
| ===== Hardware modification ===== | ===== Hardware modification ===== | ||
| - | |||
| **MCU replacement**: | **MCU replacement**: | ||
| Line 137: | Line 135: | ||
| ⚠ Remember: NEVER solder rigid cables onto SMD pads like TestPoints! The leverage is high, so is the danger to rip off the pad - use flex cords. \\ | ⚠ Remember: NEVER solder rigid cables onto SMD pads like TestPoints! The leverage is high, so is the danger to rip off the pad - use flex cords. \\ | ||
| - | Cut traces of jumper pins and misuse the 4-pin header for flashing (VCC, GND, RX+TX) (I have actually forgotten..). \\ | + | See [[projects: |
| + | You might want to cut traces of jumper pins and misuse the 4-pin header for flashing (VCC, GND, RX+TX). \\ | ||
| Repurpose existing buttons by connecting them to ESP for GPIO0 flash-mode and reset pin. \\ | Repurpose existing buttons by connecting them to ESP for GPIO0 flash-mode and reset pin. \\ | ||
| The LEDs are unused, as there are not enough GPIOs (does not matter as there is a webpage for config) \\ | The LEDs are unused, as there are not enough GPIOs (does not matter as there is a webpage for config) \\ | ||
| Line 145: | Line 144: | ||
| ⚠️ Seal rubber of housing cover when installing humidity sensor with hot glue! No moisture allowed on the PCB, this is still mains AC! \\ | ⚠️ Seal rubber of housing cover when installing humidity sensor with hot glue! No moisture allowed on the PCB, this is still mains AC! \\ | ||
| + | |||
| + | ==== Pinout ESP-12 ==== | ||
| + | |||
| + | ^ Pin# ^ name ^ description ^ | ||
| + | | 1 | ||
| + | \\ | ||
| ===== Firmware ===== | ===== Firmware ===== | ||
| Line 182: | Line 187: | ||
| ==== pee game ==== | ==== pee game ==== | ||
| - | What the heck is a pee game? Not another fetish, you already have all those cables and electronics? | + | What the heck is a pee game? Not another fetish, you already have all those cables and electronics? |
| - | Relax, it's a time based game which was played in the shared flat: \\ | + | |
| Are you quicker (with washing hands thoroughly!) than a predefined time (~1min)? Turn light on, do your duty and turn light off again. If you are too slow, the fan spins shortly to acoustically signal that time has passed and you have lost! Check your time on the web frontpage - you can start+stop the stopwatch game there too. \\ | Are you quicker (with washing hands thoroughly!) than a predefined time (~1min)? Turn light on, do your duty and turn light off again. If you are too slow, the fan spins shortly to acoustically signal that time has passed and you have lost! Check your time on the web frontpage - you can start+stop the stopwatch game there too. \\ | ||
| #Todo: add scoreboard leadership with acronyms/ | #Todo: add scoreboard leadership with acronyms/ | ||
| === MQTT === | === MQTT === | ||
| - | |||
| #TODO: Still missing. HeartBeat for smoke detector. \\ | #TODO: Still missing. HeartBeat for smoke detector. \\ | ||
| As ESP8266 only provides WiFi as wireless communication, | As ESP8266 only provides WiFi as wireless communication, | ||
| Line 195: | Line 198: | ||
| - build external, wireless WC-occupied LED-sign \\ | - build external, wireless WC-occupied LED-sign \\ | ||
| + | - add leadership score board for pee game \\ | ||
| - play tones over fan noise - feasible? \\ | - play tones over fan noise - feasible? \\ | ||
| - interconnect several fans \\ | - interconnect several fans \\ | ||
| Line 211: | Line 215: | ||
| The modification project was fun. The ESP8266 is doing its job for ~3 years now (time or writing) without any issues. \\ | The modification project was fun. The ESP8266 is doing its job for ~3 years now (time or writing) without any issues. \\ | ||
| What would I do differently if it was my product? I would build it more modular with proper galvanic isolation from logic level to mains AC and switch Live instead of Neutral with Triac. An MCU with Zigbee would be better suitable for smart homes. Actually, I have build the circuit as schematics already. @Maico: Are you interested? ;) \\ | What would I do differently if it was my product? I would build it more modular with proper galvanic isolation from logic level to mains AC and switch Live instead of Neutral with Triac. An MCU with Zigbee would be better suitable for smart homes. Actually, I have build the circuit as schematics already. @Maico: Are you interested? ;) \\ | ||
| + | |||
| + | |||
| + | ===== Bonus: the fan itself ===== | ||
| + | As written in [[projects: | ||
| + | So, how do disassemble it? | ||
| + | - pull off fan rotor to the front (it is tightly stuck onto the shaft, consider winding a string behind all rotor blades and pull on that) | ||
| + | - losen all obvious screws on front and backside of fan | ||
| + | |||
| + | {{gallery>: | ||
projects/maico_fan.1764419410.txt.gz · Last modified: by admin
