Skip to main content

jno

Command line interface wrapper for Arduino IDE, inspired by ino.

Installation

Using PyPi, the package can be obtained using:

pip install jno

Or you can download the repo and use:

pip install .

Initialize

To begin using jno, change working directory to your project. Then, perform:

jno init

This will initialize the basic directory structure and create a jno.jno file, 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 jno

By 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 of jno.jno files. The local jno.jno file 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.10

OR

jno setlocal --exec_dir=/home/pi/Documents/arduino-1.8.10

depending 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.jno file.

Usage

The commands supported are:

jno build [parameters]: compile the code, verifying that there are no errors

jno upload [parameters]: compile + upload the code

jno serial [parameters]: start a serial monitor

jno init: initialize current working directory with libraries/, sketch/, and jno.jno if they are not present

jno clean: removes all build files (located in .build of directory)

jno boards [optional parameters]: list the board models supported by your Arduino IDE

jno ports [optional parameters]: list the ports currently available

jno setlocal [setting]: change setting in local jno.jno

jno setglobal [setting]: change setting in global jno.jno

jno help [command name]: lists usage and description for all commands, or for a specific command

Settings (for setlocal and setglobal)

These settings are the same as those contained in jno.jno files. 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 include uno and mega. For boardname options, use the boards command.

--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 this jno.jno is 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 if jno help [command name] was invoked.

jno Directory Structure

A valid jno directory contains a libraries directory, a sketch directory with a sketch.ino inside, and a jno.jno file. The libraries directory 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]

References

This tool is a wrapper for the Arduino IDE commandline interface, documented here: https://github.com/arduino/Arduino/blob/master/build/shared/manpage.adoc

Metadata

Release files for jno 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jno 0.5.0
File Size Uploaded Provenance Actions
jno-0.5.0.tar.gz 14.8 kB Without provenance Details for jno-0.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for jno 0.5.0
File Interpreter ABI Platform Actions
jno-0.5.0-py3-none-any.whl Python 3 none any Details for jno-0.5.0-py3-none-any.whl

Total release size: 35.4 kB

Release files / jno-0.5.0.tar.gz

Download URL jno-0.5.0.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6ac564a78f4a5ebe09931efa166f91016678104093eb93be8d4a9f0b86cb73c8
BLAKE2b-256 checksum
How to use checksums
c58ca1dd06be14893d525147d0880da98f2459cd261ca2c6850c33a361fb3e2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.9

Release files / jno-0.5.0-py3-none-any.whl

Download URL jno-0.5.0-py3-none-any.whl
Size 20.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
95847786ec741ed2ffe655859e3cea3b721563b2721cb22672bfabc298979893
BLAKE2b-256 checksum
How to use checksums
b874bc86c5ec07e8db7e35daa9939b3ec22eda9c33ebee43227c8a0dab7e17f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.9

Security for jno 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page