Lately, I’ve started getting into smart homes and their programming. As I got deeper into this field, I came across two non-working Loxone Miniserver automation controllers, designed to manage smart homes and their devices. Both controllers had been damaged by a lightning overvoltage through the network RJ45 port. And of course, I wouldn’t be myself if I didn’t start spending time and many late evenings searching for faults.

One is a Miniserver Gen1 (the older generation), and the other – a newer one, in other words, the current generation Gen2.

Loxone Miniserver Repair
Loxone Miniserver Gen1 and Gen2
Loxone Miniserver Repair
Miniserver Gen1 thermal camera

Diagnostics

I’ll start with repairing the Gen1, since its faults weren’t as severe as they might have seemed. Meanwhile, as for the Gen2, I don’t have any good news yet.

When connecting the Gen1 to a 24 V power supply, the processor (Atmel AT91SAM9G20B-CU) immediately begins to heat up and very quickly reaches around 100 °C. This indicates an internal short circuit in the processor – in other words, it’s burned out. This isn’t very unusual, since the network port is almost directly connected to the processor – the only thing in between is the 10/100 Base-T network chip KSZ8081RNB, which, surprisingly, survived undamaged.

After disconnecting the processor’s power, I checked all incoming voltages. I didn’t find any shorts before the processor. The 24 V input voltage is fine – it’s distributed down into lower voltages: if I’m not mistaken, first into 12 V or directly into 5 V, and then into even lower voltages for powering the processor.

Loxone Miniserver Repair
Soldering and hot air station, power supply.

Downstream from the processor are other chips that manage the signal inputs and outputs to the relays, as well as SDRAM modules. The processor is directly connected to the SPI flash memory (Adesto AT25SF041), which it attempts to read and execute boot instructions from immediately after power-on. The Gen1 operates using software stored on a MicroSD card, so the SPI flash must contain the instructions on where to load the code from.

It turned out that the SPI flash memory was also burned out – when trying to read it, the chip simply began to overheat. At this point, it was clear that another Miniserver Gen1 would be needed in order to read its flash memory and transfer it into a new chip. At the time, I still didn’t know exactly what was stored in that chip, nor where the device’s serial number was located – the serial number is essential for the unit to operate on the network and accept requests.

The Loxone Miniserver serial number is the MAC address, which is also used as the network address.

Repair

I started with the removal of the main processor. The equipment is fairly simple:

  • Hot air station: KRAFT&DELE KD852 (the factory uses lead-free solder with a higher melting point, so I set the station to 350 °C – with quick work, an even higher temperature can be used).
  • Thermal compensation: to reduce PCB warping during processor removal, the underside is preheated to about 100 °C.
  • Solder alloy: Pb60/Sn40.
  • Soldering station: Xtreme ZD-929C 48W.
  • Soldering flux: AMTECH NC-559-V2-TF or AMTECH VS-213-A-TF Flux.

The process is straightforward: soldering flux is applied around the BGA chip, the underside of the board is heated, and at the same time the processor is heated from above until it begins to move – then it is lifted off. After removing the processor, all BGA pads are covered with new solder (mixing the factory lead-free solder with the leaded alloy), and then all pads are carefully cleaned with desoldering braid to make them flat and clean.

Finally, everything is cleaned with technical isopropyl alcohol (IPA 99.8%).

Soldering the processor can be made a bit easier if new solder balls are re-applied to it, since in that case their melting temperature is lower. From the factory, the processor usually comes with lead-free solder balls, which have a higher melting temperature. I didn’t do that – I soldered the processor as it was received.

After soldering the processor and connecting the 24 V power supply, the LED indicators lit up, but nothing else happened. When I inserted a MicroSD card, the LED behavior changed, but the device still didn’t start working. At this stage, the question arose – what is the processor doing, and what is it missing?

I decided to locate the UART test points on the board. Of course, it would have been much easier if I had checked where the UART pins lead before soldering the processor, but I hadn’t done that. So, based on photos and the pin layout on the PCB, I identified them.

UART consists of TX, RX, and GND pins – through them, the processor’s activity can be monitored in real time. For UART monitoring, I used an Arduino UNO and the Tera Term program. Upon connecting, the screen displayed the text “BootROM”, which gave hope that the processor was only missing the boot instructions from the flash memory.

Loxone Miniserver Repair
Flash memory

First, I decided to read the flash memory of a working Miniserver Gen1. When I opened the file in HEX format, most of the data was unreadable, but a few lines appeared in plain text, which really surprised me.

<?xml version=”1.0″ encoding=”utf-8″?>
<Serial Version=”10″>
<Type>1</Type>
<UUID>307a86dd-06fa-4ae3-9704-71f9b0128250</UUID>
<MAC>00:00:00:00:00:00</MAC>
<Date>01.01.2017 01:01:01</Date>
</Serial>

The device’s MAC address and a generated version 4 UUID were shown in plain text. I replaced the MAC address with the one belonging to my non-working unit, and I generated the UUID myself. I then wrote the entire edited .bin file into a new flash chip and soldered it onto the board.

Loxone Miniserver Repair
Connected to Miniserver Gen1 – Loxone Config

After startup, the Miniserver Gen1 no longer showed any issues – the device successfully booted and began loading the software from the MicroSD card. I launched Loxone Config and was able to connect to the device without problems.

At that point, I wasn’t completely sure whether the digital inputs and outputs to the relays were functioning, but after testing, no issues appeared. So, the Loxone Miniserver Gen1 was fully repaired.

In addition, I decided to proactively replace the relays used for the digital outputs – which I did.

I also replaced the supercapacitor on the board – a V-type 5.5 V, 0.33 F. I wasn’t sure whether this would make any difference or whether they degrade over time, but after replacement and measurements, the results were immediately noticeable. On top of that, the new supercapacitor is smaller than the original one.

Loxone Miniserver Repair
Supercapacitor comparison. New and old

After all the work, the entire board is carefully cleaned – it has to look like new. 😄

That’s all from me for now – if there are any updates regarding the Miniserver Gen2, I will definitely add them.
– Jonas