BlakRPI 2K

2560x1440 2K Display Keyboarded RPI handheld computer

Similar projects worth following
Our on going project is willing to deliver a small linux Raspbian/Ubuntu based mini pc with a small mechanical keyboard, a 2K HDMI high resolution display avec a lipo battery. We think this could be a nice handheld device you can keep in your pocket (big pocket). The display is a LS055R1SX03 2K color screen. Keys are metalic buttons. We should use a 12 000 mhA lipo battery. The PCB has a RPI compatible connector which makes it compatible with RPI PI 2, 3, 4 and Radxa Zero . The initial goal was to use a PI ZERO W or Radxa Zero (which has more power).

When the story begins

The all story begins with a cool BlakRPI project : a small pcb with a 320x240 color display , rubber keys and a small RPI ZERO.  We sold over 300 naked PCB and got thousands of requests for a full assembled device. 

We were occupied making our first MORPHESP240 CrowdSupply operation in 2020-2021 , so the BlakRPI upgrade was delayed. The campaign was a success with 188% returns.  

It is now time to start upgrading our BlakRPI and get a modern Linux handheld to be able to strat our second campaign.

The reviews we have received from V1 users

  • Low Rez of the first display
  • the keyboard driver component was too difficult to solder for beginners 
  • product access limited to people with soldering skills  (frustration !)

We have taken all these criticisms into account to bring you a more sympathetic solution into a V2 we will call BlakRPI 2K . 

The display will be raised to 2K (2560 x 1440 pixels - 5 inch size) resolution using a HDMI to MIPI converter. Doing this way, you can plug any computer with a HDMI plug into our board.  (This modularity will also allow to connect much more than raspberrys on the PCB. A Windows 10 USB key could be used if needed).

As for the display, we chose a common screen from aliexpress based on LS055R1SX03 . Although we chose a version with no touchscreen option, it is possible to add one later. 

Many of you complained about  the too tiny to solder I2C keyboard controller. So we desided to wipe it off and replace with a super simple ATMEGA32U4-AU chip . The AU version is suiper easy to solder and there is a bunch of arduino sketches for usb keyboard emulation (Example: QMK / Tutorial).  It you read between the lines, it will also let you use the BlakRPI board as a classic keyboard for any computer accepting a USB keyboard. We made several connectors available on the board to play with this option. 

How we made it ?

As always, we use our favorite PCB software: 

Instead of looking for a very compact realization, we decided to favor simplicity of assembly and ease of repair. The most tricky part was to be able to insert the HDMI to MIPI board, coming with the display , and keep a device as nice as possible. We decided not to recreate the charger option and found a ready made on capable of delivering around 3A which should be enough for this project. 

The tactile switches are very common ones: 5.2x5.2x5mm à 9mm, 4PIN SMT .  We plan to design a sister PCB with AZERTY or QWERTY engraved/copper letters. This sister board will cover the main pcb in the switches area, to give a clean surface finished keyboard., only the top metal of the buttons protruding from the sister PCB plate.

The final result 

Here is the rendering of what is expected

You can follow us on twitter : @sulfuroid and @morpheans . The home of BlakRPI line of devices is available on  

There is also a FaceBook Group : PALM size RPI based standalone computers

x-zip-compressed - 10.60 kB - 11/09/2021 at 20:17



bottom cover solidworks 2021

sldprt - 1.59 MB - 10/29/2021 at 10:55



bottom cover step

step - 2.78 MB - 10/29/2021 at 10:55



bottom cover 3D printable

Standard Tesselated Geometry - 1001.35 kB - 10/29/2021 at 10:55



Schematic diagram. All resistors are 603

Adobe Portable Document Format - 310.26 kB - 10/29/2021 at 09:49


