<!-- SPDX-FileCopyrightText: Copyright 2022-2026 Jetperch LLC
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. -->
<!-- Joulescope Driver documentation master file -->

# Joulescope Driver

## Table of Contents

* [Joulescope Driver](https://docs.joulescope.com/en/software/joulescope_driver/readme.md)
  * [Python Installation](https://docs.joulescope.com/en/software/joulescope_driver/readme.md#python-installation)
  * [Building](https://docs.joulescope.com/en/software/joulescope_driver/readme.md#building)
  * [License](https://docs.joulescope.com/en/software/joulescope_driver/readme.md#license)
* [Getting started](https://docs.joulescope.com/en/software/joulescope_driver/getting_started.md)
  * [Install](https://docs.joulescope.com/en/software/joulescope_driver/getting_started.md#install)
  * [Concepts](https://docs.joulescope.com/en/software/joulescope_driver/getting_started.md#concepts)
  * [Python](https://docs.joulescope.com/en/software/joulescope_driver/getting_started.md#python)
  * [C](https://docs.joulescope.com/en/software/joulescope_driver/getting_started.md#c)
  * [Command-line tools](https://docs.joulescope.com/en/software/joulescope_driver/getting_started.md#command-line-tools)
  * [Model differences](https://docs.joulescope.com/en/software/joulescope_driver/getting_started.md#model-differences)
  * [Pitfalls](https://docs.joulescope.com/en/software/joulescope_driver/getting_started.md#pitfalls)
* [Streaming and statistics topics](https://docs.joulescope.com/en/software/joulescope_driver/streaming_topics.md)
  * [Topics](https://docs.joulescope.com/en/software/joulescope_driver/streaming_topics.md#topics)
  * [Streaming samples](https://docs.joulescope.com/en/software/joulescope_driver/streaming_topics.md#streaming-samples)
  * [Statistics](https://docs.joulescope.com/en/software/joulescope_driver/streaming_topics.md#statistics)
  * [Time](https://docs.joulescope.com/en/software/joulescope_driver/streaming_topics.md#time)
  * [Buffers](https://docs.joulescope.com/en/software/joulescope_driver/streaming_topics.md#buffers)
* [C API](https://docs.joulescope.com/en/software/joulescope_driver/c_api.md)
  * [JSDRV API](https://docs.joulescope.com/en/software/joulescope_driver/h_jsdrv.md)
  * [C-String utility functions](https://docs.joulescope.com/en/software/joulescope_driver/h_cstr.md)
  * [Error codes](https://docs.joulescope.com/en/software/joulescope_driver/h_error_code.md)
  * [Metadata handling](https://docs.joulescope.com/en/software/joulescope_driver/h_meta.md)
  * [Time representation and functions](https://docs.joulescope.com/en/software/joulescope_driver/h_time.md)
  * [Topic string utility functions](https://docs.joulescope.com/en/software/joulescope_driver/h_topic.md)
  * [Union value type](https://docs.joulescope.com/en/software/joulescope_driver/h_union.md)
* [Python API](https://docs.joulescope.com/en/software/joulescope_driver/py_api.md)
  * [Driver](https://docs.joulescope.com/en/software/joulescope_driver/driver.md)
  * [Device selection](https://docs.joulescope.com/en/software/joulescope_driver/device_selection.md)
  * [Record](https://docs.joulescope.com/en/software/joulescope_driver/record.md)
  * [Program](https://docs.joulescope.com/en/software/joulescope_driver/program.md)
  * [time64](https://docs.joulescope.com/en/software/joulescope_driver/time64.md)
  * [Command-line tools](https://docs.joulescope.com/en/software/joulescope_driver/py_api.md#command-line-tools)
* [JS220 topics](https://docs.joulescope.com/en/software/joulescope_driver/js220_topics.md)
* [JS320 topics](https://docs.joulescope.com/en/software/joulescope_driver/js320_topics.md)
* [JS320 Calibration (js320_cal)](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md)
  * [Overview](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#overview)
  * [Topic surface](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#topic-surface)
  * [Operations](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#operations)
  * [Calibration record layout](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#calibration-record-layout)
  * [Caller flow](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#caller-flow)
  * [When does new cal take effect?](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#when-does-new-cal-take-effect)
  * [Recommended pre-flight: snapshot before mutating](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#recommended-pre-flight-snapshot-before-mutating)
  * [Timing characteristics](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#timing-characteristics)
  * [Reference: `minibitty cal`](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#reference-minibitty-cal)
  * [Test coverage](https://docs.joulescope.com/en/software/joulescope_driver/js320_cal.md#test-coverage)
* [JS320 Firmware Update Subsystem (js320_fwup)](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md)
  * [Overview](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#overview)
  * [Architecture](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#architecture)
  * [Topics](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#topics)
  * [Message Formats](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#message-formats)
  * [Ctrl Firmware Update](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#ctrl-firmware-update)
  * [FPGA Programming](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#fpga-programming)
  * [Pipelining](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#pipelining)
  * [Usage](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#usage)
  * [Files](https://docs.joulescope.com/en/software/joulescope_driver/js320_fwup.md#files)
* [CHANGELOG](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md)
  * [2.5.5](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id1)
  * [2.5.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id2)
  * [2.5.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id3)
  * [2.5.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id4)
  * [2.5.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id5)
  * [2.5.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id6)
  * [2.4.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id7)
  * [2.4.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id8)
  * [2.4.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id9)
  * [2.4.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id10)
  * [2.3.5](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id11)
  * [2.3.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id12)
  * [2.3.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id13)
  * [2.3.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id14)
  * [2.2.12](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id15)
  * [2.2.11](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id16)
  * [2.2.10](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id17)
  * [2.2.9](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id18)
  * [2.2.8](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id19)
  * [2.2.7](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id20)
  * [2.2.6](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id21)
  * [2.2.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id22)
  * [2.2.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id23)
  * [2.2.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id24)
  * [2.2.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id25)
  * [2.2.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id26)
  * [2.1.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id27)
  * [2.1.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id28)
  * [2.1.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id29)
  * [2.0.7](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id30)
  * [2.0.6](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id31)
  * [2.0.5](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id32)
  * [2.0.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id33)
  * [2.0.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id34)
  * [1.12.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id35)
  * [1.11.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id36)
  * [1.10.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id37)
  * [1.9.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id38)
  * [1.9.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id39)
  * [1.9.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id40)
  * [1.9.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id41)
  * [1.9.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id42)
  * [1.8.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id43)
  * [1.7.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id44)
  * [1.7.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id45)
  * [1.7.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id46)
  * [1.7.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id47)
  * [1.7.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id48)
  * [1.6.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id49)
  * [1.5.6](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id50)
  * [1.5.5](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id51)
  * [1.5.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id52)
  * [1.5.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id53)
  * [1.5.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id54)
  * [1.5.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id55)
  * [1.5.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id56)
  * [1.4.10](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id57)
  * [1.4.9](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id58)
  * [1.4.8](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id59)
  * [1.4.7](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id60)
  * [1.4.6](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id61)
  * [1.4.5](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id62)
  * [1.4.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id63)
  * [1.4.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id64)
  * [1.4.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id65)
  * [1.3.21](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id66)
  * [1.3.20](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id67)
  * [1.3.19](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id68)
  * [1.3.18](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id69)
  * [1.3.17](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id70)
  * [1.3.16](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id71)
  * [1.3.15](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id72)
  * [1.3.14](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id73)
  * [1.3.12](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id74)
  * [1.3.11](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id75)
  * [1.3.10](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id76)
  * [1.3.9](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id77)
  * [1.3.8](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id78)
  * [1.3.7](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id79)
  * [1.3.6](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id80)
  * [1.3.5](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id81)
  * [1.3.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id82)
  * [1.3.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id83)
  * [1.3.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id84)
  * [1.3.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id85)
  * [1.3.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id86)
  * [1.2.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id87)
  * [1.2.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id88)
  * [1.2.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id89)
  * [1.1.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id90)
  * [1.1.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id91)
  * [1.1.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id92)
  * [1.1.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id93)
  * [1.1.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id94)
  * [1.0.7](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id95)
  * [1.0.6](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id96)
  * [1.0.5](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id97)
  * [1.0.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id98)
  * [1.0.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id99)
  * [1.0.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id100)
  * [1.0.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id101)
  * [1.0.0](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id102)
  * [0.2.7](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id103)
  * [0.2.6](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id104)
  * [0.2.5](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id105)
  * [0.2.4](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id106)
  * [0.2.3](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id107)
  * [0.2.2](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id108)
  * [0.2.1](https://docs.joulescope.com/en/software/joulescope_driver/changelog.md#id109)

## Indices and tables

* [Index](https://docs.joulescope.com/en/genindex.html)
* [Module Index](https://docs.joulescope.com/en/py-modindex.html)
* [Search Page](https://docs.joulescope.com/en/search.html)
