Crappy
  • What is Crappy ?
    • Overview
    • Key features of Crappy
    • Is Crappy for me ?
  • Installation
    • Requirements
    • 1. Check your Python version
    • 2. Deploy a virtual environment (optional)
    • 3. Install Crappy
    • 4. Check your install
  • Tutorials
    • Getting started : writing scripts in Crappy
      • 0. General concepts
        • 0.a. Blocks
        • 0.b. Links
        • 0.c. Labels
      • 1. Understanding Crappy’s syntax
      • 2. The most used Blocks
        • 2.a. The Generator Block and its Paths
        • 2.b. The Camera Block
        • 2.c. The Grapher Block
        • 2.d. The Recorder Block
        • 2.e. The IOBlock Block
        • 2.f. The Machine Block
      • 3. Properly stopping a script
    • Towards more complexity
      • 1. Using feedback loops
      • 2. Using Modifiers
      • 3. Advanced Generator condition
      • 4. Dealing with streams
      • 5. Writing scripts efficiently
        • 5.a. Use variables
        • 5.b. Use loops
        • 5.c. Use other packages
      • 6. Using Crappy objects outside of a Crappy test
      • 7. Advanced control over the runtime
        • 7.a. Alternative startup methods
        • 7.b. Arguments to the startup method
    • Creating and using custom objects in Crappy
      • 1. Custom Modifiers
      • 2. Custom Actuators
      • 3. Custom InOuts
        • 3.a. Regular mode
        • 3.b. Streamer mode
      • 4. Custom Cameras
      • 5. Custom Blocks
        • 5.a. Methods of the Block
        • 5.b. Useful attributes of the Block
        • 5.c. Sending data to other Blocks
        • 5.d. Receiving data from other Blocks
    • More about custom objects in Crappy
      • 1. Custom Generator Paths
      • 2. More about custom InOuts
      • 3. More about custom Actuators
      • 4. More about custom Cameras
        • 4.a. Pre-defined settings
        • 4.b. Reload slider and choice settings
        • 4.c. Manage the metadata of the images
      • 5. Custom Camera Blocks
        • 5.a. The CameraProcess class
        • 5.b. Writing the custom Camera Block
        • 5.c. Sending an overlay to the Displayer
        • 5.d. Final runnable example
      • 6. Sharing custom objects and Blocks
  • Current functionalities
    • Functionalities (Blocks)
      • Data display
      • Data recording
      • Data processing
      • Real-time image correlation
      • Video-extensometry
      • Signal generation
      • Hardware control
      • Test management
      • Others
    • Supported hardware (Cameras, InOuts, Actuators)
      • Supported Cameras
      • Supported Actuators
      • Supported Sensors and outputs
        • Acquisition boards
        • Sensors
        • Multi-device drivers
        • Outputs
        • Enhanced Actuators
      • LaMcube-specific hardware
    • On-the-fly data modification (Modifiers)
  • API
    • Actuators
      • Regular Actuators
        • Adafruit DC Motor Hat
        • Fake DC Motor
        • Fake Stepper Motor
        • JVL Mac140
        • Kollmorgen ServoStar 300
        • Newport TRA6PPD
        • Oriental ARD-K
        • Phidget Stepper4A
        • Pololu Tic
        • Schneider MDrive 23
      • FT232H Actuators
        • Adafruit DC Motor Hat FT232H
      • Parent Actuator
        • Actuator
    • Blocks
      • Regular Blocks
        • Auto Drive
        • Button
        • Camera Block
        • Canvas
        • Client Server
        • Dashboard
        • DIS Correl
        • DIC VE
        • Fake Machine
        • Generator
        • GPU Correl
        • GPU VE
        • Grapher
        • HDF Recorder
        • IOBlock
        • Link Reader
        • Machine
        • Mean Block
        • Multiplexer
        • Pause Block
        • PID
        • Recorder
        • Sink
        • Stop Block
        • Stop Button
        • Synchronizer
        • UController
        • Video Extenso
      • Generator Paths
        • Conditional
        • Constant
        • Custom
        • Cyclic
        • Cyclic Ramp
        • Integrator
        • Ramp
        • Sine
        • Parent Path
      • Camera Processes
        • Camera Process
        • DIC VE Process
        • DIS Correl Process
        • Displayer Process
        • GPU Correl Process
        • GPU VE Process
        • Recorder Process
        • Video Extenso Process
      • Parent Block
        • Block
    • Cameras
      • Regular Cameras
        • Camera gPhoto2
        • Camera GStreamer
        • Camera OpenCV
        • Fake Camera
        • File Reader
        • Raspberry Pi Camera
        • Raspberry Pi Camera 2
        • Seek Thermal Pro
        • Webcam
        • Xi API
      • CameraLink Cameras
        • Basler Ironman Camera Link
        • JAI GO-5000C-PMCL
        • JAI GO-5000C-PMCL 8 bits
      • Parent Camera
        • Camera
        • Camera Settings
    • Modifiers
      • Regular Modifiers
        • Demux
        • Differentiate
        • DownSampler
        • Integrate
        • Mean
        • Median
        • Moving Average
        • Moving Median
        • Offset
        • Trig on change
        • Trig on value
      • Parent Modifier
        • Modifier
    • In / Out
      • Regular In/Outs
        • ADS1115
        • Agilent 34420A
        • Comedi
        • DAQmx
        • Fake Inout
        • GPIO PWM
        • GPIO Switch
        • Kollmorgen AKD PDMM
        • Labjack T7
        • Labjack T7 Streamer
        • Labjack UE9
        • MCP9600
        • MPRLS
        • NAU7802
        • NI DAQmx
        • OpSens HandySens
        • Phidget Wheatstone Bridge
        • PiJuice
        • Sim868
        • Spectrum M2I 4711
        • Waveshare AD/DA
        • Waveshare High Precision
      • FT232H In/Outs
        • ADS1115 FT232H
        • GPIO Switch FT232H
        • MCP9600 FT232H
        • MPRLS FT232H
        • NAU7802 FT232H
        • Waveshare AD/DA FT232H
      • Parent In/Out
        • InOut
    • Links
      • Link
        • Link
    • Tools
      • Microcontroller templates
        • Arduino Template
        • MicroPython Template
      • Bindings
        • Comedi Bind
        • Py Spectrum
      • Camera Configurators
        • Camera Configurator
        • Camera Configurator with Boxes
        • DIS Correl Configurator
        • DIS VE Configurator
        • Video Extenso Configurator
        • Configurator Tools
      • Data
      • FT232H Tools
        • FT232H
        • FT232H Server
        • I2C Message
        • USB Server
      • Image Processing Tools
        • DIS Correl Tool
        • DIS VE Tool
        • Fields Tools
        • GPU Correl Tool
        • GPU Kernels
        • Video Extenso Tool
        • Video Extenso Tracker
    • Exceptions & missing Python modules
      • CameraPrepareError
      • CameraRuntimeError
      • CrappyFail
      • DefinitionError
      • GeneratorStop
      • LinkDataError
      • LostSpotError
      • PrepareError
      • ReaderStop
      • StartTimeout
      • T0NotSetError
      • OptionalModule
        • OptionalModule.__init__()
        • OptionalModule.__getattr__()
        • OptionalModule.__call__()
    • Aliases
      • Link Method
        • link()
      • Open Online Documentation
        • docs()
      • Classes aliases
      • Methods aliases
        • crappy.prepare()
        • crappy.renice()
        • crappy.launch()
        • crappy.start()
        • crappy.stop()
        • crappy.reset()
    • LaMcube
      • Bi Spectral
        • BiSpectral
      • Biaxe
        • Biaxe
      • Biotens
        • Biotens
  • Developers information
    • Contributing to Crappy
    • Technical description of Crappy
      • Blocks and Links
        • Regular Blocks and Links
        • Camera-related Blocks
      • Actuators, Cameras, InOuts
      • Modifier objects
      • C++ extension modules
      • Other objects
        • Generator Paths objects
        • CameraConfig window
        • CameraSetting objects
        • Image processing
        • FT232H feature
    • Detailed runtime sequence of Crappy
      • In the main Process
        • The __init__ phase
        • The prepare phase
        • The renice phase
        • The launch phase
        • The cleanup phase
      • In the children Processes
  • Citing Crappy
  • Troubleshooting
