about summary refs log tree commit diff
diff options
context:
space:
mode:
authorZach DeCook <zachdecook@librem.one>2023-05-28 09:54:14 -0400
committerZach DeCook <zachdecook@librem.one>2023-05-29 20:30:49 -0400
commit2a686a55c79b5db22a2227f5b0eac2f46ca7f7b4 (patch)
tree9b29bc53db76f5076a1aa90404ec3d7256f7dbe4
parentc9f4036651abbf3ceb75ba2d78a8411df07c6d6d (diff)
downloadHexBoard-2a686a55c79b5db22a2227f5b0eac2f46ca7f7b4.tar.gz
README: Add instructions for building with arduino-cli
and minor update to Makefile
-rw-r--r--Makefile10
-rw-r--r--README.md27
-rw-r--r--Rotary.patch21
-rw-r--r--build/.gitkeep0
4 files changed, 53 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index 110b398..40d6f3c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,10 @@
 # Copied fqbn from build.options.json
-build/HexBoard_V1.1.ino.uf2: HexBoard_V1.1.ino
-	arduino-cli compile -b rp2040:rp2040:generic:flash=16777216_0,freq=133,opt=Small,rtti=Disabled,stackprotect=Disabled,exceptions=Disabled,dbgport=Disabled,dbglvl=None,usbstack=tinyusb,ipstack=ipv4only,boot2=boot2_generic_03h_2_padded_checksum --output-dir build	
+build/build.ino.uf2: build/build.ino
+	arduino-cli compile -b rp2040:rp2040:generic:flash=16777216_0,freq=133,opt=Small,rtti=Disabled,stackprotect=Disabled,exceptions=Disabled,dbgport=Disabled,dbglvl=None,usbstack=tinyusb,boot2=boot2_generic_03h_2_padded_checksum --output-dir build build
+build/build.ino: HexBoard_V1.1.ino
+	 cp HexBoard_V1.1.ino build/build.ino
 
-install: build/HexBoard_V1.1.ino.uf2
+install: build/build.ino.uf2
 	echo "Trying to copy into mounted device"
-	cp build/HexBoard_V1.1.ino.uf2 /run/media/zach/RPI-RP2/
+	cp build/build.ino.uf2 /run/media/zach/RPI-RP2/
 	echo "Installed."
diff --git a/README.md b/README.md
index 3963062..4cb7b6a 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,32 @@ we'll assume you're already proficient at installing software on your computer a
 
 #### Using [arduino-cli](https://arduino.github.io/arduino-cli/latest/)
 
-(Instructions to come)
+(You also need to have `python3` installed on your system)
+
+```sh
+# Download the board index
+arduino-cli --additional-urls=https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json core update-index
+# Install the core for rp2040
+arduino-cli --additional-urls=https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json core download rp2040:rp2040
+arduino-cli --additional-urls=https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json core install rp2040:rp2040
+# Install libraries
+arduino-cli lib install "MIDI library"
+arduino-cli lib install "Adafruit NeoPixel"
+arduino-cli lib install "U8g2" # dependency for GEM
+arduino-cli lib install "Adafruit GFX Library" # dependency for GEM
+arduino-cli lib install "GEM"
+sed -i 's@#include "config/enable-glcd.h"@//\0@g' ../libraries/GEM/src/config.h # remove dependency from GEM
+# Correct Rotary Library
+git clone https://github.com/buxtronix/arduino buxduino
+cd buxduino
+git apply ../Rotary.patch
+cd ..
+mv buxduino/libraries/Rotary ../libraries/
+rm -rf buxduino
+# Run Make to build the firmware
+make
+```
+Your firmware file will be the uf2 file inside the build directory.
 
 ### Flashing the firmware
 
diff --git a/Rotary.patch b/Rotary.patch
new file mode 100644
index 0000000..8cb27b4
--- /dev/null
+++ b/Rotary.patch
@@ -0,0 +1,21 @@
+diff --git a/libraries/Rotary/Rotary.cpp b/libraries/Rotary/Rotary.cpp
+index 298925d..9d3a02a 100644
+--- a/libraries/Rotary/Rotary.cpp
++++ b/libraries/Rotary/Rotary.cpp
+@@ -127,13 +127,9 @@ Rotary::Rotary(char _pin1, char _pin2) {
+   // Assign variables.
+   pin1 = _pin1;
+   pin2 = _pin2;
+-  // Set pins to input.
+-  pinMode(pin1, INPUT);
+-  pinMode(pin2, INPUT);
+-#ifdef ENABLE_PULLUPS
+-  digitalWrite(pin1, HIGH);
+-  digitalWrite(pin2, HIGH);
+-#endif
++  // Set pins to input pullup.
++  pinMode(pin1, INPUT_PULLUP);
++  pinMode(pin2, INPUT_PULLUP);
+   // Initialise state.
+   state = R_START;
+ }
diff --git a/build/.gitkeep b/build/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/build/.gitkeep