Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Readers > PocketBook

Notices

Reply
 
Thread Tools Search this Thread
Old 05-19-2026, 09:37 AM   #1
x3oo
Connoisseur
x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.
 
Posts: 59
Karma: 3656
Join Date: Feb 2009
Device: cybook
2x faster display on pocketbook

# REAGL Mode for PocketBook — Activation Guide

REAGL is a ghost-compensated non-flashing EPD waveform mode built into the factory
waveform file. It delivers 16-gray quality at 2.1× the speed of GC16 (270 vs 576 frames
at room temperature), handling ghosting on every partial update so you no longer need
periodic full-screen flashes.

## What It Does

```
GC16 (stock): erase → black → white → target → 576 frames, visible flash
REAGL (mod): ghost-compensate → target → 270 frames, no flash
```

InkView (PocketBook's display server) only uses GC16 (mode 2). By telling the kernel
"when InkView asks for mode 2, use mode 8's waveform data instead", all updates become
REAGL. No files modified. No InkView patching. Survives until reboot.

## Prerequisites

- PocketBook device with Allwinner B288 SoC (InkPad 3, InkPad 3 Pro, InkPad 4, Touch HD 3, Color, Verse, Era)
- Root SSH access via pbjb jailbreak ([guide](https://www.mobileread.com/forums/sh...d.php?t=325185))
- KOReader installed and booting directly

## Activation (Runtime)

SSH into the device and run:

```sh
luajit -e '
ffi = require("ffi")
ffi.cdef[[int open(const char*,int); int close(int); int ioctl(int, unsigned long, ...);]]
require("ffi/mxcfb_pocketbook_h")
ffi.cdef[[struct mxcfb_waveform_modes { int mode_count; int modes[16]; };]]
wm = ffi.new("struct mxcfb_waveform_modes")
wm.mode_count = 11
for i = 0, 10 do wm.modes[i] = 8 end
wm.modes[14] = 8
fd = ffi.C.open("/dev/fb0", 2)
ffi.C.ioctl(fd, 0x4024462B, wm)
ffi.C.close(fd)
print("REAGL active")
'
```

Takes effect immediately. KOReader and native PocketBook UI both benefit.

### In KOReader — Disable Full Refresh

Gear menu → Screen → E-ink settings → Full refresh rate → Never (or 99).

With REAGL ghost-compensating each partial, periodic flashes are unnecessary.

## Making Permanent (Survives Reboot)

Add the luajit one-liner to `/mnt/secure/etc/init.d/03-koreader.sh` before the bind-mounts.
Replace `/path/to/koreader` with your KOReader build path:

```sh
#!/bin/sh
# Activate REAGL mode remap
/path/to/koreader/luajit -e '
ffi = require("ffi")
ffi.cdef[[int open(const char*,int); int close(int); int ioctl(int, unsigned long, ...);]]
require("ffi/mxcfb_pocketbook_h")
ffi.cdef[[struct mxcfb_waveform_modes { int mode_count; int modes[16]; };]]
wm = ffi.new("struct mxcfb_waveform_modes")
wm.mode_count = 11
for i = 0, 10 do wm.modes[i] = 8 end
wm.modes[14] = 8
fd = ffi.C.open("/dev/fb0", 2)
ffi.C.ioctl(fd, 0x4024462B, wm)
ffi.C.close(fd)
'

# Bind-mount KOReader over bookshelf
umount /ebrmain/cramfs/bin/bookshelf.app 2>/dev/null
mount --bind /mnt/secure/bin/bookshelf_koreader /ebrmain/cramfs/bin/bookshelf.app
```

## Verification

```sh
# Check waveform modes loaded (mode 8 should appear)
cat /sys/devices/platform/sw-epdc.0/waveform_info | grep Waveforms

# Send a test mode 2 update and check dmesg
luajit -e '
ffi = require("ffi")
ffi.cdef[[int open(const char*,int);int close(int);int ioctl(int,unsigned long,...);]]
require("ffi/mxcfb_pocketbook_h")
u = ffi.new("struct mxcfb_update_data")
u.update_region.top=500;u.update_region.left=500
u.update_region.width=200;u.update_region.height=2 00
u.waveform_mode=2;u.update_mode=0;u.temp=0x1000
fd = ffi.C.open("/dev/fb0",2)
ffi.C.ioctl(fd, ffi.C.MXCFB_SEND_UPDATE, u)
ffi.C.close(fd)
'
dmesg | grep "wf=2" | tail -1
# Shows wf=2 but uses REAGL internally — remap is transparent
```

## Recovery

Reboot. The remap is RAM-only. Or hot-load the original WBF:

```sh
cat /boot/default.wbf > /sys/devices/platform/sw-epdc.0/waveform_binary
```

## Speed Comparison (24°C)

| Mode | Frames | Relative |
|------|--------|----------|
| GC16 (mode 2) | 576 | 1.0× |
| GS16 (mode 14) | 435 | 1.3× |
| GL16 (mode 5) | 435 | 1.3× |
| **REAGL (mode 8)** | **270** | **2.1×** |
| DU (mode 1, B/W) | 247 | 2.3× |
x3oo is online now   Reply With Quote
Old 05-19-2026, 11:51 PM   #2
x3oo
Connoisseur
x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.
 
Posts: 59
Karma: 3656
Join Date: Feb 2009
Device: cybook
this works without koreader of course, also its not real reagl just a direct drive method
x3oo is online now   Reply With Quote
Old 05-20-2026, 02:38 AM   #3
rantanplan
Weirdo
rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.rantanplan ought to be getting tired of karma fortunes by now.
 
Posts: 1,098
Karma: 12503116
Join Date: Nov 2019
Location: Wuppertal, Germany
Device: Kobo Sage, Kobo Libra 2, reMarkable PaperPro
So essentially you patched the incompetence of Pocketbook devs
rantanplan is offline   Reply With Quote
Old 05-20-2026, 05:48 AM   #4
x3oo
Connoisseur
x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.
 
Posts: 59
Karma: 3656
Join Date: Feb 2009
Device: cybook
no its more complicated, to get proper reagl to work it requires more work, so they probably abandoned the project and that mode is just a leftover, the mode is called reagl but isnt, its probably just a very short screen updating mode.
i am thinking about implementing advanced updating methods.
x3oo is online now   Reply With Quote
Old 05-20-2026, 04:38 PM   #5
neil_swann80
0000000000101010
neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.neil_swann80 ought to be getting tired of karma fortunes by now.
 
neil_swann80's Avatar
 
Posts: 5,938
Karma: 12984859
Join Date: Mar 2023
Location: An island off the coast of Ireland
Device: PB632 [HD3]
If you've rooted with pbjb you should be able to place startup scripts in:
/mnt/ext1/system/init.d

I've tested it on my HD3, I can't tell if it's made the display noticeably faster

For the bind-mount, what is:
/mnt/secure/bin/bookshelf_koreader

This write-up does not specify what this file is, how it is created.

Last edited by neil_swann80; 05-20-2026 at 11:55 PM.
neil_swann80 is offline   Reply With Quote
Old 05-21-2026, 10:22 AM   #6
x3oo
Connoisseur
x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.x3oo can teach chickens to fly.
 
Posts: 59
Karma: 3656
Join Date: Feb 2009
Device: cybook
Quote:
Originally Posted by neil_swann80 View Post
If you've rooted with pbjb you should be able to place startup scripts in:
/mnt/ext1/system/init.d

I've tested it on my HD3, I can't tell if it's made the display noticeably faster

For the bind-mount, what is:
/mnt/secure/bin/bookshelf_koreader

This write-up does not specify what this file is, how it is created.
it's just a benchmark i wrote relating to another part of this project
x3oo is online now   Reply With Quote
Reply


Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
faster display inkpad 3 pro and others x3oo PocketBook Developer's Corner 8 05-21-2026 11:48 AM
how to display the series and the numbers in Pocketbook? donpopo Devices 14 08-05-2020 09:07 AM
302 display problem pocketbook 302 harmen PocketBook 1 05-15-2012 07:17 AM
PocketBook 912 display partnumber alexandel PocketBook 10 10-24-2011 06:02 PM
IQ Line in Pocketbook IQ display obiwan99 PocketBook 16 01-13-2011 11:04 PM


All times are GMT -4. The time now is 05:13 AM.


MobileRead.com is a privately owned, operated and funded community.