<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Mohammed Billoo Blog on EmbeddedRelated.com</title>
<link>https://www.embeddedrelated.com/blogs-1/nf/Mohammed_Billoo.php</link>
<description><![CDATA[RSS Feed for Mohammed Billoo Blog on EmbeddedRelated.com]]></description>
<image><title>Mohammed Billoo Blog on EmbeddedRelated.com</title>
<link>https://www.embeddedrelated.com/blogs-1/nf/Mohammed_Billoo.php</link>
<url>https://d23s79tivgl8me.cloudfront.net/user/profilepictures/163185.jpg</url>
</image>
<atom:link href="https://www.embeddedrelated.com/blogs_rss.php?bloggerid=163185" rel="self" type="application/rss+xml"></atom:link>
<language>en-US</language>
<lastBuildDate>Sat, 18 Apr 2026 02:31:43 +0000</lastBuildDate>
<pubDate>1776479503</pubDate>
<item>
<title>Getting Started With Zephyr: DTS vs DTSI vs Overlays</title>
<link>https://www.embeddedrelated.com/showarticle/1762.php</link>
<description><![CDATA[One of the typical frustrations that I&nbsp;hear about Zephyr from traditional embedded software developers is related to Devicetrees. Some familiar questions include:
<ul>
	<li>"Why do I have to fiddle with a Devicetree and not&nbsp;just&nbsp;write&nbsp;code?"</li>
	<li>"What are the different Devicetree files and where are they located?"</li>
	<li>"When do I create a Deviceteree and when should I use an...]]></description>
<pubDate>Fri, 03 Oct 2025 15:44:05 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: Using GDB To Fix a Driver Bug</title>
<link>https://www.embeddedrelated.com/showarticle/1753.php</link>
<description><![CDATA[Introduction
<p>Last year, Jacob and I hosted a webinar demonstrating how to add custom hardware to an embedded software application based on The Zephyr Project. If you're interested and want to follow along, you can sign up for the webinar (<a href="https://us8.list-manage.com/survey?u=ec02eb9313642ab1a1ef7b5fe&id=69afde1343&attribution=false" rel="nofollow">https://us8.list-manage.com/survey?u=ec02eb9313642...</a>) and we'll send you a copy of the recording.&nbsp;
</p>
<p>In the webinar, we showed how to add...]]></description>
<pubDate>Fri, 08 Aug 2025 20:40:57 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Zephyr: West Manifest For Application Development</title>
<link>https://www.embeddedrelated.com/showarticle/1711.php</link>
<description><![CDATA[Introduction
<p>I recently had an opportunity to work with Woody Creek (<a href="https://www.woodycreek.io/" rel="nofollow"></a><a href="https://www.woodycreek.io/" rel="nofollow">https://www.woodycreek.io/</a>) in developing a network stack using The Zephyr Project. In the next few blog posts, I will share&nbsp;Zephyr features and systems I had an opportunity to leverage and learn more about during this project work.
</p>
<p>In a previous blog post (<a...]]></description>
<pubDate>Mon, 25 Nov 2024 14:13:32 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>ANCS and HID: Controlling Your iPhone From Zephyr</title>
<link>https://www.embeddedrelated.com/showarticle/1669.php</link>
<description><![CDATA[Introduction
<p>In a previous blog post (<a href="https://embeddedrelated.com/showarticle/1630.php">https://embeddedrelated.com/showarticle/1630.php</a>), we learned how we can configure our nRF52840 development kit (<a href="https://www.nordicsemi.com/Products/Development-hardware/nRF52840-DK" rel="nofollow">https://www.nordicsemi.com/Products/Development-ha...</a>) as a Bluetooth Low Energy (BLE) device using The Zephyr Project. Similarly, we learned how to advertise standard and custom capabilities.&nbsp;
</p>
<p>In this blog post, we will take...]]></description>
<pubDate>Tue, 11 Jun 2024 13:16:51 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With CUDA C on an Nvidia Jetson: A Meaningful Algorithm</title>
<link>https://www.embeddedrelated.com/showarticle/1664.php</link>
<description><![CDATA[<p>In the previous blog post, <a href="https://embeddedrelated.com/showarticle/1648.php">Getting Started With CUDA C on an Nvidia Jetson: GPU Architecture</a>, I described how the underlying architecture of a GPU makes it ideal for graphics image processing. In the prior blog post,&nbsp;<a href="https://embeddedrelated.com/showarticle/1641.php">Getting Started With CUDA C on an Nvidia Jetson: Hello CUDA World!</a>, we implemented a simple array addition algorithm using a GPU and a CPU. Unfortunately, we observed no...]]></description>
<pubDate>Sat, 11 May 2024 15:30:38 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With CUDA C on an Nvidia Jetson: GPU Architecture</title>
<link>https://www.embeddedrelated.com/showarticle/1648.php</link>
<description><![CDATA[Overview<p>In the previous blog post (<a href="https://embeddedrelated.com/showarticle/1641.php" target="_blank">Getting Started With CUDA C on Jetson Nvidia: Hello CUDA World!</a>) I showed how to develop applications targeted at a GPU on a&nbsp;Nvidia Jetson Nano. As we observed in that blog post, performing a calculation on a 1-D array on a GPU had no performance benefit compared to a traditional CPU implementation, even on an array with many elements. In this blog post,...]]></description>
<pubDate>Thu, 28 Mar 2024 10:47:29 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With CUDA C on an Nvidia Jetson: Hello CUDA World!</title>
<link>https://www.embeddedrelated.com/showarticle/1641.php</link>
<description><![CDATA[Introduction
<p>Sales of Graphics Processing Units (GPU) have&nbsp;exploded over the past few years due to the rising popularity of machine learning applications. However, GPUs were originally architected and designed for gaming applications.&nbsp;Their native architecture naturally translated into use in machine learning&nbsp;due to the similar operations performed. Nvidia is one of the most...]]></description>
<pubDate>Wed, 13 Mar 2024 14:26:46 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: Bluetooth Low Energy</title>
<link>https://www.embeddedrelated.com/showarticle/1630.php</link>
<description><![CDATA[Overview
<p>Bluetooth Low Energy (BLE) is one of the most popular communication protocols for IoT devices. While it may share a name with Bluetooth Classic, which is the traditional Bluetooth technology, Bluetooth Low Energy is considered an entirely different technology and is targeted for different devices altogether. The key difference between Bluetooth Classic and BLE is duty...]]></description>
<pubDate>Tue, 30 Jan 2024 02:52:50 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: Writing Data to EEPROM</title>
<link>https://www.embeddedrelated.com/showarticle/1613.php</link>
<description><![CDATA[INTRODUCTION
<p>In a previous blog post (<a href="https://embeddedrelated.com/showarticle/1601.php">Getting Started With Zephyr: Saving Data To Files</a>), I demonstrated how to create an application using&nbsp;<a href="https://zephyrproject.org/" rel="nofollow">The Zephyr Project RTOS</a>&nbsp;to store data on a microSD card. A microSD card can allow an embedded system to store tremendous amounts of data. The data can be stored locally when no Internet connection is present, or uploading data frequently is...]]></description>
<pubDate>Thu, 07 Dec 2023 02:34:43 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: Saving Data To Files</title>
<link>https://www.embeddedrelated.com/showarticle/1601.php</link>
<description><![CDATA[Introduction
<p>I have mainly focused on Zephyr infrastructure and internals in this blog post series introducing The Zephyr Project RTOS. As a reminder, Zephyr aims to be a premier RTOS for connected, resource-constrained devices. Zephyr integrates open-source and security best practices to ensure a vendor-neutral, secure, and reliable platform.
</p>
<p>
</p>
<p>In previous blog posts, I have...]]></description>
<pubDate>Tue, 31 Oct 2023 20:56:51 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: Devicetree Overlays</title>
<link>https://www.embeddedrelated.com/showarticle/1583.php</link>
<description><![CDATA[Introduction
<p>In the previous two blog posts (<a href="https://embeddedrelated.com/showarticle/1547.php">https://embeddedrelated.com/showarticle/1547.php</a> and <a href="https://embeddedrelated.com/showarticle/1562.php">https://embeddedrelated.com/showarticle/1562.php</a>), I demonstrated the “Devicetree” in The Zephyr Project RTOS. The Devicetree allows us to describe the hardware in our system to the OS. As we saw in the first blog post, Zephyr supports many popular System-On-Chips (SoCs) and corresponding...]]></description>
<pubDate>Mon, 25 Sep 2023 19:56:14 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: Devicetree Bindings</title>
<link>https://www.embeddedrelated.com/showarticle/1562.php</link>
<description><![CDATA[Overview
<p>In a previous blog post, <a href="https://www.embeddedrelated.com/showarticle/1547.php">https://www.embeddedrelated.com/showarticle/1547.php</a>, we learned how a devicetree in an embedded software application based on The Zephyr Project could describe the hardware on the device. We saw an example of how the four LEDs that are present on an nRF52840 development kit (<a...]]></description>
<pubDate>Wed, 16 Aug 2023 11:34:56 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: Devicetrees</title>
<link>https://www.embeddedrelated.com/showarticle/1547.php</link>
<description><![CDATA[<p>In the last blog post, (<a href="https://www.embeddedrelated.com/showarticle/1541.php">Getting Started With Zephyr: Kconfig</a>), we saw how the "Kconfig" infrastructure can be used to enable and disable specific Zephyr subsystems. Specifically, we observed the three main elements of the Kconfig infrastructure. First, we saw how the Kconfig infrastructure is formulated and an example of a Kconfig file to enable the LED subsystem. Second, we saw how specific...]]></description>
<pubDate>Tue, 18 Jul 2023 11:21:40 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: Kconfig</title>
<link>https://www.embeddedrelated.com/showarticle/1541.php</link>
<description><![CDATA[<p>In a previous blog post, I introduced The Zephyr Project RTOS&nbsp;and demonstrated a personal best practice when starting with “Zephyr.” In that blog post, you saw how a custom West manifest file is an excellent way to ensure your code is always at a known baseline when you start development. What is the next step in your Zephyr journey after creating your custom manifest file and using...]]></description>
<pubDate>Thu, 22 Jun 2023 15:21:16 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Zephyr: West Manifest Customization</title>
<link>https://www.embeddedrelated.com/showarticle/1505.php</link>
<description><![CDATA[Introduction
<p>The Zephyr Project RTOS (<a href="https://zephyrproject.org/" rel="nofollow">https://zephyrproject.org/</a>), or simply “Zephyr” as it is known colloquially, is an increasingly popular real-time operating system due to its native support for over 450 boards and countless peripherals. When starting with any embedded software project, the first task is to start from a known baseline. This can include cloning a repository from source...]]></description>
<pubDate>Tue, 04 Apr 2023 15:14:00 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Libgpiod - Toggling GPIOs The Right Way In Embedded Linux</title>
<link>https://www.embeddedrelated.com/showarticle/1497.php</link>
<description><![CDATA[Overview
<p>We all know that GPIO is one of the core elements of any embedded system. We use GPIOs to control LEDs and use them to monitor switches and button presses. In modern embedded systems, GPIOs can also be used as pins for other peripheral busses, such as SPI and I2C. Similar to the previous article on interacting with peripherals on an SPI bus in userspace via SPIdev (<a...]]></description>
<pubDate>Tue, 24 Jan 2023 14:45:03 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Peripheral Interaction Without a Linux Device Driver Using Spidev</title>
<link>https://www.embeddedrelated.com/showarticle/1485.php</link>
<description><![CDATA[Overview
<p>When integrating a new peripheral onto an embedded Linux platform, we might think we always need to implement a kernel module to serve as a device driver. However, as we all know, absolutes such as “always” and “never” are rarely true. The same is true in this case. Implementing a device driver in kernel space on an embedded Linux platform should only be undertaken if the...]]></description>
<pubDate>Sun, 20 Nov 2022 17:29:49 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
<item>
<title>Getting Started With Embedded Linux - From Nothing To A Login Prompt</title>
<link>https://www.embeddedrelated.com/showarticle/1469.php</link>
<description><![CDATA[<p>
	One of the famous observations that have been made related to embedded systems is referred to as “Moore’s Law”, which states that the number of transistors in integrated circuits doubles every year. This observation has held mostly true for the past several decades, so powerful CPUs are no longer simply relegated to servers, desktops, and laptops. Instead, we see powerful CPUs with...]]></description>
<pubDate>Wed, 28 Sep 2022 15:23:46 +0000</pubDate>
<author>Mohammed Billoo</author>
</item>
</channel>
</rss>