ZoftKo Blog

This blog documents the development of electronics/software projects. Most of the source code involved in said projects can be found in the git provider linked below. Information provided here is by no means authoritative yet it may be of value to people developing similar projects. If you see any mistakes/inaccuracies feel free to suggest changes.

Setting up Twilio SIP Trunks in Asterisk

This is a brief guide that explains how to properly setup Twilio’s Elastic SIP Trunking service with an Asterisk server using realtime configuration. This means that Asterisk’s configuration is stored in a SQL server. The Big Picture Before doing any setup, it is crucial to understand how the Elastic SIP Trunk service is to be used. It is assumed that you are familiar with SIP and VoIP. Twilio Elastic SIP Trunking lets you make and receive calls to and from the PSTN....

December 7, 2024 · Antonio

Lessons from my first side project

The following are a few reflections on the death of my first serious side project. While it technically worked and was deployed, I never got it to a point where I could call it production ready. This tempted me to call it a failure but I learnt a few things which will be listed down below. It was not too bad after all. The Idea The main idea was to monitor the size of binaries, specifically ELF binaries....

March 7, 2024 · Antonio

How to use an ST LED1642GW

We have all probably turned on an LED with the classical 5V + 330 (or so) Ohm resistor combination. Failing to limit the current would result in a burnt LED. Besides resistors, one may also use LED drivers to control their brightness and limit the current going through them. The LED1642GW by ST is one of such LED drivers. It sinks current, has 16 channels and can be controlled by an external MCU through a serial link....

January 13, 2024 · Antonio

STM32 Bare Metal USB Implementation

Implementing your own bare metal USB stack may provide certain benefits like little to no dependencies, smaller code size, better understanding of internals and suffering. This article documents the process I went through to manually set up and get the USB core of an STM32F401CCU6 to do what I wanted. My goal was to successfully return a device descriptor. Once I got that working I had a greater appreciation for TinyUSB and went with it, however this was still a painful great learning experience....

July 20, 2023 · Antonio

Handmade RF Mixer Board with a MC1496

In an RF context, a mixer is a device which “mixes” two frequencies, producing the sum and difference of said frequencies at its output. In the time domain it works as a multiplier, multiplying both input signals. There are several circuits capable of behaving as mixers, this article will cover the design and behavior of a mixer using a Gilbert Cell encapsulated in a MC1496 IC. This post assumes previous knowledge of the MC1496 and its applications....

April 17, 2023 · Antonio

Simple AM Transmitter with a MC1496 IC

The MC1496 is a Balanced Modulator/Demodulator, capable of producing amplitude modulated signals. Its internal structure resembles a Gilbert Cell biased by two current sources (one for each leg of the circuit), both of them being biased by a single diode with a 500 Ohm resistor. MC1496 - Internal Schematic The internal schematic was gathered from Application AN531 from onsemi which is a great resource for in-depth explanations on proper usage of the IC....

August 4, 2022 · Antonio