Friday, July 19, 2019 - 12:51  •  By Jeff Tranter  •  C++, Linux
My last post, part 4 in the GPIO Programming series, showed some ways to program GPIO from Python. Python offers a number of advantages as a programming language including a short learning curve, no need for compilation, and the availability of many add-on modules. However, true compiled languages like C or C++ can offer some advantages in embedded applications, such as higher performance. Because you are working closer to the level of the hardware you don't have to worry about what a JIT compiler or interpreter might be doing. If desired, you can look at the compiler's generated code or…
Friday, June 28, 2019 - 13:15  •  By Jeff Tranter  •  Embedded, Python
In this blog post we'll look at how to control Raspberry Pi GPIO pins from the Python programming language using two different modules: Rpi.GPIO and Gpiozero. A Bit About Python Python [1] is an interpreted, high-level, general-purpose programming language that has been around since 1991. It is currently one of the most popular and fastest growing programming languages. The "Pi" in Raspberry Pi standards for "Python Interpreter," reflecting the fact that this is the recommended language on the platform. A nice feature of Python is that, being an interpreter, you can type in and try…
Tuesday, June 18, 2019 - 15:50  •  By Jeff Tranter  •  embedded systems
In this blog post we'll look at basic GPIO control using the sysfs interface provided by the Linux kernel. We won't need to do any programming as we can do this from shell commands. I'll show some examples that will work on the Raspberry Pi platform. Background As we'll see in future installments of this blog series, there are different ways to access GPIO hardware from programs, but sysfs is a simple one that is supported by the Linux kernel and makes the devices visible in the file system so we can experiment from the command line without needing to write any code. For simple…
Monday, June 17, 2019 - 13:27  •  By Jeff Tranter  •  Raspberry Pi, embedded systems
In part 2 of our series on GPIO programming, we look at the hardware capabilities of the Raspberry Pi's GPIO interface. As you probably know, the Raspberry Pi is a family of low cost single-board computers developed primarily for education by the non-profit Raspberry Pi Foundation. To date over 25 million units of this $35 computer have been sold.  The current models of Raspberry Pi 3 and Raspberry Pi Zero have a 40-pin header connector that provides access to the GPIO pins and some other signals. The header provides access to 26 GPIO pins as well as 5V, 3.3V, ground, and some…
Monday, June 3, 2019 - 14:06  •  By Jeff Tranter  •  embedded systems, Qt
This blog launches Integrated Computer Solutions' (ICS) new series on GPIO programming. GPIO, or General-Purpose Input/Output, is a feature of most modern embedded computer hardware and a key component of many embedded systems. In this series, I'll cover this important aspect of embedded programming, with a mix of  theory and practical programming examples. In this first installment I'll present an overview of GPIO programming, what it can be used for and some basic concepts you need to know in order to use it. In upcoming posts I explain how to program GPIO,…
Friday, June 22, 2018 - 09:36  •  By Thomas Ternisien, Scott Lozier  •  Raspberry Pi, gamification
Thinking of building large gameshow-like interactive experiences? Want to use your Raspberry Pi to talk to your computer? Interested in integrating custom controllers with your games? If so, this blog is you. We were tasked with creating an interactive experience — a Plinko-like game — for attendees to play at a trade show. It was a pretty cool project. We're sharing this walk-through so you can build your own. But first, let's get this out of the way: what exactly is Plinko? Ever seen The Price is Right? Plinko is one of the show's most popular games. In the physical game,…
Thursday, May 17, 2018 - 09:05  •  By Jeff Tranter  •  Raspberry Pi
It's been more than six months since my last update, perfect time to review some of the recent happennings in the Raspberry Pi ecosystem. The biggest news was the launch of the Raspberry Pi 3 Model B+, announced appropriately on "Pi Day," March 14, 2018. An incremental update to the Pi 3 Model B, it adds some features requested by customers and takes advantage of some new hardware improvements. As compared to the Raspberry Pi 3 Model 3, the B+ features a CPU clock speed increase from 1.2 to 1.4 GHz. It uses the same 64-bit quad-core ARM Cortex-A53 CPU, but can run a little faster due to new…
Wednesday, July 26, 2017 - 16:35  •  By Jeff Tranter  •  Raspberry Pi, Raspberry Pi Zero W, Qt, Raspbian
Since my last update there have been some new happenings in the Raspberry Pi community. Here's a look at a few of the most significant events. Raspberry Pi Zero W [Photo credit: raspberrypi-spy.co.uk] In late February 2017 the newest Raspberry Pi model was announced: the Raspberry Pi Zero W. Though similar to the previously released Raspberry Pi Zero, the W model adds WiFi and Bluetooth functionality. The retail price is US$10, higher than the $5 Raspberry Pi Zero, but still significantly less expensive than the $35 Raspberry Pi 3 Model B. I recently purchased one, along…
Thursday, August 18, 2016 - 10:45  •  By Jeff Tranter  •  Qt, Raspberry Pi, Bluetooth
While much attention has been focused on the built-in WiFi hardware, the Raspberry Pi 3 (1) also ships with on-board support for Bluetooth. Bluetooth is a wireless technology for exchanging data over short distances using 2.4 GHz radio signals. When running the recommended Raspbian Linux distribution, the Raspberry Pi uses the standard Linux Bluetooth software stack called BlueZ (2). Qt's Bluetooth module (3) on the Linux platform also supports BlueZ, which means that it works on the Raspberry Pi. Following the procedure in my recent blog post (4) to build Qt will provide support for…
Thursday, July 14, 2016 - 13:36  •  By Jeff Tranter  •  Yocto, Raspberry Pi, Qt, QML, bitbake
Yocto(1) is a software framework for embedded Linux systems. We've looked at it in previous blog posts(2). It forms the basis of many embedded Linux distributions, including The Qt Company's boot2qt that is part of their commercial product Qt For Device Creation(3). Knowledge of Yocto is a very desirable and marketable skill to have for anyone working with embedded systems. While you can use emulators that run on a desktop Linux system, there is no substitute for experience with a real embedded board. Yocto supports a number of embedded hardware platforms, one of the most popular being…
Thursday, May 12, 2016 - 13:56  •  By Jeff Tranter  •  Raspberry Pi, Bluetooth, Qt
It has been just over four months since my last blog post on the Raspberry Pi (1). Since then, the project has continued to move forward and I thought it was appropriate to write a new update. The Raspberry Pi 3 Raspberry Pi 3 (image credit: Tech Radar) In my last blog post I covered the Raspberry Pi Zero, which offers similar functionality to the Raspberry Pi 2 at the ridiculously low cost of 5 dollars. Shortly after that blog was written, the Raspberry Pi Foundation announced the Raspberry Pi 3 Model B. This third generation version of the device offers a faster 1.2 GHz 64-bit quad-…
Monday, April 11, 2016 - 13:40  •  By Zion Orent  •  IoT, Raspberry Pi, MRAA, Embedded
The Raspberry Pi (1) is one of the more popular low-cost computers on the market. It has an ARM CPU, hardware video acceleration, RAM, SD card mass storage, and almost everything that a regular desktop computer has to offer at a fraction of the size and cost. It also has a set of GPIO (General Purpose Input-Output) pins which permit you to connect sensors to it to perform tasks such as measuring the temperature or checking whether plants need to be given more water. MRAA (2) is a library from Intel that simplifies the logic for connecting to different sensor pins. It allows you to program…
Tuesday, December 22, 2015 - 11:41  •  By Jeff Tranter  •  Raspberry Pi, Pi Zero, touchscreen, Qt, QML
My last blog post on the Raspberry Pi was written last April, when I covered the release of the Raspberry Pi 2. Since then, a number of things have happened in the Raspberry Pi ecosystem and I thought it was an appropriate time for another update. Here is a list of some of the events that, in my opinion, were of interest or were significant over the past few months. Price Cut Despite the release of the newer Raspberry Pi 2, the Raspberry Pi 1 model A+ and B+ continue to be sold. In May, as a result of production optimizations, the price of the Raspberry Pi 1 model B+ was decreased…
Thursday, April 16, 2015 - 15:50  •  By Jeff Tranter  •  Qt, QML, Raspberry Pi, Embedded
The Raspberry Pi 2 computer, released in February 2015, is the latest generation of Raspberry Pi hardware. It is a significantly faster machine than the original Raspberry Pi, with a new Broadcom BCM2836 system on a chip that has a quad-core ARM Cortex A7 CPU running at 900 MHz. The GPU is a VideoCore IV dual-core GPU, the same as on the original Raspberry Pi. RAM has been increased from 512 MB to 1 GB, and the number of USB ports from two to four. The video support is unchanged, although the composite video output is now provided via a 3.5mm TRRS jack that also provides audio out, rather…
Tuesday, December 23, 2014 - 11:56  •  By Jeff Tranter  •  Qt, Embedded, 2014, IVI, Raspberry Pi, OpenGL
As the year draws to a close, I thought it would be good to take a look back at some of the major events of the Qt world in 2014. Qt is now on a regular schedule of two major releases per year. We saw Qt 5.3.0 (1) come out in May and Qt 5.4.0 (2) in December. More minor releases occur, as needed, between the major releases. Qt 4 continues to see maintenance releases with a Qt 4.8.6 (3) coming out this year, and a 4.8.7 release planned in the first quarter of 2015. As announced at Qt Developer Days, Qt 4 will be officially supported for one more year. If the experience of Qt 3 is any…
Wednesday, November 26, 2014 - 10:38  •  By Jeff Tranter  •  Raspberry Pi, Qt, Wayland, Maynard, Embedded
Since my last blog about the Raspberry Pi in August, there have been a number of interesting new developments and the Raspberry Pi project has continued to move ahead. As expected, the new Raspberry Pi Model A+ was released. With the Model A+, the Raspberry Pi Foundation has been able to achieve a price reduction over the $25 Model A, with a suggested retail price of only $20. Like the Model A, it has 256MB of RAM, 1 USB port and no built-in Ethernet. Like the model B+, it features a 3.5mm TRRS jack providing composite video and audio output, uses a MicroSD card for storage and has more GPIO…
Monday, January 27, 2014 - 13:25  •  By Jeff Tranter  •  Embedded, Camera, Raspberry Pi
Introduction In this post we'll look at the Raspberry Pi camera module, a low cost hardware module that supports still picture and video recording and is the first official hardware add-on for the Raspberry Pi. We'll also look at the camera's features and specifications, how to set it up and examine the software that supports it. This post is based on a lightning talk I gave at Qt Developer Days 2013, updated with some additional information since then. Learn more about Programming with Qt for Embedded Devices with ICS Training Camera Details Since 2012, the Raspberry Pi…
Monday, November 25, 2013 - 10:05  •  By Jon Trulson  •  Qt, Wayland, Raspberry Pi, Embedded
This document will explain how to build Qt 5.2.0 beta1 and QtWayland for Raspberry Pi (http://www.raspberrypi.org/). The procedure will likely work with the Qt 5.2.0 release candidate and final release, once they become available. There are a variety of HOWTOs and other documents on the web on how to build one or the other – this document will attempt to walk you through each step. As Qt and QtWayland are constantly under development, this document may not be precisely up to date going into the future. For a good overview of Wayland, see the Wayland wiki page here . We will build Qt 5.2.0…
Friday, May 17, 2013 - 08:46  •  By David Johnson  •  Raspberry Pi, Embedded
This is a HOW TO guide for building Qt 5 for the Raspberry Pi, and building and deploying Qt 5 apps using Qt Creator. This guide will be using Raspbian “Wheezy”, a Debian based distro designed for the Raspberry Pi. This guide also assumes the use of Linux or UNIX on the workstation side. Note: Throughout this guide the symbol “$” denotes a command prompt on the host workstation, and “pi$” denotes a command prompt on the target Raspberry Pi. Getting started Downloads You will need the following downloads: The latest Raspbian “Wheezy” version of Debian Linux [2013-02-09] http://www.…
Wednesday, January 30, 2013 - 12:35  •  By Jeff Tranter  •  Qt, Raspberry Pi, PhoneGap, Cordova
This week was another slow week as many people were off part of the week due to New Year's or extended holidays. PhoneGap, recently renamed to Apache Callback, is now being renamed as Apache Cordova. There is discussion on the mailing list about where the code repositories will reside. It may be on github or the Apache git or both. There are also discussions on what Wiki to use. We're waiting for the dust to settle before we can commit any code changes. On the Qt mailing list, release plans for Qt 5 are starting to shape up. To meet the goal of a release for this summer, the first…
Wednesday, January 30, 2013 - 12:34  •  By ICS  •  Qt, PhoneGap, Raspberry Pi
This week we did some marketing to promote the project. I made a posting to the callback developer mailing list and we put a link to this blog from the ICS web site. Quim Gil of Nokia kindly made a posting to the Nokia Qt blog. I also recorded a podcast with Mark Hatch for the ICS This Week in Qt podcast. All of this effort stimulated some good discussion on the blogs and callback developer mailing list. Based on comments from some of the Qt 5 and WebKit developers, we will need to implement the Web View differently in Qt 5 since the QWebView widget will likely not be…
Wednesday, January 30, 2013 - 12:33  •  By ICS  •  Qt, Cordova, Raspberry Pi, PhoneGap
This week we finished implementing some Cordova APIs (at least for the Qt 4 version). Compass and Accelerometer are done and some of Events was implemented. Notification is done as is most of File support and we are starting work on Contacts and Camera. Note that I am going to start consistently using the name Cordova rather than Callback orPhoneGap for this project. One of the team completed the demo code for the new Qt5 WebView that illustrates passing messages in both directions between the QML JavaScript and WebKit HTML/JavaScript environments. I also wrote a small C++ program to run…
Wednesday, January 30, 2013 - 12:32  •  By ICS  •  Qt, QML, Raspberry Pi, Cordova
Since the last posting we properly set up deployment of Cordova Qt for MeeGo Harmattan (e.g. the Nokia N9 phone). We also got Qt 5 packages including WebKit built for MeeGo Harmattan and tested it on a Nokia N9. Incidently, a big PR1.2 software update rolled out this week for MeeGo Harmattan phones. Both the Qt 4 and Qt 5 versions now use a QML WebView as there is no support for widgets on some mobile platforms. However, Symbian S60 systems may still be using Qt 4.6 which doesn't support QML so it looks like we still need to maintain a widget-based version for these systems. More of the…
Wednesday, January 30, 2013 - 12:31  •  By ICS  •  Qt, PhoneGap, Raspberry Pi, Cordova
Throughout this project one thing that has been constantly changing has been the source code repositories, both due to several project names changes and with the move to being run as an Apache project. This last week the old repository at http://github.com/cordova/cordova-qt was removed and replaced by the read-only repository at http://github.com/apache/incubator-cordova-qt. The upstream repository is at http://git-wip-us.apache.org/repos/asf?p=incubator-cordova-qt.git. Changes made to the Apache repository get mirrored to github. Developers who are not maintainers can submit pull requests…
Wednesday, January 30, 2013 - 12:30  •  By ICS  •  Qt, Raspberry Pi, Cordova
Work has been slowing down somewhat as Qt 5 has been firming up for release. The Qt 5 alpha came out on April 3rd and we tested our code with it. Work is moving ahead for a Qt 5 beta release and then the 5.0.0 final this summer. Qt 4.8.1 also came out and we tested Cordova Qt with it. A 4.8.2 is expected in the next few weeks, indicating that Qt 4 is still actively being developed and is expected to do so for some time until Qt 5 is stable. Realistically I would expect many people to continue to use Qt 4 at least until Qt 5.1 is out, as some of the Qt Quick 2 C++ APIs will not be…
Wednesday, January 30, 2013 - 12:29  •  By ICS  •  Qt, Cordova, Raspberry Pi
We've recently been running the Cordova tests and making some fixes to get them to run better. We've documented on the Wiki how to run the Cordova tests. See the section "Running Cordova Tests" at this wiki page. We hope to have a demo video up soon showing the tests running on the simulator and Nokia phones. Incidently, the Qt Wiki recently moved from http://wiki.qt-project.org/ to http://qt-project.org/wiki/ The older Wiki will go away at some point. We made a couple more videos showing a preliminary version of Wikipedia Mobile running on Cordova Qt. The first video shows it running on a…
Thursday, January 3, 2013 - 13:56  •  By ICS  •  Raspberry Pi, Embedded
About three weeks ago, Nokia arranged for ICS to gain access to the Raspberry Pi board so that we could help with an exploratory open source effort to get Qt working on this platform. That is how I got my chance to hack some code for this amazing board. The idea was to get a bleeding edge version of Qt 5 to run and to experience first hand hardware accelerated QSceneGraph based QML. And indeed bleeding edge it is - but also blazing fast. Now, first things first: We have all by now heard of Raspberry Pi, the newest entry into the world of dessert named geek toys. Actually we are talking real…
Thursday, January 3, 2013 - 13:55  •  By ICS  •  Raspberry Pi
Good talking to you all at Qt Dev Days Munich. We captured some of our Raspberry Pi thoughts in a podcast posted here: This Week in Qt Episode 23 We'll be at Dev Days in San Francisco beginning Nov 29 - hope to see you there!