Skip to main content

Posts

Showing posts from 2021

TPA3001D1 Power Amplifier

Recently we looked for a replacement class-D power amplifier to replace my old TDA2030 power amplifier build . While searching for a suitable power amplifier IC, we found TPA3001D1 from the local market. This IC is a slightly older 20W Class-D power amplifier manufactured by Texas Instruments . At the time of this writing, it is priced at LKR 180 (0.89 USD) in the local market and is still available at all major electronics stores (including online stores ). Prototype version of TPA3001D1 power amplifier. To minimize assembling difficulties, we used through-hole-type components in this PCB. The only SMD component in this PCB is the TPA3001D1 IC. We installed the power amplifier IC on the bottom of the PCB because then it would receive good airflow. The table below lists all the components required for this project. Designator Quantity Value C1 , C8 , C13 , C14 , C15 , C16  6  1µF/25V C17  1  10µF/25V C2 , C3

STM8S005C6T6 Ethernet development board

In this project, we built an STM8S005C6T6 based Ethernet development board for our IoT experiments. This development board consists of ENC28J60 , 10BASE-T stand-alone Ethernet controller, CH340G , USB serial interface, 2 LED indicators, and passive buzzer unit. The firmware framework for this development board has been developed using SDCC . To enable IPv4 support, we convert the EtherCard driver, which is available for the Arduino platform. The current version of this driver supports all other EtherCard functions except TCP support. Finished STM8S005C6T6 IoT development board. In the given design, the SPI terminals of the MCU are connected to the ENC28J60 Ethernet controller. All SPI terminals, such as MISO / PC7 , MOSI / PC6 , and SCK / PC5 , are connected directly to the Ethernet controller. In addition, the PC4 terminal of the MCU is used as ENC28J60, CHIP-SELECT .  The CH340G USB serial interface is connected to the UART2 terminals of the MCU. In STM8S005C6T6, the UART2

5.1 channel preamplifier

This project introduces a digitally controlled 5.1 channel audio preamplifier system. This amplifier is specifically designed to increase the gain of the multi-channel PC sound cards. The main reason for building this amplifier is the limited gain received from the ASUS Xonar AE sound card with the Creative Inspire T6300 , 5.1 surround speaker system. Before switching to this soundcard, we had a Creative Sound Blaster Z card which provided good audio output with the above-mention speaker system. The key motivation of building this amplifier is to solve these gaining problems. The assembled 5.1 preamplifier PCB. This preamplifier consists of six TL074 / TL072 preamplifier stages and PT2258 electronic volume control. The input stage of this preamplifier consists of six TL074 / TL072 buffer stages. The PIC16F886 microcontroller manages the PT2258 electronic volume control IC. All the volume levels and menu options are displayed on HD44780 , 16x2 character LCD screen . All the

Corsair VS550 Power Supply Repair

A few months ago, our AMD Ryzen™ 5 computer started giving some startup issues. At first, this problem happened randomly, and then it started happening at every bootup. The symptom is that if the computer shuts down after a boot, it will not start on the next power cycle(s). If we turn it off for 30 or 45 minutes and then turn it on, it will start working without any problems. This problem did not occur on warm restarts. After changing power supply units, we realized that the problem was with the PSU. This suspicious unit is a Corsair VS550 PSU . Corsair VS550 PSU PCB. Based on the symptoms, we thought the problem was with a capacitor on the PSU board. We disassembled the PSU and checked all the electrolytic capacitors, but we could not find any faulty capacitor(s). To further investigate this issue, we connected the PS-ON terminal to the ground ( GND ) and started the PSU. During this test, we see that the PSU is performing well on this condition. As we examine further, we find t

Arduino superheterodyne receiver

