How to Design The World’s Smallest Laptop For Hacking And Everything Else

In some hacking-related duties, where you might not want to carry a large laptop, it’s vital to carry a machine that can perform ethical hacking covertly. To test the exploitation, network penetration, and injection of malware and viruses, we need a smart device for this. A compact system that can perform as well as a full-specs laptop while still being concealable and portable is necessary for ethical hacking. So, here’s how to create the smallest hacking tool in the world with a complete touch keyboard.

Hardware Required

  • Raspberry Pi 4
  • 8.9cm Touch LCD Display
  • 5.43cm Touch e-ink display
  • 5V Battery+Charging IC
  • Laptop 3D Printed Parts
  • Wire

To choose the appropriate hardware components and operating system (OS) for the hacking machine, we must first settle on some intriguing laptop specifications.

Fig. 1: Author’s prototype
Author’s prototype

  • Hacking tools that are portable, concealable, and easy to carry anywhere are as small as our finger.
  • Full multi-touch keyboard built-in.
  • Multi-touch tablet with support for hacking
  • equipped for wireless and network exploitation, penetration testing, and hacking; equipped with Wi-Fi, BLE, and Bluetooth connectivity
Fig. 2: The hacking laptop with touch keypad
The hacking laptop with touch keypad

Because it already has a variety of exploitation tools for penetration cracking and testing, like Metasploit, Aircrack-ng, and Wireshark, Kali is one of the best Linux flavoured operating systems (OS) for ethical hacking.

Fig. 3: The laptop running Linux
The laptop running Linux

Fig. 4: Laptop size compared to finger
Laptop size compared to finger

Designing the laptop

After gathering the parts outlined in the Bill of Materials, we must design the laptop’s shell or body to securely house the internal hardware. The laptop body could be divided into three halves. First, the base section, where the Raspberry Pi, battery, and charging system are kept. We build two cuts in the base: one for the Ethernet and USB up front, and the other for power and battery charging.

Fig. 5: The laptop’s touch keyboard
The laptop’s touch keyboard

Fig. 6: The laptop’s base
The laptop’s base

Next, we design the base’s top cover to accommodate a touch-based, e-paper keyboard. As shown in Fig, we cut a hole in the top cover and insert the touch panel keyboard.

Fig. 7: Base cover to hold the keyboard
Base cover to hold the keyboard

The laptop’s support for the LCD display is the next thing we create. To do this, we maintain the thickness and make the enclosure the same size as the display.

Fig. 8: LCD panel
LCD panel

After designing the laptop body, we can 3D print its parts.

Fig. 9: LCD panel’s back cover
LCD panel’s back cover


We must install Kali Linux on the Raspberry Pi board before moving on. Visit the Kali Linux website to obtain the most recent version for an ARM-based device, such as the Raspberry Pi. Install the Raspberry Pi disc image after downloading it. By selecting the Kali Linux OS image file in the Raspberry Pi disc imager, insert the SD card into the USB drive and prepare it with Kali Linux OS.

Fig. 10: Preparing SD card with Kali Linux OS
Preparing SD card with Kali Linux OS

Preparing OS for SPI display

Any monitor for the Raspberry Pi that is up to 8.9 cm (3.5 inches) in size can be used with our laptop. We utilize a touch e-ink display that is an SPI for the keyboard panel, and two SPI displays can interfere with each other’s communication, so it is advised to use an HDMI-based touch display instead. The SPI of other displays does not really pose a problem because the SPI touch e-ink display used for the keyboard employs just its touch feature, which is I2C based.

Because it was previously purchased, an SPI-based display was utilized in the prototype; nevertheless, it is advised to use an 8.9 cm HDMI touch display. You can skip the next steps (necessary for SPI display) and get right to the part on setting up the keyboard if you’re using an HDMI monitor.

Fig. 11: Connecting SPI display with Raspberry Pi
Connecting SPI display with Raspberry Pi

Installing the drivers and configuring the SPI touch display are prerequisites for using the SPI display. To install the driver and configure the display for the Raspberry Pi, open the terminal and type the following command in the Linux terminal:

git clone
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD35-show

Connect the SPI display to the Raspberry Pi after installing the driver, as illustrated in Fig. 11, and solder the pins in accordance with Table 2.

Preparing the Touch Keyboard

To input data into the laptop, the keypad system needs to be ready. We are using the touch e-ink display as the touch-based keypad because we want to create a full touch keyboard panel, but we need software to use it as a keyboard.

