Trouble flashing firmware - first time

Hi, Just purchased a Model01 from a member of this forum. I’m trying to reset the firmware to default and am stymied (note: I’m not a dev; not an idiot, but this is not my sweet spot).
I’m doing this on a RaspberryPi.

Method 1: Command line … Downloaded the Model01-Firmware.git file. when I execute make flash, I get this:

I can’t find your Kaleidoscope installation.

I tried looking in:

/home/pi/Arduino/hardware/keyboardio/avr/libraries/Kaleidoscope

The easiest way to fix this is to set the ‘KALEIDOSCOPE_DIR’ environment
variable to the location of your Kaleidoscope directory.
make: *** No rule to make target ‘flash’. Stop.

Method 2: I downloaded the correct Arduino version. I set the keyboard to Keyboardio Model01 and I picked the Model01 .ino file. When I try to upload it I get:

variable or field ‘anyKeyMacro’ declared void
exit status 1
various or field ‘anyKeyMacro’ declared void

**
Not quite sure where to go next. Any help is greatly appreciated. Thanks.

Method 1 is slightly longer than just make flash :

$ mkdir ${HOME}/git
$ cd ${HOME}/git
$ git clone https://github.com/keyboardio/Kaleidoscope
$ cd ${HOME}/git/Kaleidoscope
$ # Ask Kaleidoscope to install the compiler toolchain, arduino-cli and platform support
$ make setup
$ export KALEIDOSCOPE_DIR=${HOME}/git/Kaleidoscope
$ cd examples/Devices/Keyboardio/Model01
$ make compile
$ make flash

For the persist the Kaleidoscope installation directory, you may add it to your shell rc :

$ echo "export KALEIDOSCOPE_DIR=${HOME}/git/Kaleidoscope" >> ${HOME}/.bash_profile

I don’t use the Adruino IDE, so can’t tell about the other method, but in memories they are incompatible (I don’t remember exactly why).

Hopes it helps !

1 Like

I have a Model01 that I haven’t used in a while, and I just pulled it out to try to play with it again. The firmware I had been using was from 2017, so I pulled new versions of everything to make sure I was fairly up-to-date. I encountered these same problems.

For the first issue (“I can’t find your Kaleidoscope installation”), I tracked down where Kaleidoscope had gotten installed after going through its installation process, and that seemed to be $HOME/Library/Arduino15/packages/keyboardio/hardware/avr/1.99.3/libraries/Kaleidoscope (at least on my Mac laptop). So I set $KALEIDOSCOPE_DIR to that path, and I had to run make -C $KALEIDOSCOPE_DIR setup to get it to be usable from the command line. At that point I hit the second issue.

It looks like the core of the second issue is due to the type KeyEvent not being defined. It looks like this usage was introduced four days ago by PR 108. I’m building against the release version of Kaleidoscope, rather than the master branch; I wonder if that change was tested against the release version? @algernon it looks like you merged that change; could you take a look at this, please?

Indeed, once I ran git checkout f4ff736e4761e58992071418dc585cefc6e2f1e8, I was able to successfully run make flash.

I am typing this - albeit quite slowly - on my properly flashed keyboardio. Thank you! Now to practice and learn how to create new layers. Much appreciated!

Are you building from the CLI or from the Arduino IDE? From the error you mentioned, it looks like your build is trying to use an old version of Kaleidoscope, but your sketch is up to date.

Ah! I think I understand the problem, @blakej — you updated Kaleidoscope from the Arduino IDE Boards Manager, not git clone?

If so, the simplest thing to do if you want to build from the CLI is to delete the Kaleidoscope libs you found, and start fresh from a new git checkout.

Yep, It’s seems that using the Arduino stuff with the Make way is prone to errors !

So, just see above what’s in the doc :tm: :

:slight_smile:

Ah, so I can’t use the Kaleidoscope that Arduino downloads along with the firmware from git? Gotcha, that makes sense.