In this project, we extend the shortwave superheterodyne receiver we developed a few years ago . Like the previous design, this receiver operates on the traditional superheterodyne principle.  In this upgrade, we enhanced the local oscillator with Si5351 clock generator module and Arduino control circuit. Compared to the old design, this new receiver uses an improved version of an intermediate frequency amplifier with 3 I.F transformers. In this new design, we divide this receiver into several blocks, which include, mixer with a detector, a local oscillator, and an I.F amplifier. The I.F amplifier builds into one PCB. The filter stage, mixer, and detector stages place in another PCB. Prototype version of 455kHz I.F amplifier. In this prototype build, the Si5351 clock generator drives using an Arduino Uno board. With the given sketch, the user can tune and switch the shortwave meter bands using a rotary encoder. The supplied sketch support clock generation from 5205kHz (tuner frequ

Active subwoofer filter circuit

This active subwoofer filter system provides the frequencies required to run the subwoofer within its limits. The purpose of this unit is to prevent the subwoofer speaker or circuit from overloading at unsupported frequencies. This approach can ensure the safety of the subwoofer speaker or driver circuit. This system consists of TL074 based active lowpass filter, highpass filter, and preamplifier stage. The lowpass filter is in 880Hz cutoff frequency. Highpass filter cutoff frequency can select from the rotary switch. In this given design, the highpass cutting frequencies are at 80Hz, 115Hz, 150Hz, and 180Hz.  Use the calculator application shown here to use this system for frequencies other than those mentioned above.  Finished prototype of an active subwoofer filter circuit. In this circuit, both lowpass filter and high pass filter uses a 3-pole Butterworth filter configuration. Here all the filter component values are calculated using the calculator application mentioned above.

FM Radio add-on for Raspberry Pi

The QN8035 is a stereo FM radio receiver launched by the Quintic Corporation . Compared to other popular digital FM tuners ( RDA5807 , TEA5767 , etc.), this tuner does not seem to be as popular among the DIY community. As we have seen, the biggest problem with this IC is the lack of information. During our initial search, we came across some details about this IC. Much of that information was confined to a product datasheet and a few undocumented GIT repositories. Based on the information we found on the internet, we concluded that Quintic was no longer in business. According to the NXP website , it stated that Quintic Corporation was acquired by NXP in 2015.  Although the Quintic is no longer in business, the QN8035 IC can still be purchase at a low price from online stores. In addition, we found several FM radio kits manufactured using this IC in online stores. Due to the lack of information, I decided to explore this IC to understand its functionality and limitations. In this

Universal logic probe

These days good quality oscilloscope is not an expensive instrument and, we can see it in most workbenches. With the advancement of oscilloscopes, simple testing tools such as logic probes are not as popular these days. However, if the oscilloscope or logic analyzer was out of reach, the logic probe is a handy instrument to check digital circuits.  Also, in some cases, a logic probe is an easy option to check the functionality of low-speed logic circuits because it provides a real-time visual indication of the logic state without adjustments or calibrations. Prototype version of the logic probe. The logic probe design described in this post uses common and inexpensive ICs, including the popular NE555 timer and LM393 low voltage comparator IC. At the time of this writing, both ICs were prevalent in the market and cost less than LKR50 (US$ 0.25). This circuit design using SMD components to minimize the board size. The dimensions of the soldered PCB are around 70mm × 14mm × 6.6mm, and

Arduino telephone caller ID unit

CLI, also known as Caller ID and calling number delivery ( CND ), is a service offered by the telephone service provider to customers to obtain the calling party number and date/time of the call. The service activation and information format of CLI are different from telephone network operator to operator. CLI display unit - minimum test setup In this project, we will create a small Caller ID decoder using Arduino UNO and a custom-made HT9032D module. The core component of the project is the HT9032D, which can decode incoming call ID data over a telephone connection. This IC supports Bell 202 FSK and ITU-T version 2.3 CLI protocol specifications. The HT9032D module we created here base on the application example given in the IC datasheet . In addition to decoding CLI data, this module also can detect ring signal rises over the phone line. Assembled HT9032D module The Arduino UNO is used to process the decoded CLI data stream and manipulate the LCD. In an idle state, the decoder a

TDA7052A - DIY miniature amplifier

TDA7052A is an audio power amplifier designed for use in low voltage battery-powered equipment. Compare with the popular LM386, TDA7052A is not so popular among DIY electronic enthusiasts.  Final view of the finished amplifier with speaker.   Using the Bridge Tied Load principal, this IC delivers an output power of 1.2W into an 8Ω load with, 6V power supply.   The most striking feature of this amplifier is the minimum external component count. This IC only needs two external capacitors to build a functional audio amplifier.   The gain of the amplifier is fixed internally at 40dB. The amplifier got, short-circuit protection, requires no external heatsinks, and not producing any switch on/off click sound(s).    Although this is an old amplifier IC, it is still available to purchase in many local and online stores. Compare with the other low-power AF power amplifier ICs, TDA7052 is a little expensive in the local market. Although it is costly, I use this IC in many designs because of it

12V Uninterruptible Power Supply

This 12V uninterruptible power supply initially designs to drive my fiber optic modem/router. The key reason to build this power supply is to get continuous internet and phone connection during power failures. Core components of this power supply are a constant voltage charger, 12V DC power supply, AC line monitoring unit, and 12V high capacity sealed lead-acid battery. The entire system designs using locally available components. Prototype version of 12V UPS system The charging circuit of this system builds around using the popular LM350 voltage regulator. This regulator calibrates to provide both 14.4V fast charging and 13.6V trickle charging. Based on the condition of the battery, the MCU will determine the appropriate charging mode. At the online state, the LM2576-12 switching regulator provides 12V output to the driving system. (in my arrangement, a fiber optic router). Block diagram of the 12V UPS system The PIC16F688 MCU monitors the AC line and battery to controls the output

STM8S001J3 based Programmable timer module

Programmable timer lite is a miniature, USB programmable timer module. This module can handle more than 100 alarm configurations and trigger the output channel based on the programmed conditions. The timer module can program using SRIKit 's Timer Controller software. All the timer configurations are store in the EEPROM to prevent the loss of data during power failures. Programmable timer module. We design this module around the STM8S001J3M microcontroller and DS3231 real-time clock. AMS1117-3.3 regulator in this module can handle a maximum of 9V DC input without installing an external heatsink. Bottom side of the timer module These programmable timer modules were specifically developed to handle long-duration alarm configurations which span up to years. Firmware of this timer module develops using SDCC version 3.9. Programming utility is a GUI application and develops using Lazarus and FPC toolchain. Both these projects are built and tested on a 64-bit Linux environment. Th

SD card extension for OpenFAT library

OpenFAT is an open-source FAT file system implementation for embedded systems. The original library is well written and documented. We recently came across this library while looking for a LibOpenCM3 support SD/MMC FAT file system library. At the initial review, we notice that this library does not maintain for the last ten years. Also, it does not provide support to the latest SD card types. After review the latest SD card specifications , we add SD card support to this library and release it with the same license. The updated library is available at the github.com/dilshan/sdfatlib . The testing of this library is carry on a popular STM32F103C8T6 blue pill development board. The suggested wiring layout is given, below. Wiring layout for the test setup. For the above test layout, we use a standard SD card adapter module (which comes without a built-in level-shifter and voltage regulator). Due to the 3.3V support of the STM32F103C8T6 , the wiring layout is straightforward. The CH34

NTP based digital clock panel driver

This project introduces an open-source, ATmega328 based, configurable NTP clock with a 2.3-inch, 7-segment display driver. This clock automatically obtains time from the configured NTP server and updates the date and time of the built-in RTC (real-time clock). If the connection to the NTP server is lost, the clock continues to run using its built-in RTC. Finished NTP clock driver PCB. All the parameters of this clock can configure using its USB base serial terminal. The firmware of this clock supports both static and DHCP addressing modes. Apart from that, parameters such as NTP server address, time-offset, and clock display formats can change through the menu-driven configuration terminal. This clock is designed to drive large common-anode, 7-segment displays. The prototype version is assembled using four individual segments of 7.2V, 2.3-inch, red color displays ( FJS23101BH ). To archive, the necessary high output voltage and the current, the 7-segment display output stage of this

FM stereo receiver module

This is an RDA5807M based FM stereo radio module. This module is designed to replace old, low-voltage, analog FM stereo radio receiver modules. Like many digital receivers, this module also got auto scanning, station memory, and digital volume control. This module can driver using 5V to 9V DC power source. FM stereo receiver module with seven-segment display unit. The frequency range of the receiver is 88MHz to 108MHz. The auto scanner of this module can tune the receiver with 25kHz increments in up and down directions. The memory manager available with the current firmware can hold up to 10 stations in MCU EEPROM. Bottom side of the receiver module The dimensions of this module are 72.85mm × 32.0mm. With the seven-segment display, the depth of the assembled module is 37.5mm. AF output power of this module is not sufficient to handle the pair of speakers. To drive speakers, this module needs to pair with a stereo AF power amplifier kit/module .  This is an open-source hardware project

I2C master mode emulator

I 2 C is a popular data bus to communicate with inter-board peripherals. Today I 2 C based chips and modules are widely available in many categories, including data storage, ADC/DAC, I/O Expanders, sensors, etc. The I 2 C master mode emulator allows communication with I 2 C devices by sending or receiving data to/from the I 2 C bus. To issue the I 2 C commands, the emulator should connect to a PC over the USB port. After initializing the emulator, the PC and directly control the I 2 C slave chip/module. Finished prototype of the I 2 C Terminal This emulator is base on ATmega16A MCU. The USB communication channel is develop using the V-USB firmware. Initially, we develop this emulator to work with 5V I 2 C devices, but later it has extended to work with 3.3V I 2 C devices. The 3.3V design is still under testing, and at the prototyping stage, we found a couple of issues in 3.3V mode.  In 3.3V mode, the required output level is available only if the emulator is in a "ready" sta

Clock module with seven segment display

This project is about a simple LED clock module based on STM8S103F3 MCU and DS3231 RTC. This clock module is designed to handle a generally available 14.2mm (0.56 inch) 4-digit seven-segment displays. This module use 12-pin (6-pin × 2) socket to connect the seven-segment display to the PCB, and it allows to mount the display unit off from the PCB. Prototype version of the clock module The " alarm terminal " of this module is available as an open-collector output. This terminal allows the user to connect an external circuitry to this module. The module can power up using 5V or 3V DC power source. The necessary power source can select using a jumper in the module. This module also provides a slot to install a small CR1220 type battery to backup the time and alarm configuration. Front side of the module (without seven segment display unit) Bottom side of the module   The dimensions of this module are 65.4mm × 29.6mm. With the seven-segment display, the depth of the assembled