Vitro Crystal (v1.0)

Vitro Crystal (v1.0)



Vitro Crystal Board and headers.

Vitro Crystal has many available features that allow for a reliable and secure operation. First, it accepts many interfaces: USB, UART, I2C, SPI, RS-232, and RS-485. It also provides a simplified sensor monitor and control via SCADA, CAN bus, MOD bus, PM bus, and more.

The board supports Ethernet, Wi-Fi, Bluetooth, GSM, CDMA, LoRa, Sigfox, and more for network redundancy. To provide secure communication with Vitro Cloud Infrastructure, Vitro Crystal also comes with private keys stored in hardware. Furthermore, the board also accepts Over-the-Air updates.

It also has hardware-accelerated H.264 video compression and a 1080p@24 fps HDMI output. Thus, it can also be used as a stand-alone media center.

Finally, Vitro Crystal supports the custom Yocto-based OS. It is dedicated to IoT Block-based applications, stands as a gateway in the IoT Block communication pipeline. Vitro Shard and Vitro Shard Edge are end-device connected through one of the transport protocols.


The Vitro Crystal's microcontroller is a NXP i.MX 6DualLite, which is based on ARM Cortex-A9 MP Core. Its diagram is shown by the following image:


MCU diagram.


The ATECC508A has ECDH (Elliptic Curve Diffie–Hellman) key exchange, and ECDSA sign-verify capabilities built-in to provide highly secure asymmetric authentication. Furthermore, the chip employs ultra-secure hardware-based cryptographic key storage and cryptographic countermeasures, which are more secure than software-based key storage.

ATECC508A also has SHA-256 hash algorithm with HMAC support, 256-bit key length, and stores up to 16 keys using a 10 Kb EEPROM (stores certificates and data too). This essential chip authenticates the device's ID and provides many security-focused features, e.g., secure boot.


Vitro Crystal also has many I/O. The first one is the UART header (J14). The pins are, in order: GND, TX, and RX. There is also a JTAG header (J6) next to the UART. The board also has a Raspberry Pi HAT compatible header (J17 header).

You can also boot from the Micro SD Card (J1 port) or the 8GB eMMC. To do that, you need to set the pins on SW2 correctly. To set a pin to 1, you need to slide the pin-up (i.e., in direction to the mPCIe port), while to 0, the opposite (i.e., slide it down in the Micro SD Card direction). Therefore, to configure the board to boot from the Micro SD Card, the configuration table is:

Switch number12345678

If you want to boot from the eMMC flash memory, set the pins as follows:

Switch number12345678

In order to boot the board, you need to short pins 1 and 2 from the J12 header. In case you need to reboot, you can press the SW3 button.


The device specifications are as follows:

ControllerNXP iMX 6DualLite@1GHz
RAM2GB, 64-Bit DDR800
Floating PointVFPv3
GPUVivante GC800
3D GPU SupportOpenGL ES101/2.0
eMMC8GB eMMC flash
SD CardMicro SD Slot
Video CodecMultiple, H.264
HDMIAudio/Video 1080p@24 fps
Audio2x3.5mm jack for Audio Input/Output
Wired NetworkRJ45 - 10/100/1000 Mbps
Wireless NetworkWi-Fi (Optional)
Mini PCIe 1Half Size (Wi-Fi/Bluetooth support)
Mini PCIe 2Full Size (Cellular modem support - nano-SIM)
USB 2.0 Host2 Dual Stacket Type A
CAN BusRJ11, industrial screw terminals
RS-485Industrial screw terminals
RS-232Industrial screw terminals
Status LEDs2
I/OReset button
I/ORaspberry Pi HAT compatible header
I/O3-pin UART header
I/OJTAG Test points
Power ManagementPMIC PF0100
Power Input12V DC @ 2A
Temperature RangeCommercial: 0 to 85 °C
Temperature RangeCommercial: -40 to 100 °C (optional)
Regulatory ApprovalsFCC, CE, RoHS
Packaging9x7x2 inches - 12.2 oz.
Packaging23x18x5 cm - 345 grams