News - 2025/08/09 - RP500 Lap Top
Author: Kevin Day
Description: News post on 2025/08/09.
Keywords: Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, News, 2025

# 2025 / 08 / 09 - RP500 Lap Top

I have decided to make a Lap Top computer. I've really enjoyed laptops like the Purism laptops and the System76 laptops. A laptop eventually has some problem, such as a dead battery or a damaged case, and replacements become hard to find. The Raspberry Pi 500 Keyboard along with the Raspberry Pi Monitor together provide a Lap Top alternative to laptops that can better stand the test of time.

The Raspberry Pi 500 Keyboard computer is approximately $100 dollars. The Raspberry Pi Monitor is approximately $100 dollars. With the selection of additional parts, this can make for a relatively inexpensive laptop alternative. Add a decent power source. Add a USB. And tada! I have the basics for a laptop alternative, dubbed a Lap Top (with an emphasis on the space between the two words).

This is all well and good but to make it really useful and usable there needs to be additional tweaks and accessories to get the most portability out of this. The Raspberry Pi 500 Keyboard computer also needs some modifications to make it work correctly.

There are also some problems with this project. The more obvious being the cabling and extra parts. Not having a good complete case or carrying bag is also another concern.

This article presents my particular approach, design, modifications, success, and failures in the creation and usage of my very own RP 500 Lap Top.

## The Parts

- Raspberry Pi 500 (US) Keyboard
- Raspberry Pi Monitor
- 2x Raspberry Pi 5 27W USB-C Power Supplies
- MicroSD Card
- USB M.2 NVMe Enclosure
- M.2 NVMe Drive
- Micro-HDMI to Standard HDMI 1m Cable
- Raspberry Pi USB 3 Hub
- Real Time Clock and Cabling
- Wireless USB Mouse
- 5 Volt 3 Amp+ Power Bank
- USB-C to USB-C Power Cable
- Lap Top Bag
- Velcro and Similar

The Raspberry Pi 500 Keyboard should use at least the 27W power supply. The Raspberry Pi Monitor should not need as much wattage but getting the same power supply for both makes this easier. The monitor does not come with a power source but it does come with a USB cable.

The MicroSD Card can be 32GB or even smaller, but 64GB or greater provides sufficient room for adding a ton of packages and files.

The USB M.2 NVMe Enclosure should support at least USB 3 and come with its own cable. This along with the M.2 NVMe Drive are considered critical for performance reasons and longevity reasons. MicroSD Cards do not last very long and have a very limited number of writes. The are also particularly slow. The USB M.2 NVMe Enclosure does bring in the inconvenience of more cabling and power power requirements. This cost is well worth it. Especially if you get 2TB or greater storage capacity.

I bought the standard 3 meter HDMI cables. As you might be able to see from the pictures, the cabling is a bit excessive so I recommend selecting only a 1M cable for use as a Lap Top.

The official Raspberry Pi USB 3 Hub is useful for extending the available cables and supports its own power source to reduce the power load from the keyboard. The biggest problem with this is that it is a few centimeters too short.

The Real Time Clock and Cabling and cabling is a bit trickier. The DS3231 Real Time Clock Module for Raspberry Pi works and only needs to be plugged in. The case partially gets in a way and some extensions are needed. That clock is also not very accurate. There are some better real time clocks like the Adafruit DS1307 Real Time Clock and the RV3028 Real-Time Clock, but these require soldering.

A wired mouse is perfectly fine. When it comes to the Lap Top, any form of a Wireless USB Mouse be it WiFi, Bluetooth, or some other form is much more convenient and less troubling.

