Docker for testing Arduino sketches and libraries
1.2K
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)
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
Content type
Image
Digest
Size
655.5 MB
Last updated
about 8 years ago
docker pull slocomptech/docker-arduino