MNT Reform: Open Source Portable Computer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

472 lines
20 KiB

  1. <h1 id="mnt-reform-20d-4-electronic-system-components">MNT Reform 2.0D-4 Electronic System Components</h1>
  2. <iframe src="system-diagram.svg" width="75%" height="100%"></iframe>
  3. <style>
  4. @import url(';700&display=swap');
  5. body {
  6. font-family: 'Inter', sans-serif;
  7. margin-left: 77%;
  8. }
  9. iframe {
  10. position: fixed;
  11. left: 0;
  12. top: 0;
  13. border: 0;
  14. }
  15. :target {
  16. background-color: #ffa;
  17. }
  18. </style>
  19. <p>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.</p>
  20. <p>For general information, visit the <a href="">MNT Reform Website</a>.</p>
  21. <h2 id="system-on-module-boundary-devices-nitrogen8msom">System-on-Module: Boundary Devices Nitrogen8M_SOM</h2>
  22. <p>The default SOM of Reform.</p>
  23. <ul>
  24. <li><a href="">Website</a></li>
  25. <li><a href="">Schematic</a></li>
  26. <li>Mating Connector: SO-DIMM 200, Part Number: <a href="">TE 1717254-1</a></li>
  27. </ul>
  28. <h3 id="system-on-chip-nxp-imx8m">System-on-Chip: NXP i.MX8M</h3>
  29. <p>The default SOC of Reform.</p>
  30. <ul>
  31. <li><a href="">Data Sheet</a></li>
  32. <li><a href="">Reference Manual</a></li>
  33. </ul>
  34. <h4 id="cortex-a53">Cortex-A53</h4>
  35. <p>The four main 64-bit ARM cores of the default SOC of Reform. The bootloader and operating system usually run on these processors.</p>
  36. <ul>
  37. <li>Reference Manual: <a href="">PDF</a></li>
  38. <li>Clock Frequency: 1500MHz (or lower to conserve power)</li>
  39. <li>Instruction Set: ARMv8-A</li>
  40. </ul>
  41. <h4 id="cortex-m4f">Cortex-M4F</h4>
  42. <p>The additional 32-bit ARM CPU core of the default SOC of Reform. It is currently unused.</p>
  43. <ul>
  44. <li>Reference Manual: <a href="">PDF</a></li>
  45. <li>Instruction Set: ARMv7-M</li>
  46. </ul>
  47. <h4 id="gpu">Verisilicon Vivante GC7000L GPU</h4>
  48. <p>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.</p>
  49. <ul>
  50. <li>Shader Cores: 4</li>
  51. <li>Triangles per Second: 267Mtri/s</li>
  52. <li>GL versions with open source drivers OpenGL ES 2.0, OpenGL 2.1</li>
  53. <li>Documentation: See main i.MX8M Manual for integration in SOC</li>
  54. <li><a href="">Driver (Kernel Part)</a></li>
  55. <li><a href="">Driver (Mesa Part)</a></li>
  56. </ul>
  57. <h4 id="mipi-dsi">MIPI DSI</h4>
  58. <p>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.</p>
  59. <ul>
  60. <li><a href="">NWL Driver</a></li>
  61. <li><a href="drivers/phy/freescale/phy-fsl-imx8-mipi-dphy.c">PHY Driver</a></li>
  62. </ul>
  63. <h4 id="sai">SAI</h4>
  64. <p>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.</p>
  65. <ul>
  66. <li><a href="">Driver</a></li>
  67. </ul>
  68. <h4 id="i2c">I²C</h4>
  69. <p>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:</p>
  70. <ul>
  71. <li>Connecting the RTC (Realtime Clock) chip to the SoC.</li>
  72. <li>Controlling the WM8960 DAC/ADC chip from the SoC.</li>
  73. <li>In the Trackball: The Atmega32U2 talks to the motion sensor via I²C.</li>
  74. <li>In the Trackpad: The Atmega32U2 talks to the capacitive touch sensor via I²C.</li>
  75. <li>
  76. <p>In the Keyboard: The Atmega32U4 controls the OLED display via I²C.</p>
  77. </li>
  78. <li><a href="">Driver (i.MX8M)</a></li>
  79. </ul>
  80. <h4 id="spi">SPI</h4>
  81. <p>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.</p>
  82. <ul>
  83. <li><a href="">Driver</a></li>
  84. </ul>
  85. <h4 id="pwm">PWM</h4>
  86. <p>PWM stands for Pulse Width Modulation. With the default SoC, PWM4 is used to drive the internal display’s backlight brightness.</p>
  87. <ul>
  88. <li><a href="">Driver</a></li>
  89. </ul>
  90. <h4 id="pcie">PCIe</h4>
  91. <p>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.</p>
  92. <ul>
  93. <li><a href="">Driver</a></li>
  94. </ul>
  95. <h4 id="uart">UART</h4>
  96. <p>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.</p>
  97. <ul>
  98. <li><a href="">Driver</a></li>
  99. </ul>
  100. <h4 id="hdmi">HDMI</h4>
  101. <p>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.</p>
  102. <ul>
  103. <li><a href="">HDMI PHY Driver in vendor kernel</a></li>
  104. <li><a href="">HDMI TX Driver in vendor kernel</a></li>
  105. </ul>
  106. <h4 id="usb3">USB3</h4>
  107. <p>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 <a href="#usb-hub">USB hub chip</a> on the motherboard.</p>
  108. <ul>
  109. <li><a href="">PHY Driver</a></li>
  110. </ul>
  111. <h4 id="mmc">MMC/SD</h4>
  112. <p>Reform uses both USDHC MMC/SD controllers of i.MX8M:</p>
  113. <ul>
  114. <li>The first controller connects to an eMMC flash disk on the SOM (usually 8GB in size).</li>
  115. <li>
  116. <p>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.</p>
  117. </li>
  118. <li><a href="">Driver</a></li>
  119. </ul>
  120. <h4 id="ddrc">DDRC</h4>
  121. <p>The DDRC connects the physical LPDDR4 RAM chip to the blocks inside of the SOC, including CPU and GPU.</p>
  122. <ul>
  123. <li><a href="">DDRC Devfreq Driver</a></li>
  124. </ul>
  125. <h4 id="eth-mac">ETH MAC</h4>
  126. <p>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.</p>
  127. <ul>
  128. <li><a href="">FEC Driver</a></li>
  129. </ul>
  130. <h3 id="eth-phy">ETH PHY</h3>
  131. <p>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.</p>
  132. <ul>
  133. <li><a href="">Datasheet</a></li>
  134. </ul>
  135. <h2 id="usb-hub">USB Hub</h2>
  136. <p>Reform has a TI TUSB8041 USB Hub chip with four downstream ports, two of which lead to external USB3.0 connectors.</p>
  137. <ul>
  138. <li><a href="">Website</a></li>
  139. <li><a href=";ts=1590007407171">Datasheet</a></li>
  140. </ul>
  141. <h2 id="rtc">Battery-Backed Realtime Clock</h2>
  142. <p>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 <a href="#i2c">I²C</a>.</p>
  143. <ul>
  144. <li><a href="">RTC Datasheet</a></li>
  145. <li>Coin cell standard: CR1220</li>
  146. </ul>
  147. <h2 id="dsi2edp">DSI to eDP Converter</h2>
  148. <p>The Reform motherboard has a TI SN65DSI86 (variant SN65DSI86IPAPQ1) chip that converts <a href="#dsi">MIPI-DSI</a> signals to eDP signals that the built-in <a href="#panel">display panel</a> 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.</p>
  149. <p>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.</p>
  150. <ul>
  151. <li>Input DSI lanes: 4 + Clock</li>
  152. <li>Output eDP lanes: 2 + AUX</li>
  153. <li>Color depth: 8 bit per color channel (24 bit per pixel)</li>
  154. <li>Standard Resolution: 1920x1080 @ 60 FPS</li>
  155. <li><a href=";ts=1590150753809">SN65DSI86 Datasheet</a></li>
  156. </ul>
  157. <h2 id="dac">Audio DAC/ADC</h2>
  158. <p>The Audio DAC/ADC converts between the <a href="#sai">digital SAI audio signals</a> and the signals on the <a href="#audiojack">audio jack</a> and the <a href="#speakers">speakers</a>. It can drive both speakers and headphones with independent volumes.</p>
  159. <ul>
  160. <li>Model: Cirrus/Wolfson WM8960</li>
  161. <li><a href="">Datasheet</a></li>
  162. </ul>
  163. <h2 id="audiojack">TRRS 3.5mm Audio Jack</h2>
  164. <p>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.</p>
  165. <p>The audio jack uses the CTIA standard to define which signals are located on which contacts on the plug:</p>
  166. <ul>
  167. <li>Tip: Left Speaker</li>
  168. <li>First Ring: Right Speaker</li>
  169. <li>Second Ring: Microphone</li>
  170. <li>Sleeve: Ground</li>
  171. </ul>
  172. <h2 id="lpc">System Controller</h2>
  173. <p>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.</p>
  174. <p>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.</p>
  175. <p>The LPC can be directly controlled by <a href="#kbctrl">Circle commands given via the keyboard</a>.</p>
  176. <p>Model: NXP LPC11U24</p>
  177. <ul>
  178. <li><a href="">Datasheet</a></li>
  179. <li><a href="">Firmware</a></li>
  180. </ul>
  181. <h2 id="balancer">Cell Monitor/Balancer</h2>
  182. <ul>
  183. <li>Model: Analog/Linear LTC6803-4</li>
  184. <li><a href="">Datasheet</a></li>
  185. </ul>
  186. <h2 id="ina">Battery Voltage/Current Monitor</h2>
  187. <ul>
  188. <li>Model: Texas Instruments INA260</li>
  189. <li><a href=";ts=1590151953117">Datasheet</a></li>
  190. </ul>
  191. <h2 id="ltc4020">Buck-Boost DC-DC/Charger</h2>
  192. <ul>
  193. <li>Model: Analog/Linear LTC4020</li>
  194. <li><a href="">Datasheet</a></li>
  195. </ul>
  196. <h2 id="barreljack">Barrel Jack (Wall Power)</h2>
  197. <p>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.</p>
  198. <ul>
  199. <li>Receptacle: Switchcraft RAPC712X</li>
  200. <li>Inner diameter: 2.5mm</li>
  201. <li>Outer diameter: 5.5mm</li>
  202. <li>Poles: Positive on inner pole, negative on outer barrel.</li>
  203. </ul>
  204. <h2 id="r5v">5V Power Rail</h2>
  205. <ul>
  206. <li>Type: Buck</li>
  207. <li>Model: Texas Instruments LM2677SX-5</li>
  208. <li><a href=";ts=1590152214783">Datasheet</a></li>
  209. <li>Max Current: 5A</li>
  210. </ul>
  211. <h2 id="r3v3">3V3 Power Rail</h2>
  212. <ul>
  213. <li>Model: Texas Instruments LM2677SX-3.3</li>
  214. <li><a href=";ts=1590152214783">Datasheet</a></li>
  215. <li>Max Current: 5A</li>
  216. </ul>
  217. <h2 id="standby">3V3 Standby Power Rail</h2>
  218. <ul>
  219. <li>Type: Buck</li>
  220. <li>Model: Texas Instruments LMR16006YQ3</li>
  221. <li><a href="">Datasheet</a></li>
  222. </ul>
  223. <h2 id="r1v8">1V8 Power Rail</h2>
  224. <ul>
  225. <li>Type: LDO</li>
  226. <li>Model: Texas Instruments TLV1117-18</li>
  227. <li><a href=";ts=1590152118151">Datasheet</a></li>
  228. </ul>
  229. <h2 id="r1v5">1V5 Power Rail</h2>
  230. <ul>
  231. <li>Type: Buck</li>
  232. <li>Model: Texas Instruments TLV62568DBV</li>
  233. <li><a href=";ts=1590152066123">Datasheet</a></li>
  234. </ul>
  235. <h2 id="r1v2">1V2 Power Rail</h2>
  236. <ul>
  237. <li>Type: Buck</li>
  238. <li>Model: Texas Instruments TLV62568DBV</li>
  239. <li><a href=";ts=1590152066123">Datasheet</a></li>
  240. </ul>
  241. <h2 id="kbctrl">Keyboard Controller</h2>
  242. <ul>
  243. <li>Model: Microchip/Atmel Atmega32U4</li>
  244. <li><a href="">Datasheet</a></li>
  245. <li><a href="">Firmware</a></li>
  246. </ul>
  247. <p>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 <a href="#lpc">LPC</a>. The LPC then responds with characters to display on the <a href="#oled">OLED</a>.</p>
  248. <p>In the 2.0D-3/D-4 development version:</p>
  249. <ul>
  250. <li><em>Circle + 1:</em> Turn on the main system (powers up 5V, 3V3 and PCIe rails)</li>
  251. <li><em>Circle + 0:</em> Turn off the main system (powers down 5V, 3V3 and PCIe rails)</li>
  252. <li><em>Circle + 2:</em> Turn off the OLED display (turned back on by any other command)</li>
  253. <li><em>Circle + F1:</em> Decrease keyboard backlight brightness</li>
  254. <li><em>Circle + F2:</em> Increase keyboard backlight brightness</li>
  255. <li><em>Circle + V:</em> Show voltages of all cells, total voltage and Amps going in or out of batteries plus charge percentage estimation.</li>
  256. <li><em>Circle + Y:</em> Show voltage and amps as measured by the <a href="#ina">INA260</a> voltage/current monitor.</li>
  257. <li><em>Circle + S:</em> Display LPC status (idle/charging, overvoltage/balancing, undervoltage)</li>
  258. </ul>
  259. <p>Keep in mind that <em>Circle + 0</em> powers off the system immediately, so save your work and make sure it is synced to disk before powering off. For example, use the <code>sync</code> or <code>shutdown</code> commands.</p>
  260. <h2 id="kbkeys">Keyboard and Trackball Keys</h2>
  261. <p>The keyboard and trackball modules both use the same type of switch.</p>
  262. <ul>
  263. <li>Standard Keyswitch Model: Kailh PG1350 Low Profile Choc Brown.</li>
  264. <li><a href="">PG1350 Datasheet</a></li>
  265. <li>Keyboard Keycaps: Kailh Black Low Profile / Choc Keycap 1.5U and 1U.</li>
  266. </ul>
  267. <p>The trackball has custom keycaps designed by MNT Research and 3D printed in an SLA process.</p>
  268. <ul>
  269. <li><a href="">Trackball 3D Printed Parts</a></li>
  270. </ul>
  271. <h2 id="oled">Keyboard OLED</h2>
  272. <p>The OLED display sits on its own little PCB on top of the keyboard, and is powered and controlled by the <a href="#kbctrl">keyboard’s MCU</a> independently from the computer’s main processor.</p>
  273. <p>The display is currently used to show the results of <a href="#kbctrl">Circle commands given via the keyboard</a>.</p>
  274. <ul>
  275. <li>Model: Generic SSD1306 128x32 Pixel OLED, Monochrome, I²C Interface</li>
  276. </ul>
  277. <h2 id="tbctrl">Trackball Controller</h2>
  278. <ul>
  279. <li>Model: Microchip/Atmel Atmega32U2</li>
  280. <li><a href="">Datasheet</a></li>
  281. <li><a href="">Firmware</a></li>
  282. <li><a href="">Trackball 3D Printed Parts</a></li>
  283. </ul>
  284. <h2 id="tbsensor">Trackball Sensor</h2>
  285. <ul>
  286. <li>Model: Pixart PAT9125EL</li>
  287. <li><a href="">Datasheet</a></li>
  288. </ul>
  289. <h2 id="tpcrtl">Trackpad Controller</h2>
  290. <ul>
  291. <li>Model: Microchip/Atmel Atmega32U2</li>
  292. <li><a href="">Firmware</a></li>
  293. </ul>
  294. <h2 id="tpsensor">Trackpad Sensor</h2>
  295. <ul>
  296. <li>Model: Azoteq TPS65-201A-S</li>
  297. <li><a href="">Datasheet</a></li>
  298. </ul>
  299. <h2 id="panel">Display Panel</h2>
  300. <p>The display panel is connected to two main types of signals via a single IPEX connector:</p>
  301. <ul>
  302. <li>eDP (embedded DisplayPort), via the <a href="#dsi2edp">MIPI-DSI to eDP converter</a></li>
  303. <li>
  304. <p><a href="#pwm">PWM</a> 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).</p>
  305. </li>
  306. <li>Model: Innolux N125HCE-GN1</li>
  307. <li><a href="">Panelook Information</a></li>
  308. </ul>
  309. <h2 id="speakers">Speakers</h2>
  310. <p>Reform uses 2x 8 Ohm, 1 Watt mobile speakers mounted below the <a href="#panel">display panel</a>. They are powered by the <a href="#dac">Audio DAC</a>.</p>
  311. <ul>
  312. <li>Model: PUI AS01808AO-3-R</li>
  313. <li><a href="">Datasheet</a></li>
  314. </ul>
  315. <h2 id="cells">Battery Cells</h2>
  316. <p>Reform uses 8 battery cells with LiFePO4 (Lithium Iron Phosphate) chemistry.</p>
  317. <h3 id="important-warnings-of-potential-fire-and-injury-hazards">Important Warnings of Potential Fire and Injury Hazards</h3>
  318. <ul>
  319. <li><em>Do not use batteries of any other chemistry in MNT Reform!</em></li>
  320. <li><em>Double check polarity of battery cells and make sure they are the right way around!</em></li>
  321. <li>
  322. <p><em>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.</em> - <em>Do not use metal tools or open wires inside of MNT Reform!</em></p>
  323. </li>
  324. <li>Chemistry: LiFePO4</li>
  325. <li>Form Factor: 18650</li>
  326. <li>Voltage: 3.2V</li>
  327. <li>Cell Charge Voltage: 3.6V</li>
  328. <li>Configuration: Series (28.8V)</li>
  329. </ul>
  330. <h3 id="examples-of-compatible-cells">Examples of compatible cells</h3>
  331. <ul>
  332. <li><a href="">Battery Space</a></li>
  333. <li><a href="">ENERpower</a></li>
  334. <li><a href="">Lithium Werks</a></li>
  335. </ul>