Tinyboard is a small, multi-purpose printed-circuit board (PCB), designed for applications built around 8-pin Atmel AVR Tiny microcontrollers (ATTiny25/45/85, ATTiny13, etc). It is designed to be flexible enough to allow repurposing of each pin using 0-Ohm links or other passive components.
- Small size
- 50 mm by 24.5 mm with two M2 mounting holes
- Pin configurability
- Various pin configurations possible (not all simultaneously, of course):
- up to two step-up (boost) converters with feedback measurement using ATTiny A/D converter (e.g. for powering the chain of LEDs)
- up to five high-current switched outputs driven by N-channel MOSFET transistors (SOT-23 footprint)
- up to five digital inputs (optionally with external pull-down resistors)
- up to five analog inputs with low-pass input filters
- up to five digital output lines
- Per-pin headers
- Each ATTiny pin PB0 to PB4 has its own three-pin header for connecting external devices. The header has a negative pin (usually GND), a positive pin (either Vcc or Vin, configurable using 0-Ohm link), and an I/O pin.
- Multiple power configurations
- The board has two power rails: un-stabilized external power Vin,
and stabilized power Vcc used for powering the ATTiny MCU. Various
configurations are possible:
- powered by externally stabilized voltage (Vin and Vcc interconnected by 0-Ohm link)
- powered by two separate sources (externally stabilized Vcc for the MCU itself, and Vin for high-power parts)
- powered by unstabilized power Vin with an on-board voltage regulator.
- Programmable in-system
- In-system programmable using standard 10-pin header, compatible e.g. with the USBASP programmer. Pins used for programming (MOSI, MISO, SCK) can be disconnected from the rest of the circuit during programming with jumpers (J10 to J30).
- Power-on LED
- Power-on indicator LED connected between Vcc and GND (with a resistor, of course)
- Spare footprints
- There are two unconnected SOT-23 and two 1206 footprints on the board, usable for adding more components manually connected to the rest of the system e.g. by wires.
- Manual soldering
- The footprints used are large enough to allow also manual soldering (footprints used are SO-8, SOT-23, 1206, and 1210).
- 150-mil or 200-mil MCUs
- The ATtiny MCU footprint (U1) has been extended to accomodate both narrow 8S1 (150 mil) and medium 8S2 (208 mil) parts.
- Open Source
- The design is available in the source form under the terms of GNU GPLv2 for further modification and development.
- Section with sample applications added, with the first application being simple bike LED lights.
- Minor web page updates, zip file with the Gerber files published.
- Received a notification from a person who has received two Tinyboards through the Itead Studio Open Source option. Thanks for letting me know! My own boards are still in Hong Kong, though.
- Gerber files sent to Itead Studio for manufacturing. They have 5x5 minimum size, so I have modified the output to have two tinyboards in this dimension.
- The boards have finally arrived, after leaving Hong Kong more than a month ago. The manufacturer have even make a slot from drilled holes between both panels so it is possible to snap them off.
- A new section added: Known Bugs
Tinyboard is designed to be repurposed. Here are projects I did with it.
Simple LED bike lights
I wanted a simple LED driver for my kids' bikes, simpler than my own bike lights. So I used Tinyboard with one step-up driver, battery voltage monitoring, one button (with software power-off), and one status LED. Tinyboard is roughly the same size as 9V battery, so I have chosen 9V battery as power source. The firmware source code and the README file (containing the firmware description and bill of materials) are available from Tinyboard Git repository.
- I have apparently sent a slightly older version to the fab, and there is missing connection between the Pin 3 of PB4 header and the R54 footprint. Not a big deal, for most applications R53 is used instead of R54, and the missing trace is about two milimeters distance, so it can be bridged using wire.
- ATiny13 and ATiny25/45/85 have different PWM output pins, and also ADC channels are not available on each pin. This means that the step-up converter can be built on PB4/PB3 of ATtiny25/45/85, but not with ATiny13. In the similar way, the step-up converter on PB0/PB1 can be built using ATtiny13 only. The possible solution is to reroute the PB0-PB2 pins on or near J10-J30 jumpers.
This project is Free software, and can be distributed under the terms of GNU General Public License, version 2 (only).
- Git repository (use "git clone https://www.fi.muni.cz/~kas/git/tinyboard.git" to download).
- The plotter files in RS-274X ("Gerber") format: tinyboard-20130225-1807.zip (two boards panelized to fit the 5x5cm fab process)
- The source code tarball: TBD
Sample power configurations
The board has two power rails: Vin can be higher-power unstabilized rail for usage with MOSFETs, and Vcc is the rail which powers the ATTiny MCU. Its voltage should match the ATTiny input voltage range. Vcc has a decoupling capacitor C3 near ATTiny itself.
- Single externally stabilized power
- When the stabilized voltage is provided externally, it can be directly connected to pin 1 of the PWR1 header (and pin 2 for GND). The Vcc and Vin lines can be clamped together by 0-Ohm link R2. U2 and U3 are omitted, decoupling capacitors C1 and C2 can be omitted as well.
- Two external power rails
- The rail for powering the MCU should be connected to pin 1 of PWR1 header, GND to pin 2 of PWR1, and the other power line (possibly higher-voltage for being driven by MOSFETs) to the pin 3 line. U2 and U3 are omitted, decoupling capacitors C1 and C2 can be omitted as well.
- Unstabilized power source
- The voltage regulator is required: either the one with SOT-23 footprint as U2, e.g. MCP170x, or larger one with SOT-223 footprint as U3 (beware of the pin-outs, there are SOT-223 voltage regulators with different pin-outs; this board needs pin 1 of U3 to be GND, pin 2 and the pad (pin 4) to be Vout, and pin 3 to be Vin). The incoming power should be connected to pin 3 of the PWR1 header, and the negative side (GND) to pin 2. R2 is omitted, and C1 and C2 should be selected as recommended for the given voltage regulator.
Sample I/O pin configurations
Each of the five I/O pins has its own header, PB0 to PB4. The header has three pins:
- Pin 1 is either connected to GND (PB1 to PB3 headers), or can be connected to GND with a small resistor or 0-Ohm link R15, and R55 (PB0 and PB4 headers). This resistor can be used for measuring the current at the output of the step-up converter, if used.
- Pin 2 is either connected to the appropriate pin of ATTiny, or to the drain of the MOSFET, or to the output of the step-up converter.
- Pin 3 can be connected to Vin using R13 to R53 (either directly with 0-Ohm links, or indirectly with non-zero resistors). Or it can be connected to Vcc using R14 to R54 0-Ohm links or resistors.
- Directly connected pin
- To directly connect the pin of ATTiny to pin 2 of the respective header, use Rx2 (R12 to R52) 0-Ohm link. Omit Qx0, Rx0, Lx0, Dx0, Rx1, and Cx1 altogether.
- Pin externally pulled low
- The same as above, but use Rx0 (R10 to R50) as the low-pulling resistor.
- Low-pass input filter for A/D converter
- Put a capacitor instead of a resistor on a Rx0 footprint, and use R12 as input resistor. All other Qx0, Dx0, Lx0, Rx1 and Cx1 can be omitted.
- MOSFET driven output
- Use a MOSFET with SOT-23 footprint as Qx0, pull the gate low with Rx0, and connect the drain to pin 2 of the respective header using Rx1 (R11 to R51). Shortcut the diode (D10, D50) footprint for PB0 and PB4 header.
- Step-up converter
- Up to two step-up converters can be used: The first one with the PB0 header, which also uses PB1 ATTiny pin as A/D converter input for the feedback measurement, and the second one with the PB4 header and PB3 ATTiny pin as ADC. Put an inductor on L10 or L50, MOSFET with SOT-23 footprint as Q10 or Q50, pull the MOSFET gate low with R10 or R50, put a 0-Ohm link as R11, and a Schottky diode as D10 or D50. Use big capacitor as C11 or C51 and a small measurement resistor as R15 or R55. For a feedback measurement, create a low-pass input filter on PB1 or PB3, respectively: use R25/R45 as input resistor, and put a small capacitor on the R20/R40 footprint. Use PWM output on PB0/PB4, and A/D converter input on PB1/PB3. See the Boost converter Wikipedia page for the theory of operation of the step-up converter, and my Bike lights project for sample source code for the step-up converter regulation.