Package: jno
jnoCommand line interface wrapper for Arduino IDE, inspired by ino.InstallationUsing PyPi, the package can be obtained using:pip install jnoOr you can download the repo and use:pip install .InitializeTo begin using jno, change working directory to your project. Then, perform:jno initThis will initialize the basic directory structure and create ajno.jnofile, which stores the local jno settings.Note that on Windows, calling jno like this may not work. Instead, call the jno module directly:python -m jnoBy default, jno does not know where your Arduino IDE is located - this is represented by exec_dir in the config. There is a local and a global version ofjno.jnofiles. The localjno.jnofile overwrites the global version IF the parameters are not set to NULL or DEFAULT. To set up your exec_dir, find your Arduino folder - say /home/pi/Documents/arduino-1.8.10. Perform:jno setglobal --exec_dir=/home/pi/Documents/arduino-1.8.10ORjno setlocal --exec_dir=/home/pi/Documents/arduino-1.8.10depending on what you plan on doing - setglobal means a local .jno with exec_dir set to NULL will use the global exec_dir instead.Once exec_dir is set, jno is ready to go. You should change the global and local settings to your liking - the options are documented below. Global settings are stored in the local user's home folder in a.jnoglobal.jnofile.UsageThe commands supported are:jno build [parameters]: compile the code, verifying that there are no errorsjno upload [parameters]: compile + upload the codejno serial [parameters]: start a serial monitorjno init: initialize current working directory with libraries/, sketch/, andjno.jnoif they are not presentjno clean: removes all build files (located in .build of directory)jno boards [optional parameters]: list the board models supported by your Arduino IDEjno ports [optional parameters]: list the ports currently availablejno setlocal [setting]: change setting in localjno.jnojno setglobal [setting]: change setting in globaljno.jnojno help [command name]: lists usage and description for all commands, or for a specific commandSettings (for setlocal and setglobal)These settings are the same as those contained injno.jnofiles. These settings WILL be saved locally or globally. Note that lower case inputs are equally as valid. Possible parameters are as follows:--exec_dir=/some/dir: directory that contains the arduino executable file. NULL is the default value.--board=boardname: board that code should be compiled for. Possible 'boardname' choices includeunoandmega. For boardname options, use theboardscommand.--port=/some/port: port of arduino to upload code or start serial communication. On Linux, dmesg is useful in determining this.--baudrate=9600: baudrate used for serial communication. Must be an integer.--sketch_dir=/some/dir: directory of the local jno 'home'. Only mess with this if thisjno.jnois meant to point to a deeper directory.Parameters (for other commands)Parameters are used only for the current invocation of the command and override local settings - they WILL NOT be saved. Possible settings are:-p, --port=/some/port: see --port above. Affects the upload, serial, and ports commands.-b, --board=boardname: see --board above. Affects the build, upload, and boards commands.-b, --baudrate=9600: see --baudrate above. Only affects serial command.-e, --endline=some_string: adds string on to end of any sent serial message. Only affects serial command.-q, --quit=some_string: sets string that quits serial when entered ('EXIT' by default). Only affects serial command.-n, --noreplace: turns off replacement of \n or \r in user-sent data with newline or carriage return. Only affects serial command.Note: invoking any command with "help" following the command name will print the help string for the command instead, as ifjno help [command name]was invoked.jno Directory StructureA valid jno directory contains alibrariesdirectory, asketchdirectory with asketch.inoinside, and ajno.jnofile. Thelibrariesdirectory should contain any libraries not included in your Arduino IDE. The structure looks like this:my_ard_proj
    .
    |-- jno.jno           [configuration file]
    |-- libraries         [directory containing dependencies]
    |-- sketch            [directory containing main program .ino file]
    |   `-- sketch.ino
    |
    `-- .build            [directory for build files]ReferencesThis tool is a wrapper for the Arduino IDE commandline interface, documented here:https://github.com/arduino/Arduino/blob/master/build/shared/manpage.adoc