July 16, 2026, 07:10:19 AM

Recent posts

#1
New Product Ideas / Re: can a lime 2 or pico 2 xxl...
Last post by oeren - July 15, 2026, 04:24:01 PM
QuoteQuoting from ...

all rpi computers are a nuisance in terms of free software. Because no rpi computer will work even partly if you do not give them the non free software they require to run.

Quotepossible for Open Printer to fit it in their design?

Free software people take what they can get. If a free software computer can replace the rpi zero w then it does not matter if the computer has to be put somewhere outside of the printer.

Quotedoes not run GNU/Linux.

I had not put any thoughts into that. I am not a programmer. Therefore my investigations are the investigations of a layperson. And in any case they can be wrong.
I have been told, it is common that printers and 3d printers are run by micro controllers. Suggesting a pico 2 xxl should be able to run an open printer in terms of performance.
On https://www.opentools.studio/ it says open printer will make use of open source print server CUPS. I guess open printer is referring to https://github.com/openprinting/cups
I cannot tell if the cups software can be put on a pico 2 xxl as is. Or should rewriting the cups software be an option for getting the software on a pico 2 xxl, how big a task that would be?
Should a lot of consumers be interested in buying an open printer running entirely on free software the open printer would present a business opportunity for olimex. I think olimex should contact opentools.studio in order to find out if an open printer version running entirely on free software can be made?


#2
New Product Ideas / Re: can a lime 2 or pico 2 xxl...
Last post by oeren - July 15, 2026, 03:50:22 PM
QuoteAll three of the boards that you mentioned can run completely open source software.

If you are including the rpi zero w in all 3 of the boards, you are wrong. The rpi zero w requires non free software in order to work.

In fact no rpi computer is able to run entirely on free software. According to a rpi engineer the raspberry pi pico 2 requires no non free software in order to work.



#3
ESP32 / Re: Framebuffer on ESP32-P4-PC
Last post by LubOlimex - July 14, 2026, 11:31:07 AM
#4
ESP32 / Framebuffer on ESP32-P4-PC
Last post by Pjotr - July 13, 2026, 03:14:22 PM
I just need the framebuffer to draw graphics to HDMI output. Is there any demo code?
#5
STMP1 / Re: STM32MP1-OLinuXino-LIME: f...
Last post by dry - July 12, 2026, 07:18:00 AM
Ta daaam ! We can improve that performance by doing small device tree mod : add

sdmmc@58007000 {
    ....
    mmc-ddr-3_3v;  <--- Just this
};

Then, after boot:

[    0.213409] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[    4.363104] mmci-pl18x 58007000.sdmmc: mmc2: PL180 manf 53 rev1 at 0x58007000 irq 57,0 (pio)
[    4.424492] mmc1: new high speed SDXC card at address aaaa
[    4.489070] mmc2: new DDR MMC card at address 0001    < ----------- HERE
[    4.494029] mmcblk2: mmc2:0001 BJTD4R 29.1 GiB
[    4.497895] mmcblk2boot0: mmc2:0001 BJTD4R partition 1 4.00 MiB
[    4.503835] mmcblk2boot1: mmc2:0001 BJTD4R partition 2 4.00 MiB
[    4.509571] mmcblk2rpmb: mmc2:0001 BJTD4R partition 3 4.00 MiB, chardev (245:0)

