diff --git a/.gitattributes b/.gitattributes
index 9833032bd8e261980d6506224dfaa9883798ffb8..fa8e1df5f990c6ee47e8a0ae4e855230e61cf344 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1976,6 +1976,11 @@ LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/StationOverviewPage/com
 LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/StationOverviewPage/components/StationTestView/index.js -text
 LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/StationOverviewPage/components/StationTestView/styles.module.scss -text
 LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/StationOverviewPage/index.js -text
+LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/index.js -text
+LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/styles.module.css -text
+LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/styles.module.scss -text
+LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/StationTestDetails/index.js -text
+LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/StatusDetails/index.js -text
 LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/index.js -text
 LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/styles.module.scss -text
 LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaView/AntennaRTSMRows/index.js -text
diff --git a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/index.js b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..29b67fcc37e4cc231d443527b5658ae6421bde83
--- /dev/null
+++ b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/index.js
@@ -0,0 +1,73 @@
+import React, {
+    Component
+} from 'react';
+import 'react-treeview/react-treeview.css';
+import {
+    Badge,
+    Card,
+    CardSubtitle,
+    CardBody,
+    Container,
+    Row,
+    Col
+} from 'reactstrap';
+import EnlargeableImage from 'components/EnlargeableImage'
+
+// CSS
+import styles from './styles.module.scss'
+
+
+/**
+ * RTSMDetails
+ */
+class RTSMDetails extends Component {
+
+    renderRTSMPolarizationDetails(polarization){
+        const RTSMPerPolarization = this.props.data.content[polarization];
+
+        if (!RTSMPerPolarization) {
+            return;
+        }
+
+        return (
+            <Card className={styles.rcucard}>
+                <CardBody>
+                    <CardSubtitle className={styles.header}>
+                        RCU {RTSMPerPolarization.rcu} - {polarization}
+                    </CardSubtitle>
+                    <Container>
+                        <Row noGutters={true}>
+                            <Col md="4">
+                                <Row>
+                                    <Badge color="danger">{this.props.data.error_type}</Badge>
+                                </Row>
+                                <Row>
+                                    <div>percentage: {RTSMPerPolarization.percentage.toFixed(2)} %</div>
+                                </Row>
+                                <Row>
+                                    <div>mode: {RTSMPerPolarization.mode}</div>
+                                </Row>
+                            </Col>
+                            <Col md="8">
+                                <EnlargeableImage url={RTSMPerPolarization.url} />
+                            </Col>
+                        </Row>
+                    </Container>
+                </CardBody>
+            </Card>
+        );
+    }
+
+    render() {
+        return (
+            <React.Fragment>
+                {this.renderRTSMPolarizationDetails('X')}
+                {this.renderRTSMPolarizationDetails('Y')}
+            </React.Fragment>
+        )
+
+    }
+}
+
+
+export default RTSMDetails;
diff --git a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/styles.module.css b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/styles.module.css
new file mode 100644
index 0000000000000000000000000000000000000000..00453a35f9c68c56d0bf1fb09e5ca06f1fdd05ec
--- /dev/null
+++ b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/styles.module.css
@@ -0,0 +1,8 @@
+/* COLORS */
+/* Color palette interface (created with https://material.io/tools/color/) */
+/* font color */
+/* font color */
+/* hover color, e.g. for background */
+/* Data colors */
+:local .rcucard {
+  margin-bottom: 1em; }
diff --git a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/styles.module.scss b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/styles.module.scss
new file mode 100644
index 0000000000000000000000000000000000000000..2658a991190b42fdc496cc30276f4e05ab5682be
--- /dev/null
+++ b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/RTSMDetails/styles.module.scss
@@ -0,0 +1,6 @@
+@import '../../../../../themes/lofar-variables.scss';
+
+
+:local .rcucard {
+    margin-bottom: 1em;
+}
diff --git a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/StationTestDetails/index.js b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/StationTestDetails/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..58be696aa22a4e439c545d15525989f1276fc14e
--- /dev/null
+++ b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/StationTestDetails/index.js
@@ -0,0 +1,97 @@
+import React, {
+    Component
+} from 'react';
+import TreeView from 'react-treeview';
+import 'react-treeview/react-treeview.css';
+import {Badge} from 'reactstrap';
+
+
+// CSS
+//import styles from './styles.module.scss'
+
+
+class StationTestDetails extends Component {
+
+    renderDetails(labelPrefix, details) {
+        if (!details) {
+            return null;
+        }
+        if (typeof details !== "object"){
+            return details;
+        }
+
+        const details_lines = [];
+
+        for (let entity_name of Object.keys(details)){
+            if (details.hasOwnProperty(entity_name)){
+                const element = details[entity_name];
+                const children = this.renderDetails("", details[entity_name]);
+
+                if (element === Object(element)){
+                    details_lines.push( <TreeView key={entity_name} nodeLabel={labelPrefix+entity_name}>
+                                            {children}
+                                        </TreeView>)
+                } else {
+                    details_lines.push( <div key={entity_name}>
+                                            {entity_name}: <em>{children}</em>
+                                        </div>)
+                }
+            }
+        }
+
+        return (
+            <React.Fragment>
+                {details_lines}
+            </React.Fragment>
+        );
+    }
+
+    renderElementErrors(){
+
+        if (!this.props.data.content.element_errors) {
+            return null;
+        }
+
+        const element_errors = this.props.data.content.element_errors;
+        const rendered_element_errors = [];
+
+        for(let element_id of Object.keys(element_errors)){
+            const element_error = (
+                <TreeView key={element_id} nodeLabel={"Element "+element_id}>
+                    {this.renderDetails("", element_errors[element_id])}
+                </TreeView>
+            );
+            rendered_element_errors.push(element_error)
+        }
+
+        return (
+            <TreeView nodeLabel="elements">
+                {rendered_element_errors}
+            </TreeView>
+        );
+    }
+
+    render() {
+        let data = this.props.data;
+        let isElement = data.hasOwnProperty('element_id')  // render element or component error type
+
+        let badge = isElement ? <Badge color="info">Element {data.element_id}</Badge> : <Badge color="danger">{data.error_type}</Badge>;
+
+        let detailsFragment = (
+            <TreeView nodeLabel="details">
+                {this.renderDetails((isElement ? "Error " : ""), data.content.details)}
+            </TreeView>
+        );
+
+        return (
+            <React.Fragment>
+                {badge}
+                {data.content.hasOwnProperty('details') ? detailsFragment : null}
+                {this.renderElementErrors()}
+            </React.Fragment>
+        );
+    }
+}
+
+
+export default StationTestDetails;
diff --git a/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/StatusDetails/index.js b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/StatusDetails/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..c3f381fa4e34558803af1f35e33b5dd3e10e04ae
--- /dev/null
+++ b/LCU/Maintenance/MDB_WebView/maintenancedb_view/src/pages/TilesPage/components/AntennaErrorDetails/StatusDetails/index.js
@@ -0,0 +1,104 @@
+import React, {
+    Component
+} from 'react';
+import TreeView from 'react-treeview';
+import 'react-treeview/react-treeview.css';
+import {
+    Badge,
+    Card,
+    CardSubtitle,
+    CardBody,
+    Container,
+    Row,
+    Col,
+    Table
+} from 'reactstrap';
+import {formatDateUTC} from "utils/utils";
+
+// CSS
+//import styles from './styles.module.scss'
+
+
+class StatusDetails extends Component {
+
+    renderDetails(labelPrefix, details) {
+        if (!details) {
+            return null;
+        }
+        if (typeof details !== "object"){
+            return details;
+        }
+
+        const details_lines = [];
+
+        for (let entity_name of Object.keys(details)){
+            if (details.hasOwnProperty(entity_name)){
+                const element = details[entity_name];
+                const children = this.renderDetails("", details[entity_name]);
+
+                if (element === Object(element)){
+                    details_lines.push( <TreeView key={entity_name} nodeLabel={labelPrefix+entity_name}>
+                                            {children}
+                                        </TreeView>)
+                } else {
+                    details_lines.push( <div key={entity_name}>
+                                            {entity_name}: <em>{children}</em>
+                                        </div>)
+                }
+            }
+        }
+
+        return (
+            <React.Fragment>
+                {details_lines}
+            </React.Fragment>
+        );
+    }
+
+    renderElementErrors(){
+
+        if (!this.props.data.content.element_errors) {
+            return null;
+        }
+
+        const element_errors = this.props.data.content.element_errors;
+        const rendered_element_errors = [];
+
+        for(let element_id of Object.keys(element_errors)){
+            const element_error = (
+                <TreeView key={element_id} nodeLabel={"Element "+element_id}>
+                    {this.renderDetails("", element_errors[element_id])}
+                </TreeView>
+            );
+            rendered_element_errors.push(element_error)
+        }
+
+        return (
+            <TreeView nodeLabel="elements">
+                {rendered_element_errors}
+            </TreeView>
+        );
+    }
+
+    render() {
+        let content = this.props.data.content;
+
+        return (
+            <Card>
+                <CardBody>
+                    <Table borderless size="sm">
+                       <tbody>
+                           <tr><td>Component status:</td><td><Badge color="danger">{content.status}</Badge></td></tr>
+                           <tr><td>Code:</td><td>{content.status_code}</td></tr>
+                           <tr><td>Modified:</td><td>{formatDateUTC(content.last_modified)}</td></tr>
+                           <tr><td>Reason:</td><td>{content.reason}</td></tr>
+                       </tbody>
+                   </Table>
+                </CardBody>
+            </Card>
+        );
+    }
+}
+
+
+export default StatusDetails;