I ordered a replacement screen from the M5Stack store on Aliexpress.
New TFT display + bezel arrived 15 days later.
Installation was reasonably straight forward.
Soldering iron - I'm using old faithful Jaycar Duratech TS-1554 20W/130W
Solder - I'm using cheap 0.5mm Sn 63 / Pb 37 / Flux 1.2
Flux - I use a pen
T6 Torx screwdriver - I have one of these sets
Remove bottom battery/breakout board
2x T6 Torx screws hold the PCB in place
Slide speaker out (careful of it's thin wires - I broke mine)
Slide PCB sideways and lift slightly. The display ribbon cable prevents it from being fully removed
Push the display + bezel from behind to detach it from the case
Remove the bezel from the broken TFT
Rotate the PCB 45 degrees and remove from plastic shell, to avoid damaging it
Flip TFT 90 degrees revealing its flexible cable
Detach the TFT by applying a little flux + solder and gently prying while heating the pins with a soldering iron
Apply flux to the solder pads and stroke each with a soldering iron to create a smooth finish. There should already be enough solder remaining, if not, add a tiny bit more and stroke smooth
Place the new TFT over the pins and precisely hold in place with your thumb while applying power to check the display works
Solder pin 1, check alignment and adjust if need be
Solder the remaining pins. Get some bright light and a magnifying glass and make sure none of the pins are bridged. Or use continuity mode on your multimeter to check adjacent pins
Insert the PCB + new TFT back into the plastic case, slide PCB sideways and attach Torx screws.
I accidentally detached one of the speaker wires earlier, so with the new TFT flipped out of the way, resoldered the speaker wire.
In doing so, I detached the other speaker wire! So I swapped both for new thinker wire, salvaged from a Dupont ribbon cable. The wire can't be too think as it needs to sit between the TFT and PCB.
Reseat the speaker
Sit the TFT in place and remove the protective cover (green tab) being careful not to touch it with your oily fingers
Remove the sticker from the back of the bezel and insert the 3 plastic buttons
Attach the bezel onto the plastic case and press firmly
Plug in USB and boot
Press 3 push buttons to cycle through RGB colours
@jpilarski take a look at the I2C hub from Seeed; only problem is how many milliamps your I2C sensors need. My multichannel gas sensor (from Seeed) cannot run on the bus while the BME280 is on at the same time. btw addresses are configured properly.
I can power it through my mobile phone charger or a battery pack, just using a tiny USB3 Adapter; and I can power it off my solar panel. I just like the idea of having a web server (or whatever else I made ...) that I can plug into an AC socket.
I gather you are talking about the internal MBUS GPIO pins - that connect the modules together.
The pin pitch - distance between the pins - is 2.54 but the pins are height reduced compared to those found on a standard GPIO header - too SHORT for Dupont connectors to attach.
The MBUS pins are intentionally height reduced in order to minimise the overall height of the M5Stack.
It is possible to source a third party full height 30 pin GPIO header if needed, or you can make one using a GPIO for Arduino or Raspi. You could get a PCB made to go with it, based on the files available on github, see here.