embedded systems
Your customer asked you to build a Linux-based device. You’re a skilled developer but not experienced with embedded Linux. Here’s a quick overview of the key elements of Linux-based development you’ll need to master in order to successfully move from working prototype to Minimum Viable Product (MVP…
BlogAfter 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…
BlogIn 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…
BlogIn 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?…
BlogWhen 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-…
BlogDeveloping 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…
BlogBuilding 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…
BlogProduct 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…
BlogSuccessful 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.…
BlogIn 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)…
BlogTo 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,…
BlogIn 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…
BlogIn 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…
BlogEditor's note: This 2019 blog series, among ICS' most popular, has been updated (December 2022) to ensure the content is still accurate, relevant and useful. This blog launches Integrated Computer Solutions' (ICS) new series on GPIO programming. GPIO, or General-Purpose…
BlogAs 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