This is a simple device that can be used as a Notification System that can be connected to a PC via USB and can command external devices like a buzzer, beacon etc.
My plan was to make a small device that will start a beacon and will activate a buzzer when it receives the command from a PC using usb port.
The device use ATtiny2313 microcontroller from Atmel and is powered from the usb port.
I am using the V-USB driver for the microcontroller and libusb-win32 for the PC program to control the device, both are open source and easy to use.
I have chosen to use a prototyping board (Stripboard) instead of making a nice PCB for the device since I was experimenting a lot for this project so it was easy this way.
The next version of the Notification System will have a nice PCB.
After the device is connected to a PC using an usb cable it can be controlled with a small console program that can also be called from other programs.
This version is designed to work only on Windows but next version will support other operating systems like Linux and Mac.
Here is a small video with the device in action:This is another test after the device was recovered from a building on fire:
Schematics
I have made the schematics in EAGLE Light Edition wich is FREE.
Components List
Here is the list with the components used in the project:
Prototype images
Here are some images with the prototype board
Firmware
The firmware is the code that resides on the microcontroller and is developed in c using AVR Studio 5.
Before building the code be sure to check the optimization level for the c compiler to Optimize for size -Os.
The firmware use Virtual USB port for AVR microcontroller so if you need more info about V-USB check this documentation wiki.
You can download the firmware files from here.
To upload the firmware to the microcontroller I am using USBasp programmer with eXtreme Burner.
Here are some image with the USBasp programmer that I use:
Be sure to set the fuse bit correctly so that the attiny2313 works at 12MHz. I am using 0xEF for low fuse and 0xDF for high fuse.
WARNING! Setting the fuse bits incorrectly can make the microcontroller unusable.
After connecting the device to the PC you must install the libusb drivers manually, you can get the drivers from here.
Controller program
The controller program is made in C language using libusb-win32 library and is compiled with MinGW using Eclipse IDE for C/C++.
You can download the controller from here.
Before building the project be sure in the properties in the MinGW C Linker->Libraries the path is set to lib and in the libraries is added usb.
Also since #include “usbdrv/usbconfig.h” is located into the firmware code you need to add in the GCC C Compiler->Includes the path where “usbdrv/usbconfig.h” is located on your drive.
License
This project is distributed under the terms of the GNU General Public License (GPL) version 3.
Please read the License.txt for more info.
The project is using V-USB and libusb-win32 so please read read the V-USB license and libusb-win32 license.
Contribution
This project can be found on github at https://github.com/bugariu-catalin/Notification-System
where you can contribute to the code, access the last version and submit issues.
Please feel free to contact me if you have any questions regarding this project.