3

I am running a display using SPI. When running it on my Pi Model B, everything runs fine and fast. But when connecting it to my Zero instead, it runs very slow.

Then I put the SD card of my Zero in my B -> the screen runs slow too, as on the Zero. So it's not a hardware but a software specific problem.

Hardware-SPI is enabled on both devices but while the Pi B has the spi_bcm2708 module enabled, the Zero runs on spi_bcm2835.

lsmod output on Pi B:

Module                  Size  Used by
binfmt_misc             6888  1
i2c_dev                 5587  0
snd_bcm2835            12808  0
snd_pcm                74834  1 snd_bcm2835
snd_seq                52536  0
snd_timer              19698  2 snd_seq,snd_pcm
snd_seq_device          6300  1 snd_seq
snd                    52489  5 snd_seq_device,snd_timer,snd_seq,snd_pcm,snd_bcm2835
snd_page_alloc          4951  1 snd_pcm
spidev                  5136  0
r8712u                165407  0
spi_bcm2708             4401  0
i2c_bcm2708             3681  0

On Pi Zero:

Module                  Size  Used by
cfg80211              499234  0
rfkill                 21397  2 cfg80211
r8712u                177928  0
snd_soc_bcm2835_i2s     6994  0
regmap_mmio             3728  1 snd_soc_bcm2835_i2s
snd_bcm2835            23131  0
snd_soc_core          164132  1 snd_soc_bcm2835_i2s
snd_pcm_dmaengine       5906  1 snd_soc_core
snd_pcm                95473  3 snd_bcm2835,snd_soc_core,snd_pcm_dmaengine
snd_timer              22556  1 snd_pcm
snd                    68400  4 snd_bcm2835,snd_soc_core,snd_timer,snd_pcm
i2c_bcm2708             5740  0
spi_bcm2835             7424  0
bcm2835_gpiomem         3823  0
bcm2835_wdt             4133  0
uio_pdrv_genirq         3718  0
uio                    10230  1 uio_pdrv_genirq
ipv6                  367671  26
6
  • Some information such as the SPI bus bits per second, transfers per second, and bytes per transfer for each Pi would help.
    – joan
    Commented Dec 29, 2016 at 15:08
  • Bus speed is 16 MHz and 2048 bytes/transfer on both. On Zero, this takes about 4 sec and on Pi B, it takes about 0.3-0.5 sec for each at a total of 150 transfers.
    – Ercksen
    Commented Dec 29, 2016 at 17:01
  • Have you benchmarked the SD card to see if it is too slow?
    – cybernard
    Commented Feb 4, 2017 at 14:40
  • Zero's SD card is even faster, this can not be the reason.
    – Ercksen
    Commented Feb 5, 2017 at 16:28
  • I read your answer and according to me, the pi zero has less processing power than the model B.You could try to change the SD card.See if it helps.
    – Krish
    Commented Jan 18, 2018 at 15:37

1 Answer 1

1

If you are using a display with an X server or some other tools you can see too much slowness from RPIZero. The main causes are 2:

  1. RPIZero work only with 1 CPU (1 core, RPI 3B got 1 CPU with 4 core so is much better). So cannot parallelize operation much well
  2. RPIZero chipset is Broadcom2835 that is slower than the Broadcom2708

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.