Posts
\n\n> I do not think there is any thrill that can go through the human heart like that felt by the inventor as he sees some creation of the brain unfolding to success\n- [Nikola Tesla](https://en.wikipedia.org/wiki/Nikola_Tesla)\n\n**It's got a 4K AMOLED display, a Cherry MX mechanical keyboard, plays Minecraft at 4K, runs +7B LLMs, surfs the web, and has ~7h battery life. All open-source.**\n\n## Video\n\n
\n \n \n \n
\n\n*How I Made A Laptop From Scratch (YouTube.com). Demo at 22:14.*\n\n**The writeup below pretty much abridges the video above.**\n\n*[See the progression updates from the development journey here.](/progress)*\n\nImagine a skill-chart of qualities of technology: screen, audio, performance, build, tactility, touch-interaction, efficiency, size, and so many more. At the balancing point of all these qualities is the laptop. To that end, let's build a laptop that hits as many qualities of a modern commercial thin & light laptop--while trying to do as much from scratch as possible.\n\n\n\n\n*Booting and inserting magnetically attached keyboard*\n\n\n\n*Epic Hypixel Bedwars gaming*\n\n## Finding an electron in a cloud\n\nI first made a mental map and transferred it into Obsidian:\n
\n \n
\nBoiling it down, it landed me with a lofty list of goals:\n\n- [RK3588](https://www.rock-chips.com/uploads/pdf/2022.8.26/19 2/RK3588%20Brief%20Datasheet.pdf) SoC Motherboard\n - [CM3588](https://wiki.friendlyelec.com/wiki/index.php/CM3588 )-based\n - USB-C USB3.1 Gen 1\n - PCIe Wi-Fi/BT + SSD\n- Powertrain\n - [ESP32-S3](https://www.espressif.com/sites/default/files/doc umentation/esp32-s3-mini-1_mini-1u_datasheet_en.pdf) embedded controller\n - ~60Wh Li-ion battery pack\n- Peripherals\n - Wireless mechanical keyboard\n - Glass-topped multi-touch trackpad\n- 4K AMOLED 13.3\" display\n- Anodized aluminum CNC chassis\n\n
\n \n
\n\n*General system overview*\n\n## Fermionic Analysis\n\n### Choosing *the* chip\n\nI looked towards single-board computer SoCs, as board manufacturers commonly release schematics for reference. In many aspects, the Rockchip RK3588 is the fastest consumer-procurable chip on the market. Despite the spotty software support, the hardware documentation has lots of developer resources and [reference schematics](https://wiki.friendlyelec.com/wiki/images/1/15/C M3588_NAS_SDK_2309_SCH.PDF) from SBC manufacturers.\n\nSome quick specs:\n\n- Quad core A76 and quad core A55\n- Mali-G10 GPU\n- 6TOPs NPU\n- 8K@60FPS decoder\n- I/O: 8K display, dual USB3.1, PCIe 3.0 x 4, HDMI2.1/eDP 1.4, etc.\n\nWith only a few months to work on this project, an SoM (system on module) like the Raspberry Pi CM5 presented the best option for its hardware compatibility and a high likelihood of a snug integration. Choosing an SoM also alleviates memory and other high-speed signaling concerns. Looking around for a RK3588 SoM, I came across the CM3588 by FriendlyElec. Cheap, well-documented, and easily procurable. Sounds good!\n\n\n\n*FriendlyElec CM3588 SoM*\n\n### Display\n\nI hopped on [panelook.com](https://www.panelook.com) and filtered by size and resolution. I've always been a sucker for high pixel density, so I went with a 4K AMOLED 13.3\" display. Cross referencing stock availability on Taobao (Chinese domestic Aliexpress), the [ATNA33TP11](https://www.panelook.com/ATNA33TP11_Samsung_13. 3_OLED_parameter_59424.html) seemed to be the one with most *brand-new* stock since OLED risked burn-in.\n\nA highlight: during display evaluation, switching out a connector and shortening the board by 2mm improved signal integrity *just enough* for the 1.5GHz x 4 signals go pass through. Getting the display running on Linux meant finding system logs from Asus laptops that have this display, reverse-engineering the values, and tuning the power-on timings amongst other things *just right*. TLDR; getting a 4K AMOLED eDP display running on non-mainline Linux was a heck of a journey, so read [this if you're interested]() (coming soon).\n\n\n\n*ATNA33TP11 working with display evaluation board V2 short*\n\n### Powertrain\n\nThe cells had to be 6mm thin and four packs lined up should take roughly half of the entire chassis volume. Chinese manufacturers don't stock batteries readily, and shipping them to the US would be a pain. Thus, I looked on the American side. I stumbled upon with [these batteries](https://www.batteryspace.com/polymerli-ionmodule3 7v4250mah157wh85arate-prewiredwithpcbpl5467100.aspx) from AA Portable Power Corp. or batteryspace.com. or Powerizer. Doing the power calculations, we get: 4.250Ah *3.7V* 4S = 62.9 Wh with max 8A (so max 134.4W discharge)! Solid.\n\nThe total voltage is 4.2V (peak) * 4S = 16.8V. The system's designed for up to 20V USB-C (AKA 100W) and passed into the [BQ25713](https://www.ti.com/product/BQ25713) charging IC. The batteries are balanced with the [BQ77915](https://www.ti.com/product/BQ77915) to ensure safe charging, and the power is tracked with an [LTC2943](https://www.analog.com/en/products/ltc2943.html) to calculate a state-of-charge percentage. I popped in an ESP32-S3 module as the controller for everything, and set it to production.\n\nAfter writing drivers and sitting on the undecipherable datasheets for days, I had the batteries charging. I successfully [load tested](https://a.co/d/3b8R9mN) it to around 5A and powered the full system. There's still a lot of quiescent current (about ~50mA), but I haven't had the time to optimize the firmware.\n\nThe USB of the ESP32 connects to the internal USB on the motherboard to feed the power telemetry over UART. A Python script and kernel module in the OS forwards it to the battery service in the kernel to display it natively.\n\n\n\n*Powertrain V0.2 inside laptop*\n\n\nIn settings, tick \"Align controls with KiCad\" for mouse pan/zoom/scroll\n\n[Powertrain V0.2 KiCanvas Full Link](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com% 2FHello9999901%2Flaptop%2Ftree%2Fmain%2Fpower)\n\n### Mainboard\n\nWith those decisions made up, I aimed for less than 90mm motherboard width based on a prelim CAD from the batteries and display dimensions.\n\nOn the physical I/O side, I settled on dual USB3.1 Type-C ports, a USB2.0 Type-A port, a headphone jack, and a microSD card slot. Internally, the M.2 E-key connects to an [RTL8852BE](https://a.co/d/4lJDnwX) WiFi 6 (802.11ax) + BT5.2 wireless card and the M.2 M-key accommodates up to an 2242-sized NVMe SSD. A full size NVMe SSD can fit with some modifications of the chassis too.\n\nTangent over, this leaves me with around ~90mm of board height. Implementing all the features on the final mainboard would stretch this writeup too long, so read [this if you're interested]() (coming soon).\n\n\nIn settings, tick \"Align controls with KiCad\" for mouse pan/zoom/scroll\n\n[Motherboard V1.0 KiCanvas Full Link](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2FHello9999901%2Flaptop%2Ftree%2Fmain%2Fmotherboard)\n\n\n\n*Mainboard B-roll shot*\n\n
\n \n
\n\n*Detailed hardware overview*\n\n### Operating on a System\n\n[Joshua Riek's ubuntu-rockchip](https://github.com/Joshua-Riek/ubuntu-rockc hip) kernel/distro combined an out-of-the-box experience with lots of optimizations. Using Armbian's kernel (I believe it's still off Rockchip's kernel) meant that it offered nearly all the features of the RK3588 on a developer-ready kernel configuration.\n\nSince nearly all the work I needed to do was abstracted in the DeviceTree (DTS) hardware configuration language implemented with U-boot, the bootloader, I took advantage of their system-agnostic nature to speed up my trial-and-error process having never done any Linux work.\n\nInstead of developing and compiling code on the RK3588 itself, I used my daily driver MacBook and Visual Studio Code. Once I made a change in the DTS, I'd use Orbstack (virtualization software) running Ubuntu 24.04 (shared filesystem and kernel with macOS) and compile the DeviceTree there.\n\n```txt\nDTSI, DTS, and DTS Overlay Files (some for SoC, some for other ICs, etc.) -> dtcpp binary (preprocessing & linking various DeviceTree definitions) -> dtc binary (DeviceTree compilation) -> anyon_e.dtb (compiled DeviceTree binary!)\n```\n\nPointing U-Boot to a custom compiled DTB (devicetree binary), I `scp`'ed the compiled `anyon_e.dtb` to the OS. A `u-boot-update` regenerates the bootloader configurations, and a reboot updates the changes.\n\n\n\nThat's how I did the hardware bringup--display configurations, PCIe, USB, and other low-level system tweaks. The rest is just a standard install of Ubuntu 24.04 LTS with Linux Kernel 6.1.\n\n\n\n*Testing batteries and writing DTS*\n\n
\n \n
\n\n*In-depth software overview*\n\n### Peripherals\n\nImagine being able to just pull out your laptop's keyboard and use it as just another wireless keyboard for literally anything! Just me? Maybe.\n\nBeing a mechanical keyboard addict with quite a few [ZMK keyboards](https://zmk.dev) designed, I chose the [Cherry MX ULP mechanical switches](https://github.com/pashutk/Cherry_MX_ULP) for the best feel. Of course, a battery and fully mechanical switches add *a lot* of height. I used a 1mm thin [200mAh battery](https://www.powerstream.com/thin-lithium-ion.htm) and a custom battery protection board that sticks up between two rows of keys to cut down on ~1.6mm (PCB height). The nRF52840 SoC running ZMK Firmware is right underneath the spacebar. A sandwich of PLA and 6061 aluminum from Fabworks crammed everything under ~7mm.\n\nSince the keycaps aren't easily procurable, I got a [0.15mm nozzle](https://www.printedsolid.com/products/e3d-revo-nozzl es?srsltid=AfmBOopKMJDs7gFpzrJg3kHQ-aJLDFTjeFO0ZJAYf1hADzy5i urNlkLB) for my Bambu Lab X1C and printed them with PLA. It got me down a rabbit hole of tungsten nozzles, and I got quoted ~$400 for 20x 0.15mm nozzles. I've been thinking of trying that out too. But alas, printing out all the keycaps and assembling for the last time, the keyboard was done.\n\nMoving on to the trackpad, it was quite quick. I knew from the start that I wanted a good trackpad, so making my own with zero capacitive tracking experience is a no-go. Searching online, I came across the Azoteq [PXM0057-401](https://www.mouser.com/ProductDetail/Azoteq/PX M0057-401-S?qs=t7xnP681wgVkp9ZZYy6TPA%3D%3D) evaluation module on Mouser. It had it all--glass surface, multi-touch, and worked over USB. And, it was only 35 bucks or so. However, the trackpad has ceased production without many alternatives.\n\nWith the keyboard and trackpad working, it was time to put on the finishing touches.\n\n\nIn settings, tick \"Align controls with KiCad\" for mouse pan/zoom/scroll\n\n[Keyboard V1.0 KiCanvas Full Link](https://kicanvas.org/?github=https%3A%2F%2Fgithub.com%2FHello9999901%2Flaptop%2Ftree%2Fmain%2Fkeyboard)\n\n\n\n*Counterclockwise from top left: keyboard side profile, typing on keyboard, trackpad, 1mm battery on back, nRF52840 SoC area\n\n
\n \n
\n\n*OnShape wireframe exploded view*\n\n### Mechanical\n\nRoughly the same time I began the system design, I sent a few CNC aluminum blocks off to JLC for evaluation with different anodization finishes. The dark gray anodization felt \"best\", but I preferred the look of the matte black, so I settled on that.\nUsing PTC OnShape, I (attempted) CAD'ed a robust and minimalistic look and a blend of my two favorite laptop lineup designs, the Razer Blade and the MacBook Pro. Because of the removable keyboard, the bottom has no screws. Instead, the palm rest screws into the bottom chassis. [CAD Link here.](https://cad.onshape.com/documents/a18bb6df7dbba66df24 a7ec8/w/967d921e60c207e3b6f5cf7b/e/1f78a9387b17c2d178742295? renderMode=0&uiState=678da20d5bee0d1ad2dd55f1)\n\nThe hardest part about the chassis was the hinge. I used [Framework's 13.3\" hinge](https://frame.work/products/display-hinge-kit?v=FRANF B0001) because it has a 3D model. I constrained it in OnShape so I can see the exact closing angles.\n\nThe chassis layout is fairly simple: batteries on the bottom, the power board on the right, motherboard on the left, and the hinge mechanism on top. Oh, and a transparent PETG FDM printed power button that lights up on a custom PCB. To balance out the asymmetric hinge (caused by the mainboard being too wide), a little [carbon fiber rod](https://www.mcmaster.com/2153T11/) lines up on the left side too.\n\n\n\n*Chassis test fitting*\n\nIt was a battle to get the screen assembly to not hit anything while also covering\nAlthough I started considering thermals way in advance, hence the gap here for the heatpipe to go through, I still had difficulty fitting everything in. The distance between the bottom of the keyboard and the top of the heatsink is less than a half a millimeter. The cooling system is really constrained because I don't have the resources to make a custom heatpipe and fin solution. So, I made a full copper CNC heatsink (from JLCCNC) and a heatpipe connected to a fan. It's all connected with [PTM7950](https://www.lttstore.com/products/ptm7950-phase-ch ange-thermal-pad).\n\nI also added [these](https://puiaudio.com/product/speakers-and-receivers/ as04004mo-sp40) PUI audio speakers on either side. The audio from the CM3588's DAC didn't work and I ran out of debugging time, so I made a USB to audio converter board separately and shot it through an Class-D amplifier. I would've also made the amp, but I ran out of time.\n\nAs I reached final assembly, I used a mix of JLC's selective laser sintering (SLS) of nylon powder and FDM printed PA6-CF for smaller structural parts. Putting it all together with the matte black CNC aluminum chassis, I finally had my laptop.\n\n\n\n*Inside full laptop assembly*\n\n## Reflection\n\nThe hardest class I've taken so far was quantum mechanics in my junior spring term. A few months before spending hours solving time-independent and dependent Schrodinger equations, I was on the squash bus (the sport, not the vegetable). My friend suggested I make a laptop for my senior project--and that was all.\nI came up with the name anyon_e in June, after I finished the quantum course.\n\nMaking this laptop was hard. Mentally pressured with a deadline, and a constant inter-disciplinary challenge across electrical, software, and mechanical systems. Summing up everything I've ever done. It took up most of my mind from May until now.\n\nInspired by open-source projects like [ZMK](https://zmk.dev), [KiCAD](https://www.kicad.org), [Blender](https://www.blender.org), and countless [OSHW](https://certification.oshwa.org/basics.html) projects, I want to do my own little part. To put power in people's hands in creation, innovation, imagination, or whatever else. To attempt the impossible.\n\n\n\nSincerely,\\\n*Byran*"],"filePath":[0,"src/content/posts/creation/index.mdx"],"digest":[0,"4c74642a5132fc0c"],"deferredRender":[0,true],"collection":[0,"posts"],"slug":[0,"creation"],"render":[0,null]}],[0,{"id":[0,"mission/index.md"],"data":[0,{"title":[0,"The Mission"],"summary":[0,"To everybody, and maybe to nobody at all."],"date":[3,"2024-07-12T00:00:00.000Z"],"tags":[1,[[0," Prose"]]],"draft":[0,false],"demoUrl":[0,"https://byran.ee"] ,"demoUrlDesc":[0,"See Website"],"repoUrl":[0,"https://github.com/Hello9999901/lapt op"]}],"body":[0,"To everybody, and maybe to nobody at all.\n\nI've always held a strong belief that a single person can achieve accomplishments beyond imagination given the time and resources. Most importantly, the person has a passion and dedication to reach that goal. It is what I've spent the past three years working on at [MUREX Robotics](https://mrx.ee). The ultimate goal for me is to try and make a meaningful impact on something -- anything -- that pushes the boundary on what's possible. I think making things open source is the most straightforward way of showing the world what is possible with nothing more than the above.\n\nA little backstory...\n\nI came up with this idea on a three hour long bus ride with the [squash team](https://en.wikipedia.org/wiki/Squash_(sport)). Bored out of our mind, we started talking about possible senior projects for next year. Perhaps by coincidence (or not), most of the squash team is also on the underwater robotics team. Somebody made a wild suggestion to make a laptop that runs off solar panels or plants to me. Although those ideas sound fantastic, the \"laptop\" part of it stuck most.\n\n[Right-to-repair movements are going strong](https://www.youtube.com/channel/UCl2mFZoRqjw_ELax4Yi sf6w), but it is difficult to make change in such a large industry. I wanted to put my own contributions to this incredibly important cause that might shape the consumer electronics industry for decades.\n\nIn an era of growing complexity and integration of personal computer systems, could you still make a \"[homebrew](https://www.computerhistory.org/revolution/pers onal-computers/17/312)\" computer? Perhaps most importantly, would it be something that you could realistically use day-to-day? An area that is incredibly difficult to tackle is the problem of \"[integration](https://www.youtube.com/watch?v=rfG8ce4nNh0) \". Analogy time: just like there's a seeming infinite way of tacking an integral (integration by parts or partial fractions, variable/trigonometric substitution, and the worst of all, evaluation by recognition) there's no magical panacea for hardware/software/electrical integration. I think it's what makes Apple products so popular and why people buy [Metcal](https://www.metcal.com) soldering irons for nearly a thousand bucks.\n\nAfter all that, what is the mission?\n\nAn [anyon](https://en.wikipedia.org/wiki/Anyon) is a two-dimensional quantum particle that is neither (or both) bosonic nor fermionic. In the same way [bosons](http://hyperphysics.phy-astr.gsu.edu/hbase/Astro/wc ferm.html) collapse together in the lowest energy state, the laptop is compact and tightly integrated. However, it's distinct and each [\"energy level\"](https://en.wikipedia.org/wiki/Fermi_energy) is identifiable, like fermions (please forgive me for this [loose quantum comparison](http://hyperphysics.phy-astr.gsu.edu/hbase/pauli .html)).\n\nanyon_e is a laptop for anyone. Using it feels sleek, polished, and like a [flagship device](https://knowyourmeme.com/memes/subcultures/indestruc tible-nokia-3310) from a [major company](https://www.reddit.com/r/linuxmemes/comments/145fkg h/headquarters_of_microsoft_apple_and_linux/). Meanwhile there are no secrets under the hood. anyon_e is a mission in and of itself -- to show that it is possible for anyone can make a nice, solid laptop. The [power](https://www.youtube.com/watch?v=3aLyiI2odhU) is in your hands.\n\n[Attempting the impossible](https://github.com/murexrobotics/electrical?tab= readme-ov-file#attempt-the-impossible),\n\n// [Byran Huang](https://byran.tech)[ '25](https://exeter.edu)"],"filePath":[0,"src/content/posts/mission/index.md"],"digest":[0,"e3f5b0467163b91b"],"rendered":[0,{"html":[0,"

To everybody, and maybe to nobody at all.

\n

I've always held a strong belief that a single person can achieve accomplishments beyond imagination given the time and resources. Most importantly, the person has a passion and dedication to reach that goal. It is what I've spent the past three years working on at MUREX Robotics. The ultimate goal for me is to try and make a meaningful impact on something -- anything -- that pushes the boundary on what's possible. I think making things open source is the most straightforward way of showing the world what is possible with nothing more than the above.

\n

A little backstory...

\n

I came up with this idea on a three hour long bus ride with the squash team. Bored out of our mind, we started talking about possible senior projects for next year. Perhaps by coincidence (or not), most of the squash team is also on the underwater robotics team. Somebody made a wild suggestion to make a laptop that runs off solar panels or plants to me. Although those ideas sound fantastic, the "laptop" part of it stuck most.

\n

Right-to-repair movements are going strong, but it is difficult to make change in such a large industry. I wanted to put my own contributions to this incredibly important cause that might shape the consumer electronics industry for decades.

\n

In an era of growing complexity and integration of personal computer systems, could you still make a "homebrew" computer? Perhaps most importantly, would it be something that you could realistically use day-to-day? An area that is incredibly difficult to tackle is the problem of "integration". Analogy time: just like there's a seeming infinite way of tacking an integral (integration by parts or partial fractions, variable/trigonometric substitution, and the worst of all, evaluation by recognition) there's no magical panacea for hardware/software/electrical integration. I think it's what makes Apple products so popular and why people buy Metcal soldering irons for nearly a thousand bucks.

\n

After all that, what is the mission?

\n

An anyon is a two-dimensional quantum particle that is neither (or both) bosonic nor fermionic. In the same way bosons collapse together in the lowest energy state, the laptop is compact and tightly integrated. However, it's distinct and each "energy level" is identifiable, like fermions (please forgive me for this loose quantum comparison).

\n

anyon_e is a laptop for anyone. Using it feels sleek, polished, and like a flagship device from a major company. Meanwhile there are no secrets under the hood. anyon_e is a mission in and of itself -- to show that it is possible for anyone can make a nice, solid laptop. The power is in your hands.

\n

Attempting the impossible,

\n

// Byran Huang '25

"],"metadata":[0,{"headings":[1,[]],"imagePaths":[1,[]],"frontmatter":[0,{"title":[0,"The Mission"],"summary":[0,"To everybody, and maybe to nobody at all."],"date":[0,"Jul 12 2024"],"draft":[0,false],"tags":[1,[[0,"Prose"]]],"demoUrl": [0,"https://byran.ee"],"demoUrlDesc":[0,"See Website"],"repoUrl":[0,"https://github.com/Hello9999901/lapt op"]}]}]}],"collection":[0,"posts"],"slug":[0,"mission"],"re nder":[0,null]}]]]}" ssr client="load" opts="{"name":"Posts","value":true}" await-children>
Filter
SHOWING 0 OF 2 POSTS