STM32L4-Discovery Software-Defined radio receiver (SDR) Part 1

In this post I’ll present a way to turn the stm32l476-discovery board into fully functional radio receiver using a single additional component and making minor modifications to the board. The presented solution is a radio receiver done entirely in the digital domain. The incoming RF signal is directly sampled by the stm32l4’s internal 12-bit ADC…

STM32 Development Env for Windows: VSCode + ARM GCC Toolchain + OpenOCD

In this tutorial I’ll shortly describe how I setup my development environment for the STM32 micros. STM32L433 will be used as an example but the following process shall be applicable to any other STM32 micro. Step 1: Get the Toolchain In order to make the whole development process portable (i.e. to allow other parties to…

Building bare-metal STM32L4 firmware using Clang/LLVM

In this tutorial I’ll show you how to build a basic bare-metal application for Cortex-M4F micro-controller using LLVM without having to resort to building the LLVM toolchain itself which can be tedious and time consuming. All in all LLVM is recognized for it’s ability to compile for different architectures (a.k.a cross-compile) so we should be…

Decoding FSK transmission recorded by RTL-SDR dongle

In this article I’m about to present the process of decoding previously recorded FSK transmission with the use of Python, NumPy and SciPy. The data was gathered using SDR# software and it is stored as a wave file that contains all the IQ baseband data @ 2.4Msps The complete source code for this project is…

Complex impedance matching using scalar measurements, math and resistors

In this article I’ll present my approach to solving the problem of impedance matching using only scalar measurements, a little bit of complex numbers mathematics (in form of a python script) and resistors of different values. A worked example of 2.45GHz antenna matching to interface a 50 Ohm system is also presented to back up…

MIPI DSI Tx interface for Ipod Nano 7th gen

Before reading this post I highly recommend that you pay a visit to Mike’s Electric stuff webpage where Mike describes the reverse engineering of the Ipod Nano 6th gen LCD. It it essential to have at least some understanding of how it works since Ipod 7 LCD (IP7 for short) does it’s job in a…

Reverse Engineering Antminer S1

Antminer S1 is the 1st generation of Bitcoin mining hardware based on Bitmain Technologies chip marked as BM1380. There are 64 chips (2 boards, 32 chips each) per miner offering hash rates at around 120GH/s under normal conditions. In this article I present my approach at reverse engineering the communication protocol the chips use in…