Latest Posts (16 found)
Uros Popovic 1 weeks ago

PC cooler control with a $2 microcontroller, no development board

Walkthrough for a small embedded system based on ATmega328p which controls a PC cooler fan. The focus of this experiment is on using only open-source CLI software tooling for the solution. Additionally, no development boards were used, just the bare microcontroller, which should be helpful in transitioning to building your own boards.

1 views
Uros Popovic 1 months ago

Custom CPU simulation and testing

Walkthrough for how the Mrav CPU project handles RTL simulation and other testing aspects.

1 views
Uros Popovic 1 months ago

Running Go tools in a browser

Quick overview of how Go tools for the Mrav custom CPU are run inside a browser by leveraging WASM. The project is built with Bazel using Go rules.

0 views
Uros Popovic 1 months ago

RTL generation for custom CPU Mrav

Overview of how SystemVerilog RTL code is generated in the build flow for the Mrav custom CPU core.

0 views
Uros Popovic 2 months ago

Embedded bare-metal C with Bazel and AVR

Practical example of using Bazel to build an embedded C program, bare-metal. Concrete example with AVR ATmega328p.

0 views
Uros Popovic 2 months ago

Making a custom CPU

First part of the series explaining the development of a custom CPU called Mrav and the tooling for it. Lessons learned from working on Google TPU chips.

0 views
Uros Popovic 4 months ago

Cross-compiling C and Go via cgo with Bazel

Walkthrough for cross compiling a mixed C and Go binary for another platform using cgo and Bazel. Example is done with x86_64/Linux compiling for RISC-V/Linux.

0 views
Uros Popovic 4 months ago

Linux VM without VM software - User Mode Linux

Quick demonstration of using User Mode Linux (UML) to run a Linux VM inside Linux's userspace, without additional VM software or even root permissions

0 views
Uros Popovic 5 months ago

Machines build machines - AI creates a bootable VM

See how AI is pushing the boundaries of computer engineering. I'm sharing my journey driving AI to build a functional RISC-V 32-bit VM simulation, reaching the milestone of booting OpenSBI. Discover the process behind this AI-assisted journey and what's next on the path to a fully bootable Linux kernel and potentially an FPGA implementation.

0 views
Uros Popovic 5 months ago

Bare metal JavaScript on RISC-V

Explore how to run JavaScript directly on bare metal, like microcontrollers. This post shows you how to get JavaScript code executing on embedded hardware without an operating system, opening up new ways to program these chips. The example is done on a RISC-V VM.

0 views
Uros Popovic 5 months ago

Bare metal printf - C standard library without OS

Guide to implementing a C standard library for bare metal hardware using Newlib, enabling powerful functions like printf and malloc without relying on an operating system. This step-by-step guide demonstrates how to configure and integrate Newlib on RISC-V architecture, showing you how to redirect standard I/O through UART for embedded systems development.

0 views
Uros Popovic 1 years ago

Making my first embedded Linux system

End-to-end documentation of a journey from no PCB experience to fabricating my own Linux-ready system that can boot the latest mainline kernel. This article is the recommended reading for someone building their first embedded Linux board. F1C100s SoC is used for this sample board.

0 views