A Tale of Three Laptops

This is a summary of my research project enabled by the National Upcycling Computing Collective (NUCC). Who allowed me to examine three retired laptop computers of unknown condition, evaluating them as potential robot brain for running Robot Operating System (ROS).

For all three machines, I found a way to charge their flat batteries and get them up and running to evaluate their condition. I also took them apart to understand how I might mechanically integrate them into a robot chassis. Each of them got a short first-pass evaluation report, and all three are likely to feature in future projects both robotic and otherwise.

In the order they were examined, the machines were:

  1. HP Split X2 (13-r010dx): This was a tablet/laptop convertible designed for running Windows 8, an operating system that was also designed for such a dual-use life. Out of the three machines, this one had the longest feature list including the most modern and powerful Intel Core i3 CPU. But as a tradeoff, it was also the bulkiest of the bunch. Thus while the machine will have no problem running ROS, the mechanical integration will be a challenge. Its first pass evaluation report is here. For full details query tag of 13-r010dx for all posts relating to this machine, including future projects.
  2. Toshiba Chromebook 2 (CB35-B3340): This machine was roughly the same age as the HP, but as a Chromebook it had a far less ambitious feature list but that also gave it a correspondingly lighter and slimmer profile. It is possible to run a form of Ubuntu (and therefore ROS) inside a Chromebook, but there are various limitations of doing so. Its suitability as a robot brain is still unknown. In the meantime, the first pass evaluation report is here, and all related posts (past and future) tagged with CB35-B3340.
  3. HP Mini (110-1134CL): This was a ~10 year old netbook, making it the oldest and least capable machine of the bunch. A netbook was a simple modest machine when new, and the age meant this hardware lacks enough processing power to handle modern software. While technically capable of running ROS Kinetic, the low power processor could only run the simplest of robots and unable to take advantage of the more powerful aspects of ROS. The first pass evaluation report is here, and all related posts tagged with 110-1134CL.

While not the focus of my research project, looking over four old laptops in rapid succession (these three from NUCC plus the refurbished Dell Latitude E6230 I bought) also gave me a perspective on preparing old laptops for computing beginners.

Toshiba Chromebook 2 (CB35-B3340): First Pass Evaluation

Taking apart this Chromebook immediately after taking apart the HP Split was a very instructive contrast in varied approaches taken when building a laptop. Even though the two devices were only 2-3 years apart, they ended up at very different destinations reflecting the philosophy of the software they were designed to run.

HP Split was built for Windows 8, together they positioned themselves to be all things to all people including ability to convert between tablet and laptop modes. And as a result the overall package is big and bulky. It tries to do everything, but it’s not especially great at any single task.

A Chromebook runs Chrome OS, which is a thin shell built around the Chrome web browser. It does not try to be anything else, and its simplicity in software was also reflected in a thin lightweight laptop built for a singular purpose and doing just that one thing well.

Windows 2-in-1 machines have evolved a lot since the first generation of devices like the HP Split, and while the penalty for compromises have been greatly reduced, they still exist in the form of weight, space, cost, or some trade off between them. In contrast, Chromebooks have remain thin and light machines in terms of software, hardware, and price tag.

If I wanted to turn this Chromebook into a robot brain computer, though, I need to break out of the Chrome OS sandbox and put it into developer mode. Unfortunately that menu is only visible on the primary display, which is broken. I could spend money on a replacement screen, but it seems wasteful just to use it to toggle the developer mode switch. A robot brain computer would not need a screen! So if I am to buy the screen, I should probably use it as a Chromebook laptop. The cost/benefit for that isn’t great, because Chrome OS may drop support for this hardware platform pretty quickly. When that happens,  security upgrades stop coming.

I will set this machine aside while I debate what to do. In the immediate future I have the third and final machine to examine in this research project.

Toshiba Chromebook 2 (CB35-B3340): Hardware Internals

While I contemplate buying a replacement screen to bring this Chromebook back to function, I removed the bottom panel as well, just for a look. Ten screws held the bottom panel in place, two of which were hidden under two rubber feet. (Top two as shown in this picture):

Toshiba Chromebook 2 CB35-B3340 bottom

Once removed, we could see the surprisingly roomy interior.

Toshiba Chromebook 2 CB35-B3340 internals

