Turn-key PCB assembly services in prototype quantities or low-volume to mid-volume production runs

Sound based Data Transmission

DTMF have been used to transfer data through sound, however it limits the data rates. In this project they have used a speaker and a microphone system to transmit the data generated. The data is generated using a PS/2 remote which is then processed by the microcontroller and the audio signal is fed to a speaker. The sound is detected by the microphone attached on the user side which is then processed and displayed on the LCD attached to the receiver side. The TX-MCU samples DATA on the falling edge of CLK to build a data packet representing the key that was pressed, then transmits the packet as a combination of two alternating on/off tones (one at 8 kHz, another at 5 kHz) over the speakers, where one tone represents CLK and the other represents DATA. The current design uses a very simple protocol called On-Off Keying on two tones. Upgrading the code to use a more sophisticated protocol would increase the data rate. The change in speaker and microphone specifications might also increase the range of the system. Continue reading

Standalone device to play Xiangqi

Xiangqi is nothing but Chinese version of chess. This project aims at playing the same on a standalone touchscreen LCD interfaced with a controller. In addition to playing, it also provides a feature to change the background of the game as per user requirement. When user presses on the screen, the signal will be sent to the MCU and some movements would be made. The entire algorithm of the game is implemented with the concept of states. The connection between MCU and touch screen needs a LCD driver and an ADC chip A predefined library for another LCD is modified based on the present LCD datasheet so as to avoid any complexity. SPI protocol is also implemented to communicate the touchpanel with MCU. The accuracy of the touch screen is good. The identification of coordinates (x,y) of the touched point is precise as it has been configured manually. A good project to learn various aspects of controller for someone who has just started with embedded system. Continue reading

Bluetooth based Pedometer

A pedometer is a device which counts the number of steps taken by the person by detecting the motion of the person’s hand. This project is a set of two device, a wrist device and the pedometer device. The pedometer device records the user steps and send it to a device mounted on the wrist using Bluetooth. On the wrist, the information is processed to obtain the user the steps they’ve taken, their pace, and the timing of their steps. Along with it, it also gives out the average speed. The pedometer utilizes ‘jerk’ which is nothing but derivative of acceleration with respective to time. By looking at the zero crossing of jerk from a positive to a negative value, the peak acceleration is obtained. This peak in acceleration corresponds to a foot hitting the ground or a foot rising very quickly from the ground. The MCU’s used in the project are Tiny Real Time kernel developed by Dan Henriksson and Anton Cervin at Lund University. However it has been modified by their instructor to run on Atmel AVR Mega1284… Continue reading

Automatic Fire extinguisher

This project is basically a prototype to extinguish fire using a small burst of fire. It’s operated with the help of high torque servos and can only extinguish fire up to a distance of 1ft. As already mentioned this project serves only as a proof of concept which can be further extended to extinguish outdoor and indoor fire. An ATmega1284p microcontroller (MCU) is used to manage both the “on” signal sent to the water pump and the positioning signals sent to the servos. There are two servos to control the horizontal and the vertical position of the water pump respectively. A combination of three infrared sensors is used to detect the fire. The upper and lower sensors are sensitive to visible light while the central sensor is more sensitive to fire. A various permutations and combination are used to detect whether the fire is present or not based on the output from these sensors. The system requires little to no human interaction except when the water reservoir needs to be refilled which can also be made automated. In order to… Continue reading

Camera harvests energy through its sensing elements

There is long known fact that diode can be used in reverse mode to generate small current when placed on a light. Computer scientists at Columbia University thought that this phenomenon could be used for dual purpose – harvest energy and take images. They constructed 30×40 array of diode pixels on a PCB. When this array is placed in environment with more than 300 lux brightness it is capable to collect enough energy to power microcontroller and take a picture every second. It seems pretty attractive perpetual photographing machine which would take images and power itself whenever there is a light. Collected power is stored in capacitor between image shoots. It is hard to tell what microcontroller is used here but it is definitely a low power (MSP430 could do the trick). They also calculated that 210×200 sensor grid could rise frame rate up to 30 images per second alternatively it could be equipped with low power wireless communication that could constantly send data to remote host. Continue reading

Implementing precise single shots with AVR timer

Microcontroller timers are meant to count clock cycles in hardware and there are many ways and configurations where timers are handy. First of all timers are meant to work purely in hardware without utilizing CPU, secondly timers help generate waveforms like PWM, trigger events, count time between events and so on. But there is one use that in most cases is missed and not documented – precise single shots that allow to generate only single pulse shot with precise length. And this method doesn’t require CPU to be involved – just set and forget. The idea of this method lies in using fast PWM (refer to datasheet for more info) mode a bit differently. Normally in this mode timer works by counting to TOP value, somewhere in between there is a MATCH value where timer outputs HIG and drops to LOW when TOP is counted. This way there is a PWM signal generated. Josh came up with idea that in this case we can generate only single pulse by setting MATCH value above the TOP and set initial timer counter… Continue reading