Raspberry Pi Zero 2 On PicoCalc

I dont have any spare female headers :sweat_smile: so I may just solder it to the PCB and keep the Zero within the case (instead of poking out of the slider/back-panel)

Yes, if you make a relay board for the RasPi Zero using a universal board, I’m sure I can fit it into custom case.
To do this, there are a few conditions:

  1. Cut the universal board to the 24x15 hole size and position the pin sockets and headers as shown in the photo.

  2. Cut the top edge as close to the holes as possible.
    (Otherwise, it will be difficult to fit into the case.)

  3. Use a 2x20-pin socket for the RasPi Zero with long pins, and keep the board-to-board spacing at 16mm.

  4. The cover design for the RasPi Zero is currently a work in progress.
    (It may need some further refinement.)

Also, one thing that’s bothering me is that, very occasionally, the keyboard (mouse emulation) may lose control.
This is difficult to reproduce, and I’m not sure what the conditions are.
Perhaps a I2C BUS repeater (such as a PCA9515) is needed for the I2C line.

3 Likes

Perfect!! Thanks for clarifying :fire:

1 Like

I get that on my Pico2 @378Mhz running Madcock’s picomite 6.00.03 and keyboard bios 1.2. Also very intermittent, say once a month when used daily. Will lose keyboard control and sometimes a random character repeats in the display. Almost always at power on. Maybe the stm32 ?.

1 Like

I have experienced a fail of the keyboard if the battery is low or the usb hub is drawing to much power.

For example:

When I run a 5 Volt Booster on the USB port with a Wlan dongle on Startup. The keyboard was failing everytime with the Lyra board. So maybe some peak usages let the stm32 fail.

1 Like

I see, so that’s what was happening.
It seems difficult to determine whether the cause is the STM32 firmware (V1.2), overclocking the PicoMite to 376MHz, or a problem with the I2C signal status between the STM32 and RasPiPICO.

1 Like

Yes, it can happen, and I’ve had a similar experience.
However, the problems with my keyboard seem to occur when the battery voltage isn’t too low, or while the device is charging.

Here is what I’m thinking.
It’s a bit long.

Looking at the PicoCalc schematic, the I2C line used for communication between the STM32 and RasPICO is pulled up to 3.3V with a 4.7K ohm resistor.
ā€œRasPiZero2 on PicoCalcā€ requires the creation of a relay board, and uses a RasPiZero2/W instead of RasPICO, so it’s the RasPiZero2, not the RasPICO, that communicates with the STM32 via I2C.
The RasPiZero2’s I2C is GP2,3, and apparently the internal pull-up resistor is about 1.8K ohms.
That’s a fairly small resistance value, but a strong pull-up.

If you look at the ā€œGuide for Setup Pi Zero 2 on Picocalcā€, you’ll see that the I2C wiring is described, but there’s no mention of 3.3V.
In other words, if you create a relay board and wire it according to the description, the I2C that the RasPiZero2 uses to communicate with the STM32 will not be pulled up to 3.3V.
And because the PicoCalc board has a 4.7K ohm resistor installed for pull-up purposes, the SDA and SCL will be connected via the 4.7K ohm resistor.

It looks like this. Isn’t this strange?

…Could something like that possibly be the cause of I2C (keyboard) problem?

If you connect the 3V3 of the RasPiZero, it should become a proper, normal I2C,
but the I2C pull-up resistor will be the RasPiZero’s internal pull-up resistor of approximately 1.8K ohms plus the 4.7K ohms from the PicoCalc board.

I tried wiring up RasPiZero’s 3V3, but it seemed to have a negative effect on the I2C communications environment, causing frequent strange keyboard input problems.
Specifically, even when I’d only typed a single character, the key would continue to be typed as if it were being repeated.
Maybe the pull-ups were too powerful.

So, basically, I thought about the following:

1). As mentioned above, if I don’t wire 3V3, the I2C SDA and SCL will be connected via a resistor.
That’s strange, so wouldn’t it be better to wire 3V3 to solve that problem?

2). However, if I do that, the pull-up will be too strong, so wouldn’t something need to be done to address that?

3). Since it’s difficult to replace the pull-up resistor to solve this problem,
wouldn’t it be better to use an I2C repeater (such as the PCA9515)?

