Skip to content

Latest commit

 

History

History
110 lines (90 loc) · 4.25 KB

README.md

File metadata and controls

110 lines (90 loc) · 4.25 KB

Docker Arduino

Build Status

What it is docker-arduino ?

Docker-arduino is docker image for simple building and testing Arduino sketches and libraries.

Tools included

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.

Enviroment variables

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.

Examples

Pure commands

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>

Integrated commands & special directories & files

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

Example repositories

Feel free to contribute

Board list (not all, but most of them)

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

External documentation