====== Device Drivers ====== PIXILAB Blocks comes with a plug-in architecture for controlling most devices equipped with a network, serial data or IR remote control port. New device drivers are written by PIXILAB and by our partners. [[https://github.com/pixilab/blocks-script|A curated set of device drivers is available from PIXILAB's github page]]. ===== Device Driver Development ===== The open plug-in architechure allows anyone with sufficient software development experience to develop device drivers that can work as an integral part of Blocks, accessible from panels, tasks and custom scripts in a high-level manner. [[blocks:drivers:the-movie|Here's a video series to get you up to speed on device drivers in general and how to make them.]] ====Prerequisites==== Here's what you'll need: * Familiarity with JavaScript and TypeScript development, which is similar to (but not identical to) [[https://nodejs.org/en/|Node.js]] development. * A Mac, Window or Linux computer you can use for development purposes, with its own Blocks license. * Access to the target device, controllable using network or serial (RS232/RS485) data communication. * Adequate documentation of the control protocol of the target device. Further documentation to get you started: * [[blocks:drivers:tools|Development tools and code]] * [[blocks:drivers:concepts|Basic concepts]] * [[blocks:drivers:example|Example walk-through]] * [[blocks:drivers:troubleshooting|Troubleshooting a driver]] * [[blocks:drivers:serial|Controlling devices with RS232/RS485 serial data]] * [[blocks:drivers:ir|Controlling Devices through IR]]