Skip to content

Latest commit

 

History

History
93 lines (58 loc) · 5.89 KB

LoxoneMiniserverHardware.md

File metadata and controls

93 lines (58 loc) · 5.89 KB

Inside the Loxone Miniserver

I'd like to explain some technical details of the Loxone Miniserver and the Loxone Miniserver Go. The Miniserver (as well as all extensions) are ARM based, just like all modern mobile phones. It is clocked at just 8MHz.

The Miniserver is ARM based. The CPU is booting from a 512KiB flash memory. This code then loads the actual operating system from the SD Card into the additional 64MiB of memory and executes it from there.

Hardware id

There are several different versions of Miniserver hardware:

  • 40000 - first known version
  • 60000 - KNX and Ethernet changes with different reset support
  • 80000 - unknown changes
  • a0000 - some SD card change, new Ethernet chip, KSZ8081RNB
  • c0000 - 128MiB of SRAM (twice the amount of older versions)
  • 100000 - Miniserver Go (based on the a0000 Miniserver)

CPU, Flash Memory, SRAM

The CPU is an Atmel AT91SAM9G20 from Microchip. It is a 3,3V 400MHz ARM926 with 32KiB internal SRAM and 64KiB internal ROM. It is paired with a serial interface Flash memory (AT25DF041A from Adesto Technologies), which is updatable by Loxone – it is one of two chips mounted on the back of the board. This flash memory also contains non-volatile memory used by the Miniserver, like encryption keys, which are not stored on the SD card. The other important chips are two SD RAM chips (H57V2562GTR from SK Hynix) as additional memory with 256MBit each adding another 64MiB of memory.

Function of the AT25 FLASH memory

The FLASH memory contains the boot firmware for the CPU, which reads the Miniserver firmware from the MicroSD card into the RAM and launches it.

And while it is 512KiB large it only uses about 12KiB of its capacity. 10.25KiB are reserved for the boot loader, followed by 256 bytes for an XML file with the hardware serial numbers and a 1.5KiB area with the private encryption key.

The XML contains the SSDP modelNumber as the Type; the UUID, also used for SSDP; the MAC or serial number of the Miniserver and the production date.

<?xml version="1.0" encoding="utf-8"?>
<Serial Version="10">
    <Type>1</Type>
    <UUID>aabbccdd-eeff-0011-2233-445566778899</UUID>
    <MAC>50:4F:11:22:33:44</MAC>
    <Date>01.01.2018 01:23:45</Date>
</Serial>

Ethernet

The Ethernet is connected with another Chip from Microchip, the KSZ8051RNL or KSZ8081RNB. Which is a 10BASE-T/100BASE-TX Automotive Physical Layer Transceiver. It doesn't offer a lot, so most of the load for the different protocols TCP/IP and UDP, ARP, DHCP, etc. are all handled by the CPU.

SD Card

The SD Card is accessed with some logic gates directly. Nothing special here.

RTC Clock

The Miniserver has a battery backed CMOS Real-Time Clock (RTC) via a PCF2123 from NXP Semiconductors. This allows the system to run without an internet connection, while still having a valid time. During boot it is set if possible by testing various NTP servers.

Relays / Digital Out

The Relays are HF33024-HLT, which are isolated from the CPU by two ADuM3401 from Analog Devices.

Analog Out

The Analog Out are driven by a AD5724 also from Analog Devices, which is a a complete, quad, 12-/14-/16-Bit, serial input, unipolar/bipolar voltage output DAC. They are driven to have a 10V output range with a 12-bit resolution.

Analog In

The Analog Ins are driving by a TV1544 from Texas Instruments. It is a CMOS 10-bit switched-capacitor successive-approximation (SAR) analog-to-digital (A/D) converter.

Digital In

The digital inputs are read by a HVS882 from Texas Instruments. It is an 8-channel digital input serializer, which can handle up to 34V at the inputs with a flexible current limiter – it therefore also protects the CPU from damage. This is the other chip, which is mounted on the back of the board.

Loxone Link

The Loxone Link bus is standard CAN bus connected via a CAN controller (MCP2515, also Microchip) to the CPU. It is using a standard CAN Transceiver (SN65HVD232D from Texas Instruments) to protected the Miniserver from defects on the bus. The Miniserver also has a 120Ω resistor built-in, so it has to be on the end of the CAN bus. The CAN bus is clocked at 125kHz (which allows up to 500m of cable length for the Loxone Link bus).

All packages are using the extended frame format. The identifier is therefore always 29-bit (0…0x1FFFFFFF) and the data package is always 8 bytes long. Any CAN bus monitor hardware will work just fine with the Loxone Link bus.

The Loxone Link bus is a strict Master-Slave bus. The Miniserver as the master talks to the extensions, the extensions send data to the Miniserver. Extensions never talk to each other. The Miniserver can either multicast to all extensions or to specific extensions via direct commands. In the update case, it can send the update to all extensions of a certain type at the same time.

Photo with Labels of the Mainboard

Loxone Miniserver Mainboard