So, it’s something like this.

Well, this is just my imagination, and I haven’t done any experiments or tried it yet.
I’m thinking of trying to mount a PCA9515 on a RasPiZero2 on PicoCalc relay board and experiment with it.

I don’t know if this idea is correct, and maybe I’m misunderstanding something.

1 Like

It seems like at this point the only way to get it running is to just install a really lite desktop and either boot command it with startx to just open Pico-8 or just put it on the desktop.

1 Like

I used an I2C repeater (PCA9515) and a POLOLU Voltage Regulator unit (Pololu - 2.5-9V Fine-Adjust Step-Up/Step-Down Voltage Regulator S9V11MA) to modify the relay board so that it has the following configuration.


For now, the keyboard seems to be working fine, but I won’t know if this is really an effective change until I’ve used it for a long time.
Maybe the keyboard problem I’m claiming is just an illusion.
However, I’d like to think that at least the problem with the I2C circuit has been fixed.

This was a HUGE help. Thank you!!

1 Like

I think I may followed the wrong GitHub? https://github.com/wasdwasd0105/picocalc-pi-zero-2?tab=readme-ov-file#guide-for-setup-pi-zero-2-on-picocalc

After installing the driver using

cd ./picocalc-pi-zero-2
chmod +x ./setup_display.sh
sudo ./setup_display.sh

I got this

-- Build files have been written to: /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/build
[ 14%] Building CXX object CMakeFiles/fbcp-ili9341.dir/display.cpp.o
[ 14%] Building CXX object CMakeFiles/fbcp-ili9341.dir/dma.cpp.o
[ 14%] Building CXX object CMakeFiles/fbcp-ili9341.dir/diff.cpp.o
[ 19%] Building CXX object CMakeFiles/fbcp-ili9341.dir/fbcp-ili9341.cpp.o
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/diff.cpp:6:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/display.cpp:3:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/dma.cpp:12:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
[ 23%] Building CXX object CMakeFiles/fbcp-ili9341.dir/gpu.cpp.o
[ 28%] Building CXX object CMakeFiles/fbcp-ili9341.dir/hx8357d.cpp.o
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/gpu.cpp:1:10: fatal error: bcm_host.h: No such file or directory
    1 | #include <bcm_host.h> // bcm_host_init, bcm_host_deinit
      |          ^~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/fbcp-ili9341.dir/build.make:132: CMakeFiles/fbcp-ili9341.dir/gpu.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 33%] Building CXX object CMakeFiles/fbcp-ili9341.dir/ili9341.cpp.o
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/fbcp-ili9341.cpp:21:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/fbcp-ili9341.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
install: cannot stat 'fbcp-ili9341': No such file or directory

After/during keyboard driver installation using

cd ./picocalc-pi-zero-2
chmod +x ./setup_keyboard.sh
sudo ./setup_keyboard.sh

I got this:

/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c:157:6: warning: no previous prototype for ā€˜input_fw_read_fifo’ [-Wmissing-prototypes]
  157 | void input_fw_read_fifo(struct kbd_ctx* ctx)
      |      ^~~~~~~~~~~~~~~~~~
/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c: In function ā€˜kbd_timer_function’:
/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c:452:51: warning: parameter ā€˜data’ set but not used [-Wunused-but-set-parameter]
  452 | static void kbd_timer_function(struct timer_list *data)
      |                                ~~~~~~~~~~~~~~~~~~~^~~~
/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c: At top level:
/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c:459:5: warning: no previous prototype for ā€˜input_probe’ [-Wmissing-prototypes]
  459 | int input_probe(struct i2c_client* i2c_client)
      |     ^~~~~~~~~~~
/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c:577:6: warning: no previous prototype for ā€˜input_shutdown’ [-Wmissing-prototypes]
  577 | void input_shutdown(struct i2c_client* i2c_client)
      |      ^~~~~~~~~~~~~~
/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c:595:10: warning: no previous prototype for ā€˜params_get_sysfs_gid’ [-Wmissing-prototypes]
  595 | uint32_t params_get_sysfs_gid(void)
      |          ^~~~~~~~~~~~~~~~~~~~
/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c:729:5: warning: no previous prototype for ā€˜sysfs_probe’ [-Wmissing-prototypes]
  729 | int sysfs_probe(struct i2c_client* i2c_client)
      |     ^~~~~~~~~~~
