Skip to content

mmitch/tasta

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 

Repository files navigation

tasta - small USB keyboard
Copyright (C) 2015 by  Christian Garbs <mitch@cgarbs.de>
Licensed under GNU GPL v2 or v3

Project homepage:
-----------------
https://github.com/mmitch/tasta


Description:
------------
tasta a small USB HID keyboard with just two keys and the
corresponding code to program the ATtiny85.  This is my first
microcontroller/PCB project.  I developed it as a foot switch for
push-to-talk in TeamSpeak as I don't have any spare keys (or fingers)
during gaming.  I fiddled with this on and off over the course of two
years, now it should be ready to do something.


Hardware:
---------
The curcuit schematics and PCB layout are available in different
formats in the 'circuit' subdirectory.  They were created with KiCad,
so it's propably best to edit them with KiCad, too, if the need
arises.

There are some optional components in the layout:

 - You can omit the LED and R5 if you don't need it.

 - You can omit either key switch or the K1 connector as needed.  K1
   is used to provide key input from 'offboard', like the foot switch
   I use.

 - R4 is propably not needed.  In fact, I have never included it,
   neither in test runs nor in the final PCB.  But the docs say you
   should pull up your reset pin, so the possibility to insert the
   resistor is there if you should ever need it.  (I did include it
   'just in case' so I would not have to throw away the first PCB
   batch.)


Software:
---------
To build the software, go to the 'source' directory and just run
'make'.  A normal Atmel development environment is needed, so install
'avr-gcc' and friends.

To configure the software (to choose your own keybindings), edit
'main.c' and look for these two sections:
 - EDIT BELOW FOR YOUR OWN LED CONFIGURATION
 - EDIT BELOW FOR YOUR OWN KEY CONFIGURATION

Default configuration is:
 - key 1 = GUI left (Windows key -> modifier only)
 - key 2 = return
 - the LED is on if key 1 || key 2 is pressed

To flash the code to your ATtiny85, run 'make flash'.  The default
configuration uses avrdude with a 'usbasp' compatible programmer.
Edit the AVRDUDE_* variables in 'Makefile.orig' to change this.


Credits:
--------
PCB and basic code are heavily influenced from other projects, as you
can see in the repository log.  Other parts were rewritten, redone and
rearranged by myself.  Credits where credits are due:

 * VUSB project for USB on Atmel microcontrollers:
   http://www.obdev.at/vusb/

 * VUSB HIDKeys example project for a USB HID compliant keyboard:
   https://www.obdev.at/products/vusb/hidkeys.html

 * Information on running a VUSB project without a crystal taken from
   flipwork's 1-Key-keyboard:
   http://blog.flipwork.nl/?x=entry:entry081009-142605

 * better OSCCAL calibration routine taken from here:
   http://codeandlife.com/2012/02/22/v-usb-with-attiny45-attiny85-without-a-crystal/

 * My PCBs were printed at Hackvana.  I've never done this before and
   everything went right on the first try (well, on the second, I had
   one misnamed file in the rev_0x0002 export, but that's my fault):
   http://www.hackvana.com/


Licensing:
----------
The VUSB example projects are licensed under GPL 2 or GPL 3 (you can
choose).  The imported code from flipwork and codeandlife is based on
VUSB projects as well (HIDKeys/EasyLogger), so they're GPL 2/3, too.
My project thus is also GPL 2/3 and everybody's happy.