What does it mean?
B1840 is a Body (airbags, seat belts, body electronics) fault code. It indicates: Sunroof Open Switch Input Circuit/Performance .
Symptoms
- Sunroof will not open, or starts to open on its own
- One-touch open function no longer works and the switch must be held
- Roof stops partway and then stops responding
- Operation is intermittent and clearly worse after rain or a car wash
- No motor sound at all when the open position is selected
Likely causes
- Sunroof switch contacts worn or contaminated in the overhead console
- Switch held active by a stuck button or a badly refitted console trim
- Water running down the A-pillar or from blocked sunroof drains into the console
- Open or high-resistance connection in the headliner wiring to the switch
- Poor ground at the overhead console
- Switch signal shorted to ground so the module sees a permanent open request
- Sunroof module input failure
How to fix it
- Check the switch status in live data with nothing pressed
- Drop the overhead console and look for water staining, corrosion and green terminals
- Clear the sunroof drain tubes if any water is found and dry the console area
- Measure the switch contact resistance at rest and pressed
- Back-probe the module input while operating the switch and watch for the voltage change
- Check the console ground and the headliner wiring for open or chafed conductors
- Replace the switch assembly, repair the wiring, and reinitialise the sunroof after the repair