triggerbox

Programmable MIMO synchronization device, software and hardward design

https://github.com/siyanghao/triggerbox

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Programmable MIMO synchronization device, software and hardward design

Basic Info
  • Host: GitHub
  • Owner: siyanghao
  • License: mit
  • Language: MATLAB
  • Default Branch: main
  • Size: 261 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Created over 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

TriggerBox

Programmable MIMO synchronization device: software and hardware design
image

Input

  • Active Triggers (source): Reads TTL signal rising edge (5V) from the TriggerBox system. Intended to coordinate with a manually conducted push-trigger.
  • Passive Triggers (sink): Reads TTL signal rising edge (5V) from other systems, current rated to 20mA (e.g., a trigger signal from a motion controller or high-speed camera).

Output

  • Flash: A driving pulse to a standard LED diode
  • Beep: Drives a buzzer with a specific tone
  • Trigger Signal: Sends a TTL signal to other systems, 5V 20mA or amplified with an LM386 amplifier
  • Gate: Stays high when the system is armed, low when disarmed

Logic

V2.6: General-purpose version

  • The system reads a trigger input signal, either manual or motion pulse
  • The system gets armed
  • Flashes and beeps with a programmed pattern
  • Trigger output is sent simultaneously; gate remains high
  • Another trigger input disarms the system with a flash, beep, and trigger output

V3.01: New features for PIV/Laser system

  • Takes inputs from the safety curtain and PTUX to control the gate of the DM laser
  • Armed by push trigger
  • Opens the laser gate only if the system is armed and LaVision is ready (PTU output HIGH)
  • The system is disarmed by pressing the manual trigger again or if an object falls through the safety curtain

Software

  • TriggerBox: Arduino code to drive the box
  • TriggerFinder: {rising, falling} = TriggerFinder(High, Low, State)
    • MATLAB function for post-processing the trigger signal
    • Digitizes: sets any value below Low to 0 and any value above High to 5
    • Derivative used to find peaks at rising and falling edges
  • BeepFinder
    • Detects beep tones collected by a microphone in post-processing
    • Uses Short-Time Fourier Transform (STFT) to visualize time history of the spectrum
    • Uses cross-correlation to find beep patterns on the STFT
  • InlineTrigger
    • Generates a burst of pulses upon receiving one TTL pulse

Hardware

The listed hardware has been verified to be compatible. Alternatives may also be used since these are standard components.

PCB Design

  • The shield board is customized for hardware interface
  • The design files are provided in the PCB design .zip archive
  • We chose JLCPCB as our manufacturer

Owner

  • Name: Siyang Hao
  • Login: siyanghao
  • Kind: user
  • Company: Brown University

Script-driven automatic experiments & Data-driven analyze

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Hao"
  given-names: "Siyang"
  orcid: "https://orcid.org/0000-0001-5012-3605"
title: "TriggerBox"
version: 2.6
date-released: 2021-06-18
url: "https://github.com/siyanghao/TriggerBox"

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1