system.md (17755B)
1 # MNT Reform 2.0D-4 Electronic System Components 2 3 <iframe src="system-diagram.svg" width="75%" height="100%"></iframe> 4 <style> 5 @import url('inter.css'); 6 body { 7 font-family: 'Inter', sans-serif; 8 margin-left: 77%; 9 } 10 iframe { 11 position: fixed; 12 left: 0; 13 top: 0; 14 border: 0; 15 } 16 :target { 17 background-color: #ffa; 18 } 19 </style> 20 21 This is an interactive block diagram of the MNT Reform open hardware laptop. Click on a label in the diagram to jump to the corresponding bit of information. 22 23 For general information, visit the [MNT Reform Website](https://mntre.com/reform). 24 25 - [Motherboard PCB Explorer](https://mntre.com/reform2-ibom/reform2-motherboard/ibom.html) 26 27 ## System-on-Module: Boundary Devices Nitrogen8M_SOM 28 29 The default SOM of Reform. 30 31 - [Website](https://boundarydevices.com/product/nitrogen8m-som/) 32 - [Schematic](https://boundarydevices.com/download/36053/) 33 - Mating Connector: SO-DIMM 200, Part Number: [TE 1717254-1]( https://www.te.com/global-en/product-1717254-1.html) 34 35 ### System-on-Chip: NXP i.MX8M 36 37 The default SOC of Reform. 38 39 - [Data Sheet](https://www.nxp.com/docs/en/data-sheet/IMX8MDQLQCEC.pdf) 40 - [Reference Manual](https://www.nxp.com/webapp/Download?colCode=IMX8MDQLQRM) 41 42 #### Cortex-A53 {#cortex-a53} 43 44 The four main 64-bit ARM cores of the default SOC of Reform. The bootloader and operating system usually run on these processors. 45 46 - Reference Manual: [PDF](http://docs-api-peg.northeurope.cloudapp.azure.com/assets/ddi0500/g/DDI0500G_cortex_a53_trm.pdf) 47 - Clock Frequency: 1500MHz (or lower to conserve power) 48 - Instruction Set: ARMv8-A 49 50 #### Cortex-M4F {#cortex-m4f} 51 52 The additional 32-bit ARM CPU core of the default SOC of Reform. It is currently unused. 53 54 - Reference Manual: [PDF](http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439b/DDI0439B_cortex_m4_r0p0_trm.pdf) 55 - Instruction Set: ARMv7-M 56 57 #### Verisilicon Vivante GC7000L GPU {#gpu} 58 59 The GPU in the i.MX8M SOM. Official documentation is not public, but most of its functionality has been reverse engineered by the etnaviv project. 60 61 - Shader Cores: 4 62 - Triangles per Second: 267Mtri/s 63 - GL versions with open source drivers OpenGL ES 2.0, OpenGL 2.1 64 - Documentation: See main i.MX8M Manual for integration in SOC 65 - [Driver (Kernel Part)](https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/etnaviv) 66 - [Driver (Mesa Part)](https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/etnaviv) 67 68 #### MIPI DSI {#mipi-dsi} 69 70 i.MX8M has a MIPI DSI block by Northwest Logic and a DSI PHY by Mixel. Both have open source drivers in the Linux kernel. Reform accepts MIPI DSI signal on the motherboard header J24. The DSI to eDP Converter converts the signal to eDP to drive the display panel. 71 72 - [NWL Driver](https://lore.kernel.org/linux-arm-kernel/cover.1586427783.git.agx@sigxcpu.org/) 73 - [PHY Driver](drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c) 74 75 #### SAI {#sai} 76 77 i.MX8M has multiple SAI ports for digital audio. Reform uses only one of them, SAI2. It connects stereo output and mono input to/from the WM8960 DAC/ADC chip on the Reform motherboard. 78 79 - [Driver](https://github.com/torvalds/linux/tree/master/sound/soc/fsl/fsl_sai.c) 80 81 #### I²C {#i2c} 82 83 I²C (Inter-Integrated Circuit) is a relatively low speed, 2-pin internal serial bus commonly used to connect chips with each other via addressed register reads and writes. In Reform, I²C is used in multiple places: 84 85 - Connecting the RTC (Realtime Clock) chip to the SoC. 86 - Controlling the WM8960 DAC/ADC chip from the SoC. 87 - In the Trackball: The Atmega32U2 talks to the motion sensor via I²C. 88 - In the Trackpad: The Atmega32U2 talks to the capacitive touch sensor via I²C. 89 - In the Keyboard: The Atmega32U4 controls the OLED display via I²C. 90 91 - [Driver (i.MX8M)](https://github.com/torvalds/linux/tree/master/i2c/busses/i2c-imx.c) 92 93 #### SPI {#spi} 94 95 SPI, the Serial Peripheral Interface, is another digital interface for communication between two chips. In Reform, there is a yet to be used SPI connection between the SoC and the LPC. 96 97 - [Driver](https://github.com/torvalds/linux/tree/master/drivers/spi/spi-imx.c) 98 99 #### PWM {#pwm} 100 101 PWM stands for Pulse Width Modulation. With the default SoC, PWM4 is used to drive the internal display's backlight brightness. 102 103 - [Driver](https://github.com/torvalds/linux/tree/master/drivers/pwm/pwm-imx27.c) 104 105 #### PCIe {#pcie} 106 107 Reform has physical slots on the motherboard for two mobile PCIe form factors: mPCIe and M.2 (also called NGFF) Key M. Each is connected to one of the two PCIe controllers of the SoC. Each controller has a single PCIe lane. 108 109 - [Driver](https://github.com/torvalds/linux/tree/master/drivers/pci/controller/dwc/pci-imx6.c) 110 111 #### UART {#uart} 112 113 UART (Universal Asynchronous Receiver/Transmitter) is a type of serial port. In Reform, UARTs 1 and 2 of the default SoC are brought out to two 3-pin headers. UART1 (header J18, labelled SER2) exposes the default serial console. Connect a USB-UART cable from this header to another computer and set it to 115200 baud, 8N1. Then you can control the bootloader and see early kernel boot output. 114 115 - [Driver](https://github.com/torvalds/linux/tree/master/drivers/tty/serial/imx.c) 116 117 #### HDMI {#hdmi} 118 119 The HDMI/DP block can encode and transfer framebuffers over HDMI or DisplayPort (muxed on the same signal lines). The driver has not yet been upstreamed by NXP and requires a signed non-ARM blob (Xtensa code) to be loaded into the HDMI/DP controller at boot. The vendor kernel driver can be hacked into a mainline kernel. 120 121 - [HDMI PHY Driver in vendor kernel](https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_5.4.x_1.0.0-pass1/drivers/gpu/drm/imx/cdn-mhdp-hdmi-phy.c) 122 - [HDMI TX Driver in vendor kernel](https://github.com/boundarydevices/linux-imx6/tree/boundary-imx_5.4.x_1.0.0-pass1/drivers/gpu/drm/bridge/cadence) 123 124 #### USB3 {#usb3} 125 126 Reform has 3 external USB 3.0 ports and two internal USB 2.0 ports. All of these are derived from the two USB 2.0/3.0 root controllers in the SoC. One root controller (USB2) goes directly to the external USB port J17. The other controller, USB1 is split into the four remaining ports via the [USB hub chip](#usb-hub) on the motherboard. 127 128 - [PHY Driver](https://github.com/torvalds/linux/tree/master/drivers/phy/freescale/phy-fsl-imx8mq-usb.c) 129 130 #### MMC/SD {#mmc} 131 132 Reform uses both USDHC MMC/SD controllers of i.MX8M: 133 134 - The first controller connects to an eMMC flash disk on the SOM (usually 8GB in size). 135 - The second controller connects to the SD card slot on the motherboard via a level shifter. The level shifter converts between the SoC's 1.8V and the SD card's 3.3V signal levels. 136 137 - [Driver](https://github.com/torvalds/linux/tree/master/drivers/mmc/host/sdhci-esdhc-imx.c) 138 139 #### DDRC {#ddrc} 140 141 The DDRC connects the physical LPDDR4 RAM chip to the blocks inside of the SOC, including CPU and GPU. 142 143 - [DDRC Devfreq Driver](https://github.com/torvalds/linux/tree/master/drivers/devfreq/imx8m-ddrc.c) 144 145 #### ETH MAC {#eth-mac} 146 147 Ethernet in Reform is made from 3 parts (MAC, PHY and the connector with built-in magnetics). The MAC, which is a block in the SoC. In the case of i.MX8M, this is called FEC. 148 149 - [FEC Driver](https://github.com/torvalds/linux/tree/master/drivers/net/ethernet/freescale/fec_main.c) 150 151 ### ETH PHY {#eth-phy} 152 153 The PHY part of the Ethernet interface is a chip on the SOM. The default SOM has an Atheros AR8035 PHY, which is driven in Linux by a generic PHY driver. 154 155 - [Datasheet](https://media.digikey.com/pdf/data%20sheets/csr%20pdfs/ar8035_ds_(atheros)_mar2011.pdf) 156 157 ## USB Hub {#usb-hub} 158 159 Reform has a TI TUSB8041 USB Hub chip with four downstream ports, two of which lead to external USB3.0 connectors. 160 161 - [Website](https://www.ti.com/product/TUSB8041) 162 - [Datasheet](https://www.ti.com/lit/ds/symlink/tusb8041.pdf?&ts=1590007407171) 163 164 ## Battery-Backed Realtime Clock {#rtc} 165 166 The Reform motherboard has a NXP PCF8523T realtime clock chip that is backed by a 3.3V lithium coin cell when the system is unpowered. It is accessed by the SoC via [I²C](#i2c). 167 168 - [RTC Datasheet](https://www.nxp.com/docs/en/data-sheet/PCF8523.pdf) 169 - Coin cell standard: CR1220 170 171 ## DSI to eDP Converter {#dsi2edp} 172 173 The Reform motherboard has a TI SN65DSI86 (variant SN65DSI86IPAPQ1) chip that converts [MIPI-DSI](#dsi) signals to eDP signals that the built-in [display panel](#panel) can understand. The DSI output on the default SOM is available on a flat cable connector. A short, 30 pin FPC cable goes from the SOM into the motherboard's MIPI-DSI input connector directly below the SOM. The DSI signals are routed from there to the SN65DSI86 chip. 174 175 The eDP signals are available on the 2x15 pin, 2mm DuPont header J24. Normally, a cable is plugged into this header, routed through the right-hand screen hinge and it's IPEX connector side plugged into the display panel. 176 177 - Input DSI lanes: 4 + Clock 178 - Output eDP lanes: 2 + AUX 179 - Color depth: 8 bit per color channel (24 bit per pixel) 180 - Standard Resolution: 1920x1080 @ 60 FPS 181 - [SN65DSI86 Datasheet](https://www.ti.com/lit/ds/symlink/sn65dsi86-q1.pdf?&ts=1590150753809) 182 183 ## Audio DAC/ADC {#dac} 184 185 The Audio DAC/ADC converts between the [digital SAI audio signals](#sai) and the signals on the [audio jack](#audiojack) and the [speakers](#speakers). It can drive both speakers and headphones with independent volumes. 186 187 - Model: Cirrus/Wolfson WM8960 188 - [Datasheet](https://statics.cirrus.com/pubs/proDatasheet/WM8960_v4.4.pdf) 189 190 ## TRRS 3.5mm Audio Jack {#audiojack} 191 192 The 3.5mm audio jack, also called a TRRS jack (Tip/Ring/Ring/Sleeve) can be used to connect headphones, an external power amplifier or a headset with integrated microphone. 193 194 The audio jack uses the CTIA standard to define which signals are located on which contacts on the plug: 195 196 - Tip: Left Speaker 197 - First Ring: Right Speaker 198 - Second Ring: Microphone 199 - Sleeve: Ground 200 201 ## System Controller {#lpc} 202 203 Except for extreme undervoltage conditions (battery cells below 2.5V), the LPC is always running a C program that implements a state machine which watches over the battery cells and controls their charging and discharging/balancing. 204 205 In addition, the LPC can toggle the main power rails in the system on and off via GPIOs going to the relevant voltage converters and load switches. 206 207 The LPC can be directly controlled by [Circle commands given via the keyboard](#kbctrl). 208 209 Model: NXP LPC11U24 210 211 - [Datasheet](https://www.nxp.com/docs/en/data-sheet/LPC11U2X.pdf) 212 - [Firmware](https://source.mntmn.com/MNT/reform/src/branch/master/reform2-lpc-fw/src/boards/reform2) 213 214 ## Cell Monitor/Balancer {#balancer} 215 216 - Model: Analog/Linear LTC6803-4 217 - [Datasheet](https://www.analog.com/media/en/technical-documentation/data-sheets/680324fa.pdf) 218 219 ## Battery Voltage/Current Monitor {#ina} 220 221 - Model: Texas Instruments INA260 222 - [Datasheet](http://www.ti.com/lit/ds/symlink/ina260.pdf?&ts=1590151953117) 223 224 ## Buck-Boost DC-DC/Charger {#ltc4020} 225 226 - Model: Analog/Linear LTC4020 227 - [Datasheet](https://www.analog.com/media/en/technical-documentation/data-sheets/4020fd.pdf) 228 229 ## Barrel Jack (Wall Power) {#barreljack} 230 231 The barrel jack accepts DC voltage in the range of 7V to 32V. The default power supply shipped with MNT Reform is specified at 24V / 2A. 232 233 - Receptacle: Switchcraft RAPC712X 234 - Inner diameter: 2.5mm 235 - Outer diameter: 5.5mm 236 - Poles: Positive on inner pole, negative on outer barrel. 237 238 ## 5V Power Rail {#r5v} 239 240 - Type: Buck 241 - Model: Texas Instruments LM2677SX-5 242 - [Datasheet](http://www.ti.com/lit/ds/symlink/lm2677.pdf?&ts=1590152214783) 243 - Max Current: 5A 244 245 ## 3V3 Power Rail {#r3v3} 246 247 - Model: Texas Instruments LM2677SX-3.3 248 - [Datasheet](http://www.ti.com/lit/ds/symlink/lm2677.pdf?&ts=1590152214783) 249 - Max Current: 5A 250 251 ## 3V3 Standby Power Rail {#standby} 252 253 - Type: Buck 254 - Model: Texas Instruments LMR16006YQ3 255 - [Datasheet](http://www.ti.com/lit/gpn/lmr16006y-q1) 256 257 ## 1V8 Power Rail {#r1v8} 258 259 - Type: LDO 260 - Model: Texas Instruments TLV1117-18 261 - [Datasheet](http://www.ti.com/lit/ds/symlink/tlv1117.pdf?&ts=1590152118151) 262 263 ## 1V5 Power Rail {#r1v5} 264 265 - Type: Buck 266 - Model: Texas Instruments TLV62568DBV 267 - [Datasheet](http://www.ti.com/lit/ds/symlink/tlv62568.pdf?&ts=1590152066123) 268 269 ## 1V2 Power Rail {#r1v2} 270 271 - Type: Buck 272 - Model: Texas Instruments TLV62568DBV 273 - [Datasheet](http://www.ti.com/lit/ds/symlink/tlv62568.pdf?&ts=1590152066123) 274 275 ## Keyboard Controller {#kbctrl} 276 277 - Model: Microchip/Atmel Atmega32U4 278 - [Datasheet](http://ww1.microchip.com/downloads/en/devicedoc/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf) 279 - [Keyboard Firmware](https://source.mntmn.com/MNT/reform/src/branch/master/reform2-keyboard-fw) 280 - [Keyboard PCB Explorer](https://mntre.com/reform2-ibom/reform2-keyboard/ibom.html) 281 282 The following shortcuts are available indepdently of the main processor in Reform, even when the system is powered off. Acting like a primitive terminal, most shortcuts trigger a command string to be sent over the keyboard's UART to the [LPC](#lpc). The LPC then responds with characters to display on the [OLED](#oled). 283 284 In the 2.0D-3/D-4 development version: 285 286 - *Circle + 1:* Turn on the main system (powers up 5V, 3V3 and PCIe rails) 287 - *Circle + 0:* Turn off the main system (powers down 5V, 3V3 and PCIe rails) 288 - *Circle + 2:* Turn off the OLED display (turned back on by any other command) 289 - *Circle + F1:* Decrease keyboard backlight brightness 290 - *Circle + F2:* Increase keyboard backlight brightness 291 - *Circle + V:* Show voltages of all cells, total voltage and Amps going in or out of batteries plus charge percentage estimation. 292 - *Circle + Y:* Show voltage and amps as measured by the [INA260](#ina) voltage/current monitor. 293 - *Circle + S:* Display LPC status (idle/charging, overvoltage/balancing, undervoltage) 294 295 Keep in mind that *Circle + 0* powers off the system immediately, so save your work and make sure it is synced to disk before powering off. For example, use the `sync` or `shutdown` commands. 296 297 ## Keyboard and Trackball Keys {#kbkeys} 298 299 The keyboard and trackball modules both use the same type of switch. 300 301 - Standard Keyswitch Model: Kailh PG1350 Low Profile Choc Brown. 302 - [PG1350 Datasheet](https://www.kailhswitch.com/uploads/201915927/CPG135001D02-1_Choc_Burnt_Orange.pdf) 303 - Keyboard Keycaps: Kailh Black Low Profile / Choc Keycap 1.5U and 1U. 304 305 The trackball has custom keycaps designed by MNT Research and 3D printed in an SLA process. 306 307 - [Trackball 3D Printed Parts](https://github.com/mntmn/reform/tree/master/reform2-3d-printed-parts/reform2-stl) 308 309 ## Keyboard OLED {#oled} 310 311 The OLED display sits on its own little PCB on top of the keyboard, and is powered and controlled by the [keyboard's MCU](#kbctrl) independently from the computer's main processor. 312 313 The display is currently used to show the results of [Circle commands given via the keyboard](#kbctrl). 314 315 - Model: Generic SSD1306 128x32 Pixel OLED, Monochrome, I²C Interface 316 317 ## Trackball Controller {#tbctrl} 318 319 - Model: Microchip/Atmel Atmega32U2 320 - [Datasheet](http://ww1.microchip.com/downloads/en/DeviceDoc/doc7799.pdf) 321 - [Firmware](https://source.mntmn.com/MNT/reform/src/branch/master/reform2-trackball-fw) 322 - [Trackball 3D Printed Parts](https://source.mntmn.com/MNT/reform/src/branch/master/reform2-3d-printed-parts/reform2-stl) 323 - [Trackball PCB Explorer](https://mntre.com/reform2-ibom/reform2-trackball/ibom.html) 324 325 ## Trackball Sensor {#tbsensor} 326 327 - Model: Pixart PAT9125EL 328 - [Datasheet](https://www.codico.com/shop/media/datasheets/PixArt_PAT9125EL_InfoBrief.pdf) 329 - [Trackball Sensor PCB Explorer](https://mntre.com/reform2-ibom/reform2-trackball-sensor/ibom.html) 330 331 ## Trackpad Controller {#tpcrtl} 332 333 - Model: Microchip/Atmel Atmega32U2 334 - [Firmware](https://source.mntmn.com/MNT/reform/src/branch/master/reform2-trackpad-fw) 335 - [Trackpad PCB Explorer](https://mntre.com/reform2-ibom/reform2-trackpad/ibom.html) 336 337 ## Trackpad Sensor {#tpsensor} 338 339 - Model: Azoteq TPS65-201A-S 340 - [Datasheet](https://www.mouser.de/datasheet/2/42/proxsense_i2c_trackpad_datasheet-1626845.pdf) 341 342 ## Display Panel {#panel} 343 344 The display panel is connected to two main types of signals via a single IPEX connector: 345 346 - eDP (embedded DisplayPort), via the [MIPI-DSI to eDP converter](#dsi2edp) 347 - [PWM](#pwm) to set the LED backlight's brightness. The brightness is set via the duty cycle of the PWM signal, while the frequency is set at a fixed value (default: 10KHz). 348 349 - Model: Innolux N125HCE-GN1 350 - [Panelook Information](http://www.panelook.com/N125HCE-GN1_Innolux_12.5_LCM_overview_28140.html) 351 352 ## Speakers {#speakers} 353 354 Reform uses 2x 8 Ohm, 1 Watt mobile speakers mounted below the [display panel](#panel). They are powered by the [Audio DAC](#dac). 355 356 - Model: PUI AS01808AO-3-R 357 - [Datasheet](http://www.puiaudio.com/pdf/AS01808AO-3-R.pdf) 358 359 ## Battery Cells {#cells} 360 361 Reform uses 8 battery cells with LiFePO4 (Lithium Iron Phosphate) chemistry. 362 363 ### Important Warnings of Potential Fire and Injury Hazards 364 365 - *Do not use batteries of any other chemistry in MNT Reform!* 366 - *Double check polarity of battery cells and make sure they are the right way around!* 367 - *The cells are connected in series, resulting in a 28.8V total voltage with high current capability. If shorted, traces can easily be burned and sparks could ignite nearby material.* - *Do not use metal tools or open wires inside of MNT Reform!* 368 369 - Chemistry: LiFePO4 370 - Form Factor: 18650 371 - Voltage: 3.2V 372 - Cell Charge Voltage: 3.6V 373 - Configuration: Series (28.8V) 374 375 ### Examples of compatible cells 376 377 - [Battery Space](https://www.batteryspace.com/lifepo4-18650-rechargeable-cell-3-2v-1500-mah-8-4a-rate-4-32wh-ul-listed-un38-3-passed-ndgr.aspx) 378 - [ENERpower](https://enerprof.de/akkus/akkus-lifepo4/akkuzellen-lifepo4/akkuzellen-lifepo4-18650/32/enerpower-18650-lifepo4-3-2v-1800-mah?c=26) 379 - [Lithium Werks](https://www.18650batterystore.com/Lithium-Werks-p/lithiumwerks-apr18650m1b.htm)