From 50cbc7edd8fa4642c11d2c6704aa6bed05dabcc2 Mon Sep 17 00:00:00 2001 From: cjsha Date: Tue, 2 Sep 2025 18:52:03 -0400 Subject: [PATCH 1/5] Simplify templates - Only 1 template for all headstages: - To help with this, make CSV into JSON - Table can now be generated by for loop instead of manually written in template - Generate title in template - Put SKU in subtitle - Overall, this template is incomplete. It's proof-of-concept --- source/_static/theme_overrides.css | 8 +- .../hs onix template eib 6809 no adp.rst | 60 ------ .../hs onix template eib 6813 adp 7200.rst | 118 ----------- .../hs onix template no eib no adp.rst | 39 ---- .../hs spi template eib 6809 no adp.rst | 71 ------- .../hs spi template eib 6813 adp 7200.rst | 89 --------- .../hs spi template no eib no adp.rst | 49 ----- source/_templates/hs.rst | 137 +++++++++++++ source/conf.py | 12 +- source/headstages/hs.csv | 11 - source/headstages/hs.json | 188 ++++++++++++++++++ source/headstages/oeps-6570.rst | 6 +- source/headstages/oeps-6571.rst | 6 +- source/headstages/oeps-6573.rst | 6 +- source/headstages/oeps-6574.rst | 7 +- source/headstages/oeps-6576.rst | 6 +- source/headstages/oeps-6577.rst | 6 +- source/headstages/oeps-7741.rst | 6 +- source/headstages/oeps-7743.rst | 6 +- source/headstages/oeps-7745.rst | 6 +- source/headstages/oeps-7746.rst | 6 +- 21 files changed, 356 insertions(+), 487 deletions(-) delete mode 100644 source/_templates/hs onix template eib 6809 no adp.rst delete mode 100644 source/_templates/hs onix template eib 6813 adp 7200.rst delete mode 100644 source/_templates/hs onix template no eib no adp.rst delete mode 100644 source/_templates/hs spi template eib 6809 no adp.rst delete mode 100644 source/_templates/hs spi template eib 6813 adp 7200.rst delete mode 100644 source/_templates/hs spi template no eib no adp.rst create mode 100644 source/_templates/hs.rst delete mode 100644 source/headstages/hs.csv create mode 100644 source/headstages/hs.json diff --git a/source/_static/theme_overrides.css b/source/_static/theme_overrides.css index 04c6889..388edf0 100644 --- a/source/_static/theme_overrides.css +++ b/source/_static/theme_overrides.css @@ -459,9 +459,13 @@ img { } .bd-sidebar-primary { - width: 20%; + width: 20%; } strong { - font-weight: bold; + font-weight: bold; } + +.sku-rubric { + margin-top: 0; +} \ No newline at end of file diff --git a/source/_templates/hs onix template eib 6809 no adp.rst b/source/_templates/hs onix template eib 6809 no adp.rst deleted file mode 100644 index 33bbcf6..0000000 --- a/source/_templates/hs onix template eib 6809 no adp.rst +++ /dev/null @@ -1,60 +0,0 @@ - -{{ sku }} -========= - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_main.jpg - :align: center - :width: 60% - -.. csv-table:: - :widths: 15, 50 - - "**Acquisition System**", "{{ hs_data[sku]['acquisition_system'] }}" - "**Dimensions**", "{{ hs_data[sku]['dimensions'] }}" - "**Weight**", "{{ hs_data[sku]['mass'] }}" - "**Probe connector**", "{{ hs_data[sku]['probe_connector'] }}" - "**Tether connector**", "{{ hs_data[sku]['tether_connector'] }}" - "**Operating voltage**", "{{ hs_data[sku ]['operating_voltage'] }}" - "**REF and GND**", "{{ hs_data[sku]['ref_gnd'] }}" - {%- if hs_data[sku]['mounting_hole'] %} - "**Structural Opening**", "{{ hs_data[sku]['mounting_hole'] }}" - {%- endif %} - "**Source Files**", "{{ hs_data[sku]['src_repo'] }}" - "**Release**", "{{ hs_data[sku]['release'] }}" - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} Channel map. For Open Ephys GUI channel numbers, add 1. - -.. Add this section when pictures and channel maps are done - -.. {{ sku }} EIB Combination -.. ----------------------------- -.. -.. .. csv-table::) -.. :widths: 15, 50 -.. -.. "**Compatible EIB**", "OEPS-6809 ShuttleDrive 32-ch Omnetics EIB" -.. -.. .. figure:: /_static/images/{{ sku }}/eib/{{ sku }}_OEPS-6809_mounting.jpg -.. :align: center -.. :width: 100% -.. -.. {{ sku }} EIB combination mounting -.. -.. .. figure:: /_static/images/{{ sku }}/eib/{{ sku }}_OEPS-6809_channel_map.jpg -.. :align: center -.. :width: 70% -.. -.. {{ sku }} EIB combination channel map - -Other combinations ------------------- - -To construct other channel maps, take a look at the channel mapping table and connector pinout. - -.. raw:: html - -
diff --git a/source/_templates/hs onix template eib 6813 adp 7200.rst b/source/_templates/hs onix template eib 6813 adp 7200.rst deleted file mode 100644 index 4708ad0..0000000 --- a/source/_templates/hs onix template eib 6813 adp 7200.rst +++ /dev/null @@ -1,118 +0,0 @@ - -{{ sku }} -========= - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_main.jpg - :align: center - :width: 60% - -.. csv-table:: - :widths: 15, 50 - - "**Acquisition System**", "{{ hs_data[sku]['acquisition_system'] }}" - "**Dimensions**", "{{ hs_data[sku]['dimensions'] }}" - "**Weight**", "{{ hs_data[sku]['mass'] }}" - "**Probe connector**", "{{ hs_data[sku]['probe_connector'] }}" - "**Tether connector**", "{{ hs_data[sku]['tether_connector'] }}" - "**Operating voltage**", "{{ hs_data[sku ]['operating_voltage'] }}" - "**REF and GND**", "{{ hs_data[sku]['ref_gnd'] }}" - {%- if hs_data[sku]['mounting_hole'] %} - "**Structural Opening**", "{{ hs_data[sku]['mounting_hole'] }}" - {%- endif %} - "**Source Files**", "{{ hs_data[sku]['src_repo'] }}" - "**Release**", "{{ hs_data[sku]['release'] }}" - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} Channel map. For Open Ephys GUI channel numbers, add 1. - -{% if sku == 'OEPS-7741' %} -.. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library - - .. figure:: /_static/images/OEPS-7741/main/OEPS-7741_channel_map_v0.4.5.jpg - :align: center - :width: 70% - - {{ sku }} Channel map. For Open Ephys GUI channel number, add 1. - -{% endif %} - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_axes.jpg - :align: center - :width: 70% - - {{ sku }} IMU axes - -{{ sku }} EIB Combination ------------------------------ - -.. csv-table:: - :widths: 15, 50 - - "**Compatible EIB**", "OEPS-6813 ShuttleDrive 64-ch Hirose EIB" - -.. figure:: /_static/images/{{ sku }}/eib/{{ sku }}_OEPS-6813_mounting.jpg - :align: center - :width: 100% - - {{ sku }} EIB combination mounting - -.. figure:: /_static/images/{{ sku }}/eib/{{ sku }}_OEPS-6813_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} EIB combination channel map - -{% if sku == 'OEPS-7741' %} -.. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library - - .. figure:: /_static/images/OEPS-7741/eib/OEPS-7741_OEPS-6813_channel_map_v0.4.5.jpg - :align: center - :width: 70% - - {{ sku }} EIB combination channel map - -{% endif %} - - -{{ sku }} Adapter Combination ------------------------------ - -.. csv-table:: - :widths: 15, 50 - - "**Compatible Adapter**", "OEPS-7200 Adapter Hirose to Omnetics 64ch" - -.. figure:: /_static/images/{{ sku }}/adp/{{ sku }}_OEPS-7200_mounting.jpg - :align: center - :width: 100% - - {{ sku }} EIB combination mounting - -.. figure:: /_static/images/{{ sku }}/adp/{{ sku }}_OEPS-7200_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} Adapter combination channel map - -{% if sku == 'OEPS-7741' %} -.. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library - - .. figure:: /_static/images/OEPS-7741/adp/OEPS-7741_OEPS-7200_channel_map_v0.4.5.jpg - :align: center - :width: 70% - - {{ sku }} Adapter combination channel map - -{% endif %} - -Other combinations ------------------- - -To construct other channel maps, take a look at the channel mapping table and connector pinout. - -.. raw:: html - -
diff --git a/source/_templates/hs onix template no eib no adp.rst b/source/_templates/hs onix template no eib no adp.rst deleted file mode 100644 index 2c4c4d3..0000000 --- a/source/_templates/hs onix template no eib no adp.rst +++ /dev/null @@ -1,39 +0,0 @@ - -{{ sku }} -========= - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_main.jpg - :align: center - :width: 60% - -.. csv-table:: - :widths: 15, 50 - - "**Acquisition System**", "{{ hs_data[sku]['acquisition_system'] }}" - "**Dimensions**", "{{ hs_data[sku]['dimensions'] }}" - "**Weight**", "{{ hs_data[sku]['mass'] }}" - "**Probe connector**", "{{ hs_data[sku]['probe_connector'] }}" - "**Tether connector**", "{{ hs_data[sku]['tether_connector'] }}" - "**Operating voltage**", "{{ hs_data[sku ]['operating_voltage'] }}" - "**REF and GND**", "{{ hs_data[sku]['ref_gnd'] }}" - {%- if hs_data[sku]['mounting_hole'] %} - "**Structural Opening**", "{{ hs_data[sku]['mounting_hole'] }}" - {%- endif %} - "**Source Files**", "{{ hs_data[sku]['src_repo'] }}" - "**Release**", "{{ hs_data[sku]['release'] }}" - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_axes.jpg - :align: center - :width: 70% - - {{ sku }} IMU axes - - -Other combinations ------------------- - -To construct other channel maps, take a look at the channel mapping table and connector pinout. - -.. raw:: html - -
diff --git a/source/_templates/hs spi template eib 6809 no adp.rst b/source/_templates/hs spi template eib 6809 no adp.rst deleted file mode 100644 index 3e79b08..0000000 --- a/source/_templates/hs spi template eib 6809 no adp.rst +++ /dev/null @@ -1,71 +0,0 @@ - -{{ sku }} -========= - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_main.jpg - :align: center - :width: 60% - -.. csv-table:: - :widths: 15, 50 - - "**Acquisition System**", "{{ hs_data[sku]['acquisition_system'] }}" - "**Dimensions**", "{{ hs_data[sku]['dimensions'] }}" - "**Weight**", "{{ hs_data[sku]['mass'] }}" - "**Probe connector**", "{{ hs_data[sku]['probe_connector'] }}" - "**Tether connector**", "{{ hs_data[sku]['tether_connector'] }}" - "**Operating voltage**", "{{ hs_data[sku ]['operating_voltage'] }}" - "**REF and GND**", "{{ hs_data[sku]['ref_gnd'] }}" - {%- if hs_data[sku]['mounting_hole'] %} - "**Structural Opening**", "{{ hs_data[sku]['mounting_hole'] }}" - {%- endif %} - "**Source Files**", "{{ hs_data[sku]['src_repo'] }}" - "**Release**", "{{ hs_data[sku]['release'] }}" - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} Channel map. For Open Ephys GUI channel numbers, add 1. - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_axes.jpg - :align: center - :width: 70% - - {% if sku == 'OEPS-6573' %} - {{ sku }} Accelerometer axes - {% else %} - {{ sku }} IMU axes - {% endif %} - -.. Add this section when pictures and channel maps are done - -.. {{ sku }} EIB Combination -.. ----------------------------- - -.. (.. csv-table::) - :widths: 15, 50 - - "**Compatible EIB**", "OEPS-6809 ShuttleDrive 32-ch Omnetics EIB" - -.. .. figure:: /_static/images/{{ sku }}/eib/{{ sku }}_OEPS-6809_mounting.jpg - :align: center - :width: 100% - - {{ sku }} EIB combination mounting - -.. .. figure:: /_static/images/{{ sku }}/eib/{{ sku }}_OEPS-6809_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} EIB combination channel map - - -Other combinations ------------------- - -To construct other channel maps, take a look at the channel mapping table and connector pinout. - -.. raw:: html - -
diff --git a/source/_templates/hs spi template eib 6813 adp 7200.rst b/source/_templates/hs spi template eib 6813 adp 7200.rst deleted file mode 100644 index 800847f..0000000 --- a/source/_templates/hs spi template eib 6813 adp 7200.rst +++ /dev/null @@ -1,89 +0,0 @@ - -{{ sku }} -========= - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_main.jpg - :align: center - :width: 60% - -.. csv-table:: - :widths: 15, 50 - - "**Acquisition System**", "{{ hs_data[sku]['acquisition_system'] }}" - "**Dimensions**", "{{ hs_data[sku]['dimensions'] }}" - "**Weight**", "{{ hs_data[sku]['mass'] }}" - "**Probe connector**", "{{ hs_data[sku]['probe_connector'] }}" - "**Tether connector**", "{{ hs_data[sku]['tether_connector'] }}" - "**Operating voltage**", "{{ hs_data[sku ]['operating_voltage'] }}" - "**REF and GND**", "{{ hs_data[sku]['ref_gnd'] }}" - {%- if hs_data[sku]['mounting_hole'] %} - "**Structural Opening**", "{{ hs_data[sku]['mounting_hole'] }}" - {%- endif %} - "**Source Files**", "{{ hs_data[sku]['src_repo'] }}" - "**Release**", "{{ hs_data[sku]['release'] }}" - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} Channel map. For Open Ephys GUI channel numbers, add 1. - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_axes.jpg - :align: center - :width: 70% - - {% if sku == 'OEPS-6570' %} - {{ sku }} Accelerometer axes - {% else %} - {{ sku }} IMU axes - {% endif %} - -{{ sku }} EIB Combination ------------------------------ - -.. csv-table:: - :widths: 15, 50 - - "**Compatible EIB**", "OEPS-6813 ShuttleDrive 64-ch Hirose EIB" - -.. figure:: /_static/images/{{ sku }}/eib/{{ sku }}_OEPS-6813_mounting.jpg - :align: center - :width: 100% - - {{ sku }} EIB combination mounting - -.. figure:: /_static/images/{{ sku }}/eib/{{ sku }}_OEPS-6813_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} EIB combination channel map - -{{ sku }} Adapter Combination ------------------------------ - -.. csv-table:: - :widths: 15, 50 - - "**Compatible Adapter**", "OEPS-7200 Adapter Hirose to Omnetics 64ch" - -.. figure:: /_static/images/{{ sku }}/adp/{{ sku }}_OEPS-7200_mounting.jpg - :align: center - :width: 100% - - {{ sku }} EIB combination mounting - -.. figure:: /_static/images/{{ sku }}/adp/{{ sku }}_OEPS-7200_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} Adapter combination channel map - - -Other combinations ------------------- - -To construct other channel maps, take a look at the channel mapping table and connector pinout. - -.. raw:: html - -
diff --git a/source/_templates/hs spi template no eib no adp.rst b/source/_templates/hs spi template no eib no adp.rst deleted file mode 100644 index 57e42ee..0000000 --- a/source/_templates/hs spi template no eib no adp.rst +++ /dev/null @@ -1,49 +0,0 @@ - -{{ sku }} -========= - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_main.jpg - :align: center - :width: 60% - -.. csv-table:: - :widths: 15, 50 - - "**Acquisition System**", "{{ hs_data[sku]['acquisition_system'] }}" - "**Dimensions**", "{{ hs_data[sku]['dimensions'] }}" - "**Weight**", "{{ hs_data[sku]['mass'] }}" - "**Probe connector**", "{{ hs_data[sku]['probe_connector'] }}" - "**Tether connector**", "{{ hs_data[sku]['tether_connector'] }}" - "**Operating voltage**", "{{ hs_data[sku ]['operating_voltage'] }}" - "**REF and GND**", "{{ hs_data[sku]['ref_gnd'] }}" - {%- if hs_data[sku]['mounting_hole'] %} - "**Structural Opening**", "{{ hs_data[sku]['mounting_hole'] }}" - {%- endif %} - "**Source Files**", "{{ hs_data[sku]['src_repo'] }}" - "**Release**", "{{ hs_data[sku]['release'] }}" - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_channel_map.jpg - :align: center - :width: 70% - - {{ sku }} Channel map. For Open Ephys GUI channel numbers, add 1. - -.. figure:: /_static/images/{{ sku }}/main/{{ sku }}_axes.jpg - :align: center - :width: 70% - - {% if sku == 'OEPS-6574' %} - {{ sku }} Accelerometer axes - {% else %} - {{ sku }} IMU axes - {% endif %} - - -Other combinations ------------------- - -To construct other channel maps, take a look at the channel mapping table and connector pinout. - -.. raw:: html - -
diff --git a/source/_templates/hs.rst b/source/_templates/hs.rst new file mode 100644 index 0000000..ac9d28d --- /dev/null +++ b/source/_templates/hs.rst @@ -0,0 +1,137 @@ + +=================================================================================================== +{{ hs.Name }} +=================================================================================================== + +.. rubric:: {{ hs.SKU }} + :class: sku-rubric + :heading-level: 4 + +.. figure:: /_static/images/{{ hs.SKU }}/main/{{ hs.SKU }}_main.jpg + :align: center + :width: 60% + +.. csv-table:: + :widths: 15, 50 + {% for key, value in hs.Chart.items() %} + "**{{ key }}**", "{{ value }}"{% endfor %} + +.. figure:: /_static/images/{{ hs.SKU }}/main/{{ hs.SKU }}_channel_map.jpg + :align: center + :width: 70% + + {{ hs.SKU }} Channel map. For Open Ephys GUI channel numbers, add 1. + +{% if sku == 'OEPS-7741' %} +.. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library + + .. figure:: /_static/images/OEPS-7741/main/OEPS-7741_channel_map_v0.4.5.jpg + :align: center + :width: 70% + + {{ hs.SKU }} Channel map. For Open Ephys GUI channel number, add 1. +{% endif %} + +.. figure:: /_static/images/{{ hs.SKU }}/main/{{ hs.SKU }}_axes.jpg + :align: center + :width: 70% + + {% if sku == 'OEPS-6573' %} + {{ hs.SKU }} Accelerometer axes + {% else %} + {{ hs.SKU }} IMU axes + {% endif %} + +.. Add this section when pictures and channel maps are done + +.. {{ hs.SKU }} EIB Combination +.. ----------------------------- + +.. (.. csv-table::) + :widths: 15, 50 + + "**Compatible EIB**", "OEPS-6809 ShuttleDrive 32-ch Omnetics EIB" + +.. .. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_OEPS-6809_mounting.jpg + :align: center + :width: 100% + + {{ hs.SKU }} EIB combination mounting + +.. .. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_OEPS-6809_channel_map.jpg + :align: center + :width: 70% + + {{ hs.SKU }} EIB combination channel map + +{{ hs.SKU }} EIB Combination +----------------------------- + +.. .. csv-table:: +.. :widths: 15, 50 + +.. "**Compatible EIB**", "OEPS-6813 ShuttleDrive 64-ch Hirose EIB" + +.. .. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_OEPS-6813_mounting.jpg +.. :align: center +.. :width: 100% + +.. {{ hs.SKU }} EIB combination mounting + +.. .. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_OEPS-6813_channel_map.jpg +.. :align: center +.. :width: 70% + +.. {{ hs.SKU }} EIB combination channel map + +{% if sku == 'OEPS-7741' %} +.. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library + + .. figure:: /_static/images/OEPS-7741/eib/OEPS-7741_OEPS-6813_channel_map_v0.4.5.jpg + :align: center + :width: 70% + + {{ hs.SKU }} EIB combination channel map + +{% endif %} + + +{{ hs.SKU }} Adapter Combination +----------------------------- + +.. .. csv-table:: +.. :widths: 15, 50 + +.. "**Compatible Adapter**", "OEPS-7200 Adapter Hirose to Omnetics 64ch" + +.. .. figure:: /_static/images/{{ hs.SKU }}/adp/{{ hs.SKU }}_OEPS-7200_mounting.jpg +.. :align: center +.. :width: 100% + +.. {{ hs.SKU }} EIB combination mounting + +.. .. figure:: /_static/images/{{ hs.SKU }}/adp/{{ hs.SKU }}_OEPS-7200_channel_map.jpg +.. :align: center +.. :width: 70% + +.. {{ hs.SKU }} Adapter combination channel map + +{% if sku == 'OEPS-7741' %} +.. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library + + .. figure:: /_static/images/OEPS-7741/adp/OEPS-7741_OEPS-7200_channel_map_v0.4.5.jpg + :align: center + :width: 70% + + {{ hs.SKU }} Adapter combination channel map + +{% endif %} + +Other combinations +------------------ + +To construct other channel maps, take a look at the channel mapping table and connector pinout. + +.. raw:: html + +
diff --git a/source/conf.py b/source/conf.py index 0a49e59..ebc777e 100644 --- a/source/conf.py +++ b/source/conf.py @@ -1,5 +1,5 @@ from datetime import datetime, timezone -import csv +import json # -*- coding: utf-8 -*- # @@ -213,11 +213,9 @@ } html_favicon = "_static/images/favicon.png" -with open('headstages/hs.csv', mode='r') as hs_csv: - hs_csv_data = csv.DictReader(hs_csv, skipinitialspace=True, strict=True) - hs_data = {} - for row in hs_csv_data: - hs_data[row['sku']] = {key: value for key, value in row.items() if key not in 'sku'} +with open('headstages/hs.json', mode='r') as hs_json: + hs_data = json.load(hs_json) + # print(json.dumps(hs_data, indent=4)) html_context = { "github_user": "open-ephys", @@ -250,5 +248,3 @@ def rstjinja(app, docname, source): def setup(app): app.connect("source-read", rstjinja) - - diff --git a/source/headstages/hs.csv b/source/headstages/hs.csv deleted file mode 100644 index 7ea3d90..0000000 --- a/source/headstages/hs.csv +++ /dev/null @@ -1,11 +0,0 @@ -sku, acquisition_system, dimensions, mass, tether_connector, operating_voltage, probe_connector, ref_gnd,mounting_hole, src_repo, release -OEPS-7741, ONIX,18.6mm diameter,1.5 g, X.Fl,5 - 6.3 V,1x Hirose DF40C-70DP-0.4V(51),REF and GND connections tied together using the R29 0-ohm jumper resistor that can be removed,,https://github.com/open-ephys/onix-headstage-64,Revision 1.3B -OEPS-7743, ONIX,12.5 x 16 mm,0.68 g, X.Fl,3 - 5.5 V,1x ZIF connector,REF and GND connections are not tied together,Two M1.4 (1.4 mm in diameter) mounting holes,https://github.com/open-ephys/onix-headstage-neuropix1e,Revision A -OEPS-7745, ONIX,10.2 x 14.2 mm,0.64 g, X.Fl,3 - 5.5 V,2x ZIF connector,REF and GND connections are not tied together,Two 1.8 x 0.8 mm mounting holes,https://github.com/open-ephys/onix-headstage-neuropix2e,Revision B -OEPS-7746, ONIX,15.2 x 25.5 mm,1.62 g, U.Fl,3.4 - 5 V,"1x Omnetics A79025: 36 pins, 4 guide posts ",REF and GND connections tied together using the R18 0-ohm jumper resistor that can be removed,,https://github.com/open-ephys/onix-headstage-rhs2116,Revision C -OEPS-6570,Acquisition board,18.8mm diameter,1.0 g,12-pin SPI,3.3 V (3.2 - 3.6 V),1x Hirose DF40C-70DP-0.4V(51),"REF and GND connections tied together using the R1 0-ohm jumper resistor that can be removed. In revision 1.0, REF and GND are not connected.",One 3.3 x 5.8 mm cutout,https://github.com/open-ephys/low-profile-spi-headstage-64ch,Revision 1.1 -OEPS-6571,Acquisition board,18.8mm diameter,1.0 g,12-pin SPI,3.3 V (3.2 - 3.6 V),1x Hirose DF40C-70DP-0.4V(51),REF and GND connections tied together using the R1 0-ohm jumper resistor that can be removed,One 3.3 x 5.8 mm cutout,https://github.com/open-ephys/low-profile-3d-headstage-64ch,Revision 1.1 -OEPS-6573,Acquisition board,15.1 x 26 mm,1.1 g,12-pin SPI,3.3 V (3.2 - 3.6 V),"1x Omnetics A79025: 36 pins, 4 guide posts ",REF and GND connections tied together using the R0 0-ohm jumper resistor that can be removed,,https://github.com/open-ephys/vertical-profile-spi-headstage-32ch/tree/b4f33e54d2db8ce6c290a44bb6fce44c8458ad05,Revision 1.1 -OEPS-6574,Acquisition board,15.1 x 26 mm,1.1 g,12-pin SPI,3.3 V (3.2 - 3.6 V),"1x Omnetics A79025: 36 pins, 4 guide posts ",REF and GND connections tied together using the R0 0-ohm jumper resistor that can be removed,,https://github.com/open-ephys/vertical-profile-spi-headstage-32ch/tree/b4f33e54d2db8ce6c290a44bb6fce44c8458ad05,Revision 1.1 -OEPS-6576,Acquisition board,15.1 x 26 mm,1.1 g,12-pin SPI,3.3 V (3.2 - 3.6 V),"1x Omnetics A79025: 36 pins, 4 guide posts ",REF and GND connections tied together using the R0 0-ohm jumper resistor that can be removed,,https://github.com/open-ephys/vertical-profile-3d-headstage-32ch/tree/1d0a5a96fac3b563b6898d3760aa07ea882179af,Revision 1.1 -OEPS-6577,Acquisition board,15.1 x 26 mm,1.1 g,12-pin SPI,3.3 V (3.2 - 3.6 V),"1x Omnetics A79025: 36 pins, 4 guide posts ",REF and GND connections tied together using the R0 0-ohm jumper resistor that can be removed,,https://github.com/open-ephys/vertical-profile-3d-headstage-32ch/tree/1d0a5a96fac3b563b6898d3760aa07ea882179af,Revision 1.1 diff --git a/source/headstages/hs.json b/source/headstages/hs.json new file mode 100644 index 0000000..fb37dd8 --- /dev/null +++ b/source/headstages/hs.json @@ -0,0 +1,188 @@ +{ + "Headstages": [ + { + "SKU": "OEPS-7741", + "Name": "ONIX Headstage 64", + "EIBs": [], + "Adapters": [], + "3D": "IMU", + "Chart": { + "Acquisition System": "ONIX", + "Dimensions": "18.6mm diameter", + "Mass": "1.5 g", + "Probe Connector": "1x Hirose DF40C-70DP-0.4V(51)", + "Tether Connector": "X.Fl", + "Operating Voltage": "5 - 6.3 V", + "REF and GND": "REF and GND connections tied together using the R29 0-ohm jumper resistor that can be removed", + "Source Repo": "https://github.com/open-ephys/onix-headstage-64", + "Release": "Revision 1.3B" + } + }, + { + "SKU": "OEPS-7743", + "Name": "ONIX Headstage Neuropixels 1.0e", + "EIBs": [], + "Adapters": [], + "3D": "IMU", + "Chart": { + "Acquisition System": "ONIX", + "Dimensions": "12.5 x 16 mm", + "Mass": "0.68 g", + "Probe Connector": "1x ZIF connector", + "Tether Connector": "X.Fl", + "Operating Voltage": "3 - 5.5 V", + "REF and GND": "REF and GND connections are not tied together", + "Mounting Features": "Two M1.4 (1.4 mm in diameter) mounting holes", + "Source Repo": "https://github.com/open-ephys/onix-headstage-neuropix1e", + "Release": "Revision A" + } + }, + { + "SKU": "OEPS-7745", + "Name": "ONIX Headstage Neuropixels 2.0e", + "EIBs": [], + "Adapters": [], + "3D": "IMU", + "Chart": { + "Acquisition System": "ONIX", + "Dimensions": "10.2 x 14.2 mm", + "Mass": "0.64 g", + "Probe Connector": "2x ZIF connector", + "Tether Connector": "X.Fl", + "Operating Voltage": "3 - 5.5 V", + "REF and GND": "REF and GND connections are not tied together", + "Mounting Features": "Two 1.8 x 0.8 mm mounting holes", + "Source Repo": "https://github.com/open-ephys/onix-headstage-neuropix2e", + "Release": "Revision B" + } + }, + { + "SKU": "OEPS-7746", + "Name": "ONIX Headstage RHS2116", + "EIBs": [], + "Adapters": [], + "3D": "IMU", + "Chart": { + "Acquisition System": "ONIX", + "Dimensions": "15.2 x 25.5 mm", + "Mass": "1.62 g", + "Probe Connector": "1x Omnetics A79025: 36 pins, 4 guide posts", + "Tether Connector": "U.Fl", + "Operating Voltage": "3.4 - 5 V", + "REF and GND": "REF and GND connections tied together using the R18 0-ohm jumper resistor that can be removed", + "Source Repo": "https://github.com/open-ephys/onix-headstage-rhs2116", + "Release": "Revision C" + } + }, + { + "SKU": "OEPS-6570", + "Name": "SPI Headstage 64 Low Profile", + "EIBs": [], + "Adapters": [], + "3D": "Accelerometer", + "Chart": { + "Acquisition System": "Acquisition board", + "Dimensions": "18.8mm diameter", + "Mass": "1.0 g", + "Probe Connector": "1x Hirose DF40C-70DP-0.4V(51)", + "Tether Connector": "12-pin SPI", + "Operating Voltage": "3.3 V (3.2 - 3.6 V)", + "REF and GND": "REF and GND connections tied together using the R1 0-ohm jumper resistor that can be removed. In revision 1.0, REF and GND are not connected.", + "Mounting Features": "One 3.3 x 5.8 mm cutout", + "Source Repo": "https://github.com/open-ephys/low-profile-spi-headstage-64ch", + "Release": "Revision 1.1" + } + }, + { + "SKU": "OEPS-6571", + "Name": "SPI Headstage 64 Low Profile 3D", + "EIBs": [], + "Adapters": [], + "3D": "IMU", + "Chart": { + "Acquisition System": "Acquisition board", + "Dimensions": "18.8mm diameter", + "Mass": "1.0 g", + "Probe Connector": "1x Hirose DF40C-70DP-0.4V(51)", + "Tether Connector": "12-pin SPI", + "Operating Voltage": "3.3 V (3.2 - 3.6 V)", + "REF and GND": "REF and GND connections tied together using the R1 0-ohm jumper resistor that can be removed", + "Mounting Features": "One 3.3 x 5.8 mm cutout", + "Source Repo": "https://github.com/open-ephys/low-profile-3d-headstage-64ch", + "Release": "Revision 1.1" + } + }, + { + "SKU": "OEPS-6573", + "Name": "SPI Headstage 32", + "EIBs": [], + "Adapters": [], + "3D": "Accelerometer", + "Chart": { + "Acquisition System": "Acquisition board", + "Dimensions": "15.1 x 26 mm", + "Mass": "1.1 g", + "Probe Connector": "1x Omnetics A79025: 36 pins, 4 guide posts", + "Tether Connector": "12-pin SPI", + "Operating Voltage": "3.3 V (3.2 - 3.6 V)", + "REF and GND": "REF and GND connections tied together using the R0 0-ohm jumper resistor that can be removed", + "Source Repo": "https://github.com/open-ephys/vertical-profile-spi-headstage-32ch/tree/b4f33e54d2db8ce6c290a44bb6fce44c8458ad05", + "Release": "Revision 1.1" + } + }, + { + "SKU": "OEPS-6574", + "Name": "SPI Headstage 32 3D", + "EIBs": [], + "Adapters": [], + "3D": "Accelerometer", + "Chart": { + "Acquisition System": "Acquisition board", + "Dimensions": "15.1 x 26 mm", + "Mass": "1.1 g", + "Probe Connector": "1x Omnetics A79025: 36 pins, 4 guide posts", + "Tether Connector": "12-pin SPI", + "Operating Voltage": "3.3 V (3.2 - 3.6 V)", + "REF and GND": "REF and GND connections tied together using the R0 0-ohm jumper resistor that can be removed", + "Source Repo": "https://github.com/open-ephys/vertical-profile-spi-headstage-32ch/tree/b4f33e54d2db8ce6c290a44bb6fce44c8458ad05", + "Release": "Revision 1.1" + } + }, + { + "SKU": "OEPS-6576", + "Name": "SPI Headstage 16 Bipolar", + "EIBs": [], + "Adapters": [], + "3D": "IMU", + "Chart": { + "Acquisition System": "Acquisition board", + "Dimensions": "15.1 x 26 mm", + "Mass": "1.1 g", + "Probe Connector": "1x Omnetics A79025: 36 pins, 4 guide posts", + "Tether Connector": "12-pin SPI", + "Operating Voltage": "3.3 V (3.2 - 3.6 V)", + "REF and GND": "REF and GND connections tied together using the R0 0-ohm jumper resistor that can be removed", + "Source Repo": "https://github.com/open-ephys/vertical-profile-3d-headstage-32ch/tree/1d0a5a96fac3b563b6898d3760aa07ea882179af", + "Release": "Revision 1.1" + } + }, + { + "SKU": "OEPS-6577", + "Name": "SPI Headstage 16 Bipolar 3D", + "EIBs": [], + "Adapters": [], + "3D": "IMU", + "Chart": { + "Acquisition System": "Acquisition board", + "Dimensions": "15.1 x 26 mm", + "Mass": "1.1 g", + "Probe Connector": "1x Omnetics A79025: 36 pins, 4 guide posts", + "Tether Connector": "12-pin SPI", + "Operating Voltage": "3.3 V (3.2 - 3.6 V)", + "REF and GND": "REF and GND connections tied together using the R0 0-ohm jumper resistor that can be removed", + "Source Repo": "https://github.com/open-ephys/vertical-profile-3d-headstage-32ch/tree/1d0a5a96fac3b563b6898d3760aa07ea882179af", + "Release": "Revision 1.1" + } + } + ] +} \ No newline at end of file diff --git a/source/headstages/oeps-6570.rst b/source/headstages/oeps-6570.rst index ad53794..f578fe7 100644 --- a/source/headstages/oeps-6570.rst +++ b/source/headstages/oeps-6570.rst @@ -1,4 +1,2 @@ -Low-profile SPI Headstages 64ch -================================================ -{% with sku = 'OEPS-6570' %} -{% include 'hs spi template eib 6813 adp 7200.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-6570') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-6571.rst b/source/headstages/oeps-6571.rst index 5757e03..82c8d32 100644 --- a/source/headstages/oeps-6571.rst +++ b/source/headstages/oeps-6571.rst @@ -1,4 +1,2 @@ -Low-profile SPI Headstages 64ch with 3D -======================================= -{% with sku = 'OEPS-6571' %} -{% include 'hs spi template eib 6813 adp 7200.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-6571') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-6573.rst b/source/headstages/oeps-6573.rst index 54121cb..3db6bf0 100644 --- a/source/headstages/oeps-6573.rst +++ b/source/headstages/oeps-6573.rst @@ -1,4 +1,2 @@ -SPI Headstage 32ch -==================================== -{% with sku = 'OEPS-6573' %} -{% include 'hs spi template eib 6809 no adp.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-6573') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-6574.rst b/source/headstages/oeps-6574.rst index 7ac84c7..d8e3752 100644 --- a/source/headstages/oeps-6574.rst +++ b/source/headstages/oeps-6574.rst @@ -1,4 +1,3 @@ -SPI Headstage 16ch bipolar -============================================ -{% with sku = 'OEPS-6574' %} -{% include 'hs spi template no eib no adp.rst' %} {% endwith %} \ No newline at end of file + +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-6574') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-6576.rst b/source/headstages/oeps-6576.rst index 0a12505..0ab7090 100644 --- a/source/headstages/oeps-6576.rst +++ b/source/headstages/oeps-6576.rst @@ -1,4 +1,2 @@ -SPI Headstage 32ch with 3D -=========================== -{% with sku = 'OEPS-6576' %} -{% include 'hs spi template eib 6809 no adp.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-6576') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-6577.rst b/source/headstages/oeps-6577.rst index b59c3a0..5834e29 100644 --- a/source/headstages/oeps-6577.rst +++ b/source/headstages/oeps-6577.rst @@ -1,4 +1,2 @@ -SPI Headstage 16ch bipolar with 3D -=================================== -{% with sku = 'OEPS-6577' %} -{% include 'hs spi template no eib no adp.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-6577') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-7741.rst b/source/headstages/oeps-7741.rst index 3f4582a..286810f 100644 --- a/source/headstages/oeps-7741.rst +++ b/source/headstages/oeps-7741.rst @@ -1,4 +1,2 @@ -ONIX Headstage Ephys 64ch -================================================ -{% with sku = 'OEPS-7741' %} -{% include 'hs onix template eib 6813 adp 7200.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-7741') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-7743.rst b/source/headstages/oeps-7743.rst index 1148ce5..5aabe4e 100644 --- a/source/headstages/oeps-7743.rst +++ b/source/headstages/oeps-7743.rst @@ -1,4 +1,2 @@ -ONIX Headstage Neuropixels 1.0e -================================ -{% with sku = 'OEPS-7743' %} -{% include 'hs onix template no eib no adp.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-7743') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-7745.rst b/source/headstages/oeps-7745.rst index a5b8cc0..be54b47 100644 --- a/source/headstages/oeps-7745.rst +++ b/source/headstages/oeps-7745.rst @@ -1,4 +1,2 @@ -ONIX Headstage Neuropixels 2.0e -================================ -{% with sku = 'OEPS-7745' %} -{% include 'hs onix template no eib no adp.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-7745') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file diff --git a/source/headstages/oeps-7746.rst b/source/headstages/oeps-7746.rst index ab69a0a..1d38f88 100644 --- a/source/headstages/oeps-7746.rst +++ b/source/headstages/oeps-7746.rst @@ -1,4 +1,2 @@ -ONIX Headstage 32ch Stim/Record -===================================== -{% with sku = 'OEPS-7746' %} -{% include 'hs onix template eib 6809 no adp.rst' %} {% endwith %} \ No newline at end of file +{% for hs in hs_data.Headstages | selectattr('SKU', 'equalto', 'OEPS-7746') %} +{% include 'hs.rst' %} {% endfor %} \ No newline at end of file From b6bee79bc24fdc6a1ff2206080c379443fdee6e0 Mon Sep 17 00:00:00 2001 From: cjsha Date: Tue, 2 Sep 2025 19:18:37 -0400 Subject: [PATCH 2/5] Add template logic for EIBs and adapters --- source/_templates/hs.rst | 93 ++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 46 deletions(-) diff --git a/source/_templates/hs.rst b/source/_templates/hs.rst index ac9d28d..f81c2fc 100644 --- a/source/_templates/hs.rst +++ b/source/_templates/hs.rst @@ -1,11 +1,11 @@ =================================================================================================== -{{ hs.Name }} +{{ hs.Name }} ({{ hs.SKU }}) =================================================================================================== -.. rubric:: {{ hs.SKU }} - :class: sku-rubric - :heading-level: 4 +.. .. rubric:: {{ hs.SKU }} +.. :class: sku-rubric +.. :heading-level: 4 .. figure:: /_static/images/{{ hs.SKU }}/main/{{ hs.SKU }}_main.jpg :align: center @@ -14,7 +14,8 @@ .. csv-table:: :widths: 15, 50 {% for key, value in hs.Chart.items() %} - "**{{ key }}**", "{{ value }}"{% endfor %} + "**{{ key }}**", "{{ value }}" + {% endfor %} .. figure:: /_static/images/{{ hs.SKU }}/main/{{ hs.SKU }}_channel_map.jpg :align: center @@ -44,45 +45,33 @@ .. Add this section when pictures and channel maps are done -.. {{ hs.SKU }} EIB Combination -.. ----------------------------- +{% if hs.EIBs is defined and hs.EIBs|length > 0 %} -.. (.. csv-table::) - :widths: 15, 50 +{{ hs.SKU }} EIB Combinations +------------------------------------------------------------------------ + +Compatible EIBs: +{% for eib_sku, eib_name in hs.EIBs.items() %} +- {{ eib_name }} ({{ eib_sku }}) {% endfor %} + +{% for eib, value in hs.EIBs.items() %} - "**Compatible EIB**", "OEPS-6809 ShuttleDrive 32-ch Omnetics EIB" +{{ eib_name }} ({{ eib_sku }}) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. .. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_OEPS-6809_mounting.jpg +.. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_{{ eib_sku }}_mounting.jpg :align: center :width: 100% - {{ hs.SKU }} EIB combination mounting + {{ hs.SKU }} {{ eib_sku }} combination mounting -.. .. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_OEPS-6809_channel_map.jpg +.. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_{{ eib_sku }}_channel_map.jpg :align: center :width: 70% - {{ hs.SKU }} EIB combination channel map - -{{ hs.SKU }} EIB Combination ------------------------------ - -.. .. csv-table:: -.. :widths: 15, 50 + {{ hs.SKU }} {{ eib_sku }} combination channel map -.. "**Compatible EIB**", "OEPS-6813 ShuttleDrive 64-ch Hirose EIB" - -.. .. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_OEPS-6813_mounting.jpg -.. :align: center -.. :width: 100% - -.. {{ hs.SKU }} EIB combination mounting - -.. .. figure:: /_static/images/{{ hs.SKU }}/eib/{{ hs.SKU }}_OEPS-6813_channel_map.jpg -.. :align: center -.. :width: 70% - -.. {{ hs.SKU }} EIB combination channel map +{% endfor %} {% if sku == 'OEPS-7741' %} .. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library @@ -91,30 +80,40 @@ :align: center :width: 70% - {{ hs.SKU }} EIB combination channel map + {{ hs.SKU }} {{ eib_sku }} combination channel map {% endif %} +{% endif %} + +{% if hs.Adapters is defined and hs.Adapters|length > 0 %} {{ hs.SKU }} Adapter Combination ------------------------------ +-------------------------------------------------------------------------------------- -.. .. csv-table:: -.. :widths: 15, 50 +Compatible EIBs: +{% for adapter_sku, adapter_name in hs.Adapters.items() %} +- {{ adapter_name }} ({{ adapter_sku }}) +{% endfor %} -.. "**Compatible Adapter**", "OEPS-7200 Adapter Hirose to Omnetics 64ch" +{% for eib, value in hs.Adapters.items() %} -.. .. figure:: /_static/images/{{ hs.SKU }}/adp/{{ hs.SKU }}_OEPS-7200_mounting.jpg -.. :align: center -.. :width: 100% +{{ adapter_name }} ({{ adapter_sku }}) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. {{ hs.SKU }} EIB combination mounting +.. figure:: /_static/images/{{ hs.SKU }}/adapter/{{ hs.SKU }}_{{ adapter_sku }}_mounting.jpg + :align: center + :width: 100% -.. .. figure:: /_static/images/{{ hs.SKU }}/adp/{{ hs.SKU }}_OEPS-7200_channel_map.jpg -.. :align: center -.. :width: 70% + {{ hs.SKU }} {{ adapter_sku }} combination mounting -.. {{ hs.SKU }} Adapter combination channel map +.. figure:: /_static/images/{{ hs.SKU }}/adapter/{{ hs.SKU }}_{{ adapter_sku }}_channel_map.jpg + :align: center + :width: 70% + + {{ hs.SKU }} {{ adapter_sku }} combination channel map + +{% endfor %} {% if sku == 'OEPS-7741' %} .. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library @@ -127,6 +126,8 @@ {% endif %} +{% endif %} + Other combinations ------------------ From 9e539216068b9c07ee54a0afb3cfcf667bee8a3a Mon Sep 17 00:00:00 2001 From: cjsha Date: Tue, 2 Sep 2025 19:43:25 -0400 Subject: [PATCH 3/5] Fix eib and adapter logic in template --- .../OEPS-6570_OEPS-7200_channel_map.jpg | Bin .../OEPS-6570_OEPS-7200_mounting.jpg | Bin source/_static/theme_overrides.css | 4 --- source/_templates/hs.rst | 26 +++++++----------- source/headstages/hs.json | 4 +-- 5 files changed, 12 insertions(+), 22 deletions(-) rename source/_static/images/OEPS-6570/{adp => adapter}/OEPS-6570_OEPS-7200_channel_map.jpg (100%) rename source/_static/images/OEPS-6570/{adp => adapter}/OEPS-6570_OEPS-7200_mounting.jpg (100%) diff --git a/source/_static/images/OEPS-6570/adp/OEPS-6570_OEPS-7200_channel_map.jpg b/source/_static/images/OEPS-6570/adapter/OEPS-6570_OEPS-7200_channel_map.jpg similarity index 100% rename from source/_static/images/OEPS-6570/adp/OEPS-6570_OEPS-7200_channel_map.jpg rename to source/_static/images/OEPS-6570/adapter/OEPS-6570_OEPS-7200_channel_map.jpg diff --git a/source/_static/images/OEPS-6570/adp/OEPS-6570_OEPS-7200_mounting.jpg b/source/_static/images/OEPS-6570/adapter/OEPS-6570_OEPS-7200_mounting.jpg similarity index 100% rename from source/_static/images/OEPS-6570/adp/OEPS-6570_OEPS-7200_mounting.jpg rename to source/_static/images/OEPS-6570/adapter/OEPS-6570_OEPS-7200_mounting.jpg diff --git a/source/_static/theme_overrides.css b/source/_static/theme_overrides.css index 388edf0..ede6f49 100644 --- a/source/_static/theme_overrides.css +++ b/source/_static/theme_overrides.css @@ -464,8 +464,4 @@ img { strong { font-weight: bold; -} - -.sku-rubric { - margin-top: 0; } \ No newline at end of file diff --git a/source/_templates/hs.rst b/source/_templates/hs.rst index f81c2fc..fcdfd71 100644 --- a/source/_templates/hs.rst +++ b/source/_templates/hs.rst @@ -3,10 +3,6 @@ {{ hs.Name }} ({{ hs.SKU }}) =================================================================================================== -.. .. rubric:: {{ hs.SKU }} -.. :class: sku-rubric -.. :heading-level: 4 - .. figure:: /_static/images/{{ hs.SKU }}/main/{{ hs.SKU }}_main.jpg :align: center :width: 60% @@ -14,8 +10,7 @@ .. csv-table:: :widths: 15, 50 {% for key, value in hs.Chart.items() %} - "**{{ key }}**", "{{ value }}" - {% endfor %} + "**{{ key }}**", "{{ value }}"{% endfor %} .. figure:: /_static/images/{{ hs.SKU }}/main/{{ hs.SKU }}_channel_map.jpg :align: center @@ -51,10 +46,10 @@ ------------------------------------------------------------------------ Compatible EIBs: -{% for eib_sku, eib_name in hs.EIBs.items() %} -- {{ eib_name }} ({{ eib_sku }}) {% endfor %} +{% for eib in hs.EIBs %} {% for eib_sku, eib_name in eib.items() %} +- {{ eib_name }} ({{ eib_sku }}) {% endfor %} {% endfor %} -{% for eib, value in hs.EIBs.items() %} +{% for eib in hs.EIBs %} {% for eib_sku, eib_name in eib.items() %} {{ eib_name }} ({{ eib_sku }}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -71,7 +66,7 @@ Compatible EIBs: {{ hs.SKU }} {{ eib_sku }} combination channel map -{% endfor %} +{% endfor %} {% endfor %} {% if sku == 'OEPS-7741' %} .. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library @@ -91,12 +86,11 @@ Compatible EIBs: {{ hs.SKU }} Adapter Combination -------------------------------------------------------------------------------------- -Compatible EIBs: -{% for adapter_sku, adapter_name in hs.Adapters.items() %} -- {{ adapter_name }} ({{ adapter_sku }}) -{% endfor %} +Compatible Adapters: +{% for adapter in hs.Adapters %} {% for adapter_sku, adapter_name in adapter.items() %} +- {{ adapter_name }} ({{ adapter_sku }}) {% endfor %} {% endfor %} -{% for eib, value in hs.Adapters.items() %} +{% for adapter in hs.Adapters %} {% for adapter_sku, adapter_name in adapter.items() %} {{ adapter_name }} ({{ adapter_sku }}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -113,7 +107,7 @@ Compatible EIBs: {{ hs.SKU }} {{ adapter_sku }} combination channel map -{% endfor %} +{% endfor %} {% endfor %} {% if sku == 'OEPS-7741' %} .. dropdown:: Channel map if your data were acquired using up to version 0.4.5 of the OpenEphys.Onix1 library diff --git a/source/headstages/hs.json b/source/headstages/hs.json index fb37dd8..9df5db3 100644 --- a/source/headstages/hs.json +++ b/source/headstages/hs.json @@ -77,8 +77,8 @@ { "SKU": "OEPS-6570", "Name": "SPI Headstage 64 Low Profile", - "EIBs": [], - "Adapters": [], + "EIBs": [{"OEPS-6813":"ShuttleDrive 64-ch Hirose EIB"}], + "Adapters": [{"OEPS-7200":"Hirose to Omnetics 64"}], "3D": "Accelerometer", "Chart": { "Acquisition System": "Acquisition board", From 7fb85bc7d19ffcd4506aecce810509537ba54f9b Mon Sep 17 00:00:00 2001 From: cjsha Date: Tue, 2 Sep 2025 19:55:34 -0400 Subject: [PATCH 4/5] use 3D entry from JSON file in hs template --- source/_templates/hs.rst | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/source/_templates/hs.rst b/source/_templates/hs.rst index fcdfd71..218d04d 100644 --- a/source/_templates/hs.rst +++ b/source/_templates/hs.rst @@ -32,11 +32,7 @@ :align: center :width: 70% - {% if sku == 'OEPS-6573' %} - {{ hs.SKU }} Accelerometer axes - {% else %} - {{ hs.SKU }} IMU axes - {% endif %} + {{ hs.3D }} axes .. Add this section when pictures and channel maps are done @@ -76,7 +72,6 @@ Compatible EIBs: :width: 70% {{ hs.SKU }} {{ eib_sku }} combination channel map - {% endif %} {% endif %} @@ -117,7 +112,6 @@ Compatible Adapters: :width: 70% {{ hs.SKU }} Adapter combination channel map - {% endif %} {% endif %} From 4382c30268742fbfe6b805e84d2c2fe7588a0096 Mon Sep 17 00:00:00 2001 From: cjsha Date: Tue, 2 Sep 2025 19:59:00 -0400 Subject: [PATCH 5/5] change syntax to avoid error --- source/_templates/hs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/_templates/hs.rst b/source/_templates/hs.rst index 218d04d..70d20ea 100644 --- a/source/_templates/hs.rst +++ b/source/_templates/hs.rst @@ -32,7 +32,7 @@ :align: center :width: 70% - {{ hs.3D }} axes + {{ hs['3D'] }} axes .. Add this section when pictures and channel maps are done