Fig. 12: Keyboard layout on e-ink display
Keyboard layout on the e-ink display

The keys must be visible on the e-ink display in order to create the touch keyboard. Therefore, download a vector image of the keyboard’s keys. Download the touch e-ink display library after resizing the image to fit the e-ink display. Since we are utilizing the waveshare touch e-ink display here, launch Linux and enter the command below to download the necessary driver and library:

sudo pip3 install gpiozero
tar zxvf bcm2835-1.68.tar.gz
cd bcm2835-1.68/
sudo ./configure && sudo make && sudo make
check && sudo make install
sudo apt-get install wiringpi
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo pip3 install RPi.GPIO
sudo pip3 install spidev
cd ~
git clone

To display the image on an e-ink display, go to Example and run the code. Change “pic” to a vector representation of a keyboard layout in that code, execute it, then turn the Raspberry off. (Note: Before executing the code, connect the e-ink touch display to the Raspberry using its GPIO pins.) Even when the power is turned off, the display will still show the same image until you refresh it. E-ink displays employ a unique technology that allows the electrically triggered ink molecules to remain on the display, just like printed ink does on paper.

Fig. 13: Code for keyboard input
Code for keyboard input

The next step is to write the code that will recognize the touch spots on the touch e-ink display that we make contact with and transform those keyboard signals into inputs for Kali Linux on the Raspberry Pi. There are several Python packages available that allow you to virtually input mouse and keyboard signals without actually connecting a mouse or keyboard. To provide virtual keyboard input to the Raspberry Pi in the prototype, we used the pynput Python library package. So, to install Pynput, open the Linux terminal and type the following command:

sudo pip3 install pynput

Prepare the code that will examine the touch points and turn each key we press on the keyboard into key input after that.

Fig. 14: Code checking touchpoints and converting into keyboard input

Code checking touchpoints and converting into keyboard input

Check the touch locations on the display where we will be touching the e-ink display that is being used as a keyboard and import the library and pynput modules for virtual input to Raspberry Pi as shown in Fig. 13. Then, as illustrated in Fig. 14, construct a while loop and provide the function to utilise pynput for the keyboard inputs to the Raspberry Pi.

Fig. 15: Changing the SPI number in code
Changing the SPI number in the code

The Raspberry Pi’s SPI port’s SPI(0,0) must now be changed to a second SPI. Change all instances of SPI(0,0) in the code for the e-ink touch display to SPI(1,0), then save the changes by opening the lib folder. Add the line indicated by the arrow in Fig. 15 to the config.txt file of the Raspberry Pi in the boot folder at the root of the Raspberry Pi to activate the second SPI port.

Fig. 16: Enabling other SPI on Raspberry Pi

Enabling other SPI on Raspberry Pi

As illustrated in Table 2, attach the e-ink display to the Raspberry Pi using the pins. We are only connecting the pins of the touch controller of the e-ink display to the Raspberry Pi because we are only using the touch component and the touch controller is I2C based.

Fig. 17: Raspberry Pi fitted in the case
Raspberry Pi fitted in the case

Preparing the laptop

Fig. 18: Touch keyboard on the top of laptop base
Touch the keyboard on the top of the laptop base

Fix all the hardware in the 3D-printed laptop case we produced previously after setting up everything in the libraries and modules, connecting the components, and soldering. Fix the parts in the manner depicted in Figs. 17 through 20. Place the battery and charging apparatus inside the case, leaving the GND and 5V pins of the Raspberry Pi exposed.

Fig. 19: Touch keyboard fixed
Touch keyboard fixed


Congratulations! The tiniest hacking laptop in the world is prepared to work its magic. Run the keyboard code while the laptop is powered on. Now, despite its diminutive size, you can use it as a hacking tool that is just as potent as a commercially marketed hacker laptop.

Fig. 20: The display fixed
The display fixed

The laptop is portable and can be used for network security testing, penetration testing, and network security securing. Of course, you can also use it to do regular work, play games, view videos, or browse the internet, just like you would with any other laptop. This smallest laptop is capable of performing any task that your standard laptop can.

Fig. 21: Laptop running Kali Linux
Laptop running Kali Linux


I hope all of you have understood how to design The World’s Smallest Laptop For Hacking And Everything Else. We MATHA ELECTRONICS will be back soon with more informative blogs soon.

Leave a Reply

Your email address will not be published.