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

Learning about accelerometers and gyroscopes

Accelerometers and gyroscopes are commonly used sensors where some sort of balance is needed. Combination of both in one board is called IMU (Inertial Measurement Unit). You will find one on flight controllers, balance modules and in many other areas. If you are going to build something from scratch then you should know some background information on how to interpret readings and how to use them in control. Gadget Gangster have shared pretty good instructable where he explains how to interface IMU device to microcontroller and how to use this data to get desired results. As example he uses Acc_Gyro board with LIS331AL triple axis accelerometer and LPR550AL dual axis gyroscope. He goes through some math while explaining how to determine orientation of IMU using either only accelerometer data or combination with gyroscope readings. Plus gyroscope gives some clue about rotation around one or another axis. SO if you are thinking of building inertial system, you should do your homework and understand hos things work. Continue reading

Using potentiometer instead of rotary switch

Using rotary switch in embedded design can save board space and in same time be very intuitive. With knob turn you can change parameters, go through menu and do all sorts of things. But rotary switches aren’t low cost solution. Since most microcontrollers already have ADC integrated, why not replace it with simple potentiometer. This is what Claude Haridge suggests in his example. There are several benefits of using potentiometer instead of rotary switch. First of all you only need one MUC pin. This already gives a chance to choose smaller micro. Also with potentiometer you dont have bouncing problem. Another benefit is that this is cheaper way. But you also loose some benefits of switch. First of all you loos detent feel of switching – hard to determine switching positions as you turn potentiometer. Another thing is that you need more sophisticated algorithm to read switch states. It is worth considering to use potentiometer in cheap solutions. Continue reading

Do not skip bypass capacitors

If you are designing some circuits, you probably know or by intuition add bypass capacitors to every IC power rail. Almost everywhere you will find scarce info that you need to place cap as close to IC as possible. In order to get deeper understanding why these caps are needed, sana syed on electro-labs wrote a tutorial about bypass capacitors explaining the meaning of it and what size of capacitor is needed. The main reason why bypass capacitors are used is to filter out high frequency noise and glitches from DC voltage. It can be power supply or DC biasing. If you know fundamental electronics, then its clear that capacitor allows AC to pass while stops DC. So if carefully selected capacitor it passes high frequency noise directly to ground and leaves DC voltage cleaner. It turns out that not any capacitor will do its work as expected. Some calculations may help refine the choice and filter out undesired AC noise or simply pass AC signal without affecting DC part. Continue reading

Resetting Arduino via serial line

Normally Arduino boards are reset by using additional DTR line of serial interface. This becomes a problem when USB-UART adapter doesn’t support DDR line. And you probably read many cases were one or another particular cable won’t work for programming, but can be used for simple serial data transfers. Ralph thought that there should be another solution that would allow using any serial cable for programming. He thought that TXD and RXD lines are always available since they are used for data receive and transmit. So why not to use one of those to reset microcontroller. With three additional discretes he created a simple circuit that would stand between RXD data line and RST pin. This is simply an RC circuit that would discharge cap during some time. So when data line works in normal operation – RSTin isn’t affected due to slow cap discharge. But when RST signal is held down for longer time – cap is discharged and then RST signal is sent. Since he’s done modifications, he also had to do changes in AVRDude configs. That turned… Continue reading

Reducing interfacing pin count for nrf24l01

Sometimes we get caught in situations when we need direct solutions without figuring things out in more efficient manner. For instance microcontrollers and pin count. When we need more pins, we start looking for bigger MCU even if processing power is enough even if one additional pin would change the situation. So sometimes this is not effective to waste money and even design to get one or two additional I/Os. Some people may use I/O port expanders or shift registers to get more pins. But as Ralph shows we don’t always need head for obvious. There are tons of discrete electronics components around that may save the day. This time he suggests interfacing well known nrf24l01 RF module to small MCU like Attiny85 by using 3 pins instead of 5. So here it is a discrete schematic which does the magic. First of all Rf module is 5V tolerant except VCC must be powered between 1.6V to 3.6V. So a simple LED reduces VCC to save range. CE is another pin that can be tied to high. CSN signal was… Continue reading

Half duplex UART from single AVR pin

Smaller microcontrollers like Attiny84 microcontrollers don’t have UART interface and in many cases you may not need it. But if you will want to have an USART option, you will need to user software USART library or write your own routines. You can find many great software USART libraries for that purpose. As a rule you will have to use two pins to establish communication. But if you are tight on I/Os then you can cheat a little and make it work from single pin. Ralph has been experimenting with simple but smart circuit which allows to perform half duplex UART communications with other systems. The whole trick lies in a small schematic made of diode, transistor and resistor. Diode is only for making one way TX signal path from MCU to other device. Resistor is only for limiting base current. All is left a transistor which works as a key. We need to keep in mind, that when serial line is inactive- it stays in high state. So when microcontroller transmits data, TX on the right keeps transistor open.… Continue reading