This was a relatively thin laptop for its age and screen size, so I had expected components to be packed densely. The battery, a single large module in the center, dominated the volume as expected. On either side are speakers, each with the luxury of the largest enclosures than I’ve ever seen in laptop speakers. Far larger than the volume allocated to speakers within the HP Split. I’ve read that interior volume for audio tuning is at an extreme premium, with sound designers fighting for millimeters, so it was a surprise to see this. And even with that use of volume, there are still room left unused near the corners.

Electronics occupied the area close to the hinge. They covered less than half of the available surface area and far less than half of the available volume within this laptop. Most of the main circuit board was covered by a metal shield, so I removed it to see components underneath. (In this picture, the machine was rotated 180 degrees relative to previous picture.)

Toshiba Chromebook 2 CB35-B3340 internals without EM shield

I see the CPU, RAM, and flash storage are all tightly integrated and soldered on board. No RAM or storage upgrades for this machine, which is consistent with the Chromebook ethos. About the only core component not soldered down is the commodity WiFi card, which I interpret to mean there was little to no cost savings to integrate an unit.

I had known about Chromebook’s concept of reduced complexity, but it was mostly in terms of software and maintenance. Since Chrome OS was running a Linux kernel under the hood, I expected the hardware to be just as complex as any other laptop. But apparently not this one, which I found very interesting. Now I’m curious if all Chromebooks have electronics guts simpler than equivalent full PC laptops. If I have the opportunity to take apart more Chromebooks in the future, I’ll keep an eye open to see if this is actually common across all Chromebooks or maybe the simplicity of this model is just good work on the part of the Toshiba Dynabook team which designed this Chromebook.

This was an interesting and instructive look inside the machine, time to put it back together and take stock of the current situation.

Toshiba Chromebook 2 (CB35-B3340): Replacement Screen Shopping

I have an old Chromebook that was pretty obviously retired due to a broken screen and I freed the damaged module for a closer look. I had no expectation that I could repair the display module, as there’s a visible crack. Interestingly the crack is inside the glass and not present at the outer-most surface. There’s also discoloration surrounding the crack hinting at more severe damage underneath. I could probably go online and find information on the display module used in this particular Chromebook, but getting the make and model is only a secondary objective. Before I contemplate a replacement, I wanted to first make sure I could install the replacement with low risk of damage. Hence the removal exercise to verify the lack of an impenetrable wall of glue or similar impediments.

It turned out getting to the actual module label was useful because this device was apparently sold in multiple configurations. There’s at least one variant with a minimal 1366×768 low resolution panel, and this device was an upscale version with a 1920×1080 panel. A search on Amazon marketplace found replacement new LP133WF2(SP)(A1) available for roughly $75 (*) and eBay sellers in a similar price range.

The price was the last piece of information I needed, now I need to make a decision about this project. $75 isn’t a terrible price to pay to bring a laptop computer back up and running, but it doesn’t compare very favorably to what else that money can be spent on. Even if we limit ourselves within the Chrome OS ecosystem.

New Chromebooks can be had for a little over $100 with the occasional sale, though at that price point we’re limited to 1366×768 resolution displays. I’ve seen 1920×1080 resolution Chromebooks at around $150 on sale, or roughly double the cost of a replacement panel. A new Chromebook would have access to newer developer features like Crostini that this Chromebook does not. A new Chromebook will also receive Chrome OS updates for at least five years, where support for this 2014 vintage ‘swanky’ Chromebook would end considerably sooner. Even if I put Ubuntu on this machine via Crouton, it is still dependent on Chrome OS for Linux kernel security updates.

At $75 for a new replacement panel, the economics is a tough call. I may contemplate buying salvaged panels which are available for less. (As of this writing, as low as $47.) I’ll keep thinking about this for a while. In the meantime, I want to look at the rest of this Chromebook out of curiosity.


(*) Disclosure: As an Amazon Associate I earn from qualifying purchases.

Toshiba Chromebook 2 (CB35-B3340): Screen Removal

If I wanted to turn this Toshiba Chromebook 2 into a robot brain, I need to put it into developer mode to install software outside of Chrome OS. Unfortunately the menu to put it into developer mode is only visible on the primary display which is damaged and illegible. Time to explore what it would take to bring the screen back.

The screen bezel are held in place by two screws and a lot of plastic clips. Once the screws were removed, I could go around the perimeter and pop loose all the plastic clips.

Toshiba Chromebook 2 CB35-B3340 screen bezel screws

