embedded systems


  • After a hiatus of more than a year, I wanted to pick up this blog series and cover another GPIO library available on Linux. Since the last time I wrote on this topic, this library has become more widely supported and available on platforms like the Raspberry Pi, so the time was right to explore it…

    Blog
  • In this third installment of the blog series on FreeRTOS, we'll look at some sample code and I'll present some ways you can get started on various platforms. And if you're enjoying this series, be sure to register for our live webinar An Introduction to FreeRTOS, which will run Thursday, February…

    Blog
  • In this blog post, the first of a three-part series, I'd like to introduce FreeRTOS, a popular and freely available Real-Time Operating System (RTOS). You may not be familiar with the concept of an RTOS or why you would use one, so we'll cover that in this first installment. What is FreeRTOS?…

    Blog
  • When I was young, I had to navigate five-foot snow drifts in blinding snowstorms, walking uphill in both ways on Saturdays — just to be able to type in my program on a keypunch. Back then, we all knew that assembly code (Autocoder in my case. Google it.) was the only way to program. Those new-…

    Blog
  • Developing an embedded product is a complex affair and often involves multiple teams working in parallel to achieve the common goal of shipping the product to market. It is not uncommon to find oneself in a situation where one of the teams is dependent on a critical part being delivered by another…

    Blog
  • Building a new device challenges the skills of a software engineering team to the extreme. Although code reuse has been the motto of software development for years, in reality very little code is re-used (aside from personal “tricks”). In fact, most code isn’t written to facilitate reuse because of…

    Blog
  • Product owners are responsible for identifying market needs, writing the business plan, convincing senior executives to invest in the product, managing the budget and timeline, and making hard tradeoffs when needed. As such, they’re constantly worried about whether the product will be accepted in…

    Blog
  • Successful touch devices appear deceptively simple to the user. In reality, they are highly complex and challenging to build because they require so many different skills. Each device requires custom hardware, touchscreen, operating system and web connectivity, as well as  custom software. Getting…

    Blog
  • In this post, part 8 in our series on GPIO programming, we'll look at libsoc, a cross-platform library intended for low-level embedded programming, including GPIO. (If you missed part 7, read it here.) Libsoc [1] is a C library to interface with common peripherals found in System on a Chip (SoC)…

    Blog
  • To facilitate hands-on labs for GPIO programming in our embedded training classes, ICS designed a small board that connects to a Raspberry Pi (or compatible) computer's GPIO connector and provides some simple functions for experimenting with GPIO programming. The functions provided are: Red,…

    Blog
  • 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…

    Blog
  • 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…

    Blog
  • 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…

    Blog
  • As 2016 draws to a close, I'd like to take a look back at some of the significant events of the past year that are relevant to the Qt framework and the ecosystem around it. Qt Releases Starting in 2016, Qt 4 was officially at end-of-life status and no longer supported. The last release was Qt 4.8…

    Blog