Skip to main content

nor1029-controller

Programmatically control the Norsonic Nor265 microphone boom / turntable

Install

pip install nor1029-controller

Usage

from nor1029_controller import Nor265

with Nor265('/dev/serial.0') as nor:
    nor.rotate(180, speed=10, acceleration=2)

API

Nor265(port)

port

The serial port to connect to.

nor

Nor265 instance.

.angle

readonly

Optional parameters will default to whatever was previously set.

.rotate(angle, speed?, acceleration?)

.rotate_relative(angle, speed?, acceleration?)

.start_sweep(start_angle, stop_angle, period, acceleration?)

Oscillate between two angles.

.start_continuous_rotation(direction, speed?, acceleration?)

from nor1029_controller import Nor265, RotationDirection
import time

with Nor265() as nor:
    nor.start_continuous_rotation(
        direction=RotationDirection.CLOCKWISE,
        speed=10,
        acceleration=2
    )

    # Rotate for 5 seconds
    time.sleep(5)

    nor.stop()

.start_rotate(angle, speed?, acceleration?)

.start_rotate_relative(angle, speed?, acceleration?)

The start_* methods will return when the movement starts, while the regular methods will also wait for the movement to finish.

.stop()

Stop any ongoing movement.

.go_home()

Rotate back to the home position.

.is_moving

readonly

.close()

If you're not using a context manager, you should instead call this method when you are done.

from nor1029_controller import Nor265

nor = Nor265('/dev/serial.0')

nor.rotate(180, speed=10, acceleration=2)

nor.close()

.wait_stopped(timeout?, poll_interval?)

Wait until it is not moving.

.rotate() and .rotate_relative() do this automatically.

timeout

The maximum time to wait in seconds.

Default: None (no timeout)

poll_interval

The interval between each check in seconds.

Default: 0.01 (10 milliseconds)

from nor1029_controller import Nor265

with Nor265('/dev/serial.0') as nor:
    nor.start_rotate(180, speed=10, acceleration=2)
    
    # ...
    
    nor.wait_stopped(timeout=10)

list_ports()

Scan for available serial ports (according to their description).

from nor1029_controller import Nor265, list_ports

# Pick first serial port
port = list_ports()[0].device

with Nor265(port) as nor:
    nor.rotate(180, speed=10, acceleration=2)

RotationDirection

Enum

  • CLOCKWISE
  • COUNTER_CLOCKWISE

Metadata

Release files for nor1029-controller 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 nor1029-controller 0.5.0
File Size Uploaded Provenance
nor1029_controller-0.5.0.tar.gz 12.1 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 17.9 kB

Release files / nor1029_controller-0.5.0.tar.gz

Download URL nor1029_controller-0.5.0.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
018c264070d8f887f9f32124436d2bc55d1b896b89003cb2ca1f228e00c514f1
BLAKE2b-256 checksum
How to use checksums
9b1d6ee581dae220ed2cff3cdc1bec8b019acdcbcf3bb57c439aea858c1ac40f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

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

Download URL nor1029_controller-0.5.0-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b2b472b54c97b0ea8885b9ec971b12b47f5dd4b98724cb82d4ee81c8e56fe4f7
BLAKE2b-256 checksum
How to use checksums
f6373426508c56f625981de7224b1ab431b9b77a5a4cb39e9540b931dc8383db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.13

Security for nor1029-controller 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