Electronic Load

An electronic load controlled by an STM32 microcontroller

Electronic Load
At the moment, it’s only a constant current load, but constant power and constant resistance modes could be implemented in software. The load MOSFET is a BTS141 by Infineon Technologies, which comes with a few handy protection features. It is controlled by an op-amp in the “standard” ground-referenced constant current load topology. A second MOSFET is used to protect the circuit in case of reverse polarity at the inputs. [Read More]

Angry Pixel

Game on the EK-TM4C123GXL and a 64x16 LED matrix where you have to throw a pixel

Angry Pixel

This is a simple game where you have to throw a pixel. The game is drawn to a 64x16 monochrome LED matrix. The ARM Cortex-M4F based microcontroller of the EK-TM4C123GXL development board simulates a two-dimensional grid-based world. There are destructible (hollow) and indestructible (filled) blocks that serve as obstacles. The goal is to hit and destroy all spheres/circles by correctly aiming and adjusting the throwing power.

[Read More]

HDL Compiler

Compiler for a self-invented hardware description language

HDL Compiler
A compiler written in Rust that compiles source code in a hardware description language which I developed myself. It produces files that can be read by gitlab.com/maxkl2/LogicSimulator, a web-based simulator for digital circuits. I have written an extensive README containing a lot more details and instructions on how to use the compiler which is available on GitLab together with the source code: gitlab.com/maxkl2/hdl-compiler. To ensure its correct functionality and to test its limits (especially regarding future optimizations) I have also written a 16-bit RISC core in this hardware description language: gitlab. [Read More]

Logic Simulator

A simulator for digital circuits

Logic Simulator
This is a web application for editing and simulating digital circuits. The simulator uses a cycle-based algorithm: each component is evaluated once per simulation cycle. It does not account for the propagation delay of wires or components. At the moment, the simulation speed is fixed to the screen refresh rate. However, the plan is to run the simulation in a background thread (web worker) in the future, which would make much higher simulation speeds possible. [Read More]

8051 Emulator

Emulates an AT89C5131A microcontroller

This is an emulator, written in C++, that executes .hex files. It emulates Atmels AT89C5131A microcontroller, including peripherals. At the moment, it emulates most instructions but the only supported peripherals are the GPIO ports.