56,966 blogs · [ { "id": "01a08772-f63c-7099-804a-d4c3292f9d64", "title": "An AI-Assisted Chip Design Journey: Taping Out a VGA Demo on Real Silicon", "url": "https://www.embeddedinn.com/articles/tutorial/Taping-Out-a-VGA-Demo-on-Real-Silicon/", "published_at": "2026-06-20T20:49:06+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32a25f660", "title": "Passbook: Architecting a Zero-Cost Serverless Kids Allowance Tracker and Delegating the Build to AI Agents", "url": "https://www.embeddedinn.com/articles/tutorial/Passbook-Serverless-Allowance-Tracker-Built-With-AI-Agents/", "published_at": "2026-06-15T16:00:00+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32a3a5a9b", "title": "Building a RISC-V Processor with Chipyard: Debugging the Halt Failure", "url": "https://www.embeddedinn.com/articles/tutorial/RISCV-with-Chipyard/", "published_at": "2025-12-23T04:49:06+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32ac9f8e2", "title": "Building a load-balanced production infrastructure in AWS", "url": "https://www.embeddedinn.com/articles/tutorial/Building-a-loadbalanced-production-infrastructure-in-aws/", "published_at": "2024-08-26T04:49:06+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32b079338", "title": "Accessing Complex C Data Structures from Python", "url": "https://www.embeddedinn.com/articles/tutorial/Accessing-complex-ds-from-python/", "published_at": "2024-08-10T04:49:06+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32b794f89", "title": "Setting up a development environment for RISCV-FreeRTOS on QEMU", "url": "https://www.embeddedinn.com/articles/tutorial/RISCV-FreeRTOS-QEMU/", "published_at": "2024-06-04T13:00:06+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32c503d41", "title": "Bridging the Gap - Why I Share My Engineering Journey Through Blogging", "url": "https://www.embeddedinn.com/articles/tutorial/Why-I-Blog/", "published_at": "2024-03-07T13:00:06+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32d42113b", "title": "Harnessing Devicetree for Bare-Metal Embedded Systems - A Non-Linux Approach", "url": "https://www.embeddedinn.com/articles/tutorial/Device-Tree-on-metal/", "published_at": "2024-02-13T13:00:06+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32e160590", "title": "Building Bespoke Debian Distros for RISC-V", "url": "https://www.embeddedinn.com/articles/tutorial/building-a-bespoke-RISCV-debian-distro/", "published_at": "2023-11-22T05:10:06+00:00" }, { "id": "01a08772-f63c-7099-804a-d4c32e51183b", "title": "Guts of Git - A deep dive into the internals of the Git version control system", "url": "https://www.embeddedinn.com/articles/tutorial/Guts-of-Git/", "published_at": "2023-06-17T05:10:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d8a6189a", "title": "Demystifying Digital Signatures - A Step-by-Step Guide to Understanding and Using Secure Digital Signatures", "url": "https://www.embeddedinn.com/articles/tutorial/Demystifying-Digital-Signatures/", "published_at": "2023-06-10T07:58:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d81c3cea", "title": "A Hands-On Guide to Sharing Files and Folders between Host and RISC-V QEMU Machine", "url": "https://www.embeddedinn.com/articles/tutorial/Hands-On-Guide-to-Sharing-Files-and-Folders-between-Host-and-RISC-V-QEMU-Machine/", "published_at": "2023-04-14T07:58:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d79b482e", "title": "Uncovering the Mysteries of Linux Boot on RISC-V QEMU Machines - A Deep Dive into the Boot Process", "url": "https://www.embeddedinn.com/articles/tutorial/RISCV-Uncovering-the-Mysteries-of-Linux-Boot-on-RISC-V-QEMU-Machines/", "published_at": "2023-02-11T07:58:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d72824d1", "title": "Understanding RISC-V semihosting", "url": "https://www.embeddedinn.com/articles/tutorial/understanding-riscv-semihosting/", "published_at": "2022-10-12T07:58:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d6e87c2a", "title": "Setting up GitHub SSO for your website with NGINX and Vouch Proxy", "url": "https://www.embeddedinn.com/articles/tutorial/github-sso-for-your-website/", "published_at": "2022-09-23T07:58:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d6490740", "title": "Creating the littlefs-tools Python package and auto-deploying it to PyPI with a CI/CD pipeline", "url": "https://www.embeddedinn.com/articles/tutorial/littlefs-tools-pypi-deploy-actions/", "published_at": "2022-07-28T07:58:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d5513133", "title": "Deploying AWS Lambdas with Custom GitHub Actions", "url": "https://www.embeddedinn.com/articles/tutorial/deploying-aws-lambdas-with-github-actions/", "published_at": "2022-07-05T07:58:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d4f1719c", "title": "Using Jenkins with BitBucket Webhooks on AWS", "url": "https://www.embeddedinn.com/articles/tutorial/Jenkins-Bitbucket-webhooks/", "published_at": "2022-06-28T18:58:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d48e5338", "title": "Windows subsystem for Linux - tips, tricks and notes", "url": "https://www.embeddedinn.com/articles/tutorial/WSL-tips-and-tricks/", "published_at": "2022-06-26T19:42:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d43cdfe9", "title": "Adding Custom Packages to Buildroot", "url": "https://www.embeddedinn.com/articles/tutorial/Adding-Custom-Packages-to-Buildroot/", "published_at": "2022-02-24T07:12:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d3c0e435", "title": "Docker 101 for embedded systems Dev and DevOps", "url": "https://www.embeddedinn.com/articles/tutorial/Docker101_for_embedded_systems_DevOps/", "published_at": "2022-01-15T07:12:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d347884d", "title": "System Hardware Partitioning Using Device Trees in a Virtualized System", "url": "https://www.embeddedinn.com/articles/tutorial/System_Partitioning_Using_Device_Trees_in_a_Virtualized_System/", "published_at": "2021-06-09T17:12:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d305e52c", "title": "Building a barebones web-push server", "url": "https://www.embeddedinn.com/articles/tutorial/Building-a-barebones-web-push-server/", "published_at": "2021-06-07T17:11:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d29f274e", "title": "Exploring virtualization in RISC-V machines", "url": "https://www.embeddedinn.com/articles/tutorial/exploring_virtualization_in_riscv_machines/", "published_at": "2021-05-30T18:12:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d204140a", "title": "Adding a custom peripheral to QEMU RISC-V machine emulation & interacting with it using bare-metal C code", "url": "https://www.embeddedinn.com/articles/tutorial/Adding-a-custom-peripheral-to-QEMU/", "published_at": "2021-01-27T18:12:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d10efb04", "title": "Linux & Python on RISC-V using QEMU from scratch", "url": "https://www.embeddedinn.com/articles/tutorial/Linux-Python-on-RISCV-using-QEMU-from-scratch/", "published_at": "2021-01-11T15:31:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d078d8b0", "title": "Booting up my first RISC-V core on an FPGA.", "url": "https://www.embeddedinn.com/articles/tutorial/booting-my-first-RISC-V-core-on-an-FPGA/", "published_at": "2021-01-04T16:45:06+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234d06067c7", "title": "A hands-on approach to measuring microcontroller performance using Coremark.", "url": "https://www.embeddedinn.com/articles/tutorial/a-hands-on-appraoch-to-Measuring-microcontroller-performance-using-Coremark/", "published_at": "2020-10-06T14:33:16+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234cfaa5567", "title": "Analyzing size of ELF sections and symbols to generate a modular report.", "url": "https://www.embeddedinn.com/articles/tutorial/analyzing-size-of-ELF-sections-and-symbols/", "published_at": "2020-05-24T14:20:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234cf5f292c", "title": "Setting up a Github Actions based CI system for embedded development using PIC32", "url": "https://www.embeddedinn.com/articles/tutorial/Setting-up-a-github-actions-CI-system-for-embedded-systems/", "published_at": "2020-02-13T11:00:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234ce83c881", "title": "Decrypting embedded TLS communication", "url": "https://www.embeddedinn.com/articles/tutorial/Decrypting-embedded-TLS-communication/", "published_at": "2019-11-26T11:00:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234cdef90c4", "title": "Understanding JSON Web Tokens", "url": "https://www.embeddedinn.com/articles/tutorial/understanding-JSON-web-tokens/", "published_at": "2019-11-05T11:00:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234cd677aaf", "title": "A refresher of new C coding features for embedded system developers", "url": "https://www.embeddedinn.com/articles/tutorial/A-refresher-of-new-C-coding-features-for-embedded-system-developers/", "published_at": "2017-12-25T17:06:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234ccb9c259", "title": "Developing a smart home application for Google Assistant", "url": "https://www.embeddedinn.com/articles/tutorial/Developing-a-smart-home-application-for-Google-Assistant/", "published_at": "2017-09-29T17:06:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234cc7d7c1f", "title": "Developing an Alexa Smart Home Skill", "url": "https://www.embeddedinn.com/articles/tutorial/Developing-an-Alexa-Smart-Home-Skill/", "published_at": "2017-07-24T21:00:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234cb9622e4", "title": "letsencrypt+namecheap+Apache in DigitalOcean", "url": "https://www.embeddedinn.com/articles/tutorial/letsencrypt+namecheap+Apache_in_DigitalOcean/", "published_at": "2017-06-06T21:00:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234cae621f1", "title": "Hijacking openssl renegotiated keys for server wiretaps", "url": "https://www.embeddedinn.com/articles/tutorial/hijacking-openssl-renegotiated-keys-for-server-wiretaps/", "published_at": "2017-05-15T18:00:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234caaa0963", "title": "Setting up my blogging environment", "url": "https://www.embeddedinn.com/tutorials/Setting-up-my-blogging-environment/", "published_at": "2017-05-14T17:30:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c9ddc35b", "title": "Secure firmware upgrade for embedded systems", "url": "https://www.embeddedinn.com/articles/tutorial/Secure-Firmware-upgrade-for-embedded-systems/", "published_at": "2017-01-30T18:01:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c8e68a17", "title": "JTAG basics and usage in microcontroller debugging", "url": "https://www.embeddedinn.com/articles/tutorial/JTAG-basics-and-usage-in-microcontroller-debugging/", "published_at": "2017-01-18T03:06:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c891e661", "title": "Understanding X.509 Certificate Structure", "url": "https://www.embeddedinn.com/articles/tutorial/understanding-X.509-certificate-structure/", "published_at": "2016-12-12T13:06:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c81533e0", "title": "Introduction to digital certificates", "url": "https://www.embeddedinn.com/articles/tutorial/introduction-to-digital-certificates/", "published_at": "2016-11-12T05:06:19+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c7468117", "title": "HDLs and basics of hardware design", "url": "https://www.embeddedinn.com/articles/tutorial/01-HDLs-and-basics-of-hardware-design/", "published_at": "2016-10-26T07:52:55+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c658af4a", "title": "Building a custom IoT dashboard", "url": "https://www.embeddedinn.com/articles/tutorial/Building-a-custom-IoT-dashboard/", "published_at": "2016-08-10T07:52:55+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c5a3443c", "title": "Docker : Scratching an itch to build from ground up", "url": "https://www.embeddedinn.com/articles/tutorial/docker-scratching-an-itch-to-build-from-ground-up/", "published_at": "2016-05-09T18:00:41+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c4ed955f", "title": "IoT: Networked embedded system caveats", "url": "https://www.embeddedinn.com/articles/tutorial/iot-networked-embedded-system-caveats/", "published_at": "2016-04-06T15:53:49+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c479560d", "title": "Getting started with ESP8266 WiFi Module", "url": "https://www.embeddedinn.com/articles/tutorial/getting-started-with-esp8266-wifi-module/", "published_at": "2014-12-25T07:55:54+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c389d3d5", "title": "Building an E2E IoT system with Raspberry Pi", "url": "https://www.embeddedinn.com/articles/tutorial/building-an-e2e-iot-system-with-raspberry-pi/", "published_at": "2014-10-28T09:32:53+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c2d7bb0e", "title": "Buildroot and Raspberry Pi", "url": "https://www.embeddedinn.com/articles/tutorial/buildroot-and-raspberry-pi/", "published_at": "2014-10-20T08:54:21+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234c1fabf36", "title": "Building a RaspberryPi daughter card - warnings and pitfalls", "url": "https://www.embeddedinn.com/articles/tutorial/building-a-raspberrypi-daughter-card-warnings-and-pitfalls/", "published_at": "2014-05-12T10:50:11+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-93767b0a8fe1", "title": "MQTT for IoT - a quick hands-on trial", "url": "https://www.embeddedinn.com/articles/tutorial/mqtt-for-iot-a-quick-hands-on-trial/", "published_at": "2014-03-14T06:36:31+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-93767a0b9830", "title": "Writing Linux Device Drivers - Part 2", "url": "https://www.embeddedinn.com/articles/tutorial/device%20drivers/writing-linux-device-drivers-part-2/", "published_at": "2013-10-29T06:16:30+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-937679310cd0", "title": "Writing Linux Device Drivers - Part 1", "url": "https://www.embeddedinn.com/articles/tutorial/device%20drivers/writing-linux-device-drivers-part-1/", "published_at": "2013-10-04T11:32:00+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-937678967022", "title": "cscope + vim for code navigation", "url": "https://www.embeddedinn.com/articles/tutorial/cscope-vim-for-code-navigation/", "published_at": "2013-09-27T07:52:55+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-93767797c68c", "title": "XML parser Pitfalls", "url": "https://www.embeddedinn.com/articles/tutorial/xml-parser-pitfalls/", "published_at": "2013-05-20T07:01:48+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-937677345f4b", "title": "Adding new menu item to PuTTY", "url": "https://www.embeddedinn.com/articles/tutorial/adding-new-menu-item-to-putty/", "published_at": "2013-03-04T10:10:48+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-9376767da604", "title": "Booting your first cross-compiled Linux based embedded system", "url": "https://www.embeddedinn.com/articles/tutorial/booting-your-first-cross-compiled-linux-based-embedded-system/", "published_at": "2013-02-26T05:58:36+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-93767589db4e", "title": "Advanced Shell Scripting", "url": "https://www.embeddedinn.com/articles/tutorial/advanced-shell-scripting/", "published_at": "2013-02-15T10:10:20+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-9376751c6778", "title": "Test coverage analysis with GCOV", "url": "https://www.embeddedinn.com/articles/tutorial/test-coverage-analysis-with-gcov/", "published_at": "2013-02-11T05:36:44+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-937674a0a36e", "title": "Home made single sided PCBs", "url": "https://www.embeddedinn.com/articles/tutorial/home-made-sigle-sided-pcbs/", "published_at": "2013-02-06T09:16:38+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-93767488346c", "title": null, "url": "https://www.embeddedinn.com/articles/tutorial/upnp-device-architecture/", "published_at": "2013-01-25T09:25:26+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-937674766049", "title": null, "url": "https://www.embeddedinn.com/articles/tutorial/usb-3-0/", "published_at": "2013-01-24T01:40:34+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-9376746f3647", "title": null, "url": "https://www.embeddedinn.com/articles/tutorial/usb-2-0/", "published_at": "2013-01-23T04:53:33+00:00" }, { "id": "01a0cf5a-822b-71ae-9c57-93767398ac5f", "title": null, "url": "https://www.embeddedinn.com/articles/tutorial/pic-microcontrollers/", "published_at": "2009-07-29T04:53:00+00:00" }, { "id": "01a0cf5a-822c-70c4-874c-f234de812a01", "title": null, "url": "https://www.embeddedinn.com/cv", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234defcd819", "title": null, "url": "https://www.embeddedinn.com/about/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234df7674d5", "title": null, "url": "https://www.embeddedinn.com/categories/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e036b432", "title": null, "url": "https://www.embeddedinn.com/collection-archive/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e03ec05b", "title": null, "url": "https://www.embeddedinn.com/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e11f49ec", "title": null, "url": "https://www.embeddedinn.com/tags/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e1c04299", "title": null, "url": "https://www.embeddedinn.com/tutorials/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e29004b2", "title": null, "url": "https://www.embeddedinn.com/page2/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e2bd22cc", "title": null, "url": "https://www.embeddedinn.com/page3/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e315582f", "title": null, "url": "https://www.embeddedinn.com/page4/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e31a5791", "title": null, "url": "https://www.embeddedinn.com/page5/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e3876e0e", "title": null, "url": "https://www.embeddedinn.com/page6/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e46679fb", "title": null, "url": "https://www.embeddedinn.com/page7/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e5230388", "title": null, "url": "https://www.embeddedinn.com/page8/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e53f6d1b", "title": null, "url": "https://www.embeddedinn.com/page9/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e5d7fff8", "title": null, "url": "https://www.embeddedinn.com/page10/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e60435e9", "title": null, "url": "https://www.embeddedinn.com/page11/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e6b92b1d", "title": null, "url": "https://www.embeddedinn.com/page12/", "published_at": null }, { "id": "01a0cf5a-822c-70c4-874c-f234e777a186", "title": null, "url": "https://www.embeddedinn.com/page13/", "published_at": null } ] posts Claim your blog
Back to embeddedinn.com
Blog · corpus.blog/blogs/embeddedinn.com/posts

embeddedinn.com

embeddedinn.com

2026

2025

2024

2023

2022

2021

2020

2019

2017

2016

2014

2013

2009

Undated