2017-10-28 21:42:28 +02:00
|
|
|
# TinyFinger
|
|
|
|
|
2017-12-01 02:00:58 +01:00
|
|
|
TinyFinger is a small device powered by an ATtiny45 to produce pseudorandom
|
2017-10-28 21:42:28 +02:00
|
|
|
numbers for selecting student groups during the computer science hardware
|
|
|
|
courses at Leipzig University.
|
|
|
|
|
|
|
|
## board
|
|
|
|
|
|
|
|
The board is designed in KiCad and uses a single sided pcb layout using
|
|
|
|
mostly SMD components. The routing was done manually.
|
|
|
|
|
|
|
|
## code
|
|
|
|
|
|
|
|
The firmware for the ATtiny is written as an Arduino sketch using the
|
2017-12-01 02:00:58 +01:00
|
|
|
[ATTinyCore] board definitions. It uses a [linear congruential generator]
|
2017-10-28 21:42:28 +02:00
|
|
|
for generating pseudorandom numbers and transforms them to the needed
|
|
|
|
range using the gcc uniform_int_dist c++std implementation.
|
|
|
|
|
2018-03-02 11:50:59 +01:00
|
|
|
Flashing the firmware can be done using a usual Arduino (UNO in our case)
|
|
|
|
programmed as an ISP with the ArduinoISP example sketch included in the IDE.
|
2018-03-01 08:02:48 +01:00
|
|
|
|
2018-03-02 11:50:59 +01:00
|
|
|
Then the Programmer (Arduino) should be connected to the Target like this:
|
|
|
|
|
|
|
|
| **Programmer's pins** | **Target's pins** |
|
|
|
|
|:---------------------:|:-----------------:|
|
|
|
|
| 13 | SCK |
|
|
|
|
| 12 | MISO |
|
|
|
|
| 11 | MOSI |
|
|
|
|
| 10 | RESET |
|
|
|
|
| 5V | VCC |
|
|
|
|
| GND | GND |
|
2018-03-01 08:02:48 +01:00
|
|
|
|
|
|
|
The pins on our TinyFinger board are from left to right:
|
|
|
|
GND, MISO, VCC, SCK, MOSI, RESET.
|
2017-10-28 21:42:28 +02:00
|
|
|
|
|
|
|
## case
|
|
|
|
|
|
|
|
The case is modelled in Blender and intended for 3d printing, e.g. using
|
|
|
|
Cura after exporting the model as an stl file.
|
|
|
|
|
2017-12-01 02:00:58 +01:00
|
|
|
[ATTinyCore]: https://github.com/SpenceKonde/ATTinyCore
|
2017-10-28 21:42:28 +02:00
|
|
|
[linear congruential generator]: https://en.wikipedia.org/wiki/Linear_congruential_generator
|