sudo cat /sys/kernel/debug/mmc2/ios
actual clock:    49500000 Hz
vdd:        21 (3.3 ~ 3.4 V)
bus mode:    2 (push-pull)
chip select:    0 (don't care)
power mode:    2 (on)
bus width:    3 (8 bits)
timing spec:    8 (mmc DDR52)    <--------- NOTE HERE
signal voltage:    0 (3.30 V)
driver type:    0 (driver type B)



So re-running the fio tests, this gives a speed-up / bump:

Compared with your earlier non-DDR / MMC high-speed raw results
Test              Before: MMC high-speed SDR After: DDR52 Change
Less-severe sequential write ~27.1 MiB/s 36.6 MiB/s +35%
Less-severe sequential read ~27.5 MiB/s 34.4 MiB/s +25%
Less-severe random write ~1730 IOPS 1934 IOPS +12%
Less-severe random read         ~2481 IOPS 2726 IOPS +10%
Severe sequential write         ~12.8 MiB/s 13.3 MiB/s +4%
Severe sequential read         ~27.4 MiB/s 35.0 MiB/s +28%
Severe random write         ~1001 IOPS 1021 IOPS +2%
Severe random read         ~2600 IOPS 2862 IOPS +10%


So you can decide if you need this bump. Also, any longer run stability issues not tested, if this may affect it or not.

#6
STMP1 / Re: STM32MP1-OLinuXino-LIME: f...
Last post by dry - July 12, 2026, 06:06:26 AM
Looks like I cannot attach anything on posts, so I'll inline my fio scripts.
(Btw, thanks got bot /chatGPT for help with these reports).

#    FIO Severe test
#!/bin/sh
set -eu

# Raw block target.
# WARNING: write tests will overwrite data on this device/partition.
# Change this in one place if needed.
TARGET_DEV="/dev/mmcblk2p1"

# Output directory for logs.
LOG_DIR="/tmp"

# Common fio settings.
COMMON_OPTS="--ioengine=psync \
  --iodepth=1 \
  --numjobs=1 \
  --runtime=30 \
  --time_based \
  --direct=1 \
  --group_reporting \
  --lat_percentiles=1 \
  --percentile_list=50:90:95:99:99.9:99.99"

echo "Target device: $TARGET_DEV"
echo "Logs written to: $LOG_DIR"
echo
echo "WARNING: write tests will overwrite data on $TARGET_DEV"
echo "Make sure the target is unmounted before running write tests."
echo

sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null

fio --name=seqwrite_raw_sync \
  --filename="$TARGET_DEV" \
  --rw=write \
  --bs=1M \
  --sync=1 \
  $COMMON_OPTS \
  --output="$LOG_DIR/seqwrite_raw_sync_test.txt"

sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null

fio --name=seqread_raw_direct_severe \
  --filename="$TARGET_DEV" \
  --readonly=1 \
  --rw=read \
  --bs=1M \
  $COMMON_OPTS \
  --output="$LOG_DIR/seqread_raw_direct_severe_test.txt"

sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null

fio --name=randwrite_raw_sync \
  --filename="$TARGET_DEV" \
  --rw=randwrite \
  --bs=4k \
  --sync=1 \
  $COMMON_OPTS \
  --output="$LOG_DIR/randwrite_raw_sync_test.txt"

sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null

fio --name=randread_raw_direct_severe \
  --filename="$TARGET_DEV" \
  --readonly=1 \
  --rw=randread \
  --bs=4k \
  $COMMON_OPTS \
  --output="$LOG_DIR/randread_raw_direct_severe_test.txt"

echo
echo "Done. Logs:"
echo "  $LOG_DIR/seqwrite_raw_sync_test.txt"
echo "  $LOG_DIR/seqread_raw_direct_severe_test.txt"
echo "  $LOG_DIR/randwrite_raw_sync_test.txt"
echo "  $LOG_DIR/randread_raw_direct_severe_test.txt"


# FIO less Severe setting test
#!/bin/sh
set -eu

# Raw block target.
# WARNING: write tests will overwrite data on this device/partition.
# Change this in one place if needed.
TARGET_DEV="/dev/mmcblk2p1"

# Output directory for logs.
LOG_DIR="/tmp"

# Common fio settings.
COMMON_OPTS="--ioengine=psync \
  --iodepth=1 \
  --numjobs=1 \
  --runtime=30 \
  --time_based \
  --direct=1 \
  --group_reporting \
  --lat_percentiles=1 \
  --percentile_list=50:90:95:99:99.9:99.99"

echo "Target device: $TARGET_DEV"
echo "Logs written to: $LOG_DIR"
echo
echo "WARNING: write tests will overwrite data on $TARGET_DEV"
echo "Make sure the target is unmounted before running write tests."
echo

sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null

fio --name=seqwrite_raw_direct \
  --filename="$TARGET_DEV" \
  --rw=write \
  --bs=1M \
  --end_fsync=1 \
  $COMMON_OPTS \
  --output="$LOG_DIR/seqwrite_raw_direct_test.txt"

sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null

fio --name=seqread_raw_direct_less_severe \
  --filename="$TARGET_DEV" \
  --readonly=1 \
  --rw=read \
  --bs=1M \
  $COMMON_OPTS \
  --output="$LOG_DIR/seqread_raw_direct_less_severe_test.txt"

sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null

fio --name=randwrite_raw_direct \
  --filename="$TARGET_DEV" \
  --rw=randwrite \
  --bs=4k \
  --end_fsync=1 \
  $COMMON_OPTS \
  --output="$LOG_DIR/randwrite_raw_direct_test.txt"

sync
echo 3 | tee /proc/sys/vm/drop_caches >/dev/null

fio --name=randread_raw_direct_less_severe \
  --filename="$TARGET_DEV" \
  --readonly=1 \
  --rw=randread \
  --bs=4k \
  $COMMON_OPTS \
  --output="$LOG_DIR/randread_raw_direct_less_severe_test.txt"

echo
echo "Done. Logs:"
echo "  $LOG_DIR/seqwrite_raw_direct_test.txt"
echo "  $LOG_DIR/seqread_raw_direct_less_severe_test.txt"
echo "  $LOG_DIR/randwrite_raw_direct_test.txt"
echo "  $LOG_DIR/randread_raw_direct_less_severe_test.txt"

#7
STMP1 / STM32MP1-OLinuXino-LIME: flash...
Last post by dry - July 12, 2026, 06:02:42 AM
Continuing my 'speed' testing of storage options. External microSD tested here:
https://www.olimex.com/forum/index.php?topic=10025.0

I tested eMMC flash on the external flash module for the board https://www.olimex.com/Products/OLinuXino/Accessories/Flash-e32Gs16M/. So at minimum we know we have 8 data lines on this 'on-board' eMMC, vs 4 on the external microSD line.
I bought 32GB one.

I used diskpd and fio to test speed, but in the end decided to stick to fio for all tests.

I tested on top of fs first, but that gave suspicious speed bumps in some cases, so I re-tested just on top of block device level. I've ran with more 'severe' case with --sync, and 'less severe' with --end_fsync on writes. Note in scrits (attached) I also include flushing (or trying to) caches bewteen each test runs.

In brief, in sum,  I'm getting this:

Sequential read:                  ~27.5 MiB/s
Sequential write, severe sync:     ~12.8 MiB/s
Sequential write, less severe:     ~27.1 MiB/s
4 KiB random read:                 ~2.5k IOPS / ~10 MiB/s
4 KiB random write, severe sync:   ~1.0k IOPS / ~3.9 MiB/s
4 KiB random write, less severe:   ~1.7k IOPS / ~6.8 MiB/s

With Severe vs less so

| Test             |                 Severe raw |            Less severe raw | Change       |
| ---------------- | -------------------------: | -------------------------: | ------------ |
| Sequential write |             **12.8 MiB/s** |             **27.1 MiB/s** | ~2.1× faster |
| Sequential read  |             **27.4 MiB/s** |             **27.5 MiB/s** | Same         |
| Random write     | **1001 IOPS / 3.91 MiB/s** | **1730 IOPS / 6.76 MiB/s** | ~1.7× faster |
| Random read      | **2600 IOPS / 10.2 MiB/s** | **2481 IOPS / 9.70 MiB/s** | Same range   |

.. while testing with file on ext4 formated on top of that block I get suspicious/ too good read results and IOPS for random reads.

| Test             |  Filesystem severe fio |       Raw block severe fio | Better number to quote                                            |
| ---------------- | ---------------------: | -------------------------: | ----------------------------------------------------------------- |
| Seq write sync   |       ~23.7–24.1 MiB/s |             **12.8 MiB/s** | Depends on workload; raw is stricter                              |
| Seq read direct  |            ~37.5 MiB/s |             **27.4 MiB/s** | Raw is cleaner                                                    |
| Rand write sync  | ~291 IOPS / 1.14 MiB/s | **1001 IOPS / 3.91 MiB/s** | Raw for media/block capability; filesystem for real file workload |
| Rand read direct |   suspicious ~22k IOPS | **2600 IOPS / 10.2 MiB/s** | Raw result                                                        |

So better to run from this eMMC of course. I kind of hoped it could be faster as this STM32MP1x might support faster mode - see
stm forum link enable hs200/hs400 mode

Based on board design, we cannot get higher HS200 mode as I understand it - again needs that ~1.8V signaling - , but I wonder if DDR52 (at 3.3v) mode could be tried / set to see if that would work: currently based on kernel logs:

Card Type [CARD_TYPE: 0x57], so advertises modes 0x01 to 0x40 (HS400),  but also it logs
HS_TIMING: 0x01, so its in high-speed mode.

Might try it next.
#8
DUINOMITE / Re: Displays for Duinomite
Last post by KeesZagers - July 09, 2026, 01:30:25 PM
I modified the Basic (SI2-CBB software) and it detects now if an old or new touch display is connected. Software remains the same, only the new display includes the variable in Z-direction (pressure on the screen). The new manual of our Basic can be downloaded on:
https://www.si-kwadraat.nl/si2-cbb/manuals/en/can-manual2_6.pdf

In the command OLED you can see how the complete display is covered by just one Basic statement.

BTW I have seen that in the new version also the quality of the display is improved. Compliments to Olimex for that.
#9
New Products release / Turning the ESP32-CAM-8MB into...
Last post by olimex - July 08, 2026, 04:52:36 PM
paired with ESPectre — WiFi CSI motion sensing, no PIR, no IR light, works in total darkness camera node only wakes up when something actually moves. https://olimex.wordpress.com/2026/07/08/turning-the-esp32-cam-8mb-into-a-smart-security-camera-for-home-assistant/
 #iot #espectre #esp32cam
#10
ST / Re: OLIMEXINO-STM32F3 and ADXL...
Last post by mgolbs - July 07, 2026, 03:16:07 PM
Hello,
many thanks for the information an the listing of ports/pins!

Greeting Markus