RoadTest: New Year's Grab Bag RoadTest
Author: MARK2011
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Raspberry Pi 3B & 3B+
What were the biggest problems encountered?: System crashes But - I don't know the sure reason. Was it incompatibility of the new system with old board or maybe faulty SD cards.
Detailed Review:
"The Time Machine"
Back to the era of early RPIs
I'm really happy I had opportunity to get and test the first generation of the Raspberry
Raspberry boards (and all related stuff) are widely and well known for years.
Worth to emphasize - as I remember, my first association of element 14 was exactly the Raspberry.
It was a time when the target of my roadtest, model Pi1B remained in the middle of interest!
This is why it would be relatively hard to add something new as most of the fields of RPi application, have been implemented.
On the other hand, thanks to the release of new RPi version, there is still the temptation to make some new comparison work.
As the Raspberry Pi microcomputer is well known, especially the very old model is also well documented and wide described,
nevertheless, I feel an obligation to attach base description of features and parameters of that model of RPi below.
raspberrypi.org
The Raspberry Pi is a credit card-sized computer with an ARM processor that can run Linux.
Here I honestly admit, that after receiving the new - old raspberry I had some difficulties with proper identification of the version.
Thanks to the following notice :the rev 2 boards have 2 mounting holes drilled through the board. The rev 1 boards don't have any mounting holes
I could visually confirm which version I have
According to my identification I’ve been provided with the Raspberry Pi Model B, revision 2.0, which has 512 MB of RAM,
an Ethernet port, HDMI output, RCA composite video output, audio output, two USB ports, and 0.1″-spaced pins (26) that provide access to general purpose inputs and outputs (GPIO).
The Raspberry Pi B is the first generation Raspberry Pi. It was released in the very beginning of the Raspberry Story (before simpler and cheaper model A). Correct me if I’m wrong : release date was February 2012.
CPU, GPU and SDRAM - Consequently, all RPI models are equipped in Broadcom system on a chip (SoC) with an integrated ARM-compatible central processing unit (CPU) and on-chip graphics processing unit (GPU).
In our case we have SoC: Broadcom BCM2835
High Definition 1080p Embedded Multimedia Applications Processor
Cost-optimized, full HD, multimedia applications processor it uses Broadcom's VideoCoreIV technology to enable applications in media playback,
imaging, camcorder, streaming media, graphics and 3D gaming. (https://web.archive.org/web/20120513032855/http://www.broadcom.com/products/BCM2835 )
According to Wikipedia: Raspberry Pi has the real-world performance equal to 0.041 GFLOPS.
On the CPU level the performance is similar to a 300 MHz Pentium II of 1997–99.
In the standard RT this is the time and place for description of the subject of the test. But honestly,
I think that more complex description can be omitted as there are a lot of information about RPi.
https://en.wikipedia.org/wiki/Raspberry_Pi
https://en.wikipedia.org/wiki/Raspberry_Pi#Model_B
Moreover Raspberry is, in my opinion one of "flagship" device of Element 14 depicted on the site and still commented in the forum.
The age - release date: Raspberry Pi - 1 Model B - February 2012, Raspberry Pi 1 Model B+ was released In 2014,
Raspberry Pi 2 which extended RAM was released in February 2015, It could be up to 14 times faster than our Raspberry Pi 1 Model B
Raspberry Pi 3 Model B was released in February 2016 It is approximately 80% faster than the Raspberry Pi 2
Simple comparison is presented in the following table
Comparison of Pi1 model B to Pi3 B+
Remaining supposed to be the same:
Well as usual, practically there are no documents inside the RPI box. Some safety issues - regarding to requirements and regulations.
For me It's correct. All necessary information you can find on the net... before the parcel arrived,
so you can be well prepared to use the brick when you open the box. Above concern all RPI versions most recent as well as “historical objects”.
Raspberry launch
It's as usual - simple and pleasant, nevertheless system downloading is time consuming relating to the connection quality.
My decision of use NOOBS system installation option was obvious as my set was provided with the original 8G SD Card.
"Out Of the Box Software" NOOBS is user friendly and intuitive indeed!
The version delivered on the card was NOOBS v1.2.1 from Jun26 2013
From the early versions NOOBS provides a selection of alternative operating systems to be downloaded and installed.
I wasn’t very extraordinary - just chose Raspbian option .
Some ancient graphics:
Screens taken just only for sentimental purpose:
The system starts to boot:
Above: improper date/time but the chip recognized properly: BCM2835
Following screen: the system time was corrected
Then I got automatically the prompt to fine-tune base settings in raspi-config
Does anybody remember the old Raspbian appearance?
One notice here: For me, the good habit using RPi is starting the job with update/ upgrade commands:
sudo apt-get update
sudo apt-get dist-upgrade
I try to keep the system fresh!
Let’s update/ upgrade our system:
I tried to recall some old raspbian/ debian activities
Take a look at tasks, CPU & memory load etc...
Soon I realized, that the old version of Raspbian is not only impoverished but most of all less convenient as new I used to work with.
That's why I decided to install new Raspbian on my old board.
8G SD is still enough to carry the new system, nevertheless I decided to use the new card.
The SD card can be prepared individually, using SD card image burner (I like Etcher) previously downloading the system image.
It's more convenient if there is a problem with fast enough internet access or you plan to burn images on more than only one card etc.
Moreover using the image, the new, clean system can be set very quick after system fault/ damage - which is quite common when experimenting with the RPI.
Above : Raspbian Stretch Lite: Linux version 4.14.79+
??? some old RPI version incompatibility with the new system…?
At the beginning - something went wrong…
I had to recover the system, now it is working properly
No BT/ WiFi but we have ethernet:
I was quite suspicious of information that the same SD memory card with the system can be used in different RPI versions.
It was a very nice surprise, when I realized that system on my “old” card from RPI3B+ works on the “new” RPI1 !
It's probably very old notice but I will still glorify the simplicity of use of remote control of RPi using VNC.
It helps very much if our fruit is located in "strange" place or is used in extraordinary project.
Most of all, I don't need to connect it with the screen, USB ports (only 2 in our case) remain free as the remote system doesn’t need a keyboard and mouse!
Simple requirements: SSH & VNC must be enabled
Using the raspi-config:
Or taking the modern way:
VNC installed
My tests were conducted having RPi on laptop's screen.
The only issue is resolution. If RPi starts without the monitor, the default setting make the screen difficult to tune-up
as well as minimum resolution is... big too much.
Sometimes RPi windows oversize main window which make troubles.
According to the definition, Thingspeak is an IoT platform that enables collecting, store, analyze, visualize,
and act on data from sensors or actuators from devices as Raspberry, Arduino etc.
TS is the perfect tool to upload data i.e. from RPi sensors. That gives the simple way to create cheap IoT data logging/telemetry system.
The benefit and difference from base data logger is idea of remote data collection and free access to these data from any place with the internet.
Thingspeak gives us also tools for data visualization and dashboard creation.
I decided to add data to my old RPI channel
My old projects based on temperature registration created using RPI3 and onewire DS18B20 temperature transducer work fine on the old RPI1.
sudo modprobe w1-gpio
sudo modprobe w1-therm
cd /sys/bus/w1/devices/
Ls
cd 28-00000XXXXXXXXXXX
cat w1_slave
Now I moved to real tests of RPI 1
Let me introduce the good, old Raspberry achievements:
At the beginning simple linux commands to learn RPI parameters
lscpu CPU identification
cat /proc/cpuinfo Number of processors
How it looks with quad-core RPI3B+ ?
Here we are:
lsusb Identification of connected USB devices
Vs RPI3B+ with two USB 2.0 HUBs onboard
ifconfig -a lets’ learn about the network parameters
ls /proc which processes are active
Commands below are strictly related to benchmarks:
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cur_freq
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/governor
sudo cat /sys/devices/system/cpu/cpu0/cpufreq/max_freq
And above resulting with the same value: 700MHz
Another simple test can be performed using:
openssl speed -elapsed -evp aes-256-cbc
Below - results a little different:
Lets compare it with RPI3B
Differences are shown in the table below:
Doing aes-256-cbc for 3s on X size blocks | aes-256-cbc's in 3.00s | |||
RPi1B | RPi3B | RPi3B+ | ||
X = 16 | 969834 | 1405931 | 4669861 | 5495602 |
X = 64 | 381002 | 471959 | 1532253 | 1787593 |
X = 256 | 99313 | 126297 | 415754 | 484706 |
X = 1024 | 26984 | 33049 | 106153 | 123813 |
X = 8192 | 3390 | 4149 | 13350 | 15615 |
X = 16384 | 1652 | 2014 | 6671 | 7812 |
The 'numbers' are in 1000s of bytes per second processed:
type | 16 | 64 | 256 | 1024 | 8192 | 16384 | |
aes-256-cbc | RPi1B | 5172,45k | 8128,04k | 8474,71k | 9210,54k | 9256,96k | 9022,12k |
7498,3k | 10068,46k | 10777,34k | 11288,73k | 11329,54k | 10999,13k | ||
RPi3B | 24905,93k | 32688,06k | 35477,67k | 36233,56k | 36454,40k | 36432,55k | |
RPi3B+ | 29309,88k | 38135,32k | 41361,58k | 42261,50k | 42639,36k | 42663,94k |
current clock speed on a running RPi
vcgencmd measure_clock arm
Temperatura CPU
vcgencmd measure_temp
Which is lower than the average temperature of RPi3B+
Then I conducted SYSBENCH test
First - it have to be installed:
sudo apt-get install sysbench
sysbench --test=cpu --num-threads=4 --cpu-max-prime=9999 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
And another one: AikonCWD
Aikoncwd Raspberry Pi Benchmark
https://github.com/aikoncwd/rpi-benchmark
RPi1B | RPi3B+ |
Running CPU test... | |
total time: 12.5586s | |
min: 4.48ms | |
avg: 5.02ms | |
max: 14.01ms | |
temp=61.8'C | |
Running THREADS test... | |
total time: 240.7668s | total time: 12.2423s |
min: 52.97ms | min: 4.71ms |
avg: 96.29ms | avg: 4.89ms |
max: 298.56ms | max: 25.74ms |
temp=44.4'C | temp=63.4'C |
Running MEMORY test... | |
Operations performed: 3145728 (68113.96 ops/sec) | Operations performed: 3145728 (2055722.75 ops/sec) |
3072.00 MB transferred (66.52 MB/sec) | 3072.00 MB transferred (2007.54 MB/sec) |
total time: 46.1833s | total time: 1.5302s |
min: 0.01ms | |
avg: 0.05ms | |
max: 83.25ms | max: 5.37ms |
temp=44.4'C | temp=63.4'C |
Running HDPARM test... | |
Timing buffered disk reads: 66 MB in 3.07 seconds = 21.49 MB/sec | Timing buffered disk reads: 68 MB in 3.05 seconds = 22.31 MB/sec |
temp=44.4'C | temp=58.0'C |
Running DD WRITE test... | |
487870464 bytes (488 MB, 465 MiB) copied, 871.443 s, 560 kB/s | 536870912 bytes (537 MB, 512 MiB) copied, 72.7018 s, 7.4 MB/s |
temp=42.2'C | temp=53.7'C |
Running DD READ test... | |
487870464 bytes (488 MB, 465 MiB) copied, 28.4687 s, 17.1 MB/s | 536870912 bytes (537 MB, 512 MiB) copied, 23.1917 s, 23.1 MB/s |
temp=42.8'C | temp=54.2'C |
Below is the old code for primes calculation which works perfectly in simple benchmarks:
import time
start_time = time.time()
def primes_sieve1(limit):
limitn = limit+1
primes = dict()
for i in range(2, limitn): primes[i] = True
for i in primes:
factors = range(i,limitn, i)
for f in factors[1:]:
primes[f] = False
return [i for i in primes if primes[i]==True]
print (primes_sieve1(20000))
print("--- %s seconds ---" % (time.time() - start_time))
print('stop')
With parameter of 20 000 (finding primes in the range from 0 to 20 000)
--- 5.637781858444214 seconds ---
With parameter of 200 000
Well for RPi3B+ with the range to 300 000
From my previous RPI tests I know very handy “pystone: test:
https://github.com/blackberry/Python/blob/master/Python-3/Lib/test/pystone.py
results are quite stable:
How it looks with RPi3B+?
New model is almost 10 times beter!
Try to use the Sense Hat emulator on the old RPI
What is demanded:
from sense_hat import SenseHat
from sense_emu import SenseHat
And It works!:
Random_sparkles.py
I2C bus:
initialization
And its state visualization
sudo i2cdetect -y 1
I like “pinout” command
dmesg command gives many important and interesting information about the device
“dmesg” of Raspberry Pi Model B Rev 2
pi@raspberrypi:~ $ dmesg
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.14.79+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611)) #1159 Sun Nov 4 17:28:08 GMT 2018
[ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Raspberry Pi Model B Rev 2
[ 0.000000] cma: Reserved 8 MiB at 0x1b400000
[ 0.000000] On node 0 totalpages: 114688
[ 0.000000] free_area_init_node: node 0, pgdat c09c6650, node_mem_map db010000
[ 0.000000] Normal zone: 1008 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 114688 pages, LIFO batch:31
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 113680
[ 0.000000] Kernel command line: bcm2708_fb.fbwidth=1360 bcm2708_fb.fbheight=768 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=PARTUUID=5600e06f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
[ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
...
whole dmesg report in the file
“dmesg” with Raspberry Pi Model B Rev 2
java -version
java version "1.8.0_65"
Java(TM) SE Runtime Environment (build 1.8.0_65-b17)
Java HotSpot(TM) Client VM (build 25.65-b01, mixed mode)
Why Blynk? - doesn't matter, it could be any IoT platform. At this time I try to experiment with blynk projects thus the decision was relatively simple.
You can learn about blynk at its site. The platform is dynamically developing.
"Blynk is a hardware-agnostic IoT platform with customizable mobile apps, private cloud, device management, analytics, and machine learning"
Using IOS or Android apps (no control site available for the PC) to control Arduino, Raspberry Pi and similar devices over the Internet.
Using smartphone dashboard we can build a graphic interface for the project by simply dragging and dropping widgets.
Unfortunately free version capacity is limited.
Anyway simple demo project can be prepared in easy and extremely quick way!
I had to install wiringPi (wiringpi http://wiringpi.com/the-gpio-utility/ )
and: git clone https://github.com/blynkkk/blynk-library - of course
results of the installation are visible
Now I have RPI connected
clicking "the button" on the application I switched the LED on GPIO 25 ON/OFF
(wiringpi http://wiringpi.com/the-gpio-utility/ is required!)
gpio allreadall
Above shows the behaviour of PIN25 during my GPIO control tests
During my roadtest I encountered quite serious system crashes:
EXT4-fs error (device mmcblk0p2): ext4_iget:4708: imode #153898: comm env: bad extra_isize 65535 (imode size 256)
Above appear after system update/ upgrade. (apt-get install i guess…)
System on the SD must have been damaged!
why/ how ???
And more serious fault:
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,7)
Now I’m working with that issue.
RPi 1B is still very useful tool, although more than 7 years old, thanks to its versatility, It could be employed in comprehensive projects.
Moreover low power demands makes it even more convenient for many projects, than most recent RPI versions!
All versions of RPI are extremely easy to learn how to deal with and use.
Clear instructions, myriads of forums wih active RPI enthusiasts, examples and advice will not allow you to feel lost when encounter hardware or software issue.
It is ashamed for my to dare write critic words about that old, retired machine.
This is like complaining about elders nowadays, in quite different circumstances, wih better knowledge etc…
Designers learned how to improve modern Raspberries thanks to the early RPI models.
Hence my admiration for Raspberry Pi model 1B!
Nevertheless let me throw my two cents here...
I can’t be absolutely sure but I think the most recent Rapbian isn’t 100% compatible with old RPI and that may resultiing with errors
or even system damages as described previously.
Lack of WiFi & BT - obviously but these are the benefits of new versions rather than disadvantages of primary RPI.
If you think of the use of the RPI for fast calculation operations, don’t think about that old man,
definitely new models would be recommended!
Bibliography
Raspberry papers, manuals Raspberry Pi official site www.raspberrypi.org
Wikipedia.org
Many users blogs etc...
Thank you for selecting me as the roadtester and give me the opportunity to deal with that old but still amazing as well as... - despite time pass - extraordinary tool.
Marek
Top Comments
No fair! My RoadTest Grab bag was a PiB SBC with no extras. Oh well, I liked the demo of your NOOBs install and then updating.
Nice trip down memory lane. Refreshed my knowledge on GPIO utilities.
Two questions…
Concerning sense hat, As I used the emulator there were no conflict,
the code worked correctly.
Unfortunately I don't have the original one.
plans? ...to be continued...