Docker-arduino is docker image for simple building and testing Arduino sketches and libraries.
Images has preinstalled whole Arduino IDE from Arduino webside. This also includes arduino and arduino-builder which are linked in a way that they can be easy accessed by typing arduino
or arduino-builder
.
Images also includes enviroment variables for easier building.
Variable name | Description |
---|---|
ARDUINO_DIR | Directory where Arduino IDE is installed. |
ARDUINO_EXAMPLES | Directory where Arduino build-in examples are installed. |
ARDUINO_HARDWARE | Hardware directory of Arduino IDE |
ARDUINO_LIBS | Directory where Arduino build-in libraries are installed. |
ARDUINO_TOOLS | Directory with hardware tools of Arduino IDE. |
ARDUINO_TOOLS_BUILDER | Directory with tools-builder of Arduino IDE |
ARDUINO_VERSION | Version of Arduino IDE |
A_FQBN | Arduino fully Qualified Board Name prefix |
BIN_DIR | Directory where links for binaries are created. |
Here is how would look command to compile your sketch.
arduino-builder -hardware ${ARDUINO_HARDWARE} -tools ${ARDUINO_TOOLS}/avr -tools ${ARDUINO_TOOLS_BUILDER} -libraries ${ARDUINO_LIBS} -libraries <your lib folder> -fqbn ${A_FQBN}:<arduino board name> <sketch>
Note: If you are running above command with sudo docker exec <container>
, use '
, so in the end you get sudo docker exec <container> bash -c '<command>'
.
or
arduino --verify <sketch>
Command | Description |
---|---|
arduino_add_board_url <url> | Add Arduino platform url |
adruino_build_lib <path to lib dir> | Build whole libariy with examples |
arduino_build_sketch <path to sketch> | Builds sketch |
arduino_build_sketches <path to folder or sketch> | Builds folder which contains sketch or folders with sketches or sketch itself |
arduino_emulate_gui | Starts fake GUI for Arduino IDE |
arduino_install_board <boards> | Installs additional boards |
arduino_install_lib {<lib name>|<git url>} | Installs library |
arduino_verify_sketch <sketch> | Same as arduino_build_sketch exept that command uses arduino instead of arduino-builder |
Note: Scripts for building libs and multiple sketches expect that sketch has same name as folder and .ino extension.
Special directories Home directory(/root)
- Arduino
- libraries (folder for additional libraries)
- hardware (folder for hardware)
- tools (additional tools)
- arduino_hardware.txt (additional links to hardware, separate with new line)
- arduino_platforms.txt (override default boards, separate with new line)
- arduino_tools.txt (additional links to tools)
Examples:
Full example:
arduino_install_board <board> # Install additional boards
arduino_install_lib <lib_name1>,<git_url>,<lib_name2> # Download libraries
git clone https://github.com/user/repo.git repo
arduino_build_lib repo
Set boards with command:
àrduino_build_lib repo arduino:avr:uno,arduino:avr:nano,...
Build sketch:
arduino_build_sketch repo/repo.ino
Feel free to contribute
arduino:avr:uno
arduino:avr:pro
arduino:avr:lilypad
arduino:avr:mini:cpu=atmega328
arduino:avr:esplora
arduino:avr:micro:cpu=atmega328
arduino:avr:nano:cpu=atmega328
arduino:avr:mega:cpu=atmega2560
arduino:avr:diecimila
arduino:avr:yun
arduino:sam:arduino_due_x
arduino:samd:arduino_zero_native
esp8266:esp8266:huzzah:FlashSize=4M3M,CpuFrequency=80
arduino:avr:leonardo
adafruit:samd:adafruit_metro_m4
adafruit:avr:trinket5
arduino:avr:gemma