View all 15 files

  • USB QMK keyboard running

    pcadic10/19/2021 at 16:44 0 comments

    Today , between 2 patients appointments, I was able to flash the ATMEGA32U4 of the pcboard. It worked like a charm at first book. Have a look at QMK QMKTools to understand how to flash the HEX file.  (you have the .hex file in the file area of this article)

    First tests show a working QWERTY KB with my dev laptop.

  • QMK Compatible KB ? ATMEGA32u4

    pcadic10/13/2021 at 12:55 0 comments

    yesterday we rebuit the keyboard (the old one had a circuit short which was hard to fix, due to a bad soldering technique). 

    We were able to flash the ATMEGA32u4 like a charm and run a sketch uploaded via ARDUINO IDE software. Good!

    Now we are preparing the QMK config files .  Installation of QMK was made under linux following this Guide.   

    We created the new kb called BLAKRPI with ./util/ bash script and followed this guide.

    Below, the schematic showing how the ATMEGA32U4 is wired

    "Cyberpunk computing"'s forum post was also of great help.   We were able to  setup the firmware.

    # MCU name
    MCU = atmega32u4
    # Bootloader selection
    BOOTLOADER = caterina
    # Build Options
    #   change yes to no to disable
    BOOTMAGIC_ENABLE = lite     # Enable Bootmagic Lite
    MOUSEKEY_ENABLE = no       # Mouse keys
    EXTRAKEY_ENABLE = no       # Audio control and System control
    CONSOLE_ENABLE = no         # Console for debug
    COMMAND_ENABLE = no         # Commands for debug and configuration
    # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
    SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
    # if this doesn't work, see here:
    NKRO_ENABLE = no            # USB Nkey Rollover
    BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
    RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
    AUDIO_ENABLE = no           # Audio output 

    Then we design the layout for the 60 keys

    #pragma once
    #include "quantum.h"
    /* This is a shortcut to help you visually see your layout.
     * The first section contains all of the arguments representing the physical
     * layout of the board and position of the keys.
     * The second converts the arguments into a two-dimensional array which
     * represents the switch matrix.
    #define LAYOUT( \
    K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
    K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
    K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
    K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, \
    K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411  \
    ) { \
    { K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011 }, \
    { K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111 }, \
    { K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211 }, \
    { K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311 }, \
    { K400,  K401,  K402,  K403,  K404,  K405,  K406,  K407,  K408,  K409,  K410,  K411 }  \

    And defaultlayout.c

    /* Copyright 2021 Dr CADIC Philippe
     * This program is free software: you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation, either version 2 of the License, or
     * (at your option) any later version.
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * GNU General Public License for more details.
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see .
    #include QMK_KEYBOARD_H
    // Defines names for use in layer keycodes and the keymap
    enum layer_names {
    // Defines the keycodes used by our macros in process_record_user
    enum custom_keycodes {
    const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        /* Base */
        [_BASE] = LAYOUT(\
            KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_UP, KC_NO,\
            KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT, KC_RGHT,\
            KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC, KC_F5, KC_F6,\
            KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_ENT, KC_F7, KC_F8,\
    Read more »

  • Xorg/Xwindow working

    pcadic09/20/2021 at 20:34 1 comment

    hi all.

    I was able to setup the GFX interface. You will need the may2020 raspbian image to be able to get it running, then update/upgrade from it.

  • Week end built

    pcadic09/20/2021 at 09:34 3 comments

    we built the blakrpi 2k this week end.

  • config.txt issues

    pcadic09/20/2021 at 09:32 0 comments

    We found a cool link to setup the display.

  • Soldering...

    pcadic09/14/2021 at 22:26 0 comments

  • Pcb have arrived

    pcadic09/14/2021 at 22:24 0 comments

    we got the pcb this morning. This is time tp soldet them ... 

View all 7 project logs

Enjoy this project?



fdufnews wrote 10/20/2021 at 20:38 point

The link to is now obsolete should be replaced with

  Are you sure? yes | no

teraz wrote 09/27/2021 at 17:32 point

In my opinion longest screen and longest keyboard are better. similar old sony pocket.

  Are you sure? yes | no

teraz wrote 09/27/2021 at 17:31 point

how long this device work on one charging?

Please add OrangeCrab too for motherboard. Many people need fpga not only cpu.

  Are you sure? yes | no

fdufnews wrote 09/11/2021 at 13:51 point

Really interesting product that I'd like to have.

  Are you sure? yes | no

pcadic wrote 09/15/2021 at 12:17 point

:) I'm currently building it... I should post updates in the next 48 hours

  Are you sure? yes | no

fdufnews wrote 09/15/2021 at 15:36 point

I look forward

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates