Skip to content

Commit ad6fc67

Browse files
authored
Merge pull request #6 from harp-tech/modern-theme
Update to DocFX modern theme
2 parents 598432c + e6af80f commit ad6fc67

14 files changed

Lines changed: 125 additions & 189 deletions

File tree

.gitmodules

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@
3434
[submodule "protocol"]
3535
path = protocol
3636
url = https://github.com/harp-tech/protocol.git
37+
branch = doc-generation

articles/about.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1+
---
2+
uid: about
3+
---
4+
15
# What is Harp
26

3-
Harp describes a communication protocol and architecture, as well as specific devices that implement these structures.
7+
[!include[what-is-harp](./what-is-harp.md)]
48

59
## Why Harp was developed
610

7-
Current Neuroscience experiments rely on multiple parallel streams of data, acquired from different devices, to examine how neural circuit activity relates to animal behaviours. This requires precise timestamping of experimental events, so that neural and behavioural data can be accurately ordered in time. Temporally aligning different streams of data, often acquired at different frequencies, rapidly becomes more difficult as setups increase in complexity.
11+
Time is a critical variable in systems neuroscience experiments. As setups increase in complexity, temporally aligning multiple datastreams acquired from different devices rapidly becomes more difficult. Exploring how neural circuit activity relates to animal behaviour requires precise timestamping of experimental events, so that neural and behavioural data can be accurately ordered in time.
812

9-
Harp is a family of high-performance devices that make it easy for scientists to synchronize and extend the functionality of their setups. Harp devices can configure, control, & track a wide range of peripheral devices such as cameras, LEDs, nosepokes, & motors. Connecting an extra Harp device is a straightforward way to add extra functionality to a setup. All Harp devices can be connected to a shared clock line, self-synchronizing to a precision of tens of microseconds. This means that all experimental events are timestamped on the same clock and no post-hoc alignment of timing is necessary.
13+
Harp is being developed as a cross-institutional collaboration to develop an ecosystem of high-performance devices that make it easy for scientists to synchronize and extend the functionality of their setups. Harp devices should be able to configure, control, and track a wide range of peripheral devices such as cameras, LEDs, nosepokes, and motors. Connecting an extra Harp device to add functionality to a setup should be straightforward and place no extra burden on researchers.
1014

11-
From an engineering perspective, extending the functionality of a setup can also be difficult, if this requires developing a new device, including how this device will communicates with a computer, and how users will interact with the device. By agreeing beforehand how the entire family of devices will communicate, engineers do not have to reinvent or attune protocols each time they wish to develop a new device. This leads to faster, cheaper, and more robust development.
15+
From an engineering perspective, we also want to accelerate the development process of extending the functionality of a setup, and make it easier to develop new devices, deciding how these devices communicate a computer, and how researchers interact with the device. By agreeing beforehand how the entire ecosystem works together, from signal acquisition to analysis, we can support engineers not having to reinvent or attune protocols each time they wish to develop a new device. This leads to faster, cheaper, and more robust development of scientific tools.

articles/intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ The latest release of the Bonsai.Harp can be downloaded and installed through th
1616

1717
A high-level interface will usually be available for the specific Harp device you are using. To install them, first change the package manager **Package source** to `nuget.org`. Then, in the search bar, look for your device by typing: `harp.<device>`. For instance, for the Harp Behavior board, you should find the following package:
1818

19-
![HarpDevicePackage](~/images/behaviorpackage.png)
19+
![HarpDevicePackage](~/images/behavior-package.png)
2020

2121
The device nodes should now be available in the Bonsai Toolbox. You can now start using them in your workflows.

