Make Arduino Applications for ODROID-GO

If you do not have Arduino IDE for ESP32, please proceed to this link first.

Get mkfw tool and build it

git clone https://github.com/othercrashoverride/odroid-go-firmware.git -b factory
cd odroid-go-firmware/tools/mkfw
make

Configure Arduino IDE to show verbose output

After you run Arduino IDE, select compilation, File → Preferences → Show verbose output during.

Copy Arduino binary

You can see the path of Arduino binary you compiled on the log.
Copy the binary into mkfw folder.

Make tile image with ffmpeg

You can make a tile image that appears in the App menu.

sudo apt install ffmpeg
ffmpeg -i 86x48px-Arduino_Logo.png -f rawvideo -pix_fmt rgb565 tile.raw

Run mkfw

./mkfw test tile.raw 0 16 1048576 app Hello_World.ino.bin

The output is firmware.fw. Change the name.

mv firmware.fw Hello_World.fw

Copy the Hello_World.fw to your SD card "odroid/firmware/ folder

Insert your SD card to your ODROID-GO.


We will take a Weather-Station as an example.
https://github.com/hardkernel/ODROID-GO/tree/master/examples/Applications/Weather_Station

First, we will make a data folder into a binary.
And the two binary files(data folder and firmware) will be a .fw file with mkfs.

Make a data folder into ".bin" file

Get the mkspiffs at this and then, run the command.

mkspiffs -c ./data -b 4096 -p 256 -s 0x100000 spiffs.bin

For detail on command, https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/storage/spiffs.html#tools

Make two binaries(spiffs.bin, Weather_Station.ino.bin) into .fw file

./mkfw test tile.raw 0 16 1048576 app Weather_Station.ino.bin 1 130 1048576 "spiffs" spiffs.bin
cp firmware.fw Weather_Station.fw

The SPIFFS partition information is derived from here: https://github.com/espressif/esp-idf/blob/master/components/spi_flash/include/esp_partition.h

Copy the firmware.fw to your SD card “odroid/firmware/ folder