After the bezel was removed, I noticed a small magnet held inside. This allows the base to detect if the lid is open or closed via a Hall effect sensor. If we end up going without the screen and need to spoof lid state, this is where we would place a magnet.

Toshiba Chromebook 2 CB35-B3340 screen bezel magnet

The lid had heat-set inserts that looked like they could be used to help fasten the screen in place, but no fasteners. I thought maybe someone had investigated screen replacement before me and just didn’t put the screws back, but as it turns out, screws wouldn’t have done anything.

Toshiba Chromebook 2 CB35-B3340 heat set insert but no fastener

This screen is held by four adhesive pads, one at each corner. Perhaps a different model used a different screen with metal brackets that would have been held using screws, but this screen was held by sticky pads.

Toshiba Chromebook 2 CB35-B3340 screen freed from adhesive pads

Once freed from the four pads, the final point of attachment was the electrical connector. The plastic tag is actually adhesive tape, helping to keep two sides of the connector together together. Once plastic is peeled away from metal, it was easy to unplug the connector.

Toshiba Chromebook 2 CB35-B3340 screen cable

Disconnecting that connector freed the screen, and we can take a closer look.

Toshiba Chromebook 2 (CB35-B3340): Developer Mode

The upside of a Chromebook is that the user never has to worry about hardware specifications, applications minimum requirements, or any of the typical headaches of computer ownership. It’s all handled through the Chrome browser. The downside of a Chromebook is that the user is not allowed to install traditional computer applications. Or at least, not by default. Under the hood, Chrome OS runs a Linux kernel, and it’s possible to use that as a foundation to extend computing experience outside the walled garden of Chrome OS. I started learning about Crouton, a project using chroot capability of Linux kernel to allow a variant of Ubuntu or Debian to run on Chromebooks.

Documentation for Crouton referenced the Crostini project, a way to get a Linux shell and container support without putting a Chromebook into developer mode. It sounds like a great thing to try first! But unfortunately this particular Chromebook is not supported. More specifically, this Chromebook hardware generation with the code name ‘Swanky’ does not meet the hardware virtualization support required for Crostini.

Especially frustrating is the explanation that, while the Intel spec sheet says the Celeron N2840 has the required hardware virtualization support, ‘swanky’ Chromebooks actually use a special variant of the chip without such support. I guess it saved them some money at the time? Keeping in mind the original intent of Chromebooks, it made sense to cut out virtualization support. But that decision now cuts this laptop off from Crostini.

So no Crostini for this machine, back to looking at Crouton. And the next critical step is to switch this Chromebook into Developer Mode. Holding down ESC + Refesh then pressing power, I can see the broken display is illuminated but the external monitor is not. It appears the recovery/developer mode menu is shown only on the built-in display, which I can’t read. And unlike the power wash menu earlier, the screen mirror key combination has no effect on the developer mode menu.

I searched online for a complete procedure to put this Chromebook into developer mode. Unfortunately all I found were”press control-D from recovery screen and follow menus” which isn’t helpful when I can’t read the screen!

It appears if I want to venture outside the Chrome OS sandbox, I have to look into screen replacement and the first step is investigating its removal.

Toshiba Chromebook 2 (CB35-B3340): Hardware Specifications

The old Chromebook retired due to cracked screen has been updated to latest Chrome OS, so I started searching for its technical specifications. I stumbled right out of the gate, failing to find anything on toshiba.com. Eventually I learned Toshiba sold a majority share its laptop business to Sharp and the new company (does that make it a joint venture?) is called Dynabook.

This would explain why every single product support page for the CB35-B3340 I found was under the Dynabook domain. There is not a lot of detail here, as a Chromebook is supposed to be low maintenance and they carried that concept through to reduced number of things a user has to worry about. A Chrome OS user shouldn’t ever have to worry about gigahertz or gigabytes.

But I did get some useful information implying this machine meets requirements for running robot operating system (ROS). The Intel Celeron N2840 processor is 64-bit capable. The maximum clock speed is up to a very respectable 2.58GHz. But it is constrained to run under 7.5 Watts, so it’s still an open question whether it has enough processing power in practice. Typical web browsing only need CPU power in short bursts: render a web page, then wait for the user to read the page, before rendering the next page. But robot intelligence puts a consistent high workload and if the machine needs to stay under 7.5 Watts it might have trouble sustaining maximum clock speed.

