Hi @Zephurious!
Happy to help with this. First of all, awesome that you up and running w/ the Arduino IDE and that upload is working as expected. I personally don’t use the the .hex file upload except for when we are testing the binaries we are sending off to be manufactured. Another good use case of the .hex file is if you don’t want to share your source code. For that reason, I wouldn’t recommend this as a necessary tool and this next part will be more technical than anyone programming with Blinks needs to be.
That being said, I would love to share how to do this.
Arduino IDE is essentially a text editor, C++ compiler (avr-gcc), and AVRDude bundled, and AVRDude is responsible for uploading the compiled code onto the Blink. When you press upload in Arduino, the code is first being compiled and then Arduino calls a command for AVRDude and the upload process begins. This same use of AVRDude can be performed outside of the Arduino IDE and in the MacOS Terminal or Windows Command Line.
First, you need to export a binary (.hex file).
You will see that inside of the Sketch folder, two binaries have been created. The one you care about is the one that sayd [Name-Of-Game].ino.with_bootloader.standard.hex. This contains the game and the bootloader (which is the code that allows Blinks to virally transmit their game to other Blinks).
Now that you have the .hex file, or you got to this step because someone shared a .hex file with you, you’ll need to get AVRDude running on your machine. If you are on a mac, installing w/ homebrew like this should do the trick. On a PC, following Lady Ada’s instructions here will get you running.
You’ll then want to open Terminal or Command Prompt and navigate to the .hex file and type the following:
avrdude -p m168pb -P usb -c usbtiny -U flash:w:<name-of-file>.hex
Before pressing enter, make sure you have your USB programmer plugged in and the the Blink connected, pressing enter will start the upload.
That should be it. If I missed something here, let me know. I feel like @bigjosh could give some more insight on why this is a great tool, but honestly, I would stick to the Arduino IDE upload until you need to upload a binary from someone else. I think that the binary is a nice way to ensure someone is uploading exactly what you sent them, but other than that, might as well be in Arduino where you can play with the code
all my best,
Jonathan