articles/what-is-harp.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Harp is a standard for asynchronous real-time data acquisition and experimental control in neuroscience. It includes specifications for a lightweight and versatile binary communication protocol, a set of common registers for microcontroller firmware, and a clock synchronization protocol.
2+
3+
:::wrap-right
4+
![Behavior Peripherals](~/images/behavior-peripherals.jpg)
5+
:::
6+
7+
Commands and events processed by all Harp devices are hardware timestamped and streamed back to the host computer over USB with a one millisecond latency. The stateless and symmetric communication protocol allows temporally accurate logging while avoiding the need for fixed sampling rates and redundant processing. Harp devices can be connected to a shared clock line and continuously self-synchronise their clocks to a precision of tens of microseconds. This means that all experimental events are timestamped on the same clock and no post-hoc alignment of timing is necessary.
8+
9+
The Harp ecosystem currently includes devices to configure, control, and collect data from a wide range of peripheral devices such as cameras, LEDs, nosepokes, and motors. Combining Harp devices is an easy way to extend experimental setup functionality with integrated timestamp synchronisation across devices.

docfx.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
],
1717
"dest": "api",
1818
"filter": "filter.yml",
19+
"enumSortOrder": "declaringOrder",
1920
"disableGitFeatures": false,
2021
"disableDefaultFilter": false
2122
}
@@ -72,6 +73,8 @@
7273
],
7374
"globalMetadata": {
7475
"_enableNewTab": true,
76+
"_enableSearch": true,
77+
"_appFooter": "<span>&copy; 2023 harp-tech and Contributors</span> - <span>Licensed under <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\">CC BY-SA 4.0</a>.</span> - <span>Made with <a href=\"https://dotnet.github.io/docfx\">docfx</a></span>",
7578
"_gitContribute": {
7679
"repo": "https://github.com/harp-tech/docs",
7780
"branch": "main",
@@ -83,7 +86,8 @@
8386
"fileMetadataFiles": [],
8487
"template": [
8588
"default",
86-
"templates/html"
89+
"modern",
90+
"template"
8791
],
8892
"postProcessors": [ "ExtractSearchIndex" ],
8993
"markdownEngineName": "markdig",
@@ -97,7 +101,6 @@
97101
"keepFileLink": false,
98102
"cleanupCacheHistory": false,
99103
"disableGitFeatures": false,
100-
"xrefService": [ "https://learn.microsoft.com/api/xref/query?uid={uid}" ],
101104
"xref": [
102105
"https://bonsai-rx.org/docs/xrefmap.yml",
103106
"https://horizongir.github.io/opencv.net/xrefmap.yml",

images/behavior-peripherals.jpg

157 KB
Loading

index.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# **Harp** Documentation
22

3-
Harp is a family of devices that configure, control, and collect data from a wide range of peripheral devices such as cameras, LEDs, nosepokes, and motors. Combining Harp devices is an easy way to extend experimental setup functionality with integrated timestamp synchronisation across devices.
3+
[!include[what-is-harp](./articles/what-is-harp.md)]
4+
5+
## Quick Start
6+
7+
* [What is Harp](./articles/about.md)
8+
* [Binary Protocol](./protocol/BinaryProtocol-8bit.md)
9+
* [Bonsai Interface](./articles/intro.md)
410

511
> [!Warning]
612
> These docs are under active development, feel free to contribute by either [raising an issue](https://github.com/harp-tech/docs/issues) or following the links saying **Improve this Doc**.

template/public/main.css

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
.workflow {
2+
border: 1px solid #e3e3e3;
3+
padding: 1px;
4+
}
5+
6+
.workflow > p > img {
7+
padding-top: 12px;
8+
padding-left: 12px;
9+
padding-right: 12px;
10+
}
11+
12+
.codeHeader {
13+
box-sizing: content-box;
14+
background-color: #f2f2f2;
15+
color: #171717;
16+
display: flex;
17+
flex-direction: row;
18+
border: 1px solid #e3e3e3;
19+
border-bottom: 0;
20+
margin-top: 16px;
21+
min-height: 30px;
22+
}
23+
24+
.codeHeader > .language {
25+
padding: 2px 16px;
26+
flex-grow: 1;
27+
line-height: 26px;
28+
}
29+
30+
.wrap-right > p > img,
31+
.wrap-right > p > a > img {
32+
max-width: 50%;
33+
float: inline-end;
34+
}

0 commit comments

Comments
 (0)