Its 4GB of memory and 16GB of flash storage meet bare minimums for even contemplating an Ubuntu installation. I’m not sure if 16GB storage is enough for the full suite of ROS nodes, but it can certainly run the subset necessary to operate a particular robot. And just like how CPU operating pattern differs between Chrome OS and ROS, the storage I/O pattern will be very different between typical Chrome OS and ROS. There’s a risk the flash storage will wear prematurely, a concern to keep in mind.

But first, we have to get this system to a point where we can install ROS, because ROS doesn’t install on bare Chrome OS.

Toshiba Chromebook 2 (CB35-B3340): Reset and Restart

I have a Chromebook with a damaged screen. Fortunately I could connect an external monitor via HDMI and mirror the primary display. It makes the machine usable, which is an improvement, but I have to command display mirroring every time there is a change in state. I have to press the magic key combination after every boot-up, every user log-in, and every user log-out. It is rather less than ideal but at least I can proceed.

The first order of business is to erase the system. The Chrome OS login screen showed the image of someone’s Google profile. I don’t know who it is, and I don’t care. This person’s data is none of my business and, since it is a Chromebook, I know all their data is still available online with Google.

Chrome OS has a “Log in as Guest” option, which allowed me to access the system settings menu. I thought this was where a system reset could be commanded, but after coming up empty handed I went online for more research and learned a Chrome OS reset is actually triggered by a particular key combination upon power-up. I was worried the reset process would be restricted to the primary monitor, fortunately I could mirror that display to initiate the reset process which someone at Google decided to call a powerwash. Cute.

Once up and running on a blank slate, the next order of business is to update the system. There’s no telling how long it has been since this machine received a security update.

Chromebook 44.0.2403.156

This model Chromebook launched in 2014. Chrome OS 44.0.2403.156 was released August 19, 2015. Since Chrome OS auto-updates itself, it appears this particular machine lasted less than two years in use, possibly far less, before its screen was damaged. This makes me feel bad for the original owner.

Chromebook 53.0.2785.154

Update was a multi-stage process, I assume due to its age. I’m not familiar with Chrome OS development history but each of these steps probably transition across large architectural changes. The first round of update only took it to 53.0.2785.154 (October 2016).

Chromebook 72.0.3626.122

Another round brought it to 72.0.3626.122 (March 2019) This update resulted in a very different looking user interface and many items were moved around.

Chromebook 79.0.3945.123

Yet another round of updates brought it to 79.0.3945.123 (Jaunary 2020) which is the latest available. This is a pleasant surprise, as I had not expected this device to still be supported but it looks OK on the Developer Information For Chrome OS Devices page. This model launched in 2014, and Google only guarantees Chrome OS support for 5 years, so this device is probably living on borrowed time.

We’ll worry about that later. Now that we are up and running with latest Chrome OS, time to start looking at technical information.

Toshiba Chromebook 2 (CB35-B3340): Cracked Screen

By the time I wrapped up investigation of the HP Split tablet/laptop convertible, the Targus type I adapter arrived. I needed it to charge the battery in the remaining two machines of my research assignment from NUCC. I set aside the HP Split and started charging the Toshiba Chromebook. Once the charge LED turned from orange to white, I turned it on and the answer to “why was this machine retired?” was immediately apparent.

Toshiba Chromebook 2 CB35-B3340 screen detail

There is a large diagonal crack across the middle of the screen. Sometimes when a screen is damaged we could still read the content around the crack, but not here. The entire screen is illegible. Turning the machine on and off a few times, I saw the content is not consistent between runs. Either Chrome OS is booting to a dynamic splash screen every time, or what’s visible just have no correlation with the intended content.

Fortunately, this Chromebook has a HDMI video output port. Plugging it into a monitor, I see a very pretty picture of a night time landscape. This is probably a background picture, but without any controls, it is merely the secondary screen. The login prompt is still on the primary display I can’t read.

Since this was my first Chromebook, I didn’t know if there was a key combination I could press to toggle from this “extended” mode to “mirrored” mode where the login screen is sent to both displays. A little bit of research implied that there was, and a few minutes of fumbling found the magic keystroke: control plus an icon that might be maximizing a window or possibly going full screen.

Chromebook keyboard closeup

I’m not sure if it’s common to all Chromebooks or specific to this model, but at the moment it doesn’t matter. I can see the ChromeOS login screen on my external monitor, time to get down to business.