From d392981ea6f011291332632988326fe68b781fed Mon Sep 17 00:00:00 2001 From: Max Rothman Date: Fri, 26 Jun 2026 16:36:35 -0700 Subject: [PATCH 1/2] Add DisplayMap to OpticalStimulationConfig Adds a DisplayMap message (row_map/col_map) and an optional display_map field to OpticalStimulationConfig, for runtime-configurable optical-stim pin mapping. Index = logical row/col, value = physical chip pin; map lengths define the display dimensions. --- api/nodes/optical_stimulation.proto | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/api/nodes/optical_stimulation.proto b/api/nodes/optical_stimulation.proto index dcbfa6a..d0bef87 100644 --- a/api/nodes/optical_stimulation.proto +++ b/api/nodes/optical_stimulation.proto @@ -2,6 +2,11 @@ syntax = "proto3"; package synapse; +message DisplayMap { + repeated uint32 row_map = 1; + repeated uint32 col_map = 2; +} + message OpticalStimulationConfig { uint32 peripheral_id = 1; repeated uint32 pixel_mask = 2; @@ -9,9 +14,11 @@ message OpticalStimulationConfig { uint32 frame_rate = 4; float gain = 5; - // Instruct the FPGA to send out a 1xN vector + // Instruct the FPGA to send out a 1xN vector // where N is the number of LEDs with each Axon frame bool send_receipts = 6; + + DisplayMap display_map = 7; } // Core frame type for LED array optical stimulation From eabaf102065df76b684e2c2d8261c08c71d34aa5 Mon Sep 17 00:00:00 2001 From: calvinleng-science Date: Tue, 4 Aug 2026 16:44:43 -0700 Subject: [PATCH 2/2] bump version + add comment explaining semantics behind DisplayMap --- VERSION | 2 +- api/nodes/optical_stimulation.proto | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 8e8299d..35cee72 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.4.2 +2.4.3 diff --git a/api/nodes/optical_stimulation.proto b/api/nodes/optical_stimulation.proto index d0bef87..16310c1 100644 --- a/api/nodes/optical_stimulation.proto +++ b/api/nodes/optical_stimulation.proto @@ -3,6 +3,8 @@ syntax = "proto3"; package synapse; message DisplayMap { + // row_map[i] == index of physical row on the peripheral + // likewise for col_map repeated uint32 row_map = 1; repeated uint32 col_map = 2; }