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

Lithium ion battery charger for robotics

This is a universal charger of Lithium Ion batteries based on Atmega8 microcontroller. As you may know, LiIon batteries have many advantages comparing to regular NiMh or NiCd. Main of them are: high capacity by weigh and volume, no memory effect, fast charge and so on.   But these batteries require special charging algorithm. You cant plug to some voltage and expect them to charge. It needs non constant voltage and current during charging cycle. Charging generally follows these steps: Current control at the Max Charge Current is used until the battery voltage reaches the voltage threshold (normally 4.1 or 4.2 volts per series cell). The battery is about 70% charged at this point; The voltage is now controlled very accurately (this is very important) at the threshold voltage while the current drops off naturally. Once the current reaches the lower cutoff ( about 100 mA per parallel cell typically), charging is stopped after a top-off time delay. So this battery charger consists of control circuit based on atmega8, charge control circuitry and reference voltage circuit. AVR-GCC v3.2 project files… Continue reading

I-Button electronic door lock

Electronic lock developed by Dim uses the Dallas i-Button DS1990 data carrier. I-Button transfers identification data via 1-wire protocol which only requires single data lead and ground. It carries unique 64-bit registration number which can serve as a key to unlock an electric door lock.   Control circuit is based on Atmega32 microcontroller which stores up to 20 key data plus master key in EEPROM memory and also assigns a person name to key ID which can be displayed on LCD while key is activated. Electronic lock can be configured via RS232 interface. Keys and persons can be assigned using PC windows screens. Project files are available in downloads page. It is hard to say how this is convenient to use such key – maybe in some specific areas like event tracking, inventory marking. Of course it is probably more convenient to use RFID. Continue reading

Running uClinux on ARM microcontroller

ARM microcontrollers are 32 bit systems with high potential. It is enough power to run small operation systems like uClinux. The only limitation is that operations systems require much more program memory than internal chip memory can provide. Ulrich Radig used a NXP LPC2294 ARM7 microcontroller which carries 256K of internal Flash memory which is enough to place a boot-loader which loads uClinux kernel to SRAM.   It interesting how he solved low memory problem. SD card was split in to two partitions where one partition FAT16 was used to store kernel which has to be loaded to memory, second is Linux (ext2) partiion for custom use. To support this he has written a simple driver. When Linux is loaded, it is easy to run various custom programs like web servers, and so on. Continue reading

AVR programmer and debugger in one board

Martin Thomas has this nice tool called Evertool in his collection. It is a AVRISP/STK500 and Programmer/JTAG debugger on a single board. It is compatible with AVRStudio with firmware upgrade-ability. So always new devices are supported.   Evertool has following features: ISP Programmer compatible with Atmel AVRISP, with AVRStudio and avrdude accessibility; JTAG debugger compatible with Atmel JTAGICE, works with AVRStudio and AvaRice; All Atmel AVR devices supported with their AVRISP and JTAGICE.; Easy update of the programmer via RS232/serial port; Rescue clock generation to recover from wrong fuse-bit-settings; Simple hardware, standard parts; Evertool uses bootloader which is free for non-commercial use. Download latest version from here. Project is very well documented. There are also simplified versions of programmer available like JTAG only debugger, or even Evertool-USB version suggestion. Thomas Martin also has a nice collection of microcontroller programming examples including WinAVR and WinARM which is supported by him. Continue reading

Smallest PIC bootloader

Bootloaders can be really small. This one developed by Claudiu Chiculita takes only 100 words of program space but supports all families of PIC including 16F, 18F and dsPIC. There are many bootloaders available(check the list of bootloaders in project homepage), but author wanted to do it smaller, with wide device range support, less buggy.   For those who don’t know – a bootloader is a small program which is first executed after MCU startup and communicates with bootloader program which is normally is run on PC. The bootloader loads and stores firmware in microcontrollers flash memory which is then executed normally. In other words you don’t need a programmer to flash microcontroller. Why bootloader got so small.. the only way to do this is to shift most of tasks to PC software while leaving simple routines for bootloader. As author says – bootloader can be even smaller – up to 32words :), but it loses flexibility, reliability and speed. Continue reading

Traffic warning system for Los Angeles freeways

Traffic warning system or so called TDDY(Traffic Data Display ) is a vehicle-mounted, receive-only traffic warning system designed by Dubravko Gacina. System may be used to minimize the risk of vehicle like like public buses, emergency response vehicles, cabs, delivery vehicles accidents. An ATmega128 microcontroller and a matrix of 512 bi-color LEDs organized as a map of the Los Angeles freeways comprise the system.     Collisions between emergency vehicles and other vehicles are common events. Many of these collisions occur at inter-sections. Public vehicles approaching at 90 degrees to the direction of travel of emergency vehicles are very difficult to see. Sensors mounted on the vehicle could alert emergency vehicle drivers of approaching cross traffic. In such a scenario, sensors sends information to some sort of dispatching center which process incoming data and, in return, sends data to interested parties in form of positional information to traffic warning devices mounted in vehicles. This design presents an early implementation of traffic warning device. Conventionally, it uses server software hosted on PC and pager which serves as client to display position… Continue reading