Binho Python Package
Thanks to incredible feedback and support from our customers, we've released an entirely rebuilt python library for Binho Nova. While we'll continue to support our previous library, active development will only take place on this one.
Aside from taking a more pythonic approach to implementing the library, we've also introduced a lot of structure and abstraction to make it even easier to use your Nova, including a command line interface and interactive shell. We've also baked numerous example scripts right into the library for easy reference.
Getting Started
The easiest way to get started is to install this library using pip:
Using Nova in your scripts is as simple as importing the library:
Then initialize a connection to the binho device as such:
When working on setups with multiple devices, you can specify the device to connect to in the following 3 ways:
grab the device with a specific index
binho = binhoHostAdapter(index=0)
or get the device using the COM port
binho = binhoHostAdapter(port=targetComport)
or get the device using the deviceID number
binho = binhoHostAdapter(deviceID = targetDeviceID)
At this point it's possible to control the device as desired. Examples of common use cases are included in this library and are briefly discussed below. When you're done with the device, be sure to close out the connection with the following:
That's all there is to it. The example scripts are introduced below, but it may also make sense to review the new Command line interface as well, as it may be possible to achieve your goals without writing any code at all.
Example Scripts
Basic Examples:
Advanced Examples:
more coming soon
Command Line Interface
he installation of this library also includes the new command line interface which makes it possible to perform a lot of common functions without needing to write any code. The format of the commands is as follows:
Each command has their own unique arguments, but all commands except 'info' support the following:
-h, --help
: prints the list of arguments-v, --verbose
: display more details on the console during execution-d, --device <deviceID>
: connect to the device with the provided deviceID number-p, --port <commport>
: connect to the device on the provided COM port-i, --index <i>
: connect to the device at index i
Note that only one of -d
, -p
, or -i
arguments can be supplied to any command.
Device Management Subcommands
binho info
This command can be used to find all Novas connected to the PC and get their associated information such as serial number, COM port, and firmware version. It will also indicate if a device is in DAPLink or Bootloader mode as well.binho dfu
This command can be used to automatically update device firmware or just enter Bootloader mode.
IO Subcommands
binho gpio
This command can be used to take digital readings or drive IO pins as digital outputs. Note that the device does not retain it's state between consecutive runs of this command. As such, a subsequent run will overwrite any previous pin configurations.binho dac
This command can be used to set the DAC output to a given voltage or raw 10bit value.binho adc
This command can be used to take readings from IO pins using the analog inputs (ADC).binho pwm
This command can be used to configure the IO pins to be used as PWM outputs.
Protocol Subcommands
binho i2c
This command can be used to perform I2C Scans, Reads, and Writes.binho eeprom
This command can be used to read from and write to common I2C EEPROM devices.binho spi
This command can be used to perform SPI transfers.binho spiflash
[Coming Soon!] This command can be used to read from and write to common SPI Flash devices.binho 1wire
This command can be used to communicate with 1Wire devices.
DAPLink Subcommands
Binho Nova can be used to program and debug microcontrollers by operating in DAPLink mode.
binho daplink
Use this command to switch Nova into and out of DAPLink mode.binho flasher
While in DAPLink mode, this command can be used to program bin/hex files into microcontrollers.
Misc. Subcommands
binho shell
This command can be used to open up a connection to the device and begin an interactive shell.
Development
We welcome contributions to our library, and we've made it easy. Here's some brief guidance to get started developing with the library.
Installation
Building Docs
We're planning to use ReadTheDocs to host detailed library documentation in the near future. You can build the documentation with the following command.
Roadmap
We're looking forward to adding support for various common UART use-cases. Additionally, we'll be adding in support for Atmel SWI if we find enough folks interested in that protocol. Our development roadmap is highly determined by customer requests and feedback, so please feel free to reach out if there's a particular feature you'd like to see added into this library.
Additional Resources
The release can be viewed on PyPi here:
And here's another direct link to the our public repo on Github:
Last updated
Was this helpful?