A motorized fader program for the ATtiny13A uC.
Go to file
jakeg00dwin b377eab7c0 Updated with comments on prescaler usage for F_CPU 2025-02-20 16:05:23 -08:00
.template_files Initial commit 2025-02-10 18:25:49 +00:00
build Initial commit 2025-02-10 18:25:49 +00:00
docs Initial commit 2025-02-10 18:25:49 +00:00
inc Updated the motor pulse define, too fast of a pulse doesn't wakeup the motor driver. 2025-02-18 19:29:30 -08:00
mocks Added mocks 2025-02-16 10:13:45 -08:00
src Adjusted file to use F_CPU after DIV8 and allow speed control during movement. 2025-02-20 15:45:29 -08:00
tests Added linux include dir for AVR. 2025-02-20 15:46:12 -08:00
.gitignore ignore my dev notes. 2025-02-10 10:59:03 -08:00
.gitmodules Initial commit 2025-02-10 18:25:49 +00:00
CMakeLists.txt Updated version number from changes. 2025-02-20 15:55:34 -08:00
Doxyfile Updated to project version 0.1.1 2025-02-14 12:53:53 -08:00
README.md updated version number and documentation 2025-02-14 14:12:03 -08:00
avr-gcc-toolchain.cmake Updated with comments on prescaler usage for F_CPU 2025-02-20 16:05:23 -08:00
compile_commands.json Initial commit 2025-02-10 18:25:49 +00:00
otto.sh updated menu and setup correct make commands. 2025-02-14 13:04:22 -08:00
setup.sh Initial commit 2025-02-10 18:25:49 +00:00

README.md

Motorized Fader

Description

Program for the ATtiny13A that controls a motorized fader by moving into a saved position read out of EEPROM memory.

Requirements

Hadware:

  • ATtiny13A/ATtiny45/ATtiny85.
  • usbasp programmer.
  • UNIX computer(to use the scripts for automation).

Software:

  • avr-gcc
  • avrdude(<=7.0)
  • CMAKE(<= 3.20)

Instructions

Setting Fader Position

To set the fader position preform a long press of the button.

The position will now be saved into the EEPROM memory.

Move to Position

To automatically move the fader into the saved location preform a quick press of the button.

The speed can be adjusted by changing the input value of the speed pot. The speed adjustment affects the on/off ratio of the motor and has a programmed minimum speed value in the function to prevent endless looping.

Building Project(Windows)

Flashing the Project

On Windows(usbtinyisp)

  1. Install the usbtiny driver:
    1. plug in usbtiny device
    2. Install the drivers from: adafruit
  2. open Powershell
  3. navigate to the repo directory cd Downloads\gf_002
  4. enter the command below.
./avrdude.exe -p t13 -c usbtiny -B 125kHz -U flash:w:.\build\src\main.hex -U lfuse:w:0x6A:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m

On Windows(usbASP)

  1. Install the usbasp driver:
    1. plug in usbasp device
    2. run the 'zadig-2.8.exe' program
    3. select the libusb 32 on the right by clicking the down arrow to select.
  2. open Powershell
  3. navigate to the repo directory cd Downloads\gf_002
  4. enter the command below.
./avrdude.exe -p t13 -c usbasp -B 125kHz -U flash:w:.\build\src\main.hex -U lfuse:w:0x6A:m -U hfuse:w:0xFF:m -U lock:w:0xFF:m

Building Project(UNIX)

Building Hex Files

Builds the binary hex files. They are located in the build/src/ directory found in the project root.

cd ./<PROJECTNAME>
echo "2" | ./otto.sh

Automated Flashing Hex Files

Builds then flashes the binary hex files onto the micro-controller

cd ./<PROJECTNAME>
echo "4" | ./otto.sh

Running Tests

The code below will run the cpputest tests in verbose and color mode.

cd ./<PROJECTNAME>
echo "1" | ./otto.sh