Hardware ======== .. role:: raw-latex(raw) :format: latex .. image:: _static/illustrations/hardware-outlines2-icon.png Case Parts ---------- The MNT Reform Next laptop has a unique modular, open and extensible hardware design. This chapter explains the major components and how they're connected. The case consists of four big parts. All parts are CNC milled from sand-blasted and anodized 6061 aluminum. 1. **Main Case:** the chassis of MNT Reform Next. Most of the PCBs (printed circuit boards) are attached to it with screws. 2. **Keyboard Frame:** a bezel that covers the top of the main case, frames the keyboard and provides palm rests. The trackpad is mounted into it from below. 3. **Display Case:** houses the display and the upper halves of the hinges. 4. **Display Frame:** the bezel for the display. The camera cover is mounted into it above the display. The case also has a total of four small covers: two aluminum covers for the ports on the left and right side, one aluminum cover above the display for the camera kit or other extensions, and one acrylic cover in the back for the Wi-Fi/BT module and one of its antennas. For easy (dis)assembly, MNT Reform Next uses black, carbon steel M2 screws with Phillips-head everywhere---with one exception: M4x5 on the top half of the hinges. The screws are partially covered with nylon to prevent vibrations from loosening them in their threads. Main Case +++++++++ .. image:: _static/illustrations/main-case-icon.png The main case has a prominent grid of 20x20mm spaced M2 threads which allows for flexible customization of the laptop through small modules called *Tiles*. This feature was inspired by the "Peek Array" (named after its inventor Dr. Nadya Peek) in Bunnie Studios' 2014 open-source hardware Novena computer. It houses most of the electronics: - The *Mainboard* with its *Processor Module* - The two *Port Boards*, exposing ports through openings on the left and right - any *Tiles* installed on the 20x20mm *Mounting Grid* - A *Mono Speaker* - The *Wi-Fi/BT Module* - The *Keyboard* - The *OLED display* - Two identical LiFePO4 *Battery Packs* The main case connects to the Display Case through two hinges. It also features two laser cut carbon steel strips inserted into slots below the front edge. These are attracted by the magnets in display case when closing the laptop, holding it shut. Keyboard Frame ++++++++++++++ .. image:: _static/illustrations/keyboard-frame-top-1-empty-icon.png The keyboard frame closes the the main case from the top. It's attached with eight M2x8 countersunk screws. The keyboard frame also houses the trackpad sensor board and trackpad button board---see the *Trackpad* section further down. Display Case ++++++++++++ .. image:: _static/illustrations/display-case-empty-1-icon.png The eDP display panel rests in the display case. The display cable is fed through the left hinge and into the main case, where it connects to the *eDP Adapter Tile*. The left and right hinges are mounted in the bottom left and right corners of the display case with three M4x5 countersunk screws each. Note that the hinge labeled "SMS-ZZ-219-L" goes on the right side, and the hinge labeled "SMS-ZZ-219-R" goes on the left side. The other half of each hinge is mounted to the main case with four M2x8 countersunk screws. Two neodymium magnets are mounted along the top edge of the Screen Back. These attract the carbon steel strips in the Main Case when closing the laptop. Display Frame +++++++++++++ .. image:: _static/illustrations/display-frame-empty-2-icon.png The display frame serves as a bezel for the display. It is mounted with seven M2x4 countersunk screws to the display case. The display frame also has a rectangular cutout near the top. If you don't have a camera or other kit for this area, this opening is covered by the fully closed *camera cover*, which is an aluminum rectangle mounted with two M2x4 countersunk screws. The camera kit includes a replacement for this cover which has a hole for the camera sensor. Port Covers +++++++++++ The Port Covers are two pieces of anodized aluminum that cover the side openings of the Main Case (mounted with two countersunk M2x4 screws each). Future Port Boards will include alternative Port Covers to accommodate different layouts. Mainboard --------- .. image:: _static/illustrations/mainboard.png The mainboard rests between the two battery packs and carries the Processor Module and up to two NVMe SSDs. It has no ports connected directly to the outside, instead it's connected by a number of cables to the two port boards and the rest of the system. It is screwed to four 2.5mm tall steel hex spacers with four M2x4 pan head screws, which in turn are attached to M2 mounting posts on the main case. .. image:: _static/illustrations/mainboard-bottom.png The Mainboard has the following features: - **System controller:** an RP2350A dual-core Cortex-M33 MCU that controls the battery packs, the charger, the main power rails, USB-C PD communication via the left port board, and USB port muxing. It is connected to the Processor Module via SPI and USB, so it can report battery and system status to the OS. It has a dedicated UART (SYSCTL) line to the keyboard, so that you can issue power on/off commands and battery status queries from the keyboard's OLED menu. - **Power system:** based on the BQ25792 buck/boost charger, it regulates charging of the two battery packs and seamlessly switches between USB-C and battery power. - **M.2 slot, 2280:** A key M slot with up to 4 PCIe lanes that you can use for a 2280-sized NVMe SSD, intended for primary storage expansion. - **M.2 slot, 2242:** A key M slot with up to 2 PCIe lanes that you can use for a 2242-sized NVMe SSD, for secondary storage expansion. - **Internal battery connectors:** two identical 7-pin JST-SH connectors for connecting the battery packs on the top side (J11 and J12). The battery packs' voltages are connected together on the mainboard in parallel, but each pack can be gated separately via I²C commands by the System Controller to allow for balancing and redundant operation. - **Internal power connectors:** the mainboard has a bidirectional 6-pin power connection to the left port board, through connector J7 on the bottom side. The mainboard also has a dedicated 6-pin JST-SH connector (J10) for the display on the top side, as the display's backlight is usually a major energy consumer. - **Internal data connectors:** the mainboard has a row of 6 flat cable connectors that provide data and power to I/O chips and ports on the port boards. The first group goes to the left port board, labeled from left to right: "Sound", "SD", "Ethernet", and "USB3 B". The second group supplies the right port board: "USB3 A" and "HDMI/DP". - **Internal input connectors:** the rightmost two 4-pin JST-SH connectors, next to the display power connector, are reserved for the keyboard and its little OLED screen and multi-touch trackpad. J6, labeled "HID USB" goes to the "USB" connector on the keyboard and established---you guessed it---USB HID connectivity for the keyboard and trackpad functions to the operating system. The "HID UART" line next to it is required for System Controller interactions of the keyboard, where it goes to a connector named "UART". This connection is required to be able to turn the laptop on and off and view battery/charging status on the keyboard's OLED display. - **Hard reset line:** The 2-pin JST-SH connector J1 on the bottom of the mainboard (labeled "SHDN") leads to the left port board's hard reset button. When this circuit is closed by the button, it turns off standby 3.3V power, resetting the system controller and power chips. - **System controller switches:** Normally only needed for firmware development, there's a reset button ("SYSRST") as well as a debug connector ("SWD"), and two little DIP switches on SW1. The first one, "FORCE POWER", forces the mainboard's power rails on as a last resort to boot the system without firmware. The other one, "PROG", forces the System Controller into USB programming (flashing) mode. System Controller +++++++++++++++++ Independent from the main Processor Module, a low-power microcontroller sits on MNT Reform Next's mainboard. The RP2350A is a dual-core hybrid ARM Cortex-M33/Hazard3 RISC-V processor that uses very little power and is always on as long as there is battery or wall power present. We call this processor the *System Controller*. The System Controller runs a program in an endless loop that has the following jobs: - Powering the individual voltage rails of the system on and off - Monitoring the voltage of each battery cell - Balancing battery cells. If a cell is overvolted, charging is halted and the overvolted cells are discharged until they are back to a nominal voltage - Turning off the system if battery cells are undervolted/discharged - Regulating and reporting the total current flowing in and out of the batteries Your main way of communicating with the System Controller is with the Keyboard. The Keyboard has, aside from its USB connection to the main processor, a separate serial (UART) line to the mainboard's SYSCTL port. A 115200 baud connection is always established between the Keyboard and the System Controller. The System Controller accepts commands in plain text form. A command consists of a word, sometimes followed by one or more parameters, and has to be wrapped in parentheses. The command ``(set-rail 0 1)``, for example, turns on power rail number zero (the first one), while the command ``(pdreset)`` resets the USB-C Power Delivery state. For an up-to-date command reference, refer to the ``README.md`` file in the firmware directory of MNT Reform Next's source code repository: ``_ The individual cell voltages are measured by the battery monitor chip in each battery pack and reported via I²C to the System Controller. The total voltages and currents are measured by the charge and DC-DC controller chip on the mainboard and also reported via I²C. The System Controller is connected to the Processor Module through a SPI interface and through USB. The System Image ships with a kernel module/driver called ``mnt-sc`` which makes battery information and power control available to the OS. The source code for this driver is available in the `system-controller `_ directory of the ``reform-tools`` repository. 2280 M.2 Socket (Key M) +++++++++++++++++++++++ .. image:: _static/illustrations/mainboard-with-2280-ssd-icon.png Some Processor Modules (like RCORE and Quasar) feature a PCIe 3.0 controller that is connected to the 2280 M.2 socket on the top side of the mainboard. This slot is intended for primary storage expansion using a full-size (2280) NVMe SSD. To install an SSD, plug it into the socket at an angle and then fix it with an SSD mounting screw to the threaded mounting hole in the mainboard. 2242 M.2 Socket (Key M) +++++++++++++++++++++++ .. image:: _static/illustrations/mainboard-bottom-with-2242-ssd-icon.png The standard use for this slot is to install a secondary, 2242 size M.2 NVMe SSD. Depending on your Processor Module, this port features up to 2x PCIe lanes. Plug the SSD disk into the socket and secure it with an SSD mounting screw using the threaded hole in the mainboard. Processor Module ++++++++++++++++ .. image:: _static/illustrations/mainboard-bottom-with-cpu-icon.png A unique feature of the MNT Reform series of computers is the exchangable *Processor Module*. When the first classic MNT Reform was released in 2020, we had only one Processor Module to offer. Now, six years later, there is a whole range of them, each with different features to accommodate individual preferences. We are constantly developing new modules for MNT Reform Next. The standard at the time of writing is the RCORE with RK3588---a powerful Processor Module with 4x performant ARM Cortex-A76 cores, 4x power-efficient ARM Cortex-A55 cores, and up to 32 GB RAM. You can plug an MNT Processor Module into the 200-pin mainboard connector U1 at an angle, and push it down until it clicks into place. If you want to learn more about Reform Next's Processor Modules or develop your own, take a look at the schematics and KiCad projects in our source code repositories at ``_. The Processor Module has at least two of its own flat cable connectors, one that's connected to the Wi-Fi/BT board (this port has PCIe and USB signals for Wi-Fi/BT cards), and the other one providing an eDP (embedded DisplayPort) signal to the screen through the Display Adapter. Display Adapter +++++++++++++++ .. image:: _static/illustrations/display-adapter.png The display in MNT Reform Next conforms to the eDP (embedded DisplayPort) standard. Some Processor Modules output eDP directly, like the standard RCORE/RK3588 module. A flex cable connects the port labeled *HDMI/DP* on the Processor Module to a small PCB called the *eDP Adapter Tile* on the mainboard's mounting grid. This tile adapts the signals to a JST-SH connector and a cable that is fed through the left hinge. The smaller, 6-pin JST-SH connector has to be connected to the "DISP PWR" on the mainboard, so that the display receives power. The display adapter is mounted to the mounting grid with three M2x3 countersunk screws. Left Port Board --------------- .. image:: _static/illustrations/ports-left.png The left port board (also called "port board one") does a lot of heavy lifting in MNT Reform Next and is required for being able to charge the batteries: - **USB-C port with Power Delivery:** the most important and complex port of the system. You'll mainly use this port for charging MNT Reform Next using a standard USB-C PD power supply. In "sink" mode, the System Controller (on the mainboard) negotiates up to 20V from the supply over CC lines driven by the FUSB302B chip on this port board. In "source" mode, it can power a USB device with 5V/1.5A. This is handled automatically by System Controller firmware. USB3 signals from the mainboard are automatically muxed to the correct pins according to the USB-C cable's plug-in orientation, and their signal quality is boosted by an EQCO5X31C0 reclocker/redriver. In addition, MNT Reform Next can switch (mux) various different functions to this port's USB2 pins (this is done on the mainboard): 1. Host mode: Regular USB2 host of the Processor Module. This is the default mode when the system is turned on. 2. System controller mode: This mode switches the System Controller's UART to this port instead of the Processor's USB host, allowing you to debug or flash the System Controller without disassembling the laptop. This is the default mode when the laptop is turned off. 3. Serial console mode: This mode exposes the Processor's UART as a USB-UART device, allowing you to conveniently see bootloader and OS kernel boot/debug output without disassembling the laptop. 4. USB bootloader/EDL mode, where instead of connecting Processor Module USB2 pins to a hub on the mainboard, they're directly connected to this port, so you can use USB recovery modes of some Processor Modules like RCORE/RK3588 (rkloader) or Quasar (Qualcomm EDL). Modes 3 and 4 can be activated using the OLED menu's "System Control" sub-menu. - **Ix Industrial Ethernet port:** this port carries regular Gigabit Ethernet in a compact form that can be adapted to classic RJ-45 using a passive adapter cable. - **MicroSD card slot:** you can insert regular MicroSD cards here---push an inserted card a bit further to eject it again. Note that the default bootloader will try to boot from a MicroSD card, which can be useful for OS repairs or re-installations. - **LEDs:** A status LED on the left of the USB-C port signals charging with a red glow, while a blue LED signals that the system is powered on. Two LEDs on the left of the Ethernet port show link status and activity. - **Hard Reset button:** Poke it through the hole with a pointy (but not too sharp) object to hard reset the whole system (momentarily cuts 3.3V standby power). - **3.5mm headset jack (TRRS) and sound chip:** A TI TLV320AIC3100 audio DAC/ADC (digital-to-analog and analog-to-digital converter)/amplifier interfaces with the headphone/microphone jack and powers the speaker. **Warning: it's critically important not to plug anything into the headset jack unless the stabilizer is installed, otherwise the jack will break off the board and cause permanent damage!** The stabilizer is a 3D printed part that is screwed through the port board into the main case. **This part is pre-installed by MNT---make sure you put it back in place after servicing the laptop.** .. image:: _static/illustrations/ports-left-stabilizer.png The stabilizer is mounted through one hole of the left port board with a countersunk M2x6 screw, while the other end of the port board uses a M2x3.5 (or M2x4) screw. Right Port Board ---------------- .. image:: _static/illustrations/ports-right.png The right port board (also known as "port board two") mainly provides a range of USB3 ports (2x USB-C and 1x USB-A) and an HDMI port. Through its integrated Super-Speed USB hub, it also supplies the optional camera module or other extensions with internal USB3 signals. This port boards connects to the internal "USB3 A" and "HDMI" connectors on the main board. Please note that the internal connector and flat cable for HDMI are special, as the cable is plugged in upside down, with contacts facing up instead of down. When servicing this area, please pay attention to the markings on the cable. The right port board is mounted with two countersunk M2x3.5 (or M2x4) screws. Wi-Fi/Bluetooth Module ---------------------- .. image:: _static/illustrations/wifi-module-with-card-icon.png This small PCB is located below the keyboard, in the middle of the main case's back side, where it's mounted with two M2x3 countersunk screws. It connects the data and power coming from the Processor Module's Wi-Fi/BT flat cable to an M.2 slot with an E key meant for cards providing Wi-Fi and Bluetooth connectivity, like the standard Intel AX210 card. The Wi-Fi/BT card has two MHF4 connectors for radio antennas. One antenna (with a short cable) is attached to the acrylic back cover directly behind the Wi-Fi/BT module, while the other antenna is attached next to the keyboard. Battery Packs ------------- .. image:: _static/illustrations/batterypack-full-2-icon.png MNT Reform Next has two identical battery packs, referred to as the Left and Right packs. Each pack holds four 18650 LiFePO4 cells (3.2V). Please note that each battery pack is mounted with two M2x8 countersunk screws on its outer side (closer to the laptop's wall), but two M2x6 countersunk screws on the inner side (next to the mainboard). **You may be tempted to try cells of other chemistries like Li-Ion or NiMH, but never do this, as these are incompatible.** **Only use LiFePO4 cells with MNT Reform Next!** .. image:: _static/illustrations/battery-pack.png **When inserting battery cells, make sure that the positive and negative poles are facing in the correct direction.** The poles are marked on the silkscreen of the battery pack PCBs. **Remove the battery packs before doing any work inside MNT Reform Next to prevent damage from accidental discharge.** Compatible Battery Cells ++++++++++++++++++++++++ The following table lists some compatible LiFePO4 cells, but any LiFePO4 chemistry cell of 18650 size should work. It is not recommended to mix cells of different capacities, as the lowest capacity cell will dictate the lowest safe point of discharge. ============ =============== ======== Brand Model Capacity ============ =============== ======== JGNE JGCFR18650-2200 2200mAh Eremit 18650 LiFePO4 2000mAh ============ =============== ======== Mono Speaker ------------ .. image:: _static/illustrations/speaker-icon.png The speaker is mounted in the back near the left hinge with two M2x4 pan head screws. The speaker has a 2-pin PicoBlade cable that connects to the audio circuit on the left port board. Keyboard -------- .. image:: _static/illustrations/keyboard-parts.png The keyboard is mounted to the top of the Main Case with six M2x4 pan head screws. It is powered by an RP2040 microcontroller. The controller scans the row/column matrix of keyswitches and reports key presses via USB HID (human interface device) to the mainboard. Each switch has a diode to prevent ghosting, so you can press multiple keys at once. The microcontroller runs a firmware based on ``pico-sdk`` and ``tinyusb`` which is an open source library for implementing USB input devices. On the MNT Reform Next, the keyboard also scans the trackpad's multi-touch sensor data and the state of the trackpad's 3 buttons. The second role of the keyboard is to serve as a user interface to the System Controller on the mainboard, even when the main processor is turned off. To make this possible, the keyboard connects via a separate UART cable to the mainboard's SYSCTL UART header. The keyboard can alternatively be taken out of the laptop and used as a standalone USB-C device. To enable this function, turn on the *STANDALONE* switch near the top right corner. When using the keyboard in the laptop, this switch has to be turned off. Keyboard Backlight ++++++++++++++++++ Most keys have a light emitting diode (LED) to illuminate the transparent part of the keycaps, making the laser engraved letters visible in darkness. You can control the backlight's brightness via *Circle* followed by *F1* or *F2*, or use the OLED menu. To change the keyboard backlight's color, you can use *F3*/*F4* for hue and *F5*/*F6* for saturation control while the OLED menu is open. Replacing a Keycap ++++++++++++++++++ .. image:: _static/illustrations/22-icon.png MNT Reform Next comes with custom *MBK Choc Glow* keycaps by FKcaps, but you can use any keycaps compatible with `Kailh Choc `_ keyswitches. You can pull out individual keycaps with your fingernails---or better, using a keycap puller---and swap them around. Replacing a Keyswitch +++++++++++++++++++++ Should a keyswitch ever break, you can replace it with `Kailh Choc Brown (CPG135001D02) `_ or `Kailh Choc White (CPG135001D03) `_. The best way to desolder the switch is a desoldering gun. If you don't have one, use a soldering iron and solder wick to remove the solder of one pin. Try to pull out the corresponding side of the switch from the top while continuing to heat the pin. Repeat the same for the other pin and go back and forth until you can remove the switch. OLED Module ----------- .. image:: _static/illustrations/oled-module.png The OLED display sits on the OLED Module which is connected to the keyboard through a 4-pin, 1mm pitch flex cable. The communication protocol is I²C. The module is mounted in the Main Box on top of the keyboard with two M2x4 pan head screws. If you're feeling creative and want to customize your OLED with text, images or even animations, we've got you covered. Check the MNT Reform Next source repository and navigate to the `reform2-keyboard-fw/kbdgfx-demo `_ directory. This directory contains example code that serves as a starting point for developing your own custom OLED graphics. Trackpad -------- .. image:: _static/illustrations/trackpad-callouts.png The trackpad sensor is a sandwich of two custom parts: - A PCB that integrates an Azoteq IQS9150 capacitive sensor which senses and reports touch coordinates over I²C. - A glass surface that provides a smooth touch surface. The trackpad's 3 buttons are on a separate PCB adjacent to the trackpad sensor. The buttons are based on Kailh PG1316S ultra low profile mechanical switches. .. image:: _static/illustrations/trackpad-callouts2.png The trackpad sensor and buttons are controlled by the keyboard's microcontroller. A long 6-pin flat cable from the keyboard to the button board provides 3.3V power and an I²C data bus, while a shorter version of this cable carries the same bus further to the trackpad sensor. While the trackpad button board is attached to the main case by two M2x4 pan head screws, the sensor is held in place by four 3D-printed hexagonal plugs that are in turn secured by four countersunk M2x4 screws. The goal of this design is to be able to adjust the sensor's position more precisely, accommodating for variations in machined part dimensions. Compatible Displays ------------------- MNT Reform Next was designed to be compatible with a number of 12.5 inch (diagonal) 1920x1080 pixel eDP displays. We tested the following display models successfully: ============ ============================== Brand Model ============ ============================== Innolux N125HCE-GN1 (Center Connector) Innolux N125HCE-GN1 (Side Connector) Innolux N125HCE-GPA (glossy or matte) BOE NV125FH1-N82 AU Optronics B125HAN02.2 ============ ==============================