diff --git a/.kaleidoscope-builder.conf b/.kaleidoscope-builder.conf
deleted file mode 100644
index 4acea89e..00000000
--- a/.kaleidoscope-builder.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-# -*- mode: sh -*-
-
-DEFAULT_SKETCH=Kaleidoscope
diff --git a/bin/find-device-port-freebsd b/bin/find-device-port-freebsd
deleted file mode 100755
index afe08934..00000000
--- a/bin/find-device-port-freebsd
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/env perl
-
-use warnings;
-use strict;
-
-#
-# Scan all USB devices to find the Model 01's modem device number.
-#
-my @output = qx(/usr/sbin/usbconfig show_ifdrv);
-my $serial_port_number;
-
-foreach my $line (@output) {
- chomp $line;
-
- next unless $line =~ m/umodem(\d+):.*Keyboardio Model 01/;
- $serial_port_number = $1;
-}
-
-die "Can't find Model 01" unless defined($serial_port_number);
-
-my $serial_port_name = "/dev/cuaU$serial_port_number";
-die "Missing serial port at $serial_port_name" unless -e $serial_port_name;
-print "$serial_port_name\n";
-exit 0;
diff --git a/bin/find-device-port-linux-udev b/bin/find-device-port-linux-udev
deleted file mode 100644
index 5d00c7a6..00000000
--- a/bin/find-device-port-linux-udev
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env perl
-# find-device-port-linux-udev - Kaleidoscope helper tool
-# Copyright (C) 2017-2018 Keyboard.io, Inc.
-#
-# 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, version 3.
-#
-# 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 .
-
-use warnings;
-use strict;
-
-use FindBin qw{$Bin};
-
-die "Usage: $0 VID PID [-v]\n" unless @ARGV >= 2;
-
-my $vid = shift @ARGV;
-my $pid = shift @ARGV;
-my $verbose = shift @ARGV if (@ARGV);
-my $prefix = '/dev/serial/by-id/';
-my @paths = `ls $prefix`;
-my %devices;
-my @log;
-
-sub debug {
- if ($verbose) {
- print STDERR @_;
- } else {
- push @log, @_;
- }
-}
-
-sub print_warning {
- print STDERR @_;
-}
-
-
-debug "Looking for USB device with vid=$vid and pid=$pid\n";
-
-for my $path (@paths) {
- chomp($path);
- debug "Examining $path\n";
- debug " not symlink\n" unless -l $prefix . $path;
- next unless -l $prefix . $path;
- my @data = `udevadm info -q property --name=${prefix}${path}`;
- for my $line (@data) {
- chomp($line);
- my ( $key, $val ) = split( /=/, $line, 2 );
- $devices{$path}{$key} = $val;
- }
- if ( hex $devices{$path}{'ID_VENDOR_ID'} != hex $vid ) {
- debug " ID_VENDOR_ID $devices{$path}{'ID_VENDOR_ID'} != $vid\n";
- next;
- }
- if ( hex $devices{$path}{'ID_MODEL_ID'} != hex $pid ) {
- debug " ID_MODEL_ID $devices{$path}{'ID_MODEL_ID'} != $pid\n";
- next;
- }
-
- debug " Found keyboard!\n";
-
- if ( $devices{$path}{'ID_MM_DEVICE_IGNORE'} ) {
- debug " ID_MM_DEVICE_IGNORE is set - good!\n";
- }
-
- if ( $devices{$path}{'ID_MM_CANDIDATE'}) {
- my $rules = "$Bin/../etc/60-kaleidoscope.rules";
- print_warning < and Jesse Vincent
-
-use warnings;
-use strict;
-
-my $vid = shift @ARGV;
-my $pid = shift @ARGV;
-
-if (!defined $vid || !defined $pid) {
- die "$0 has two required parameters, VID and PID";
-}
-
-# ioreg might be more machine-readable than system_profiler, but I haven't been able to
-# get it to produce useful output
-my @output = qx(/usr/sbin/system_profiler SPUSBDataType 2> /dev/null);
-
-my $serial = "";
-my $location = "";
-
-my $output = join('', @output);
-
-my @stanzas = split(/\n\n/, $output);
-foreach my $stanza (@stanzas) {
- if ($stanza =~ /Product ID: ${pid}/ && $stanza =~ /Vendor ID: ${vid}/) {
- if ($stanza =~ /Serial Number: (.*?)$/m) {
- $serial = $1;
- }
- if ($stanza =~ /Location ID: (.*?)$/m) {
- $location = $1;
- }
-
- if ($serial) {
- try_for_raw_serialnum($serial);
- }
- if ($location) {
- try_for_location_id($location);
- }
- if ($serial) {
- try_for_sn_prefix($serial);
- }
-
- }
-}
-
-sub try_for_raw_serialnum {
- my $sn = shift;
-
- my $serial_port_name = "/dev/cu.usbmodem" . $sn;
- exit_with_port_if_exists($serial_port_name);
-
- # High Sierra sometimes has a mismatch between the serial number and the device
- # filename. I'm not sure why, but system_profiler has a serial number ending in "E",
- # whereas the device filename ends in "1". In fact, when I change HID.getShortName()
- # to return "kbio02", the final character is replaced with a "1".
-
- if ($serial_port_name =~ /\d$/) {
- chop $serial_port_name;
- exit_with_port_if_exists($serial_port_name . "1");
- } else {
- # If the serial port name doesn't end with a digit, try -appending- rather than replacing
- # the last character of the port name
- exit_with_port_if_exists($serial_port_name . "1");
-
- # and if that didn't work, try replacing the last character with a "1" anyway.
- # Jason Koh reports that he saw this behavior as required on Catalina in May 2020.
-
- chop $serial_port_name;
- exit_with_port_if_exists($serial_port_name . "1");
- }
-
-
-}
-
-sub try_for_location_id {
- my $location_id = shift;
-
- # macOS truncates the string of "0"s from the right of the location id.
- # Here, also, the final character is an appended "1", so if macOS ever stops doing that,
- # this will need an update, as well.
- if ($location_id =~ /0x(\d+?)0*\b/) {
- my $loc = $1;
- exit_with_port_if_exists("/dev/cu.usbmodem" . $loc . "1");
- }
-}
-
-sub try_for_sn_prefix {
- my $sn = shift;
- # If macOS has appended 'E', take it off to maximise our chances of a match.
- $sn =~ s/E$//;
-
- # If none of the above tests succeeds, just list the directory and see if there are any
- # files that have the device shortname that we expect:
- foreach my $line (qx(ls /dev/cu.usbmodem*)) {
- if ($line =~ /${sn}/) {
- chomp $line;
- print $line;
- exit 0;
- }
- }
-}
-
-sub exit_with_port_if_exists {
- my $serial_port_name = shift;
-
- if (-e $serial_port_name) {
- print $serial_port_name;
- exit 0;
- }
-}
diff --git a/bin/find-device-port-windows.ps1 b/bin/find-device-port-windows.ps1
deleted file mode 100644
index 0764efd3..00000000
--- a/bin/find-device-port-windows.ps1
+++ /dev/null
@@ -1,41 +0,0 @@
-# Usage:
-#
-# > find-device-port-cygwin.ps1 '1209' '2300' -Format COM
-# COM7
-# > find-device-port-cygwin.ps1 '1209' '2300' -Format WSL
-# /dev/ttyS7
-# > find-device-port-cygwin.ps1 '1209' '2300' -Format Cygwin
-# /dev/ttyS6
-Param(
- [string]$VendorID,
- [string]$ProductID, # Careful; $PID is a different builtin
- [ValidateSet('COM','Cygwin','WSL')][string]$Format
-)
-
-$DeviceParametersRegKey = @(Get-ChildItem -ErrorAction SilentlyContinue -Recurse 'HKLM:\SYSTEM\CurrentControlSet\Enum' |
- Where-Object Name -match "VID_$VendorID&PID_$ProductID" |
- Where-Object Property -eq PortName)
-
-if ($DeviceParametersRegKey.Count -eq 0) {
- throw "Could not find any devices matching VID $VendorID and PID $ProductID which were mapped to a COM port"
-}
-
-if ($DeviceParametersRegKey.Count -ge 2) {
- throw "More than one devices matching VID $VendorID and PID $ProductID were found mapped to a COM port"
-}
-
-# This will be of form 'COM6'
-$COMPortName = ($DeviceParametersRegKey | Get-ItemProperty).PortName
-$COMPortNumber = [int]$COMPortName.Substring(3)
-
-if ($Format -eq 'COM') {
- $Output = $COMPortName
-} elseif ($Format -eq 'WSL') {
- $Output = "/dev/ttyS$COMPortNumber"
-} elseif ($Format -eq 'Cygwin') {
- $CygwinPortNumber = $COMPortNumber - 1
- $Output = "/dev/ttyS$CygwinPortNumber"
-}
-
-# "-NoNewline" below is important to prevent bash from seeing an extra trailing '\r'
-Write-Host -NoNewline $Output
diff --git a/bin/kaleidoscope-builder b/bin/kaleidoscope-builder
deleted file mode 100755
index 6d2c9f90..00000000
--- a/bin/kaleidoscope-builder
+++ /dev/null
@@ -1,738 +0,0 @@
-#!/usr/bin/env bash
-# kaleidoscope-builder - Kaleidoscope helper tool
-# Copyright (C) 2017-2018 Keyboard.io, Inc.
-#
-# 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, version 3.
-#
-# 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 .
-
-set -e
-
-######
-###### Build and output configuration
-######
-
-absolute_filename() {
- echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")"
-}
-
-
-
-build_version () {
- : "${LIB_PROPERTIES_PATH:="../.."}"
- GIT_VERSION="$(cd "${SKETCH_DIR}"; if [ -d .git ]; then echo -n '-g' && git describe --abbrev=4 --dirty --always; fi)"
- LIB_VERSION="$(cd "${SKETCH_DIR}"; (grep version= "${LIB_PROPERTIES_PATH}/library.properties" 2>/dev/null || echo version=0.0.0) | cut -d= -f2)${GIT_VERSION}"
-}
-
-build_paths() {
- # We need that echo because we\re piping to cksum
- # shellcheck disable=SC2005
- SKETCH_IDENTIFIER="$(echo "${SKETCH_FILE_PATH}" | cksum | cut -d ' ' -f 1)-${SKETCH_FILE_NAME}"
- : "${KALEIDOSCOPE_TEMP_PATH:=${TMPDIR:-/tmp}/kaleidoscope-${USER}}"
-
- : "${KALEIDOSCOPE_BUILD_PATH:=${KALEIDOSCOPE_TEMP_PATH}/sketch}"
- : "${KALEIDOSCOPE_OUTPUT_PATH:=${KALEIDOSCOPE_TEMP_PATH}/sketch}"
-
- : "${SKETCH_OUTPUT_DIR:=${SKETCH_IDENTIFIER}/output}"
- : "${SKETCH_BUILD_DIR:=${SKETCH_IDENTIFIER}/build}"
-
- : "${BUILD_PATH:=${KALEIDOSCOPE_BUILD_PATH}/${SKETCH_BUILD_DIR}}"
- : "${OUTPUT_PATH:=${KALEIDOSCOPE_OUTPUT_PATH}/${SKETCH_OUTPUT_DIR}}"
-
- : "${CCACHE_WRAPPER_PATH:=${KALEIDOSCOPE_TEMP_PATH}/ccache/bin}"
- : "${CORE_CACHE_PATH:=${KALEIDOSCOPE_TEMP_PATH}/arduino-cores}"
-
- mkdir -p "$CORE_CACHE_PATH"
- mkdir -p "$BUILD_PATH"
-}
-
-build_filenames () {
- : "${OUTPUT_FILE_PREFIX:=${SKETCH_BASE_NAME}-${LIB_VERSION}}"
- : "${HEX_FILE_PATH:=${OUTPUT_PATH}/${OUTPUT_FILE_PREFIX}.hex}"
- : "${HEX_FILE_WITH_BOOTLOADER_PATH:=${OUTPUT_PATH}/${OUTPUT_FILE_PREFIX}-with-bootloader.hex}"
- : "${ELF_FILE_PATH:=${OUTPUT_PATH}/${OUTPUT_FILE_PREFIX}.elf}"
- : "${LIB_FILE_PATH:=${OUTPUT_PATH}/${OUTPUT_FILE_PREFIX}.a}"
-}
-
-
-enable_ccache () {
- if [ -z "${CCACHE_NOT_SUPPORTED}" ] && [ "$(command -v ccache)" ]; then
- if ! [ -d "$CCACHE_WRAPPER_PATH" ]; then
- mkdir -p "$CCACHE_WRAPPER_PATH"
-
- if ! [ -h "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}${C_COMPILER_BASENAME}" ]; then
- ln -s "$(command -v ccache)" "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}${C_COMPILER_BASENAME}"
- fi
-
- if ! [ -h "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}${CXX_COMPILER_BASENAME}" ]; then
- ln -s "$(command -v ccache)" "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}${CXX_COMPILER_BASENAME}"
- fi
-
- if ! [ -h "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}nm" ]; then
- ln -s "${AVR_NM}" "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}nm"
- fi
-
- if ! [ -h "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}objcopy" ]; then
- ln -s "${AVR_OBJCOPY}" "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}objcopy"
- fi
-
- if ! [ -h "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}ar" ]; then
- ln -s "${AVR_AR}" "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}ar"
- fi
-
- if ! [ -h "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}size" ]; then
- ln -s "${AVR_SIZE}" "${CCACHE_WRAPPER_PATH}/${COMPILER_PREFIX}size"
- fi
- fi
-
- export CCACHE_PATH=${COMPILER_PATH}/
- CCACHE_ENABLE="-prefs compiler.path=${CCACHE_WRAPPER_PATH}/"
- fi
-}
-
-
-firmware_size () {
- if [ "${ARCH}" = "virtual" ]; then
- echo "[Size not computed for virtual build]"
- return
- fi
-
- : "${MAX_PROG_SIZE:=$(get_arduino_pref 'upload.maximum_size')}"
-
- ## This is a terrible hack, please don't hurt me. - algernon
-
- set +e
- raw_output=$("$@" 2> /dev/null)
- rc=$?
- set -e
-
- if [ $rc -eq 0 ]; then
- output="$(echo "${raw_output}"| grep "\\(Program\\|Data\\):" | sed -e 's,^, - ,' && echo)"
-
- PROGSIZE="$(echo "${output}" | grep "Program:" | cut -d: -f2 | awk '{print $1}')"
-
- PERCENT="$(echo "${PROGSIZE}" "${MAX_PROG_SIZE}" | awk "{ printf \"%02.01f\", \$1 / \$2 * 100 }")"
-
- # we want the sed there, doing with shell builtins would be worse.
- # shellcheck disable=SC2001 disable=SC1117
- echo "${output}" | sed -e "s/\(Program:.*\)(\([0-9\.]*%\) Full)/\1(${PERCENT}% Full)/"
- else
- echo "Unable to determine image size."
- fi
-}
-
-
-find_sketch () {
- if [ -z "${SKETCH}" ]; then
- echo "SKETCH needs to be set before including this file!" >&2
- exit 1
- fi
-
- SKETCH_DIR="${SKETCH}"
- SKETCH_BASE_NAME=$(basename "$SKETCH")
- SKETCH_FILE_NAME="${SKETCH_BASE_NAME}.ino"
-
- for path in "${SKETCH_DIR}" \
- "src" \
- "."; do
- if [ -f "${path}/${SKETCH_FILE_NAME}" ]; then
- SKETCH_DIR="${path}"
- SKETCH_FILE_PATH=$(absolute_filename "${SKETCH_DIR}/${SKETCH_FILE_NAME}")
- return
- fi
- done
- echo "I couldn't find your sketch (.ino file)" >&2
- exit 1
-}
-
-
-
-prompt_before_flashing () {
- flashing_instructions=$(get_arduino_pref 'build.flashing_instructions')
-
- if [ "x${flashing_instructions}x" = "xx" ]; then
- flashing_instructions="If your keyboard needs you to do something to put it in flashing mode, do that now."
- fi
-
- printf '%b\n\n' "${flashing_instructions}"
- echo ""
- echo "When you're ready to proceed, press 'Enter'."
-
- # We do not want to permit line continuations here. We just want a newline.
- # shellcheck disable=SC2162
- read
-}
-
-flash () {
- compile "$@"
-
- # Check to see if we can see a keyboard bootloader port.
- # If we -can-, then we should skip over the "reset to bootloader" thing
- find_bootloader_ports
- if [ -z "${DEVICE_PORT_BOOTLOADER}" ]; then
- prompt_before_flashing
-
- # This is defined in the (optional) user config.
- # shellcheck disable=SC2154
- ${preFlash_HOOKS}
-
- # If we're -not- doing a manual reset, then try to do it automatically
- if [ -z "${MANUAL_RESET}" ]; then
- reset_device
- sleep 2
- find_bootloader_ports
- # Otherwise, poll for a bootloader port.
- else
- wait_for_bootloader_port
- fi
-
- fi
-
- check_bootloader_port_and_flash
-
- # This is defined in the (optional) user config.
- # shellcheck disable=SC2154
- ${postFlash_HOOKS}
-}
-
-wait_for_bootloader_port() {
- declare -i tries
- tries=15
-
- while [ "$tries" -gt 0 ] && [ -z "${DEVICE_PORT_BOOTLOADER}" ]; do
- sleep 1
- printf "."
- find_bootloader_ports
- # the variable annotations do appear to be necessary
- # shellcheck disable=SC2004
- tries=$(($tries-1))
- done
-
- if [ "$tries" -gt 0 ]; then
- echo "Found."
- else
- echo "Timed out."
- fi
-}
-
-check_bootloader_port () {
- if [ -z "${DEVICE_PORT_BOOTLOADER}" ]; then
- echo "Unable to detect a keyboard in bootloader mode."
- echo "You may need to hold a key or hit a reset button."
- echo "Please check your keyboard's documentation"
- return 1
- fi
-
-}
-
-check_bootloader_port_and_flash () {
-
- if ! check_bootloader_port; then
- return 1
- fi
-
- echo "Flashing your keyboard:"
-
- # If the flash fails, try a second time
- if ! flash_over_usb; then
- sleep 2
- if ! flash_over_usb; then
- if [ "${ARDUINO_VERBOSE}" != "-verbose" ]; then
- echo "Something went wrong."
- echo "You might want to try flashing again with the VERBOSE environment variable set"
- fi
-
- return 1
- fi
- fi
- echo "Keyboard flashed successfully!"
- return 0
-}
-
-flash_over_usb () {
-
- FLASH_CMD=$(${AVRDUDE} \
- -C "${AVRDUDE_CONF}" \
- -p"${MCU}" \
- -cavr109 \
- -D \
- -P "${DEVICE_PORT_BOOTLOADER}" \
- -b57600 \
- "-Uflash:w:${HEX_FILE_PATH}:i")
-
- if [ "${ARDUINO_VERBOSE}" != "-verbose" ]; then
- ${FLASH_CMD} 2>&1 |grep -v ^avrdude | grep -v '^$' |grep -v '^ ' | grep -vi programmer
- return "${PIPESTATUS[0]}"
- else
- ${FLASH_CMD}
- return $?
- fi
-}
-
-flash_from_bootloader() {
- compile "$@"
- prompt_before_flashing
- find_bootloader_ports
- check_bootloader_port_and_flash
-}
-
-program() {
- compile "$@"
- prompt_before_flashing
- flash_with_programmer
-}
-
-flash_with_programmer() {
- ${AVRDUDE} -v \
- -C "${AVRDUDE_CONF}" \
- -p"${MCU}" \
- -cusbtiny \
- -D \
- -B 1 \
- "-Uflash:w:${HEX_FILE_PATH}:i"
-}
-
-find_bootloader_path() {
- BOOTLOADER_FILE=$( get_arduino_pref 'bootloader.file' )
- : "${BOOTLOADER_FILE:=caterina/Caterina.hex}"
- : "${BOOTLOADER_PATH:=${BOARD_HARDWARE_PATH}/keyboardio/avr/bootloaders/${BOOTLOADER_FILE}}"
-}
-
-
-hex_with_bootloader () {
- compile
-
- find_bootloader_path
-
- awk '/^:00000001FF/ == 0' "${HEX_FILE_PATH}" > "${HEX_FILE_WITH_BOOTLOADER_PATH}"
- echo "Using ${BOOTLOADER_PATH}"
- ${MD5} "${BOOTLOADER_PATH}"
- cat "${BOOTLOADER_PATH}" >> "${HEX_FILE_WITH_BOOTLOADER_PATH}"
- ln -sf -- "${OUTPUT_FILE_PREFIX}-with-bootloader.hex" "${OUTPUT_PATH}/${SKETCH_BASE_NAME}-latest-with-bootloader.hex"
- cat <<- EOF
-
- Combined firmware and bootloader are now at ${HEX_FILE_WITH_BOOTLOADER_PATH}
- Make sure you have the bootloader version you expect.
-
- And TEST THIS ON REAL HARDWARE BEFORE YOU GIVE IT TO ANYONE
-
- EOF
-}
-
-build () {
- compile "$@"
- size "$@"
-}
-
-
-prepare_ccache () {
- build_paths
- enable_ccache
-}
-compile () {
- find_sketch
- build_version
- build_paths
- build_filenames
- # If the hex file is older than the sketch file, or the hex file does not exist
- # then rebuild. This is not as correct as letting make check our dependencies
- # But it's less broken for most user use cases
- # TODO(anyone): Make this suck less
- if [ "${HEX_FILE_PATH}" -ot "${SKETCH_FILE_PATH}" ]; then
- do_compile "$@"
- fi
-
-}
-
-
-do_compile () {
- prepare_ccache
-
- install -d "${OUTPUT_PATH}"
-
- echo "Building ${SKETCH_FILE_PATH}"
-
- # This is defined in the (optional) user config.
- # shellcheck disable=SC2154
- ${compile_HOOKS}
-
- if [ -d "${ARDUINO_LOCAL_LIB_PATH}/libraries" ]; then
- # shellcheck disable=SC2089
- # We want literal backslashes here, not arrays.
- local_LIBS="-libraries \"${ARDUINO_LOCAL_LIB_PATH}/libraries\""
- fi
-
- ARDUINO_PACKAGES=""
- if [ -d "${ARDUINO_PACKAGE_PATH}" ]; then
- # shellcheck disable=SC2089
- # We want literal backslashes here, not arrays.
- ARDUINO_PACKAGES="-hardware \"${ARDUINO_PACKAGE_PATH}\""
- fi
-
- SAVED_BOARD="${BOARD}"
- SAVED_FQBN="${FQBN}"
- if [ -e "${SKETCH_DIR}/.kaleidoscope-builder.conf" ]; then
- # shellcheck disable=SC1090
- BOARD="$(. "${SKETCH_DIR}"/.kaleidoscope-builder.conf && echo "${BOARD}")"
- # shellcheck disable=SC1090
- FQBN="$(. "${SKETCH_DIR}"/.kaleidoscope-builder.conf && echo "${FQBN}")"
- if [ -n "${BOARD}" ]; then
- if [ -z "${ARCH}" ]; then
- FQBN="keyboardio:avr:${BOARD}"
- else
- FQBN="keyboardio:${ARCH}:${BOARD}"
- fi
- fi
- fi
-
- _CMD_CXX="${CXX:-${COMPILER_PREFIX}${CXX_COMPILER_BASENAME}${COMPILER_SUFFIX}}"
- _CMD_CC="${CC:-${COMPILER_PREFIX}${C_COMPILER_BASENAME}${COMPILER_SUFFIX}}"
- _CMD_AR="${AR:-${COMPILER_PREFIX}${AR_BASENAME}${COMPILER_SUFFIX}}"
-
- # SC2091: We do not care if quotes or backslashes are not respected.
- # SC2086: We want word splitting.
- # shellcheck disable=SC2086,SC2090
- "${ARDUINO_BUILDER}" \
- -compile \
- ${ARDUINO_PACKAGES} \
- -hardware "${ARDUINO_PATH}/hardware" \
- -hardware "${BOARD_HARDWARE_PATH}" \
- ${ARDUINO_TOOLS_FLAG:+"${ARDUINO_TOOLS_FLAG}"} ${ARDUINO_TOOLS_PARAM:+"${ARDUINO_TOOLS_PARAM}"} \
- -tools "${ARDUINO_BUILDER_TOOLS_PATH}" \
- -fqbn "${FQBN}" \
- -libraries "." \
- -libraries "${KALEIDOSCOPE_DIR}" \
- -libraries "${BOARD_HARDWARE_PATH}/.." \
- ${local_LIBS} \
- ${EXTRA_BUILDER_ARGS} \
- -build-cache "${CORE_CACHE_PATH}" \
- -build-path "${BUILD_PATH}" \
- -ide-version "${ARDUINO_IDE_VERSION}" \
- -built-in-libraries "${ARDUINO_PATH}/libraries" \
- -prefs "compiler.cpp.extra_flags=${ARDUINO_CFLAGS} ${LOCAL_CFLAGS}" \
- -prefs "compiler.path=${COMPILER_PATH}" \
- -prefs "compiler.c.cmd=${_CMD_CC}" \
- -prefs "compiler.cpp.cmd=${_CMD_CXX}" \
- -prefs "compiler.ar.cmd=${_CMD_AR}" \
- -prefs "compiler.c.elf.cmd=${_CMD_CXX}" \
- $CCACHE_ENABLE \
- -warnings all \
- ${ARDUINO_VERBOSE} \
- ${ARDUINO_AVR_GCC_PREFIX_PARAM} \
- "${SKETCH_FILE_PATH}"
-
- if [ -z "${LIBONLY}" ]; then
- cp "${BUILD_PATH}/${SKETCH_FILE_NAME}.hex" "${HEX_FILE_PATH}"
- cp "${BUILD_PATH}/${SKETCH_FILE_NAME}.elf" "${ELF_FILE_PATH}"
- ln -sf "${OUTPUT_FILE_PREFIX}.hex" "${OUTPUT_PATH}/${SKETCH_BASE_NAME}-latest.hex"
- ln -sf "${OUTPUT_FILE_PREFIX}.elf" "${OUTPUT_PATH}/${SKETCH_BASE_NAME}-latest.elf"
- else
- cp "${BUILD_PATH}/${SKETCH_FILE_NAME}.a" "${LIB_FILE_PATH}"
- ln -sf "${OUTPUT_FILE_PREFIX}.a" "${OUTPUT_PATH}/${SKETCH_BASE_NAME}-latest.a"
- fi
-
- if [ "${ARDUINO_VERBOSE}" = "-verbose" ]; then
- echo "Build artifacts can be found in ${BUILD_PATH}";
- fi
-
- BOARD="${SAVED_BOARD}"
- FQBN="${SAVED_FQBN}"
-}
-
-find_all_sketches () {
- for plugin in ./*.ino \
- $([ -d examples ] && find examples -name '*.ino') \
- src/*.ino; do
- if [ -d "$(dirname "${plugin}")" ] || [ -f "${plugin}" ]; then
- p="$(basename "${plugin}" .ino)"
- if [ "${p}" != '*' ]; then
- case "${plugin}" in
- examples/*/${p}/${p}.ino)
- echo "${plugin}" | sed -e "s,examples/,," | sed -e "s,/${p}\\.ino,,"
- ;;
- *)
- echo "${p}"
- ;;
- esac
- fi
- fi
- done | sort
-}
-
-build_all () {
- plugins="$(find_all_sketches)"
-
- for plugin in ${plugins}; do
- export SKETCH="${plugin}"
- $0 "${plugin}" build
- done
-}
-
-
-compile_all () {
- plugins="$(find_all_sketches)"
-
- for plugin in ${plugins}; do
- export SKETCH="${plugin}"
- $0 "${plugin}" compile
- done
-}
-
-
-size () {
- compile
-
- echo "- Size: ${ELF_FILE_PATH}"
- # shellcheck disable=SC2086
- firmware_size "${AVR_SIZE}" ${AVR_SIZE_FLAGS} "${ELF_FILE_PATH}"
- echo
-}
-
-size_map () {
- compile
-
- "${AVR_NM}" --size-sort -C -r -l -t decimal "${ELF_FILE_PATH}"
-}
-
-disassemble () {
- compile
-
- "${AVR_OBJDUMP}" -C -d "${ELF_FILE_PATH}"
-}
-
-decompile () {
- disassemble
-}
-
-clean () {
- find_sketch
- build_paths
- rm -rf -- "${OUTPUT_PATH}"
- rm -rf -- "${BUILD_PATH}"
- kaleidoscope_dir="$(dirname "$0")/.."
- if [ -d "${kaleidoscope_dir}/testing/googletest/build" ]; then
- ( cd "${kaleidoscope_dir}/testing/googletest/build" &&
- cmake .. &&
- make clean)
- fi
-}
-
-reset_device() {
- find_device_port
- check_device_port
- reset_device_cmd
-}
-
-check_device_port () {
- if [ -z "$DEVICE_PORT" ]; then
- cat <&2
-
-I couldn't autodetect the keyboard's serial port.
-
-If you see this message and your keyboard is connected to your computer,
-it may mean that our serial port detection logic is buggy or incomplete.
-In that case, please report this issue at:
- https://github.com/keyboardio/Kaleidoscope
-EOF
- exit 1
- elif echo "$DEVICE_PORT" | grep -q '[[:space:]]'; then
- cat <&2
-Unexpected whitespace found in detected serial port:
-
- $DEVICE_PORT
-
-If you see this message, it means that our serial port
-detection logic is buggy or incomplete.
-
-Please report this issue at:
- https://github.com/keyboardio/Kaleidoscope
-EOF
- exit 1
- fi
-
- if ! [ -w "$DEVICE_PORT" ]; then
- cat <&2
-
-In order to update your keyboard's firmware you need to have permission
-to write to its serial port $DEVICE_PORT.
-
-It appears that you do not have this permission:
-
- $(ls -l "$DEVICE_PORT")
-
-This may be because you're not in the correct unix group:
-
- $(stat -c %G "$DEVICE_PORT").
-
-You are currently in the following groups:
-
- $(id -Gn)
-
-Please ensure you have followed the instructions on setting up your
-account to be in the right group:
-
-https://github.com/keyboardio/Kaleidoscope/wiki/Install-Arduino-support-on-Linux
-
-EOF
- exit 1
- fi
-}
-
-
-deprecation_message() {
-echo "kaleidoscope-builder is deprecated and will be removed"
-echo "by February 15, 2021"
-echo ""
-echo "To switch to the new build system, replace your sketch's"
-echo "Makefile with a copy of:"
-echo ""
-echo "${KALEIDOSCOPE_DIR}/etc/Makefile.sketch"
-echo ""
-}
-
-usage () {
- cat <<- EOF
- Usage: $0 SKETCH commands...
-
- Runs all of the commands in the context of the Sketch.
-
- Available commands:
-
- help
- This help screen.
-
- compile
- Compiles the sketch.
-
- size
- Reports the size of the compiled sketch.
-
- build
- Runs compile and report-size.
-
- clean
- Cleans up the output directory.
-
- size-map
- Displays the size map for the sketch.
-
- disassemble
- Decompile the sketch.
-
- reset-device
- Reset the device.
-
- flash
- Flashes the firmware using avrdude.
-
- build-all
- Build all Sketches we can find.
-
- EOF
-}
-
-
-KALEIDOSCOPE_DIR="$(cd "$(dirname "$0")"/..; pwd)"
-# shellcheck disable=SC2034
-KALEIDOSCOPE_BIN_DIR="${KALEIDOSCOPE_DIR}/bin/"
-
-
-help () {
- usage
-}
-
-if [ $# -lt 1 ]; then
- usage
- exit 1
-fi
-
-## Parse the command-line
-## - anything that has a =, is an env var
-## - from the remaining stuff, the first one is the Library/Sketch
-## - everything else are commands
-##
-## - if there is only one argument, that's a command
-
-
-deprecation_message
-
-
-# shellcheck disable=SC2155
-export SOURCEDIR="$(pwd)"
-
-
-for conf_file in \
- "${HOME}/.kaleidoscope-builder.conf" \
- "${SOURCEDIR}/.kaleidoscope-builder.conf" \
- "${SOURCEDIR}/kaleidoscope-builder.conf" \
- "${KALEIDOSCOPE_DIR}/etc/kaleidoscope-builder.conf"; do
- if [ -e "${conf_file}" ]; then
- # shellcheck disable=SC1090
- . "${conf_file}"
- fi
-
-done
-
-# shellcheck disable=SC1090
-
-
-if [ -n "${VERBOSE}" ] && [[ "${VERBOSE}" -gt 0 ]]; then
- ARDUINO_VERBOSE="-verbose"
-else
- ARDUINO_VERBOSE="-quiet"
-fi
-
-cmds=""
-
-## Export vars
-for i in $(seq 1 $#); do
- v="$1"
- shift
-
- case "${v}" in
- *=*)
- # Exporting an expansion is *precisely* what we want here.
- # shellcheck disable=SC2086,SC2163
- export ${v}
- ;;
- *)
- cmds="${cmds} ${v}"
- ;;
- esac
-done
-
-# Word splitting is desired here.
-# shellcheck disable=SC2086
-set -- ${cmds}
-
-if [ $# -eq 1 ]; then
- cmd="$(echo "$1" | tr '-' '_')"
- ${cmd}
- exit $?
-fi
-
-SKETCH="$1"
-shift
-
-if [ "${SKETCH}" = "default" ]; then
- SKETCH="${DEFAULT_SKETCH}"
-fi
-
-cmds=""
-
-# shellcheck disable=2034
-for i in $(seq 1 $#); do
- cmds="${cmds} $(echo "$1" | tr '-' '_')"
- shift
-done
-
-for cmd in ${cmds}; do
- ${cmd}
-done
diff --git a/docs/UPGRADING.md b/docs/UPGRADING.md
index 25b98358..69f43dee 100644
--- a/docs/UPGRADING.md
+++ b/docs/UPGRADING.md
@@ -435,6 +435,13 @@ As a developer, one can continue using `millis()`, but migrating to `Kaleidoscop
## Breaking changes
+###
+
+`kaleidoscope-builder` has been removed.
+
+We replaced it with a new Makefile based build system that uses `arduino-cli` instead of of the full Arduino IDE. This means that you can now check out development copies of Kaliedoscope into any directory, using the `KALEIDOSCOPE_DIR` environment variable to point to your installation.
+
+
### OneShot meta keys
The special OneShot keys `OneShot_MetaStickyKey` & `OneShot_ActiveStickyKey` are no longer handled by the OneShot plugin directly, but instead by a separate OneShotMetaKeys plugin. If you use these keys in your sketch, you will need to add the new plugin, and register it after OneShot in `KALEIDOSCOPE_INIT_PLUGINS()` for those keys to work properly.
diff --git a/etc/kaleidoscope-builder.conf b/etc/kaleidoscope-builder.conf
deleted file mode 100644
index 4f3e7437..00000000
--- a/etc/kaleidoscope-builder.conf
+++ /dev/null
@@ -1,274 +0,0 @@
-# -*- shell-script -*-
-
-## NEEDS: SKETCH
-## Should be included when the current directory is the dir of the Sketch.
-
-SKETCH="${SKETCH:-${DEFAULT_SKETCH}}"
-
-########
-######## Keyboard hardware definitions
-########
-
-: "${BOARD:=model01}"
-: "${MCU:=atmega32u4}"
-
-if [ -z "${ARCH}" ]; then
- ARCH=$(echo "${FQBN}" | sed -n -e 's/^[^:]\+:\([^:]\+\).*/\1/p')
-fi
-
-if [ "${ARCH}" = "virtual" ]; then
- : "${FQBN:=keyboardio:virtual:${BOARD}}"
-
- # Set the compiler path for virtual builds
- #
- if [ -z "${COMPILER_PATH}" ]; then
- COMPILER_PATH="/usr/bin/"
- fi
-
- COMPILER_PREFIX=""
-else
- ARCH="avr"
-fi
-
-if [ -z "${FQBN}" ]; then
- : "${FQBN:=keyboardio:avr:${BOARD}}"
-fi
-
-########
-######## Host OS specific commands
-########
-
-## Platform-specific overrides
-# Shamelessly stolen from git's Makefile
-uname_S=$(uname -s 2>/dev/null || echo not)
-uname_O=$(uname -o 2>/dev/null || echo not)
-
-
-find_device_vid_pid() {
- : ${VID:=$(get_arduino_pref 'build.vid')}
- : ${SKETCH_PID:=$(get_arduino_pref 'build.pid')}
- : ${BOOTLOADER_PID:=$(get_arduino_pref 'bootloader.pid')}
- : ${BOOTLOADER_VID:=$(get_arduino_pref 'bootloader.vid')}
-}
-
-
-get_arduino_pref() {
- pref=$1
- # Strip the preference name. And then strip leading and trailing quotations
- MESSAGE=$(dump_arduino_prefs | grep --max-count=1 ${pref}= | sed -e s/^.*${pref}=// -e 's/^"//' -e 's/"$//')
- echo $MESSAGE
-}
-
-
-dump_arduino_prefs() {
-# SKETCH and -build-path in this command are here because of a bug introduced in Arduino 1.8.10
-# https://github.com/arduino/arduino-builder/issues/341
-
- if [ "x${_ARDUINO_PREFS}x" == "xx" ]; then
-
- _ARDUINO_PREFS=$("${ARDUINO_BUILDER}" \
- -hardware "${ARDUINO_PATH}/hardware" \
- -hardware "${BOARD_HARDWARE_PATH}" \
- ${ARDUINO_TOOLS_FLAG:+"${ARDUINO_TOOLS_FLAG}"} ${ARDUINO_TOOLS_PARAM:+"${ARDUINO_TOOLS_PARAM}"} \
- -tools "${ARDUINO_BUILDER_TOOLS_PATH}" \
- -fqbn "${FQBN}" \
- -build-path "${ARDUINO_PATH}" \
- -dump-prefs "${SKETCH_DIR}/${SKETCH}.ino" )
- fi
- echo "$_ARDUINO_PREFS"
-
-}
-
-find_device_port() {
- find_device_vid_pid
- DEVICE_PORT_PROBER="${KALEIDOSCOPE_BIN_DIR}/find-device-port-linux-udev"
- if [[ "${DEVICE_PORT}" = "" ]]; then
- DEVICE_PORT="$(perl ${DEVICE_PORT_PROBER} ${VID} ${SKETCH_PID})"
- else
- echo "DEVICE_PORT=\"${DEVICE_PORT}\" predefined."
- fi
-}
-
-reset_device_cmd() {
- if [ -z ${NO_RESET} ]; then
- stty -F ${DEVICE_PORT} 1200 hupcl
- fi
-}
-
-find_bootloader_ports() {
- find_device_vid_pid
- : "${BOOTLOADER_VID:=${VID}}"
- DEVICE_PORT_PROBER="${KALEIDOSCOPE_BIN_DIR}/find-device-port-linux-udev"
- if [[ "${DEVICE_PORT_BOOTLOADER}" = "" ]]; then
- DEVICE_PORT_BOOTLOADER="$(perl ${DEVICE_PORT_PROBER} ${BOOTLOADER_VID} ${BOOTLOADER_PID})"
- else
- echo "DEVICE_PORT_BOOTLOADER=\"${DEVICE_PORT_BOOTLOADER}\" predefined."
- fi
-}
-
-
-MD5="md5sum"
-
-if [ "${uname_S}" = "Darwin" ]; then
-
- find_device_port() {
- DEVICE_PORT_PROBER="${KALEIDOSCOPE_BIN_DIR}/find-device-port-macos"
- DEVICE_PORT="$(perl ${DEVICE_PORT_PROBER} ${VID} ${SKETCH_PID})"
- }
-
- reset_device_cmd() {
- /bin/stty -f ${DEVICE_PORT} 1200
- }
-
- : "${ARDUINO_PATH:=/Applications/Arduino.app/Contents/Java/}"
- : "${ARDUINO_PACKAGE_PATH:=${HOME}/Library/Arduino15/packages}"
- : "${ARDUINO_LOCAL_LIB_PATH:=${HOME}/Documents/Arduino}"
-
- MD5="md5"
-
- find_bootloader_ports() {
- find_device_vid_pid
- : "${BOOTLOADER_VID:=${VID}}"
- DEVICE_PORT_PROBER="${KALEIDOSCOPE_BIN_DIR}/find-device-port-macos"
- if [[ "${DEVICE_PORT_BOOTLOADER}" = "" ]]; then
- DEVICE_PORT_BOOTLOADER="$(perl ${DEVICE_PORT_PROBER} ${BOOTLOADER_VID} ${BOOTLOADER_PID})"
- else
- echo "DEVICE_PORT_BOOTLOADER=\"${DEVICE_PORT_BOOTLOADER}\" predefined."
- fi
- }
-
-elif [ "${uname_S}" = "FreeBSD" ]; then
-
- find_device_port() {
- DEVICE_PORT_PROBER="${KALEIDOSCOPE_BIN_DIR}/find-device-port-freebsd"
- DEVICE_PORT="$(perl ${DEVICE_PORT_PROBER})"
- }
-
- reset_device_cmd() {
- /bin/stty -f ${DEVICE_PORT} 1200
- }
-
- MD5="md5"
- : "${AVR_SIZE:=/usr/local/bin/avr-size}"
- : "${AVR_NM:=/usr/local/bin/avr-nm}"
- : "${AVR_OBJDUMP:=/usr/local/bin/avr-objdump}"
- : "${AVRDUDE:=/usr/local/bin/avrdude}"
- : "${AVRDUDE_CONF:=/usr/local/etc/avrdude.conf}"
- : "${ARDUINO_BUILDER:=/usr/local/bin/arduino-builder}"
-
- find_bootloader_ports() {
- DEVICE_PORT_PROBER="${KALEIDOSCPE_BIN_DIR}/find-device-port-freebsd"
- DEVICE_PORT_BOOTLOADER="$(perl ${DEVICE_PORT_PROBER})"
- }
-
- if [ "${ARCH}" = "virtual" ]; then
- : "${COMPILER_PATH:=/usr/local/bin/}"
- fi
-
-elif [ "${uname_O}" = "Cygwin" ]; then
- # The Windows arduino-builder.exe doesn't understand being told to exec against Cygwin symlinks
- CCACHE_NOT_SUPPORTED=1
-
- # Note: the default ARDUINO_PATH here is the default Arduino installation path on Windows, but it won't actually
- # work in practice right now since we haven't fixed all bugs related to interpretation of spaces in these paths.
- #
- # It's important that all of these be underneath /cygdrive/c so they can be converted to Windows paths that the
- # Windows Arduino binaries can understand.
- : "${ARDUINO_PATH:=/cygdrive/c/Program\ Files\ (x86)/Arduino}"
- : "${ARDUINO_PACKAGE_PATH:=/cygdrive/c/Users/${USER}/AppData/Local/Arduino15/packages}"
- : "${ARDUINO_LOCAL_LIB_PATH:=/cygdrive/c/Users/${USER}/Arduino}"
- TMPDIR="${ARDUINO_LOCAL_LIB_PATH:-/cygdrive/c/Users/${USER}/AppData/Local/Temp}"
-
- # We need to prevent Windows executables from being passed parameters that are absolute paths, since they won't
- # be interpretable when of the form /cygdrive/c/foo. To work around this, we set the common path root variables
- # to use relative paths instead of absolute paths, since those have mostly platform-agnostic behavior.
- #
- # Note that this trick requires that all of these paths exist on the same drive letter as the current directory,
- # since otherwise even the relative paths would include Cygwin-specific components. So...
- if [[ $(realpath --relative-base=/cygdrive/c .) == /* ]]; then
- echo "kaleidoscope-builder's Cygwin support is currently limited to running from within /cygdrive/c"
- exit 1
- fi
-
- ARDUINO_PATH="$(realpath --relative-to=./ ${ARDUINO_PATH})"
- ARDUINO_PACKAGE_PATH="$(realpath --relative-to=./ ${ARDUINO_PACKAGE_PATH})"
- ARDUINO_LOCAL_LIB_PATH="$(realpath --relative-to=./ ${ARDUINO_LOCAL_LIB_PATH})"
- TMPDIR="$(realpath --relative-to=./ ${ARDUINO_PATH})"
-
- find_device_port() {
- find_device_vid_pid
- DEVICE_PORT_PROBER="${KALEIDOSCOPE_BIN_DIR}/find-device-port-windows.ps1"
- DEVICE_PORT="$(powershell -noprofile -executionpolicy bypass ${DEVICE_PORT_PROBER} ${VID} ${SKETCH_PID} -Format Cygwin)"
- DEVICE_COM_PORT="$(powershell -noprofile -executionpolicy bypass ${DEVICE_PORT_PROBER} ${VID} ${SKETCH_PID} -Format COM)"
- }
-
- reset_device_cmd() {
- cmd /c mode ${DEVICE_COM_PORT} baud=1200
- }
-
- find_bootloader_ports() {
- find_device_vid_pid
- : "${BOOTLOADER_VID:=${VID}}"
- DEVICE_PORT_PROBER="${KALEIDOSCOPE_BIN_DIR}/find-device-port-windows.ps1"
- DEVICE_PORT_BOOTLOADER="$(powershell -noprofile -executionpolicy bypass ${DEVICE_PORT_PROBER} ${BOOTLOADER_VID} ${BOOTLOADER_PID} -Format COM)"
- }
-
-fi
-
-######
-###### Arduino tools configuration
-######
-
-: "${ARDUINO_PATH:=/usr/local/arduino}"
-: "${ARDUINO_LOCAL_LIB_PATH:=${HOME}/Arduino}"
-: "${ARDUINO_TOOLS_PATH:=${ARDUINO_PATH}/hardware/tools}"
-: "${ARDUINO_PACKAGE_PATH:=${HOME}/.arduino15/packages}"
-: "${ARDUINO_BUILDER:=${ARDUINO_PATH}/arduino-builder}"
-: "${ARDUINO_BUILDER_TOOLS_PATH:=${ARDUINO_PATH}/tools-builder}"
-
-ARDUINO_IDE_VERSION="10607"
-
-######
-###### Executable paths
-######
-
-# Allow the compiler path to be empty for virtual builds
-: "${COMPILER_PATH=${ARDUINO_TOOLS_PATH}/avr/bin/}"
-
-COMPILER_SUFFIX=""
-
-C_COMPILER_BASENAME=$(basename ${CC:-gcc})
-CXX_COMPILER_BASENAME=$(basename ${CXX:-g++})
-AR_BASENAME=$(basename ${AR:-ar})
-OBJCOPY_BASENAME=$(basename ${OBJCOPY:-objcopy})
-
-# Allow the compiler prefix to be empty for virtual builds
-COMPILER_PREFIX="${COMPILER_PREFIX-avr-}"
-: "${AVR_SIZE:=${COMPILER_PATH}/${COMPILER_PREFIX}size}"
-: "${AVR_SIZE_FLAGS:=-C --mcu=${MCU}}"
-: "${AVR_OBJDUMP:=${COMPILER_PATH}/${COMPILER_PREFIX}objdump}"
-: "${AVR_OBJCOPY:=${COMPILER_PATH}/${COMPILER_PREFIX}objcopy}"
-: "${AVR_NM:=${COMPILER_PATH}/${COMPILER_PREFIX}nm}"
-: "${AVR_AR:=${COMPILER_PATH}/${COMPILER_PREFIX}ar}"
-: "${AVR_GCC:=${COMPILER_PATH}/${COMPILER_PREFIX}${C_COMPILER_BASENAME}}"
-AVR_GPLUSPLUS="${AVR_GCC:-${COMPILER_PATH}/${COMPILER_PREFIX}${CXX_COMPILER_BASENAME}}"
-
-
-
-: "${AVRDUDE:=${ARDUINO_TOOLS_PATH}/avr/bin/avrdude}"
-: "${AVRDUDE_CONF:=${ARDUINO_TOOLS_PATH}/avr/etc/avrdude.conf}"
-
-######
-###### Source files and dependencies
-######
-
-: "${BOARD_HARDWARE_PATH:=${ARDUINO_LOCAL_LIB_PATH}/hardware}"
-
-if [ ! -z "${ARDUINO_TOOLS_PATH}" ]; then
- ARDUINO_TOOLS_PARAM="${ARDUINO_TOOLS_PATH}"
- ARDUINO_TOOLS_FLAG="-tools"
-fi
-
-if [ ! -z "${AVR_GCC_PREFIX}" ]; then
- ARDUINO_AVR_GCC_PREFIX_PARAM="-prefs \"runtime.tools.avr-gcc.path=${AVR_GCC_PREFIX}\""
-fi
diff --git a/examples/Devices/Keyboardio/Atreus/.kaleidoscope-builder.conf b/examples/Devices/Keyboardio/Atreus/.kaleidoscope-builder.conf
deleted file mode 100644
index 5d03ea41..00000000
--- a/examples/Devices/Keyboardio/Atreus/.kaleidoscope-builder.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-DEFAULT_SKETCH="Atreus"
-BOARD="keyboardio_atreus"