/home/jblanked/picocalc-pi-zero-2/picocalc_kbd/picocalc_kbd.c:754:6: warning: no previous prototype for ā€˜sysfs_shutdown’ [-Wmissing-prototypes]
  754 | void sysfs_shutdown(struct i2c_client* i2c_client)
      |      ^~~~~~~~~~~~~~

And when trying to do the last step: Edit /boot/config.txt (with sudo) and add:

I got this

dtparam=i2c_arm=on
dtoverlay=picocalc_kbd
DO NOT EDIT THIS FILE

The file you are looking for has moved to /boot/firmware/config.txt

(which I then modified the /boot/firmware/config.txt)

But I don’t see anything on the screen

Then I followed https://github.com/ironat/picocalc_bookworm?tab=readme-ov-file#display-without-drm and I saw the screen flash once, but I haven’t see anything on the screen since

This may be because your Raspbian version is different.
You may have Bookworm or Trixie installed.
(ā€œpicocalc-pi-zero-2ā€ instructs you to install the Legacy 32-bit Bullseye Raspberry Pi OS.)
Did you install Raspbian using Raspberry Pi Imager?

Bullseye has recently disappeared from the options in Raspberry Pi Imager.

Legacy 32-bit Bullseye appears to be available here:

2023-05-03-raspios-bullseye-armhf.img.xz 2023-05-03 01:50 872M

1 Like

Thanks for the reply!! That’s exactly what the issue must be. I’ll install the one you sent and then go through all of the steps again and report back

1 Like

This time after using

cd ./picocalc-pi-zero-2
chmod +x ./setup_display.sh
sudo ./setup_display.sh

I got

CMake Warning:
  Manually-specified variables were not used by the project:

    USE_GPU


-- Build files have been written to: /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/build
Scanning dependencies of target fbcp-ili9341
[ 19%] Building CXX object CMakeFiles/fbcp-ili9341.dir/dma.cpp.o
[ 19%] Building CXX object CMakeFiles/fbcp-ili9341.dir/fbcp-ili9341.cpp.o
[ 19%] Building CXX object CMakeFiles/fbcp-ili9341.dir/diff.cpp.o
[ 19%] Building CXX object CMakeFiles/fbcp-ili9341.dir/display.cpp.o
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/display.cpp:3:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/diff.cpp:6:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/dma.cpp:12:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/fbcp-ili9341.cpp:21:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
[ 23%] Building CXX object CMakeFiles/fbcp-ili9341.dir/gpu.cpp.o
[ 28%] Building CXX object CMakeFiles/fbcp-ili9341.dir/hx8357d.cpp.o
[ 33%] Building CXX object CMakeFiles/fbcp-ili9341.dir/ili9341.cpp.o
[ 38%] Building CXX object CMakeFiles/fbcp-ili9341.dir/ili9486.cpp.o
[ 42%] Building CXX object CMakeFiles/fbcp-ili9341.dir/ili9488.cpp.o
[ 47%] Building CXX object CMakeFiles/fbcp-ili9341.dir/keyboard.cpp.o
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/ili9488.cpp:5:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
[ 52%] Building CXX object CMakeFiles/fbcp-ili9341.dir/low_battery.cpp.o
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/low_battery.cpp:6:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
[ 57%] Building CXX object CMakeFiles/fbcp-ili9341.dir/mailbox.cpp.o
[ 61%] Building CXX object CMakeFiles/fbcp-ili9341.dir/mem_alloc.cpp.o
[ 66%] Building CXX object CMakeFiles/fbcp-ili9341.dir/mpi3501.cpp.o
[ 71%] Building CXX object CMakeFiles/fbcp-ili9341.dir/mz61581.cpp.o
[ 76%] Building CXX object CMakeFiles/fbcp-ili9341.dir/spi.cpp.o
[ 80%] Building CXX object CMakeFiles/fbcp-ili9341.dir/ssd1351.cpp.o
[ 85%] Building CXX object CMakeFiles/fbcp-ili9341.dir/st7735r.cpp.o
[ 90%] Building CXX object CMakeFiles/fbcp-ili9341.dir/statistics.cpp.o
[ 95%] Building CXX object CMakeFiles/fbcp-ili9341.dir/text.cpp.o
In file included from /home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.cpp:11:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h: In member function ā€˜uint32_t* SPITask::DmaSpiHeaderAddress()’:
/home/jblanked/picocalc-pi-zero-2/fbcp-ili9341-picocalc/spi.h:132:51: warning: taking address of packed member of ā€˜SPITask’ may result in an unaligned pointer value [-Waddress-of-packed-member]
  132 |   inline uint32_t *DmaSpiHeaderAddress() { return &dmaSpiHeader; }
      |                                                   ^~~~~~~~~~~~~
