Look what the mailman brought: It’s a shiny (or maybe matte?) BeagleBone Black, freshly arrived (actually it’s been over a month, but time sure flies…) from Newark element14! I’ve been doing Raspberry Pi related hacking for a while, but especially when the Pi was still fresh and new, I did from time to time consider if the grass would be greener on other side of the fence. Or blacker, in this case, as I mean BeagleBone Black.
BeagleBone was long very much more powerful than Raspberry Pi, but now that Pi2 has come out, price and specification-wise they are closer than ever. A quick personal comparison chart:
||Raspberry Pi 2 (B)
||46 € (Element14)
||32 € (Element14)
||1GHz single-core Cortex-A8
||0.9GHz quad-core Cortex-A7
||USB host, USB device, micro-HDMI
||4x USB, HDMI, 3.5mm Audio/analog video
||2x 46 pin headers (65 digital I/O)
||40 GPIO pins (26 digital I/O)
||4GB integrated flash, works as USB device
||camera and display interface on board
When Pi1 was out, the BeagleBone Black with the more modern Cortex-A8 chip and higher clockrate was definitely the more powerful, but now with 4-core Pi2, the tables have somewhat turned. Still, the clockrate is higher and there’s more GPIO. And speaking of GPIO, my Raspberry Pi vs. Pi2 GPIO benchmark has gotten a lot of interest, so I thought the best way to take this black beauty for a test drive would be to benchmark BeagleBone Black GPIO in a similar way.
The test subject is the most recent revision C of BeagleBone Black. I followed the (a bit lacking in detail and readability) Getting Started guide and downloaded the latest Debian Jessie image (8.3, 2016-01-24), flashed it to card and ran
apt-get update and
apt-get dist-upgrade (2016-04-14).
Continue reading BeagleBone Black GPIO Benchmark
It’s been ten months since I got and reviewed the Topre Realforce 88UB. I’ve been very satisfied with the keyboard, the only real issue being that for some reason my brain is having strange difficulties with adjusting to the new microlayout since my time with HHKB — for some reason I still hit adjacent keys quite a lot when coding, getting # instead of % or ‘k’ instead of ‘j’ (doubly frustrating with Vim!).
However, the thirst for new experiences never really leaves you, so I decided to try out the Matias switches that have caused quite a lot of discussion at Geekhack. Since I’ve liked the low thud of Topre keys and loved the compact layout of RF 88UB, I decided I’d see how the Matias Mini Quiet Pro compares to my Realforce.
After using the Matias keyboard extensively for several weeks, I think I have enough experience to write a bit about this new entrant to the rather established Cherry/Topre/Unicomp triopoly of mechanical niche keyboards. To make it more interesting, it’ll be a shootout against the reigning king, Topre Realforce 88UB. Fight is on!
Warm-up Round: Specifications and Price
I got my Realforce through The Keyboard Company in UK, and they were kind enough to provide the Matias Mini review unit for this shootout. As a thanks I’m including their banner here, and based on several years of personal experience I can really recommend them, especially if you’re within EU as there will be no customs fees.
Specification-wise the Realforce and Matias are quite similar with reduced tenkeyless layout sporting function and cursor keys. The Topre has standard pageup/pagedown etc. column whereas Matias a bit more compact but requires a function key to access insert, home and end and the more esoteric print screen, scroll lock and pause/break keys. Price-wise, the Matias sits in the not-quite-inexpensive $160 price range, but the Topre almost doubles this with its hefty $295 price tag.
||Topre Realforce 88UB
||Matias Mini Quiet Pro
||Compact with cursors
||Dye sublimation (black on black)
||Laser etched (white on black)
||Yellow WASD keys and keycap tool
||3 USB 2.0 ports and two cables (long & short)
Continue reading Topre Realforce vs. Matias Mini Shootout
It’s battle time! Some of you may have heard that Raspberry Pi 2 is out with more punch than ever. Just how much more? Well,
apt-get dist-upgrade went about 5 times faster with the new Pi. With 1 GB of RAM and four cores, this will definitely be a boost for my home SSH box ergonomics over the previous version.
But what about hacking? There has been a lot of interest in getting GPIO benchmarks for the Pi 2 similar to my earlier Raspberry Pi GPIO benchmark. Well here it is! Please refer to the earlier article for source code and nice screenshots of square waves, as I’ll concentrate on the performance difference only here. You can also get the code from Github:
Summary of results
All the Pi 1 benchmarks were ran 14th and 15th February 2015 using latest versions of the libraries as stated in my updated benchmark post. Pi 2 benchmarks were all run 25th and 26th March 2015 with the latest versions. If you get significantly different results at a later date, please let me know and I’ll update the table!
|Shell / wiringPi
||WiringPi gpio utility
||WiringPi normal GPIO wiringPiSetup()
||WiringPi GPIO wiringPiSetupGpio()
||WiringPi sys wiringPiSetupSys()
Continue reading Raspberry Pi 2 vs. 1 GPIO Benchmark
This is my review of the Topre Realforce 88UB mechanical keyboard with evenly weighted 45g switches and UK layout. This is the ISO layout sister model of the Topre Realforce 87U (87UB / 87UW) so everything in this review will apply for that model, except a few layout details regarding the extra keys. Before diving into details, a short background of my previous journey:
Two years ago I got really interested in high quality mechanical keyboards. After all, the keyboard is the instrument I use several hours every day, so if I am spending close to 2000€ on a workstation and display, why should I compromise with a cheap 30€ keyboard, especially since the keyboard will likely last several workstation lifespans?
After heavy research I settled on Happy Hacking Keyboard 2 Professional due to its compact “hacker” layout which seemed great for vim, and Topre key switches, which many consider to have the very best tactile feel. See my review of the HHKB2 keyboard for details.
However, in two years of typing with the HHKB, I never fully learned to use function key bindings for cursor keys and Home/End fluently. Coding with Vim somewhat alleviated the problem, but every time with a command prompt or a shell this nagged me. Also, playing games required a separate keyboard, as most games make use of function keys, and many make use of both WASD and cursor keys. It was time for something else. Something better.
Topre Realforce 88UB – Best of both worlds?
After my experience with HHKB, I had the critical components for my dream keyboard well thought out:
- Tenkeyless model with dedicated cursor and function keys. I’ve also used CM Quickfire TK and I can say from experience it is a terrible idea.
- ISO layout, so I get the \ and | right next to my right pinky, and an additional key next to z to get < and > in Finnish keyboard layout (it doubles as another \| in US layout)
- Topre switches for the ultimate typing comfort. Having used rubber dome, scissor mechanisms and Cherry MX blues, and trying out reds, blacks and browns, there really is no competitor. Buckling spring is just too heavy and noisy for my taste.
The items 1 and 2 are quite easy, but the third one essentially meant that the Topre Realforce line would be the primary candidate to fill all these needs. I’ve used The Keyboard Company before and they have a superb selection of Topre models, so I quickly zoomed in on the black 88-key model with UK layout:
Continue reading Topre Realforce 88UB – A Happier Hacking Keyboard
Shut down my Pi today and thought to make a copy of files in its SD card. This is what
mount /dev/sdf2 /mnt had to say:
mount: wrong fs type, bad option, bad superblock on /dev/sdf2,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
Great. After trying
fsck, it became apparent that for some reason, the root partition is marked as being 1 block longer than the physical card. Must be a bug with Raspbian partition expansion or something.
Thankfully, I found this gold nugget which suggested using
resize2fs to fix it. Turns out I had to run e2fsck first (and say “y” a couple of times):
sudo e2fsck /dev/sdf2
sudo resize2fs /dev/sdf2
mount /dev/sdf2 /mnt
Voilá! Fully functioning filesystem again.
The new Raspberry Pi model 2 is out and the Pi world seems more popular than ever. My 2012 benchmark of different RaspPi GPIO access methods has been getting a lot of hits, so I thought to revisit it, and have now updated all the benchmarks with latest versions of firmware and GPIO libraries. I’ve also upgraded my oscilloscope to PicoScope 5444B, so the scope bandwith limitations I had earlier are now gone. :)
Because the benchmark has been linked from many other sites, I’ve just updated the old post to keep links pointing to right places.
Read the updated Raspberry Pi GPIO Speed Benchmark!
Tux logo by Larry Ewing, Simon Budig, Anja Gerwinski
I’ve been a big fan of Picotech’s USB connected PC oscilloscopes ever since I purchased my first PicoScope 2204 almost two years ago. I liked the compact form factor on my desk a lot, and the powerful Picoscope software for Windows – Picotech makes only one version of this software so you get the same functionality with a £159 ($260) 2204 scope as a £5,995 ($9,900) PicoScope 6407 user would – although of course the scope features would be wildly different.
Now Picoscope is a great piece of Windows software and as I generally use Win7 to avoid reboots every time I want to use Photoshop or play a session of Mass Effect, it’s been perfect for me. However, quite a few of electronics enthusiasts are also big advocates of open software movement, and while Picotech has had drivers and SDK for Linux for a while to implement things like my realtime composite decoder, the fact that there is no Linux version of the oscilloscope software has been unfortunate. So when I noticed in the latest Picotech newsletter that there is now a beta of Picoscope for Linux, I knew I had to take it for a spin.
Installing Picoscope on Linux Mint 15
Picotech’s installation process is built on
apt packaging system, so a Debian-based Linux distro is the easiest installation target. This includes the wildly popular Ubuntu and Linux Mint distros, which means mainstream Linux users are well catered to. In Picotech forums, the beta thread had at least one user who extracted necessary stuff from the .deb packages and installed the software for Fedora, too.
In Debian-based Mint, the installation went without any hiccups just by following the instructions at Picotech’s Linux Drivers page. Note that
sudo apt-get install picoscope also installs all drivers so you don’t need to install your model-specific driver separately. Essentially the installation is just:
sudo echo deb http://labs.picotech.com/debian picoscope main >> /etc/apt/sources.list
wget -O - http://labs.picotech.com/debian/dists/picoscope/Release.gpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install picoscope
Continue reading Picoscope Beta for Linux
Christmas holidays are a wonderful time to invent new projects. I decided I’d do some desktop coding for a change, and try to code an optimized image viewer for my old zipped pocket camera photos. First task of course was to read a zip file.
To my surprise, there wasn’t a “GNU standard library” available for this task like there is zlib for general compression, or libjpeg and libpng for images. Best match for my simple needs seemed to be Minizip, but at 7378 lines of code, and 2125 for just unzip.c (utilizing zlib so basically just file handling), I was not convinced, especially because I knew I had some very specific requirements to cater for (namely uncompressing all JPEGs to memory for fast rendering and thumbnail generation).
Zip File Structure – The Essentials
The ZIP file format turned out to be surprisingly simple, especially since I decided I would be sticking to bare essentials and skipping zip64 support, encryption, multifile zips, and all other compression methods than “store” (no compression) and “deflate” (easily decompressed with zlib, see below). Even with barebones setup, my zip routines would handle about 99.9 % of zips out there just fine.
Drawing on excellent ZIP format documentation from InfoZip’s latest appnote, the file structure I needed to parse seemed to have the following structure:
- Local file header 1
- File data 1
- Data descriptor 1
- Local file header N
- File data N
- Data descriptor N
- … optional decryption / extra stuff …
- Central directory
- … zip64-specific extra stuff …
- End of central directory record
Continue reading Unzip Library for C
The keyboard is something that I use daily, and whether I’m writing e-mails or coding, I’ll likely do several hours of typing a day. Last summer when I switched to US layout in coding and started using Vim, I started thinking that maybe I should upgrade my seven year old Logitech keyboard to something hopefully better. And when I get such a project, I did what I always do: Went totally overkill with research and ended up spending a few hundred euros once I had made up my mind on the “most optimal choice” for me. :)
Update: If you’re interested in this review, you might want to check out my continuation with the Topre Realforce 88UB.
My worldview after 2000 was essentially that laptop type flat keyboards are the way of the future, and keyboard choice mainly depends on whether you buy a Logitech or Microsoft one, and do you get the top of the line model or an OEM version for 15 euros. Enter Geekhack and some interesting discussions at Stack exchange, and it quickly became apparent that there is more to it.
First choice one needs to make is the layout of the keyboard. Kinesis makes some weird looking ones that some people swear by, and there are matrix-type layouts, I decided I would continue to risk carpal tunnel syndrome with a “normal” layout for the time being, as I don’t want to optimize my brain for a keyboard type that would only be available at home.
Continue reading HHKB Professional 2 Keyboard Review
I made a big step in coding geekdom this summer by upgrading the most low-level part of my programming workflow. It started when I got frustrated with Mac keyboard shortcuts on Scandinavian keyboard layout (they Just Don’t Work for most apps), and switched to US layout in coding. Once I made that transition, I started thinking that maybe I could improve my coding speed a bit more, and see what all the fuzz is about Vim.
The greatness of Vim in coding comes from the fact that Vim has separate modes for editing text, and navigating around. While not editing, all normal keys become powerful commands, and you can do text manipulation like duplicating lines, indenting sections etc. without ever leaving this “normal mode”.
Well, Vim is great, but an additional bonus to its power is the fact that almost every *nix system has it preinstalled. So even if I’m not on my own computer, I can just launch an SSH client and use Vim to edit the piece of code I’m working on. No need to compromise. Except color schemes, which I just couldn’t get working over Putty. Today I solved that puzzle after one and half hours of googling, and thought to share the findings, maybe someone will find this the next time they face the problem.
Continue reading Vim Colorschemes with Putty aka. GUI vs. xterm-color256