Awaiting parts
Using the ACS712 to measure only current has proved unhelpful in recognizing when the motor is struggling. I have ordered some HLW8032 modules, but they won't be here until the end of the month.
This repository documents, all my attempts to make the GE Opal 2 not kill itself (More specifically, the *GE Profile:tm: Opal:tm: 2.0 Ultra Nugget Ice Maker )
Important context to a lot of frustration here: This is a $500 dollar ice machine. It has a lifespan of 6 months to 1 year
I have quite literally dumped hundreds of dollars into this project. Some of the costs are prototyping modules, connectors, electronics components, and OEM parts for the machine.
Money spent on this project so far: $544.65 this does not factor in my time spent on the project
reverse-engineering-efforts/- Generally contains specifics about the hardware of the Opal 2physical-repairs/- Details of specific repair effortsgearboxRepair.md- Details about the gearbox and the procedures and parts to fix itsqueakFromShaft.md- Details about a repair attempting to stop the squeaking shaft
custom-pcb/- PCB related stuffprototype/- Details the rough prototype build with modular components before the PCB fabricationkicadSchematic/- Directory containing the KiCAD files for the prototype schematic.prototype-parts.md- A list of the exact modules I used for prototypingSchematicExport.pdf- A human readable version of the schematic, made by printing to PDF from KiCAD
attribution.md- Links and references used for filestodo.md- List of further reseach needed
(in no specific order)
- Finish connectors.md with colors and diagrams
- Design PCB
- Reverse engineer I2C bus of other front panel (Need parts)
- Design full independent schematic
- Reverse engineer GE implementation of the RGB light (Need parts)
A few new button actions are defined, and a few changed from the original machine behavior
- Power: Toggles Power
- When held: Triggers a hard reset of the Arduino. I hope you know what you're doing
- Light: Toggles Light
- Clean: Toggles cleaning mode. In my implentation, there is no timer or anything. It simply forces the pump to run until it is pressed again.
The light setting is stored in the Arduino's EEPROM.
The Arduino's EEPROM has a limited lifespan of 100,000 writes. So don't go spamming it. As long as you don't press it 100 times a day (which still comes out to about 3 years of use), it should outlast the machine itself.
Fun fact: EEPROM (and all flash storage) utilize Quantum Tunneling to store data. Isn't that cool?
Warning
Schematics and code are not final!
I hate LLMs, and "AI" crap. Therefore, I decided to very clearly define how they were used in this project.
- I did NOT copy-paste code or otherwise use LLM generated material in this project's code.
- An LLM was used to help me understand how to use KiCAD because I have never used it before.
- An LLM was used to sanity check (rubber ducky) to avoid killing the machine.
- An LLM was used to help me understand the basics of I2C and reverse engineer the communication the Opal uses.
- I implemented the I2C communications in the firmware.
Do NOT submit LLM generated issues, PRs, or use this repo in training data.
You MAY submit an issue that you made with the assistance of an LLM, but you must paraphrase and understand the content in your own words.
A Scathing Review of the GE Opal 2 Nugget Ice Maker
I've tried putting lubrication on the auger (squeakFromShaft.md) but it did not resolve the squeaking issue
I've decided I am going to replace the PCB with an arduino to implement a proper defrost cycle.
As I was writing this, Reddit decided to delete the 2 year old post I was using as a reference.
Some of the more important images are available in images.
The GE Opal ice maker has well-known issues where it will start to fail after about a year of use, and in some cases, prior. The machine is incredibly high maintenance, with GE recommending running bleach through the machine (archive.org capture)
There is even (as of writing) an ongoing class action
These machines do not fail gracefully, often making screeching and whining noises due to the internal parts getting frozen and locked up. This commonly involves the destruction of the gearbox, auger, and/or bearings.
Browsing Reddit reveals many owners have constant issues with these machines, with one redditor even claiming to go through 4 machines in 2 years. Despite its flaws, this machine is well liked by r/IceChewersAnonymous, though they also agree that it has significant longevity issues. A quick search shows the love/hate the community has for it.
More importantly, several members of the community have taken attempts to repair the machine pretty far.
- https://www.reddit.com/r/IceChewersAnonymous/comments/1ophadu/opal_20_repair_update/
- https://www.reddit.com/r/IceChewersAnonymous/comments/1hxlbkg/fixing_the_opal_20/
- https://www.reddit.com/r/IceChewersAnonymous/comments/159ts6e/ge_opal_20_add_water_fix/
None of the JST XA connectors appear to be genuine. They are cheap clones of the listed connector
| PCB Label | Part | Connector Type & Color | Voltage |
|---|---|---|---|
| UV | UV Light | JST XA 2-pin connector (Blue) | 12V DC |
| compressor | Compressor | JST VHR 3-pin connector (Red) | 120V AC |
| motor | Auger Motor | JST VHR 3-pin connector (White) | 120V AC |
| WP | Pump | JST XA 2-pin connector (Purple) | 12V DC |
| FAN1 | Fan | JST XA 2-pin connector (Gray) | 12V DC |
| WIFI | WiFi Board | JST XA 5-pin connector (White) | 3.3V + 5V DC |
| IM1101 | Front Panel | JST XA 4-pin connector (Black) | 5V + I2C |
| LED11 & LED12 | Ice Box LED(s?) | JST XA 2-pin connector (White) | 12V DC |
| SW | Ice box presence switch | JST XA 2-pin connector (Red) | 5V DC |
| CON5 | Internal Tank Floats | JST XA 4-pin connector (Red) | 5V DC |
| TX | IR LED For Capacity | JST XA 2-pin connector (Yellow) | 5V DC |
| RX | IR Receiver | JST XA 2-pin connector (Green) | 5V DC |
| AC | AC Input | JST VHR 3-pin connector (Black) | 120V AC |
| IMN1001 | ??? | JST XA 7-pin connector (White) | ??? |
| CON6 | ??? | JST XA 6-pin connector (White) | 5V + ??? |
| Clean | ??? | JST XA 2-pin connector (Cyan) | ??? |
| RGB | ??? | JST XA 3-pin connector (White) | 5V + ??? |
| 1033 | ??? | JST XA 3-pin connector (Black) | 5V + ??? |
| CON3 | ??? | JST XA 3-pin connector (Red) | ??? |
| ??? | ??? | JST XA 5-pin connector (Black) | 5V + ??? |
-
I2C protocols documented in
i2c.md -
Internal Tank Floats (4 wires, 2 floats)
- Black & Red: Lower float (float low = closed circuit)
- Yellow & White: Upper float (float high = closed circuit)
