July 13, 2026, 03:52:36 AM

Recent posts

#1
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.

#2
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"

#3
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.
#4
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.
#5
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
#6
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

#7
ST / Re: OLIMEXINO-STM32F3 and ADXL...
Last post by LubOlimex - July 07, 2026, 11:36:48 AM
SPI should be possible why not. You should use 4-wire SPI. If using the UEXT connector:

ADXL375 pin    UEXT pin    OLIMEXINO-STM32F3 signal
----------------------------------------------------
VIN            1           +3.3V
GND            2           GND
SDO            7           SPI1 MISO, D12 / PA6
SDA            8           SPI1 MOSI, D11 / PA7
SCL            9           SPI1 SCK,  D13 / PA5
CS             10          GPIO chip select, D4 / PB5

The onboard microSD uses SPI2 separately.

So the recommended setup is ADXL375 on UEXT/SPI1 and microSD on SPI2. Of course, some software effort will be needed.
#8
ST / OLIMEXINO-STM32F3 and ADXL375 ...
Last post by mgolbs - July 07, 2026, 10:13:37 AM
Hello,
can I use a adafruit ADXL375 - High G Accelerometer (+-200g) with SPI and mircosd write on a OLIMEXINO-STM32F3 and witch port must I use, 3 ore 4 wire SPI?
 [CS, SDO, SDA and SCL]

https://github.com/OLIMEX/OLIMEXINO-STM32F3/blob/master/HARDWARE/OLIMEXINO-STM32F3-revision-D/OLIMEXINO-STM32F3_Rev_D.pdf

Goal is, use the raw x, y and z acce with 100Hz sample, internal ADXL375 ADXL375_DATA_RATE_200. 24g are not enough in a drum. If SPI not possible, then must I use I2C.

Greeting Markus
#9
STMP1 / Re: STM32MP1-OLinuXino-LIME: s...
Last post by LubOlimex - July 07, 2026, 08:50:56 AM
Try testing the SD cards. Good free software for testing the SD cards is either f3
(fight flash fraud) or H2testW. There are a lot of counterfeit SD cards out
there and also cards tend to get damaged easily.
#10
STMP1 / Re: STM32MP1-OLinuXino-LIME: s...
Last post by dry - July 07, 2026, 07:17:55 AM
Hello LubOlimex,

Thank you for replying,

Quote from: LubOlimex on July 06, 2026, 01:26:32 PM1. There are both hardware and software limitations to use such a fast card optimally with this board.

Yea, I have looked since at the board and the shield schematics, and saw that there isn't but 3.3V available with micro SD cards.

Also I have one card I've tested on this LIME2 board which is probably 'too fast' for it: it starts failing from clean brand new fs formated on it and from first mount: just start getting corruption immediately on mount. With 2 different fs tried.

This is Patriot brand, C10 A2 U3 etc.. Probably, not liking slower speeds, no idea but, SanDisk of similar grade works Ok, at least in the main onboard micro sd slot.