reform

MNT Reform: Open Source Portable Computer
Log (Feed) | Files | Refs (Tags) | README

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)