Skip to main content

Posts

Showing posts from 2020

μSim: PICmicro instruction simulator

μSim is a lightweight PIC™ CPU and ALU simulator. This simulator supports the PICmicro mid-range instruction set and designed to work on both PC and Arduino platforms. Compare with most of the other emulators, μSim does not provide all MCU features and peripherals. This simulator design as a minimalistic system, and based on the requirements, it can extend with additional peripherals and features. To accomplish this μSim is written with minimum system dependencies and with less complexity. To avoid resource overflows/overruns the source code is carefully organized with a few functions and data types. μSim setup for Arduino and PIC16F84 MCU. Apart from the instruction decoder, this system simulates 1024 words of flash memory, 68 bytes of SRAM, two 8 bit GPIO ports, and register map similar to PIC16F84 MCU. Some of the common MCU peripherals and features such as interrupts, timers, and UART systems are not integrated into this simulator. The main objective of this project is to prov

Low cost Carbon Monoxide meter

Today Carbon Monoxide ( CO ) meters are available in different forms. Overall, Carbon Monoxide meters sense CO fast and display the amount to the user and trigger alarm if it reaches a critical level. Compare with most of the DIY Carbon Monoxide meters, the project which we described in this article does not need any development platform or MCU / firmware. The Carbon Monoxide meter in this project design around using general-purpose ICs, such as NE556 and LM3914 . Prototype version of Carbon Monoxide meter The main component of this meter is the FC-22 CO Gas sensor module . This module consists of the MQ-7 sensor and can use to detect CO gas concentrations, anywhere from 10 to 10,000ppm. Apart from the sensor, this module consists of the LM393 comparator to detect the trigger level. In this design, we use both analog and digital output of the sensor module. The analog output use by the LM3914 LED driver and alarm system is drive using the digital output. Home made PCB with align

Experimental Zener Diode Tester

This post describes our initial attempt to design an automatic Zener diode tester. This tester is designed using well-known ICs such as MC34063 and PIC16F88 . Output for 5.1V Zener diode. This unit is capable of identifying Zener diodes up to 27.5V. Apart from that, it can be used to recognize leads of the diodes / Zeners and detect damaged diodes. For this project, we use components that are already in our inventory. Most of these components can be replaced with more accurate and modern substitutes. This unit provides approximately 5% to 15% accurate readings. Based on our observations, the accuracy of this unit can increase by using resistors with 1% tolerance, stable booster circuit, accurate sampling method(s), and with a more optimized PCB layout. Prototype version of Zener diode tester The schematic, PCB design and firmware of this project are available to download at github.com .

NOAA weather satellite reception

Recently I got an interest to experiment with NOAA weather satellite reception techniques. As a first thing, I did search on the internet for a suitable antenna for NOAA satellite frequencies (137.100 MHz - 137.9125 MHz). After examining a couple of designs, I decided to build a Turnstile antenna which is designed by Ivo Brugnera I6IBE . Due to the COVID19 lock-down, I build this antenna using parts that are already available in my inventory. Originally, I build this antenna on a wood-stick, and later I changed it to a stable setup as shown below. Assembled antenna for 137 MHz NOAA weather satellite receptions. Following materials and components are used for the above construction: - Two 8cm × 8cm × 6cm waterproof ABS project box. - 54cm long, ⌀ 21mm PVC tube, which is reinforced by inserting water resistivity wood stick. - 8mm thread roads. - M8 nuts and M8 flat washers. - 50Ω and 75Ω coaxial cables. - PL259 male and female connectors. Before constructing this ant

Experimental motor driver for CG-4 German equatorial mounts

This is an experimental stepper motor driver for Celestron CG-4 German equatorial mounts . This unit is functionally equivalent to the Celestron dual-axis motor driver , and we developed it as a replacement unit for the original Celestron driver. The prototype circuit board of the motor controller unit. The core component of this motor driver is PIC16F88 8-bit MCU. This MCU is responsible for driving two motors and scanning the user inputs. As an original unit, this system also got a clock driver for the right ascension (RA) axis. This system uses two L293 motor drivers to drive the right ascension (RA) axis and declination (DEC) axis motors. This unit is designed to work with 6V bipolar stepper motors, which include in the telescope mount. The LM350 voltage regulator is used to maintain power to both stepper motors. Internal view of the prototype enclosure. This replacement motor drive provides all the functionalities of the original unit, which including manu

MCP4141 based digital potentiometer

The main objective of this project is to create an experimental prototype of a digital potentiometer using Microchip's MCP4141 IC. MCP4141 is available with end-to-end resistances of 5KΩ, 10KΩ, 50kΩ, and 100KΩ. This potentiometer-module can drive MCP4141 with any of the above mention resistances. 3D view of MCP4141 based digital potentiometer PCB To drive the MCP4141, this module use ATtiny13 MCU. This MCU control MCP4141's resistance, based on the rotary-encoder events. ATtiny13 is an 8-pin, low power 8-bit MCU with an internal oscillator. The key reason to pick this MCU is its availability and lower price. Due to a lack of hardware-based SPI, this system use bit-banging SPI implementation to drive the MCP4141 IC. To reduce the board size, this module employs only 3 components. Which including ATtiny13, MCP4141, and rotary-encoder. The dimension of the PCB design given for this module is 26.16mm × 29.72mm. Breadboard wiring diagram This is an open-source har

AVR High Voltage Programmer 2

AVR-HV2 is Arduino based high voltage parallel programmer for AVR microcontrollers. This programmer can read, write, and erase both flash memory and EEPROM. Also, this can use to set fuse bits of AVR MCUs. Compare with the previous version of AVR HVPP , this design is based on commonly available components with a simple schematic. In this release driver software is also rewritten to provide cross-platform support. AVR-HV2 shield with Arduino Mega 2560 board. AVR-HV2 programmer is designed as an Arduino Mega shield. Dimensions of the AVR-HV2 are similar to the Arduino Mega board. It can be powered using a power source connected to the Arduino Mega board. The suggested power source for this programmer is a 12V 1A DC power adapter. The control software of this programmer is design to work on both Windows and Linux operating systems. It supports the import and export of memory data in the Intel hex file format. The communication link between the programmer and the control s

24-bit Stereo Audio DAC for Raspberry Pi

This project is about 24-bit stereo DAC, which we build for Raspberry Pi boards. This R-2R ladder DAC is developing around Intel / Altera EPM240T100C5N CPLD. We developed this module after review the PT8211 DAC, which we tested a few months ago. Compare with PT8211 DAC, this module is capable to provide high-quality audio output with Raspbian OS . A finished prototype of the R-2R DAC. At the testing stages, we drive this DAC with the I 2 S bus of the Raspberry Pi 3 Model B board . The provided device tree overlay is developed and tested on the new Raspbian Buster OS. The audio quality of this DAC is impressive. In most of the circumstances, we test this unit using mpg123 player and got excellent results. The MCP602 opamp of this module is capable to drive a headphone, and for the testing, we use Audio Technica ATH-PRO500MK2BK headphones directly with this module. Also, we pair this module with several AF power amplifiers and obtained superior results. The most n