[100%] Linking CXX executable fbcp-ili9341
[100%] Built target fbcp-ili9341

No other errors/warnings following the other steps. But I still only see screen flash once and then it’s a blank/black screen. Anything else I’m missing?

I first follow all of these steps:

sudo apt update
sudo apt install -y git
git clone https://github.com/wasdwasd0105/picocalc-pi-zero-2.git

cd ./picocalc-pi-zero-2
chmod +x ./setup_display.sh
sudo ./setup_display.sh
# then reboot

cd ./picocalc-pi-zero-2
chmod +x ./setup_keyboard.sh
sudo ./setup_keyboard.sh
# then reboot

# Edit /boot/config.txt (with sudo) and add:
dtparam=audio=on
dtoverlay=audremap,pins_12_13

# then I go to https://github.com/ironat/picocalc_bookworm?tab=readme-ov-file#display-without-drm
# Do compile the overlay for the display
git clone https://github.com/ironat/picocalc_bookworm
cd picocalc_bookworm
dtc -I dts -O dtb -o picodisplay.dtbo picodisplay.dts
sudo cp picodisplay.dtbo /boot/overlays/.

# Update /boot/firmware/config.txt
# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details

# Uncomment some or all of these to enable the optional hardware interfaces
#FOR KEYBOARD
dtparam=i2c_arm=on
dtoverlay=picocalc_kbd

#dtparam=i2s=on

# FOR DISPLAY
dtparam=spi=on

# Enable audio (loads snd_bcm2835)
# FOR AUDIO
dtparam=audio=on
dtoverlay=audremap,pins_12_13

# Additional overlays and parameters are documented
# /boot/firmware/overlays/README

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Normal Display driver:

#FOR DISPLAY
#Display
dtoverlay=spi0-1cs
dtoverlay=picodisplay

# Automatically load initramfs files, if found
auto_initramfs=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2

# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1

# Disable compensation for displays with overscan
disable_overscan=1

# Run as fast as firmware / board allows
arm_boost=1

[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1

[cm5]
dtoverlay=dwc2,dr_mode=host

[all]

I trying today with Trixie light. Maybe it is better.

For Bookworm please use the Display with MIPI_DPI_SPI part.

IT works well for Bookworm and also Trixi with dektop. ( I know it is confusing. I will remove the old display install methods.)

Remember the Keyboard entries must be copied to the new config.txt location. /boot/firmware/config.txt

and You have to change the keyboard script for trixie from wasdwasd0105:

For the keyboard you have to change the setup_keyboard_script: (kernel-package instead of raspberrypi-kernel-headers)

sudo apt update
sudo apt install -y \
    build-essential \
    kernel-package \
    device-tree-compiler \
    git
1 Like

Awesome so steps moving forward:

  1. Install the latest bookworm (does 64bit or 32bit matter?)
  2. Install the keyboard driver:
sudo apt update
sudo apt install -y git
git clone https://github.com/wasdwasd0105/picocalc-pi-zero-2.git

cd ./picocalc-pi-zero-2
chmod +x ./setup_keyboard.sh
sudo ./setup_keyboard.sh
  1. Follow the steps from " Display with MIPI_DPI_SPI": GitHub - ironat/picocalc_bookworm
  2. Update the keyboard script again:
sudo apt update
sudo apt install -y \
    build-essential \
    kernel-package \
    device-tree-compiler \
    git

Everything look correct?

The change in the Keyboard script is only for trixie not for bookworm.

I have an error in the piocmipi.bin file so the screen is flipped, sorry.

Also you have to add:

fbcon=map:1 fbcon=font:MINI4x6

to the end of /boot/firmware/cmdline.txt

I will upload a fix now.

3 Likes