EPISODE 1834 [INTRODUCTION] [0:00:01] ANNOUNCER: Byran Huang is a full-stack developer who recently made headlines in the hacker space when he created the anyon_e, which is a highly integrated, open-source laptop. The effort was a massive undertaking and showcased great design, hardware and software. In this episode, Byran joins the show with Gregor Vand to talk about his work on the anyon_e laptop. Gregor Vand is a security-focused technologist and is the Founder and CTO of Mailpass. Previously, Gregor was a CTO across cybersecurity, cyber-insurance, and general software engineering companies. He has been based in Asia-Pacific for almost a decade and can be found via his profile at van.hk. [INTERVIEW] [0:00:56] GV: Welcome, Byran. [0:00:57] BH: Thank you for having me, Gregor. It's an honor to be here. [0:01:00] GV: Yeah. Very excited to have you here. Basically, you put out a Hacker News post a few weeks ago that blew up big time, about the project we're going to be speaking about today. You also put out an amazing video about it, which we'll maybe get onto. I think what struck me the most was the fact that I looked you up on LinkedIn after that post and I thought you were a teacher at high school. Turns out, you're a student at high school. Is that right? [0:01:28] BH: Yeah. That's right. Yeah. [0:01:29] GV: Yeah. Which was just blew my mind. Let's get into it. Could you describe what is anyon_e? [0:01:35] BH: Yeah, that's a great question, Gregor. I'd like to first describe the mission of it. It's a project that tries to show that anyone, and hence the name, anyon_e, if you combine it all, it spells anyone; that anyone can build a laptop themselves. It doesn't have to be something that you have to go out and buy. Of course, feel free to go out and buy one and you're going to get hard quality, hard performance, and something that you probably use on a daily basis. I wanted to show that people, a maker enthusiast, if you put in the effort and you put in the energy and the research, in a few months, you can create something that you can hand off to a family member, or someone who's not very familiar with technology. They'd be like, "Yeah, this is a laptop." Something that they can use on a day-to-day basis. I'm not really targeting gaming, or AI, or anything like that. I'm just talking about a nice, solid laptop that people can use, while not really having any quirks, or anything like that. Just having this machine that everything is built from scratch. There's no secrets behind the hood. That was the mission, where I try and bake everything from scratch as much as possible, while achieving as high-performance and resembling as close to a modern, thin and light laptop as I could. [0:02:45] GV: Amazing. Yeah, you mentioned both in post you've put out in the video, you were trying to disprove the idea that technology is either repairable and open, or integrated and closed. How do you describe it? Because I guess, especially in software, people would think, well, open is open, right? What's the difference here when it comes to, especially a laptop? I think, also, there's something interesting. I was thinking about it this morning, which was when I was growing up, people would build, I'm going to put in massive air quotes here, because the way that you do is just so much more impressive, but they would build their own computer, right? Maybe, could we also look at that distinction where people are thinking, "Oh, yeah. I built my own computer 20 years ago." This is quite different and maybe you could just set the scene for why that's quite different. [0:03:29] BH: Yeah, I'd love to. Anyon-e is this quantum particle. I'll start with that. It's something that's neither a fermionic, or bosonic. I took quantum mechanics in my junior year, my junior spring term. Our school goes by trimesters. While I was looking at these quantum particles, I was trying to think of a name for this laptop. My mission the entire time was what you said previously, to disprove that technology is either open, or closed and integrated, or sprawled out and not very tightly packed together. I'm mainly discussing the hardware aspect of it, where when you buy an Apple product, you expect everything to work out of the hood. You open it up and everything just works. You got the Apple ecosystem. The computer is nice lid. It feels like a polished product. Then if you go, and of course, it's not really repairable. Everything's soldered in and it's super hard to get into. There's adhesives. It's just not very easy to repair. That's something that I fixed it in Louis Rossmann. I've been trying to fight for in the community for a very long time now. I wanted to play my part in it, because I also hate not being able to repair my own devices. Looking at them from the inside, they're nothing different than what you can make as a creator, as a maker yourself. My mission was to be able to create something that's really integrated in the sense that it comes in at this - my laptop's 17.5-millimeter stick, if I remember correctly. It's been a while. But it's almost as thin as a MacBook Pro. You can't really tell the difference from the outside that it is something that you make in the back of a classroom, in my case. When I'm looking at that, I was really targeting this idea that people say, these computer manufacturers, like Apple, Dell, Lenovo, when they start closing in on their ecosystem, they often quote the idea that we need to solder in the RAM, we need to solder in the CPU, we need to do XYZ, because we need to get it smaller. We need to get it more integrated. I really disagree with that. I think it's just a lack of trying, a lack of engineering effort, and might I say. That was my mission the entire time, to aim at this idea where if you aim your goal at one specific point, where building a laptop that resembles and performs and feels like a modern thin and light, you can achieve at least 80% of it. Of course, you're not going to get to 100% of it and I never claim to, but just trying to get to some place where it feels right, it feels right. Nothing is a secret. Where you can open up, everything is replaceable in there. You can straight up replace that CPU if you want. Replace the RAM, replace every single part of it. Since all the circuit boards, all the software is open and all the hardware is open as well, you can take any part of it and build your own spin to it. Everyone can have their truly unique laptop. That brings me to my second point, where because I built everything from scratch, including designing the chassis in CAD, I made every single route on the circuit boards by hand, so there's over a few thousand in total. By creating everything from as ground up as possible, people can open them up in free open-source software, like KiCad VS code, obviously. Everything is just Linux, and KiCad PCBs, as well as a less open source, but still free, PTC Onshape for the CAD. I couldn't do free CAD, because I was just not really familiar with it. As a school project, I needed to get it done as fast as I can, and I just used what I was familiar with. Onshape seemed like the best choice, because of my time limit. I was already familiar with it and you can distribute it really quickly through the cloud. People can just open up a link and take a look on it, because PTC Onshape is a cloud-based CAD software. It's really nice to be able to distribute things, even though it's not as open source. Combining all of that, it's a way where I can say, anyone can come in and hence the name, make modifications, or learn from it, in the same way that I was learning from other open-source projects, like keyboards on the ZMK firmware community, other systems, I don't know if I'm pronouncing it correctly, but OLIMEX, this is open source hardware community. And a bunch of these companies that release their hardware openly. I want us to achieve the same, but accomplish it for laptops, because that's something that isn't really well represented in the open source hardware community. [0:07:33] GV: That's a great way to frame it, which is that why has this not really been done in the laptop space, because at the end of the day, the laptops have always been just like, how much thinner, lighter can we get this thing? Gaming laptops used to be always so much bigger and chunkier, at least again when I was growing up. This trade off you always had to make, which was like, do you want a slightly ugly, chunky power laptop, or do you want some thin thing? Way back in the day, I had the Asus EPC, which was this little first network thing, which I thought was awesome, but couldn't do anything, basically to run Linux. I mean, I still remember back when I've had Apple laptops for decades, unfortunately at this point. It shows my age a little bit, but I just still remember how much I loved being able to take the chassis off it and being able to replace the memory and replace the battery and replace things. As you call out, that's just not possible when it comes to a high-performance laptop. [0:08:30] BH: That's right. Building off of that, Gregor, it's this idea that I don't just pick the parts. I pick a motherboard, I pick a chip, I make everything. Every single capacitor, I picked as well, and every single resistor, every single trace, every calculation I did in my head to make sure that when you get that board in the end, there's no secrets at all. I can explain every single minute engineering decision I made in designing the laptop, all the way from the metal being milled. It's this aluminum 6061 CNC from JLC PCB, all the way up to the display I pick, which is a 4K AMOLED display. It looks beautiful. If you put it next to a MacBook Pro, and I have a MacBook Pro right now. If you put it right next to it, it actually looks just as good, if not better. Because it has a higher pixel density and deeper contrast. It's something that by picking everything from as scratch as possible. With limits. I couldn't make the display from scratch, obviously. I can't place every single pixel in with a tweezer, or something like that. By picking things and doing it from as scratch as possible, when you get this laptop, you don't just have to pick the chip, like the main CPU. You can pick every single chip, like your USB-C negotiation chip. You can pick your internal USB expansion hub chip. You can pretty much do every little thing possible. You can switch out your DC-DC converters that take your battery voltage and plugs it into the actual chip. You can pretty much change everything that you want on the system. Perhaps, moreover, when people come and people like me, when I was even smaller, I was wondering, how does a laptop work? If something like this had existed, I think it would really help me get a grasp of how modern technology moves in a way that isn't really possible from just taking something apart. Because you can take open a laptop MacBook, or Lenovo, or Dell laptop apart, but you can't really look into the exact circuits and you can't look at the exact software they're using, the BIOS. You can't look at the layout of the circuit board. By doing something like this, anyone can go on to my GitHub and download it, or use the web viewer that I have, and then just look at how the circuit board was made and see all the engineering decisions. That's something that I also really wanted to do, inspire the next generation of makers, enthusiasts, and people that follow the same path as me. I've never learned engineering formally. There's a lot of people in the YouTube comments and Hacker News said that I must have really well-off engineering parents, or I've had very educated teachers that helped me along. My teacher has never been educated in engineering. He was just there for emotional support. My parents do not do anything related to engineering. I've had a lot of support, I must say, along the way. My school has been very supportive. Everything that I came to in the end was purely engineering decisions on my part through my experience, having done engineering for quite a long time. Actually, not that quite a long time, but really putting my foot forward and saying, I want to pursue engineering and open-source hardware. Yeah. [0:11:17] GV: Amazing. I'd love to get into some of those decisions. I think one that's interesting is what's termed system on a chip? [0:11:26] BH: Yes. [0:11:27] GV: Could you maybe walk through which one did you choose? Why did you choose it? Maybe, you step back from that as well. What is the system on a chip? What parts of the system does that even encompass? [0:11:37] BH: Yup. There's two levels to my CPU in a way. Most people will call it a CPU, rather than an SOC, which is a modern chip. System on chip is essentially a chip that integrates your CPU, your GPU, and usually, RAM. In the case of the modern MacBook, you do integrate RAM into the system, where your RAM is physically on the same "die" as the rest of the chip, your CPU and your GPU and everything in between. On my end, I chose the RK3588 SOC, where it has the CPU and the GPU and pretty much everything you need, the memory controller. All the essential parts of a modern computer is in that one consolidated chip. By doing that, it allows me to save a lot of work integrating other parts. One limitation that I had throughout this project was time. As a senior project, I only had one term to accomplish it. I started over the summer, so I had summer break to work on it. Then I had the fall term. I had one class replaced with this "laptop senior project" to work on it. I only had a few hours a day, and only three months, excluding summer. I really had six months to work on this project. Throughout the time, I had to do college applications, homework. I had an internship over this past summer as well. Just getting all my free time in. I couldn't trace everything out the CPU myself. That would take hundreds, if not tens of thousands, if not hundreds of thousands of traces and definitely thousands of hours of engineering effort to pull off if I was implementing this CPU, or the SOC directly onto the circuit board. What I chose was called an SOM, system on a module, where it's on this much bigger circuit board. This also came with many, many limitations, including signal integrity and thermals. That allowed me to just plop this little Raspberry Pi compute module, if you may. It's like slotting a GPU, or RAM into a modern computer. It has every single connection you need, HDMI, USB, power, pretty much every connection that you have on a regular modern laptop, but you just slot it right in with that CPU on the circuit board. What that meant was that I know at least some part of my system works out of the box. If I had implemented everything, the DDR4 memory and the chip and everything on this one single monolithic circuit board and I plugged it in and it doesn't work, I don't have the engineering effort and the team and the millions of dollars of equipment needed to debug high-speed signals and all those power on timings. Buying that system on a module meant that, okay, at least it's not as open as I wish, implementing the chip from scratch. That's something I certainly aim to do in my next revision. I'm discussing with some open-source efforts that will help me in designing everything if I take directly onto the chip, and I'm super excited for that and it should be higher performance than this round. Throughout all of that, it's this effort to make as many things from scratch as possible, while making it reasonable. Me as a single person, I'm not going to claim to have carved out the metal, CNC by hand myself, or anodize it myself, or made the display from scratch. But there's limitations to what I can do in those six months. That was another corner, if you may say, cut to know that, okay, when I power on this laptop, at least one part of it works. Another good benefit to it is that the system on a module, the CM3588 system on a module allows me to pull the device tree and the Linux drivers directly from FriendlyElec, who developed this system on a module and test it readily on one of their development boards that is made and known working with the SOM. That was really nice, because at least some part of it, again, I knew it was going to work. In particular, this proved so pivotal to the laptop when I was trying to drive the 4K AMOLED display, and in the embedded display port connections, it was a super high bit rate protocol and in hardware development. If your signals go fast enough, your physics get distorted and you can't just run a single line and expect it to work like, if you plug in a battery. You have these quantum mechanical limitations, literally, where your electrons are moving so fast, they start oscillating. If you don't do your calculations and you don't do your considerations correctly, your electrons will move backwards in a way. That's called signal loss. That's something that I was really fighting for and making sure your electrons move through your trace as expected at such high frequencies. My embedded display port connections were, I think, somewhere in the 3 to 5 gigahertz range, which is Wi-Fi/Bluetooth, but you're trying to run it from one connection to the other and you're not emitting it through air. You have a whole different set of considerations called transmission line theory. Doing all of that, I had to make sure that before I made my first circuit board, my display would work. Because if I put in all the work to make my first main board and I couldn't debug what I expected to be the hardest, and thankfully, I was right in the end. The embedded display port signals, there was no way I could pull it off in the correct time if I got my circuit board and the display doesn't power on, well, shoot. I don't have any way to know whether it's the chip that's wrong, my code that's wrong, or anything in between, or the display, or the hardware. What I did was I took one of the development boards that the system model module was being sold with and I de-soldered the HDMI port peripherals. I basically modified it so that the chip multiplexes between HDMI and the embedded display port and you can change that in the internal embedded software for the chip. When you load in your bootloader, you can tell the chip to either multiplex embedded display port, or HDMI out of it. What I did was it's still through a physical HDMI connector, but what's actually sending is embedded display port signals, because when I booted it up, I hijacked the device tree binary and I switched the multiplexer to output embedded display port. Then, I made a custom little circuit board that took the signals and routed it to what is the internal embedded display port connection that's typically used on laptops, and for sure, my 4K AMOLED display. I did not expect it to work. And it didn't. I spent around two months trying to figure out what was going on. The difficulty that came with that is because embedded display port is basically an undocumented protocol. The only time it's really used is in laptops. All these companies, Lenovo, Apple, Dell, and so on and so forth, they keep this on under the hood, because there's really no need for other people to develop with it anyways. It's a horrible protocol. It's basically the same thing as display port, but everything's much weaker, and the actual signal strength is much lower. I'm still to this day confused on why. Of course, I see the reasons, but I feel like, you can definitely heavily improve on this protocol. You might as well just send it over to display port directly. Of course, there's limitations to that. But in the end, it's a super difficult protocol to work within. Linus of LTT talks about it a little bit on his podcast, but it's barely considered a standard, because it's so weird and goofy and vague in all these different ways. Every single nice little caveat that I didn't expect was that LCD displays, or IPS displays actually have a different pin out than OLED displays. The only few articles and resources I had on embedded display port were on LCDs, and their power on timings and their bit rates and their specific driver protocols were different than OLEDs. I was pretty much on my own. I had nothing to go off of, except for this Asus boot log that was dumped from the same display that I had to go off of. That just had snippets of little metadata coming off the display when you first initialize the connection. I had to reverse engineer from that to drive the display. In the end, I figured out the signal loss. It was really just because going from the HDMI connector to the actual embedded display port connector through my little driver board, I shortened the distance from V1, or R1 to V2. I literally shortened the distance by a few millimeters and I switched out a connector. Instead of going from female to male to male to female, I went directly from female to male. I skipped that female to male adapter part. Just from those two changes, the display just magically worked. I was super glad. That allowed me to basically use this development board as a jumping off point and allowed me to create the rest of the system around, knowing that the display will work. That was a huge, huge bet that I made. If that didn't work, I really don't know where I'd be today. I'm super glad that my bet paid off. It was two months of just black box debugging, where I had to make sure that all the software, as far as I knew, worked. I didn't have a scope to probe 500 hertz signals. Those cost hundreds of thousands of dollars. I had to make sure that as much as I knew the software worked, because when I first got my board and the display didn't work and the chip didn't work, the chip couldn't drop the display, I had no idea whether it was my software that was working, or my hardware. I spent about two months figuring out every single little piece of the software and ensuring that my software was correct. When I did that, I was like, okay, well, I guess it's is the hardware that's broken. I made a second revision with a few theories that I had; signal loss, signal integrity. In the end, it did work. I'm happy that my gamble paid off. [0:20:34] GV: Amazing. Was the, I guess, system on a chip and the display piece here, is that where you - I'm trying to remember from the video, is that where you started? You're like, "If this doesn't work, then there's no point in this project"? Or, where did that fit in? [0:20:48] BH: Yeah. When I first started this project, there were a few things that I want to keep in my mind. I oversimplified in the video, so I'm going to go into a little more depth. I wanted the RK3588 already. I had decided on that chip when I started this project, because it's such a good chip, and it's still the fastest on the market. I think their rock chip is coming out with the RK3688 in a few months, or in a few years. I don't know how their timeline works. My second revision of the laptop also used a much higher end chip. I knew that I couldn't use Intel, or AMD, because the amount of NDAs and the amount of effort needed to just get my hands on one of those chips and be able to implement it from an open source standpoint, is basically impossible. Even if I got that chip, there's pretty much zero chance that I'd be able to release the schematics openly online, just from the inherent business model of Intel and AMD. There's a rock chip, and in terms of the smaller companies, they don't really care. They release their schematics openly online already, so it doesn't conflict with their business model of selling chips to literally just developers and consumers already. That was one thing. The RK3588 is much higher performance, about twice the performance of the Raspberry Pi 4, and about one and a half times the performance of a Raspberry Pi 5. A lot of people are also asking, why don't I just put a Raspberry Pi 5 compute module in there? The answer is it's just not as performant. I don't get the same IO, the same performance as if I had the RK3588. That's one thing that I wanted to do. The second thing I wanted to do was a wireless removable keyboard. It's a bit hard to describe, but essentially, the keyboard is only, I remember, 7 millimeters thin. Correct me if I'm wrong there. I don't really remember. It's been a while. When you hold it, it's literally like holding piece of cardboard, and it feels super light. It feels super thin. But it feels sturdy, because it's aluminum. It's a fully mechanical keyboard and it's wireless. The actual battery inside is only a millimeter thin. It's directly underneath a ultra-thin circuit board. On top of it are these Cherry MX mechanical switches that are only otherwise found in highest and alienoid computers. They're the Cherry MX ultra low-profile switches. I was able to get them on Taobao, which is a Chinese AliExpress and ship them over. I soldered them on by hand. Combining all of that, and the one-millimeter thin battery, I was able to get the keyboard, because I was also running super high efficiency firmware, the ZMK keyboard firmware. This keyboard lasts a couple of months on a single charge. I haven't really charged it since I built it. Adding all of that together, my second goal, again, so the first goal was RK3588. The second goal was accomplishing this wireless keyboard that slots into the center piece of your computer. Another addition to that is because you can just take it off magnetically, that's how it is on it to be, the computer is more repairable than any other computer, because you can literally pop off the keyboard and every single piece of the electronics is exposed directly to you. Of course, that brings with them danger. If you spill water into it, you're screwed. Outside of that, just from a purely engineering/repairability standpoint, no screws needed. You literally pop it off and it's just there in front of you; every single component that you want access to. Those are two main things that I wanted to implement on my computer. Then, the third one came, which is the 4K AMOLED display, when I was looking through display options. I was like, wow, I didn't know they sold 4K 13.3 inch displays to consumers. The reason I wanted that so much was because one of the first laptops I got was back in middle school for me. I was lucky enough to get the Razer Blade Stealth 13, and I tried it out. I had this really gorgeous OLED 13.3-inch 4K display. People say the 4K display on a 13.3-inch laptop, that's a huge waste of pixel density. But I really love how beautiful it looked, because you literally can't see the pixels. It's a strong divide between people that say it's a waste, and people that say it's an amazing choice and it looks beautiful. On my end, I love the way it looked, especially on an OLED display. I was like, okay, I see this choice. It's on Taobao. It's ready for me to use. I'm using it. I'm buying it. There's no turning back. I'd hate myself if I couldn't get the 4K display to work. Otherwise, it just looked like a crappy laptop. Another aspect of that was because I knew that my laptop wouldn't be able to perform nearly as well as a MacBook. I mean, this chip is about a third of the performance as an Apple M1, a base M1 chip. I mean, in terms of raw ARM64 performance, I couldn't beat any computer and have a highlight saying that outperforms XYZ. But I can say that I have a higher display resolution. I have a better feeling keyboard. I have this wireless keyboard and have a bunch of these little oddball quirks to it that are also very useful. I use this keyboard as a debugging keyboard on other computers as well. I can just pop it off and connect to another computer however I want, because it's just over Bluetooth. Combining all of that is just a really amazing option that, and these three choices are the ones that really influenced my decision going forward. Of course, there's other ones that are like, CNC aluminum chassis, a nice trackpad, battery that's roughly the same size and capacity as a modern battery pack and circuit boards that are cheap and accessible and easy to view, and so on and so forth. Combining all of that, that's the goal set of my laptop, and that really influenced every single decision that I made going forward from there on. [0:26:02] GV: Amazing. I hadn't maybe fully appreciated the wire and the wireless keyboard being, I mean, it sounds like, part of the reason being that you can pop it off and then just get in there. Sounds to me, that's like, I'm quite into car mechanics, for example, and it just sounds like, being able to pop the hood on a car and being able to go in, I think that's just incredible. Can we talk a little bit about, so again, maybe just taking on, if we want to, again, slightly air quote this, but "software," because this is software that just, I think, none of us in the software world really think to touch ever, but battery management. I believe, you implemented custom battery management. Is that right? [0:26:38] BH: That's correct. [0:26:38] GV: Yeah. Can you talk to that? [0:26:40] BH: Yeah, yeah. For sure. That is correct. That part is really complicated. I made a huge mistake when I was making it, and it's still a mistake that I regret to this day. It's not implementing a proper embedded controller software, and I'll go from the top. Pretty much every computer nowadays, there's the CPU, or the GPU, or the SOC. You have their main processing chips. That's what you as an end user access every day. That's what you see when you open task manager on Windows, or you run htop. That's what you see the performance of. There's another chip that's working just as hard and people don't talk about it at all. It's the embedded controller on the laptop. It's the same as if it's an Arduino on the main board, along with the big chips. This one is like a little worker, as making sure every part of your system is working properly. There's a huge number of GPI opens, general purpose input-output, and it takes input from your buck converters to see if your power is good. It takes input from your wireless controllers. It takes input from, of course, your battery management and a bunch - as any peripherals that you don't think of to access on a day-to-day basis, that your little EC, or your embedded controller is the one that manages all the firmware and the controls associated with it. There's an insane number of GPI opens that connect to every power system, every peripheral system that is managed from the EC. When I designed it, I didn't know this thing called Chromium EC existed and I should have done my research better. It's an open-source embedded controller software that's used on every single Chromebook, as well as on the framework laptops. Gregor, I'm sure you've heard of the framework laptops. I met with Nirav Patel just last week, because I'm here in San Francisco. [0:28:17] GV: Amazing. [0:28:17] BH: Took a look and he also popped open the keyboard speaking of, as he said, Gregor, it's a really cool experience to pop off a keyboard on a laptop. Then coming to that, I guess, in a way, I learned more from doing it from scratch. The battery firmware management, the system comes down to an ESP32-S3 microcontroller. The reason I chose this one, people say it's beefy, people say it's less power - more power hungry, is because, one, I wanted. It was just a cool thing. I wanted to do wireless power management. From your phone, you can open a Bluetooth low-energy app and see all of your battery statistics and charge them and perhaps, you might remotely shut down your laptop, like fully shut down, like cut power directly. I didn't get time to implement that. What I was able to see was I implemented the entire charging circuit from scratch. I wrote all the C firmware in Arduino code. The reason I did that was to have as many people be able to read the code as possible. There's this really cool guy already on GitHub that was writing some fixes on my EC firmware. It's basically just a state machine that runs repeatedly every few seconds. It scans, okay, is the battery charged? Is USB-C plugged in? Because the laptop charges over USB-C PD. The same way that you plug in a MacBook, or a modern Dell, you just plug in USB-C and it charges. It loops this thing back and forth. How much is the battery charged? How far until it's charged, it sends data over USB, over UR to the actual main chip, and so on and so forth. It loops this back and forth. Is the battery temperature too high? What's the charging current? What's the V bus? Which is the power being fed in, and so on and so forth. It takes in all these telemetry and it calculates how you want to charge this battery. Is it reaching this charge level that I wanted to reach? It reports this battery percentage, state of charge percentage to the actual main chip. That's also super hard to keep track of, because what's interesting is that if you shut down the entire laptop, you lose your state of charge. It's like, okay, what are you supposed to do? Writing the firmware, I made a lot of fixes. I learned a lot from this, because when you write firmware like this, you always have to be careful, because if you short your batteries, or if you write some wrong code, your batteries will literally blow up and these were experimental cells from batteriesbase.com. These were hundreds of dollars of battery cells, because I needed this high-power density. They were super high-power batteries. I think you can discharge, if I remember correctly, 32 watts off of a single battery cell, and I had four of them. You can pretty much discharge 120, 130 watts off the batteries. Writing this firmware in Arduino, I had to keep track of every single state of the batteries were in. The funniest part was I chose these chips, the charger chip and the battery management chip. When you have more than one battery cell, you have to make sure that the cells have roughly the same voltage. Otherwise, one cell would try and charge another cell because of the potential difference. You don't want that happening, because you don't really know what's going to happen to the batteries if one starts charging another and it creates this really bad feedback loop. There's a battery management chip, a BMS, as well as the actual charger chip. The terminology is different for drone users and people that work with these batteries on a larger scale. People usually call it the charger and the battery balance, or chip, the BMS altogether. In my case, the BMS is really just that chip I talk about, that balances the cells. It slowly trickle charges each cell individually to make sure the voltage is the same. Then I have the big, beefy full charger that literally charges every single battery. At the same time, it shoots 16.8 volts, which is 4.2, the nominal, sorry, the peak charging voltage of each cell times four, because I had four of them in a series. So, 16.8 volts, a couple amps. I take that power from the HUSB238, which is the USB PD negotiation chip. All of these three chips were connected to the ESP 32, where I communicate with the HUSB238 over [inaudible 0:32:08]. When I plug in the USBC, it'll detect, okay, is USBC plugged in? How high can I negotiate the power to achieve? Then it'll tell the charger chip, say, okay, here's how many volts it gets, and so on. Here's the telemetry I got from the USBC. If it's correct, I'll tell the charger chip to charge XYZ current. So far, it's just a hard set limit of around an amp or two. Then the battery management chip will run by itself. There's a few status GPIOs that go into the ESP32, but it really runs statically in the background, always making sure that the batteries are equal in voltage. I'm not going to a huge depth about the firmware. If you're curious about that, I'd love to as well. I just wanted to go from it a state machine standpoint, where I analyze the things that are required. I drew this out on a whiteboard and I analyze the different states that the machine would be in when charging, and so on and so forth. I wrote the code from that. The code is actually really, really simple. It's just a bunch of this statements and you run it over and over again. Yeah, that's pretty much it. [0:33:05] GV: What does your, if you want to call almost debug stack look like? I mean, you've already touched on when you're talking about that massive two months' worth of frequency debugging and you said, "Oh, I obviously don't have access to these amazing pieces of equipment that all the big guys do." What does your debug stack look like? I mean, this photos of you have just basically a workbench in your high school. It's like, "Byran's workbench. Don't touch." What did you use? Yeah. [0:33:29] BH: Yeah, yeah. That's literally most of everything that I had at my disposal. It's like, whatever was at my school. A lot of debugging, in my opinion, when it comes to hardware-software integration debugging, and this might be a hot take, and I'm not really sure. I haven't talked to many other, these full stack engineers, but my take is that it's really by feel. If something doesn't go right, the first call you have to make when you're doing this full system, is it a hardware problem, or is it a software problem? That is something that you have to pretty much go off initially by gut feel. What's broken is sometimes is really obvious. If something's blowing up on your board, something's definitely wrong with the hardware. But there could be a software reason for it. If my software, I think it's sent like, 100 Watts through the system at once and it blew everything up, and that might be a software issue, but it looks to be a hardware issue. Try to find the root of the problem. Going back to the display, I spent two months trying to figure out. It wasn't two months straight, but two months on and off. That's pretty much the only thing that was focused on in terms of the laptop, to figure out whether it's the hardware, or the software issue. Because I making a circuit board is a really tedious process, mainly because it takes seven to ten days to ship from China. I use JLCPCB. It's not you can just recompile the software in 20 minutes, or just 20 seconds and try it again. If your circuit board, or your hardware doesn't work, you spent two weeks debugging. Or if you're lucky, you might be able to find the problems faster, but you still need to wait a week and a week and a half to get your next revision to be able to test it. Hardware iteration is a much slower process than software. I utilized that idea to first, analyze what the software has broken, and then backtrack to see what was wrong with the hardware. That's my debug stack initially. When it comes to other aspects, I apply the same logic. By gut feel and by knowing the system as well as I do, because I designed it all myself. If it's another system, that's a whole different story. But having designed the system myself, what do I think is most likely problem? I always keep this mental track of where my biggest failure points are. For example, on this one, the charge states are always wrong. It runs out of battery super easily when you fully shut down, because the ESP32 S3 constantly sucks a few milliamps constantly. The battery is just fully shut down. You need to charge it, you need to hijack the power a little bit, a bunch of these things. These massive failure points, I know that I shouldn't have used Chromium EC in hindsight over writing my own EC software. That would have done all the battery management, all the software for me, I just have to plug it in and write the device redefinitions. In terms of the hardware, some chips I chose weren't the best; best documented, best performing. I maybe didn't understand this part of the system as well. PCI-E. I didn't understand PCI-E as well as I should have, but thankfully, it just worked. There's other parts for the EDP, I didn't understand quite as well. USBC, when you get to that super high frequency, things fall apart and your documentation also starts falling apart, because you can't just apply regular intuition to routing the traces. Getting to those points, my debugging really comes down to first, feel. I had these, a few little chips to work with that were debugging. I had a Arduino, a TNC, a small oscilloscope, and so on. Staley A sent me their new oscilloscope to try out afterwards. If I had that, I might have used that to help me debug quite a lot faster. But a lot of it is just really just by repeatedly trying and targeting it from a software standpoint first, because that's the easiest to modify and change. If that doesn't work, then I have to really take a look at the hardware and see, okay, what's truly at fault and what's the root fundamental cause of the problem, yeah. [0:37:06] GV: Throughout the video that you produced, you did keep just talking about how much times you wanted to give up and obviously, you didn't. I just found that super inspirational. Any software engineer, or indeed, hardware engineer can take a huge inspiration from not giving up and actually shipping this product. You actually finished a version of this product. I think that leads me to what then was, okay, Hacker News, it was almost made for Hacker News, if you want to call it that, because everyone there was just one of the most popular posts I think I've seen in a long time. Well, speaking of reception, you've had a lot of people following the GitHub now, but can follow the GitHub. There must have been a ton of communications now you've had with the community and what's the future state of this project and how do you see that? [0:37:47] BH: That's a great question. I haven't really had the time and the place to really talk about it and I'd love to talk about it. I guess, we'll talk about the reason I did this project. The presentation that I made at school was wildly different than what I proposed in the video and what I wrote up, because people in my school, they don't really care about PCI-USB. I talked from more of a story standpoint, so I'll talk about that a little bit. The reason I started this project was me and a really close friend of mine, we both play squash, which is a sport that is with a somewhat hard rubber ball, and there's four walls and you play much like racquetball, or racquetball or any other. [0:38:24] GV: My dad used to coach squash. Strangely, I didn't get into it, but it's incredibly, you've got to be very fast on your feet. It's very difficult on the body, because you're running around and this ball is shooting all over the place. Okay, so there's some inspiration from that, it sounds like. [0:38:37] BH: Yes, yes. Me and him are real close friends. We both play squash. We're on the six-hour bus ride to play inter scholastically with another school. We were super bored of just talking about random things. He said, "Are you going to do senior project next year?" Because it's a common thing here, but no one really - It's usually just a nice, relaxing project that's less than a course difficulty. He was like, "You should build a laptop that runs off solar power, or runs off biofuel, or something like that." I was like, okay. Well, the solar panel part and the biofuel part doesn't strike me as interesting, but building a laptop, that part really does, and building open source and distributing it in the same way that I've always loved open source, because I love being able to share these innovations with everyone. Free for anyone to look at and analyze and see. I was like, okay, I'm going to make this laptop. I basically settled on that on that bus ride. I was like, okay. Next year, I'm going to be making a laptop from scratch. When I first started it, I really didn't expect much at all. I knew it was going to be a huge undertaking. I knew that if it succeeded, I'll get some publicity, maybe. I get my 15 minutes of fame, or something like that. I mean, I didn't expect this to blow up nearly as much as it did. On Hacker News, I think I got - it's the second highest voted Show HN post of all time. It's really the highest voted one in Show HN, because the first highest voted one is showing off the self-voting glitch from 13 years ago, but the guy literally wrote a script to self-vote himself the entire time. Unfortunately, I'm not number one, but excluding the number one post, which is showing off that he can glitch a system, I am the highest one, which is insane. It was overnight. I posted it thinking like, okay, well, I didn't gear it to be posted at Hacker News, but I did want to have some reception, because I've always loved reading Hacker News. I love the community that comes with it. I wanted to give my piece back to it. Well, one of the other few first posts that I made was the world's smallest and cheapest networking switch, which is a background that most people aren't familiar with me with. I used to do underwater robotics. My post got 600 points and I was like, that's super cool. I love this being able to discuss with these like-minded people. I wanted this, basically, a second attempt at making open-source hardware and posting in Hacker News. That was my laptop. I just wanted to make a video increase the spread of the laptop, because my video is in a way, less technical than my writeup, more humor. Of course, if you want the technical bits, then nuts and bolts of it, I still provide that. I wanted to more provide it like a viewing experience for the person watching for the audience, more so than a technical rundown and going into the depth of everything. I wanted to be an engaging video we can watch. I think it's going to hit a million views pretty much by the end of the week. It's at 995,000 views. A lot of people have reached out to me, because of these two places. That's how I scored my internship at Neuralink. I basically got head-hunted here by one of the lead software engineers. I had around a dozen job offers, which is insane, from all across the world. People emailing me and the GitHub stars and all of that. It's super inspirational. I thought, I might get a few emails saying, "This is really cool. I love your work," or something like that. I never thought that so much would happen. Through the YouTube comments, I fix it commented, Louis Rossmann. Linus, I'll be making a video with Linus in the coming month. Linus Tech Tips. Jeff Geerling and Sean Hodgens. So many of these really inspirational people on the YouTube open-source hardware community. I'm super happy to be able to connect with them and sit on the shoulders of these giants. I'm super excited to present myself with Linus and show even more people the ability to create and innovate, by yourself. You don't need a whole company. You don't need funding, really. Of course, there's a certain amount of money that has to be dedicated to create these things. Laptop only costs around $1,500 if you make it, order everything, parts and all. Building it costs a lot more. The R&D cost a total of $5,000. Even then, that's so much less than the 5 billion dollars, or whatever the R&D cost of Apple is. This is something that, of course, I'm not going to say it's reasonable to spend this much on a passion hardware project. But it's not an exorbitant amount to the point where you can buy a car for that amount. There's something that you'd reasonably spend on a literal laptop. If you're buying a top-end gaming laptop, you'd also spend $4,000 to $5,000. You can learn knowledge and a bunch of super cool things from building it yourself. Of course, you're going to get a worse laptop than a $5,000 commercial laptop. I think the knowledge part is what's truly priceless coming from it. As I mentioned before, I've met with Framework, Mr. Nirav Patel, and he's super cool and he showed me their new products, and so on and so forth. I've reached out to super, super cool and influential people in the tech world. It's really amazing to have these connections and being able to build on what's in the future. Another super cool thing is Eron Wolf of FUTO, along with Louis Rossmann, they're based in Austin, they offer to fund my second revision of a laptop. I'm not having committed to it yet, because I want to be responsible and say, when I get the time to work on my second revision, then I'll take the money. I'll have a lot of funding. I have sponsorships now for my future circuit boards from NextPCB. I really have this full width to be able to develop as much as I want, and have a much lower barrier of entry. It's not really so much the cost, but more of the connections, where I'm able to source hardware, I'm able to source advice, opinions and software development skills much better than I was before, where I had to cram myself into the back of the classroom and figure it all by myself. Now, it's like, the future chip that I'm using, which I'm not sure. I haven't decided exactly on it yet, but I'm looking at the 6P1 CIXP1 CD 18080. It's this really new trip that just came out and it's pretty much un-sourceable from anywhere. When I asked the NextPCB, they were like, "Yeah, let me get you this chip," and they got it the next day. They were like, "Yeah. Here's the price, here's the implementation," so on and so forth. I was like, having access to more resources now allows me to innovate better. For as long as I'm doing open-source hardware engineering, I plan on having as much of it done from scratch and released openly for free as I can. Just have people being able to learn and access the things I make. That's where my reception and my future, yeah. [0:45:04] GV: Could you see a world where it's obviously still open-source, but you are ultimately a laptop company that just says, "Look, if you want to buy off the shelf, we'll sell it to you, but obviously, you can pop the hood." Is there any world that you can see where that interests you? [0:45:21] BH: For sure. That's something that I've definitely considered, selling this laptop. A lot of people have reached out and asked, how much does it cost and how much, and etc., etc. I can't really give a good answer, because I designed this to be a one and done. This is not something that can be mass-produced. The screws and the tolerances, I have tape holding the wires down. It's not something that is ready to be mass-produced. That is something that I wouldn't say it's an oversight, but it's something that I didn't have the bandwidth to do, to be able to pull off in this short time. It's my first time doing a really full-stack integrated engineering project. Coming from that, I was like, okay, I didn't care about the price, because if I cared too much about the price, I wouldn't be able to get the laptop done. Adding all of that up, I was like, okay, my second revision, that's where I'm more honing in on manufacturability. That's something that Lucas Henkel, this European, really cool hardware and software engineer, he runs his firm in Europe doing engineering with Altium and so on, he's making an open-source laptop too, but he's working on it for over a year now. His work is a lot more detailed, a lot more manufacturability-oriented than mine. Mine was getting it out the door as fast as I could. In the end, yes, I can definitely see a world where I'm working on open-source hardware like this. I think Framework's doing an amazing job already. Releasing the schematics and releasing the software, targets such a small subset of people. I do think that it's much more viable to keep this as a small-scale project, where in the future, I'll have everything linked up and ready. If you want to buy it, and you want to get everything up and running, and of course, there's no warranty, there's no support for it. But if you want to give it a shot and you want to build it yourself, even this one, you can definitely build it yourself. In the future, I'm going to try and make it more easily makeable yourself. That's something, that a world that I see myself much more likely than starting a company for this. [0:47:01] GV: That makes a lot of sense. I mean, also in that vein, maybe some of the listeners have already forgotten the fact that you're in high school. What do you see the classic next four years looking for you? Are you thinking about college, or are you thinking, no, just skip that? Because, I mean, I think you're just in this quite unique position where it could look quite different for you. What are you thinking about that? [0:47:19] BH: Yeah, for sure. I've always taken the standpoint of wherever life leads me, I'll make the best of it. Right now, I'm at this crossroad where I'm currently getting my college decisions in right now. There's a few places that I'd love to go. Very, very prestigious, super, super great places that will lead a great future for me. I've talked to friends. Two of my previous classmates from Exeter, my high school, they're currently in the Bay Area doing Y Combinator, and so on and so forth. The YCC of Gary Tan actually tweeted about me, saying like, "Yeah. This high schooler's laptop is fourth highest," something, something like that. I was like, that's super, super cool. I'm having been in the Bay for spring break. I'm working at Neuralink. This future is really undecided for me. I really don't know what I want to target in my future, but it's definitely going to be something where I'm making the best for people. There's a lot of people that go to these really great schools. They're super, super smart. Then they go into quants. They go into finance, they go to business, or something like that. The money is there for sure. Half million dollars a year is great and all. I do want to build and make things for people. That's something that I've always loved doing. It's something that I don't really want to shy away from. Whether that is at Neuralink, building high-bandwidth brain interfaces for people that are disabled, or maybe Framework, or any other company that's building things for people and a reason, for a good cause. That's something that I want to do in the future. Going to college or not, that's something I haven't really made up my mind about. I'll make up my mind about that in a few months, and my future projects, and so on and so forth. Right now, I'm balancing my work here at Neuralink, as well as, one, trying to build the world's lightest wireless mouse. I have quite a few ideas, like inductively charging, no batteries, ultra-light, on composite shell. Basically, this Japanese idea of shaving weight off every single part of your system as much as you can. Just individually analyzing. If you can shave a milligram off a capacitor's size and do that, something that I want to implement, that will be a project coming up soon. I'll make it in collaboration with the NextPCB, so that's super exciting. Then, of course, the next laptop, and that's something that I want to do if time allows. I don't know what the timeline of that might be. Maybe in a few days, few weeks, few months, few years. I have no idea. Something for people, that's something that I will do for as long as I can stick to that. [0:49:42] GV: That's a great guiding North Star. I think many people who have had quite a journey themselves listening to this and they'll probably say something along the lines of just enjoy the journey. I think you're going to make a lot of that. Just to round out, you've mentioned a few people, but just generally speaking, who inspires you, dead or alive? [0:49:58] BH: Yeah. Definitely, Steve Jobs. One of the super inspirational - At my school presentation, it was a really packed room. It was super nice. Pretty much everyone that I was good friends with, all the teachers, even the principal came to watch my project presentation. I play this video of this Instagram Reel edit of Steve Jobs saying, "Building a good product is keeping 5,000 things in your head. At the same time, building something good is super, super hard." He's definitely one of my huge inspirations. I think in this modern day, technology and information is so widely spread, that all information, you can just find online, googling and reading data sheets and PDFs and watching YouTube videos. I think in particular, in the very end of my video, I think quite a few YouTube creators, Linus, Jeff Geerling, Stuff Made Here, Veritasium, and so on. Because they taught me so much knowledge about tech and about these things. They are what inspired me to pursue tech. Linus, I've watched him pretty much every single video he's made, since I started watching tech, which is in sixth grade. I've been an avid viewer for six years at this point. And pretty much every other channel, Veritasium, Jeff Geerling, Stuff Made Here, Louis Rossmann, Framework. Framework doesn't make videos, but just all these modern tech companies that have reached out, or I've reached out to them, these amazing companies are what inspired me and these people. They are the inspiration behind this, and they will continue to drive my inspiration going forward. [0:51:25] GV: Amazing. Byran, it has been an absolute privilege for me to get to come and speak to you. You've clearly got a lot of people knocking on your door. Very lucky to have you on SE Daily. Thank you so much for coming on. I hope we get to catch up maybe in a couple of years, and we'll get to see what you're up to in that time. [0:51:42] BH: Super excited. Also, amazing to talk to you, Gregor. Thank you for listening, I guess. Yeah. [0:51:46] GV: Thank you. [END]