A 5 Volt 3 Amp+ Power Bank is very important here. The Raspberry Pi 500 Keyboard is very sensitive on the correct voltage and amperage ranges. I am trying to avoid plugging any projects (beyond the Raspberry Pi open-source friendly hardware), but when it comes to power banks I must be pickier. I've looked around and I have found that the Anker 20k 30W Power Bank works well with this project. It outputs the correct 5 Volts with 4.8 Amps total with a standard 5 Volts with 3 Amps. It has two USB-C connections to power both the keyboard and the monitor. The current power display is very useful given that the keyboard computer has no way to monitor the battery levels of the external power bank. The extra USB-C to USB-C Power Cable is needed to connect the keyboard to the power bank. One of those short 240W USB cables is a very good option for this, if not over kill.

The Lap Top Bag can be any bag that fits all of the parts. It just so happens that the Lap Gear has a special carry bag (currently sold exclusively at Sam's Club) that fits perfectly in the lap, can stand up the keyboard, monitor, and mouse, and can fit all of the parts inside a zipped enclosure.

The Velcro and Similar are more important than one might imagine. They are also far cheaper and are very hacker friendly. I've tried some Velcro cord keepers and found they are nice and low profile but lack any reasonably stickiness. I had to combine them with the industrial strength low profile Velcro. I also tried the generic plastic cable clamps. The cable clamps work great when also combined with the industrial strength low profile Velcro. Their biggest downside is that they are bulkier and removing them when packing is a very good idea.

## Cable Management

The M.2 NVMe drive is necessary for a long lasting and better performing Raspberry Pi 500 Keyboard system. The problem is that it needs to go somewhere. This turns out to be easily solved. The USB M.2 NVMe Enclosures are lightweight and relatively compact. Add Velcro and stick it onto the back of the monitor and the problem is solved.

The additional cables that are needed to operate the Raspberry Pi 500 Keyboard system as a Lap Top can also be attached to the back of the monitor using Velcro.

I originally attached Velcro to the monitor and some plastic cable clamps. This worked great for sitting at a desk. They, however, are bulkier than they need to be and are less portable.

I switched to thin electric cord keepers. These keepers had no real stickiness worth using. However, they were made of Velcro, I was able to use separate industrial strength Velcro stickers to attach the cable keepers too.

The standard cables that I have are also pretty long. They might be on the shorter side for desktop use, but for Lap Top use they are too long! I will switch to cables no longer that 1 meter in future modifications. This should help reduce all the cabling present on the back of the monitor.

## Configuring the RP500

The standard Raspbian image is used for this project with all of the extra packages. There are an enormous amount of packages added that are not going to be mentioned here. This section is describing only the most critical or most notable changes that directly related to using the Raspberry Pi 500 Keyboard and associated parts as a Lap Top.

A MicroSD Card has a very limited number of writes and can be very slow. These problems can be avoided by reducing the number of reads, and especially writes, to the MicroSD Card.

The standard Raspbian image has a 4 MiB unallocated partition space followed by the 512 MiB `fat32` boot partition followed by the root filesystem partition in `ext4`. This is left unchanged. However, the `/etc/fstab` for the root device should be updated to have `,noatime` added, such as: `PARTUUID=01234567-89 / ext4 defaults,noatime 0 1`.

The M.2 NVMe drive should be formatted entirely in `ext4` (using the GPT partition scheme). The `/etc/fstab` for this device should be something like the following: `UUID=01234567-89ab-cdef-0123-456789abcdef /home ext4 defaults,noatime 0 2` The files for the `/home` directory should be moved into the this drive so that it may be used as the home directory.

Additional special filesystem directories should be changed to use the `tmpfs` format: `tmpfs /tmp tmpfs defaults,nosuid,nodev,noatime,size=2G 0 0 tmpfs /var/tmp tmpfs defaults,nosuid,nodev,noatime,size=512M 0 0 tmpfs /var/log tmpfs defaults,nosuid,nodev,noatime,mode=1775,size=512M 0 0`

The `/boot/firmware/config.txt` should have the following set:

- `arm_boost=1`
- `usb_max_current_enable=1`

The eeprom configuration should have the following set:

- `SDRAM_BANKLOW=1`
- `WAKE_ON_GPIO=0`

The `/etc/sysfs.conf` should have the following set:

- `devices/system/cpu/cpu0/cpufreq/scaling_governor = performance`

## The Bad

The most troublesome situations with using the Raspberry Pi 500 Keyboard as a Lap Top are:

1. Lack of a Hardware Clock
2. Power Management
3. All of the Cables
4. Needing Case Customization
5. Not True Open-Hardware
6. More Cumbersome than a Laptop
7. Performance Could be Better

The very first thing that I noticed was the lack of a hardware clock. If I disconnect the computer from the power source, there goes the clock. Having to use the Internet to fix the clock is neither acceptable nor desirable. This design must be capable of operating correctly without any Internet connection. Fortunately, there are some solutions but these solutions are not pretty. A custom hardware clock can be added and connected to the pins. The first clock that I selected is super cheap and is not very accurate.

The power management is a huge problem. The default power settings prevent the device from operating properly. I've tried using some standard power supplies and the voltage dropped from 5 Volts to about 4.7 Volts, or worse 4.6 Volts, when under basic load. Using the official Raspberry Pi power supplies showed the voltage staying at healthier levels while under basic load. The monitor does not have a particular problem with this and can use any sufficient power supply.

After solving the power supply problem, the biggest problem is that the display would suddenly cut off and I would be forcibly logged out. The USB connected M.2 NVMe drive would suddenly have read and write errors. This happened during any event that triggered heavy I/O on any USB connected device. The voltage would just suddenly drop to 4.6 Volts or below and power would be lost.

It turns out that the problem is the software used as their firmware is configured by default to not utilize all of the current. This results in the sudden power losses when under heavy load. The solution is to edit the `/boot/firmware/config.txt` file and add the following: `# Enable max current to prevent power problems. usb_max_current_enable=1` I added mine before for the first bracketed item (specifically before the line with `[cm4]`). With this change in place, the under voltage problems went away.

The cables can be annoying. They get everywhere and the standard ones are too long in this particular case. I intend to replace as many of the cables with shorter ones to help make cable management easier. Modifying the back side of the monitor with Velcro has made this a lot less of a hassle.

As for needing a case customization is not that bad of a problem. The best part of the Raspberry Pi 500 Keyboard being mostly open-hardware is that the specifications are available. Most notable of this are the case specs. This downside is more of needing to figure out how to design the case to address additional customizations, like adding a hardware clock using the pins. The hardware clock needs a decent place to go. My current approach is to just stick it onto the outside of the case using Velcro.

Most of the Raspberry Pi 500 Keyboard is open-hardware. However, there is the firmware and the boot process. I tend to get annoyed with how they call software "firmware" and put their "firmware" under non-open licenses. Firmware should be on the hardware as goes the actual meaning of the word "firmware". Like many other systems these days, the firmware is actually software. This software must be on the MMC card with the appropriate filesystem structure. This limits the capabilities that would be possible with truly open-source hardware.

The Raspberry Pi 500 Keyboard is reasonably small. The Raspberry Pi Monitor is pretty large for its price but is not too large. The particular carry bag that I am using is a Lapdesk with a zipper that fits the monitor, the keyboard, the power source, several of the other parts. This is fits on the lap nicely and has plenty of room for the mouse, monitor, keyboard, and power source all at the same time. Pretty big. Walking around with this is like walking around with a briefcase. This is a great setup for the lap and using it in seats or even in the bed. Walking around in public and using it at a bar in a restaurant, however, can be rather cumbersome.

The Raspberry Pi 500 Keyboard is the first Pi keyboard that is acceptable for regular use. I can feel the sluggishness from time to time and watching videos can result in a lot of skipped frames. I simply wish it has more specs than it does.

I discovered that I could get more performance out of the Raspberry Pi 500 Keyboard by tweaking the NUMA settings. I found a good article by Jeff Geerling describing the SDRAM tuning. I performed the following steps: `# sudo rpi-update sudo rpi-eeprom-config -e` I added `SDRAM_BANKLOW=1` and `WAKE_ON_GPIO=0` to that eeprom configuration and mine looks like this: `[all] BOOT_UART=1 POWER_OFF_ON_HALT=1 BOOT_ORDER=0xf461 SDRAM_BANKLOW=1 WAKE_ON_GPIO=0` After saving the changes, then the firmware gets flashed and you should see something like this: `# rpi-eeprom-config -e Updating bootloader EEPROM image: /usr/lib/firmware/raspberrypi/bootloader-2712/latest/pieeprom-2025-07-17.bin config_src: blconfig device config: /tmp/tmprg__h2p4/boot.conf ################################################################################ [all] BOOT_UART=1 POWER_OFF_ON_HALT=1 BOOT_ORDER=0xf461 SDRAM_BANKLOW=1 WAKE_ON_GPIO=0 ################################################################################ *** CREATED UPDATE /tmp/tmprg__h2p4/pieeprom.upd *** CURRENT: Thu Jul 17 04:25:12 PM UTC 2025 (1752769512) UPDATE: Thu Jul 17 04:25:12 PM UTC 2025 (1752769512) BOOTFS: /boot/firmware '/tmp/tmp.LYryTiEB7N' -> '/boot/firmware/pieeprom.upd' UPDATING bootloader. This could take up to a minute. Please wait *** Do not disconnect the power until the update is complete *** If a problem occurs then the Raspberry Pi Imager may be used to create a bootloader rescue SD card image which restores the default bootloader image. flashrom -p linux_spi:dev=/dev/spidev10.0,spispeed=16000 -w /boot/firmware/pieeprom.upd Verifying update VERIFY: SUCCESS UPDATE SUCCESSFUL`

The default setting of the system might be to use the power save mode. This really hurts performance. The command `sudo cpupower frequency-set -g performance` can be used to fix that.

To preserve the performance settings across reboots requires editing the system initializer. Install the `sysfsutils`, which for Apt based systems would be something like `apt install sysfsutils`. The `/etc/sysfs.conf` file can be modified to have the following: `devices/system/cpu/cpu0/cpufreq/scaling_governor = performance`

## The Good

I am very pleased with the results of this project. Yes, there are problems. Yes, there are things that could be improved. Yes, it could have better performance and maybe 16 GB of RAM. All of those problems aside, this computer makes me feel like a kid again.

Speaking of kids. The computer is (relatively) cheap. The same for the monitor. In fact, every part is replaceable at a reasonable price. A kid can break it and you are not out too much.

This cheap cost makes going remote much more ideal. A person is less likely to be out much if it gets stolen or broken. Both the MicroSD Card and the USB M.2 NVMe Enclosure can be taken out or disconnect and pocketed quite easily.

Both the Raspberry Pi 500 Keyboard and the Raspberry Pi Monitor use very little wattage. This makes these devices ideal in emergency situations where power is a critical resource. I did a trial run of my setup using the Anker 20k 30W Power Bank outside and did some compiling and unit tests of my FLL projects. Going from 100% to 85% took about 1 hour and 25 minutes while under heavy load with the monitor set to 85% brightness and using performance mode.

The M.2 NVMe drive connected over the USB increases the amount of wattage being used. My testing involved compiling software. Compiling software involves a lot of input to and output from the connected M.2 NVMe drive

I cannot stress enough that one of the biggest advantages of this Lap Top is that every part is independently replaceable.

The Raspberry Pi 500 Keyboard can also operate as a cheap mobile server. The especially low wattage when operating without a monitor is a boon for personal servers.

The hackability of the project is yet another advantage. The case specifications are open and custom designs could, in theory, be 3d-printed. There are numerous pre-created modifications available on the market due to the popularity of the Raspberry Pi. The freedom to create your dream, in your own private domain, is possible with Lap Tops such as this.

The Raspberry Pi 500 Monitor is VESA display mount compliant. Combine this with the relative cheap price of the monitors and one can easily create a custom dual screen docking station for the Lap Top.

Kevin Day