This page documents the LED-based optogenetic stimulator modules, which use the shared modular electronics platform to drive LEDs for optogenetic experiments (e.g. CsChrimson activation in Drosophila).
<aside> ℹ️
For PCB design, Arduino wiring, and Darlington array details, see New modular structure and new electronics. For motor assembly (relevant to MODULE 3), see The new Modular SD Device.
</aside>
Two MODULE types support LED outputs:
| MODULE | Name | Outputs | Python Class |
|---|---|---|---|
| 3 — mAGOLED | Motor + LED | 10 motors (odd channels) + 10 LEDs (even channels) | OptomotorSleepDepriver |
| 4 — LED | LED only | 20 LEDs (all channels) | OptoSleepDepriver |
LEDs connect to the same Darlington array output pins as motors or valves would. Each channel can sink up to 500 mA through the ULN2803 arrays. Typical optogenetic LEDs draw far less than this.
For MODULE 3 (mAGOLED): LEDs are wired to the even-numbered connector positions (V1–V10 on the PCB, channels 0, 2, 4, 6, 8, 10, 12, 14, 16, 18). Motors use the odd channels (M1–M10).
For MODULE 4 (LED only): All 20 connector positions drive LEDs (channels 0–19). Use both the M and V connectors on the PCB.
Each LED requires a current-limiting resistor appropriate for the LED's forward voltage and desired current. Wire the LED + resistor in series between the positive power rail and the Darlington array output.
Motors and LEDs are paired per ROI. Each ROI has an associated motor channel (odd) and an LED channel (even):
| ROI | Motor Channel | LED Channel |
|---|---|---|
| 1 | 1 | 0 |
| 3 | 3 | 2 |
| 5 | 5 | 4 |
| 7 | 7 | 6 |
| 9 | 9 | 8 |
| 12 | 11 | 10 |
| 14 | 13 | 12 |
| 16 | 15 | 14 |
| 18 | 17 | 16 |
| 20 | 19 | 18 |
All 20 channels are LEDs, with mAGO-style numbering (two LEDs per physical position, one on each side):
| ROI | LED Channel |
|---|---|
| 1 | 0 |
| 2 | 10 |
| 3 | 2 |
| 4 | 12 |
| 5 | 4 |
| 6 | 14 |
| 7 | 6 |
| 8 | 16 |
| 9 | 8 |
| 10 | 18 |
The Arduino firmware supports two LED control commands: