#!/bin/bash ###################################################################### #Copyright (C) 2020 Kris Occhipinti #https://filmsbykris.com #This program is free software: you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation, either version 3 of the License, or #(at your option) any later version. #This program is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. #You should have received a copy of the GNU General Public License #along with this program. If not, see . ###################################################################### mk="/usr/share/arduino/Arduino.mk" sketchdir="$HOME/sketchbook" [[ ! -f "$mk" ]] && sudo apt-get install arduino-mk mkdir -p "$sketchdir" && cd "$sketchdir" && ln -s "$mk" 2> /dev/null mkdir -p blink && cd blink && cat << EOF > blink.ino // Blink void setup(void) { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, LOW); delay(1000); digitalWrite(13, HIGH); delay(1000); } EOF tag="atmega328 Arduino Duemilanove or Nano w/ ATmega328 atmega168 Arduino NG or older w/ ATmega168 atmega8 Arduino NG or older w/ ATmega8 bt Arduino BT w/ ATmega168 bt328 Arduino BT w/ ATmega328 diecimila Arduino Diecimila, Duemilanove, or Nano w/ ATmega168 fio Arduino Fio lilypad LilyPad Arduino w/ ATmega168 lilypad328 LilyPad Arduino w/ ATmega328 mega Arduino Mega (ATmega1280) mega2560 Arduino Mega 2560 mini Arduino Mini pro Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168 pro328 Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 pro5v Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega168 pro5v328 Arduino Pro or Pro Mini (5V, 16 MHz) w/ ATmega328 uno Arduino Uno" tag="$(echo "$tag" |fzf --prompt "Select Board"|awk '{print $1}')" #Set Tag #echo "What is your TAG? (example: atmega328)" #read tag [[ "$tag" = "" ]] && tag="atmega328" echo "Tag set to $tag" #Set Port port="$(ls /dev/ttyUSB*|fzf --prompt "What is your Serial Port (example: ttyUSB0)")" [[ "$port" = "" ]] && port="ttyUSB0" echo "Serial Port set to $port" cat << EOM > Makefile BOARD_TAG = $tag ARDUINO_PORT = $port ARDUINO_LIBS = ARDUINO_DIR = /usr/share/arduino include ../Arduino.mk EOM echo "Setup complete!!!" echo "'make' to make" echo "'make upload' to make and upload to board" echo "Project is in $HOME/sketchbook"