Crappy
  • Crappy
  • Edit on GitHub
Next

Crappy

Crappy is a Python module that aims to provide easy-to-use and open-source tools for command and data acquisition on complex experimental setups. It is designed to let users drive most setups in less than 100 lines of code. Crappy comes with a collection of directly runnable examples, and an extensive documentation that you can explore here !

  • What is Crappy ?
    • Overview
    • Key features of Crappy
    • Is Crappy for me ?
  • Installation
    • Requirements
    • 1. Check your Python version
    • 2. Deploy a virtual environment (optional)
    • 3. Install Crappy
    • 4. Check your install
  • Tutorials
    • Getting started : writing scripts in Crappy
    • Towards more complexity
    • Creating and using custom objects in Crappy
    • More about custom objects in Crappy
  • Current functionalities
    • Functionalities (Blocks)
    • Supported hardware (Cameras, InOuts, Actuators)
    • On-the-fly data modification (Modifiers)
  • API
    • Actuators
    • Blocks
    • Cameras
    • Modifiers
    • In / Out
    • Links
    • Tools
    • Exceptions & missing Python modules
    • Aliases
    • LaMcube
  • Developers information
    • Contributing to Crappy
    • Technical description of Crappy
    • Detailed runtime sequence of Crappy
  • Citing Crappy
  • Troubleshooting
Next

© Copyright 2025, LaMcube and contributors. Last updated on Dec 09, 2025.

Built with Sphinx using a theme provided by Read the Docs.