{"id":4086,"date":"2022-11-13T11:08:02","date_gmt":"2022-11-13T18:08:02","guid":{"rendered":"https:\/\/www.knightware.net\/?p=4086"},"modified":"2025-09-01T13:22:49","modified_gmt":"2025-09-01T20:22:49","slug":"building-a-camera-tally-controller-for-spyder-in-2022","status":"publish","type":"post","link":"https:\/\/www.knightware.net\/?p=4086","title":{"rendered":"Building a Camera Tally Controller for Spyder"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A whole 7 years ago I published a <a rel=\"noreferrer noopener\" href=\"https:\/\/www.knightware.net\/?p=2751\" target=\"_blank\">blog post<\/a> and a couple YouTube videos showing a cool Tally (camera relay) system that anyone could make with a $35 Raspberry Pi device and $10 relay board.  Back then this was running Windows on the Raspberry Pi 2 &#8211; a special stripped-down version of Windows called IoT Core that was designed to run on the Pi.  <br><br>In seven years, a lot has changed.  I started sprouting some gray hairs, Microsoft has all but abandoned Windows IoT Core on the Pi, .Net Core has become a mature way to deploy applications on Linux, and the Pi itself has had a powerful version 4 on the shelves for almost two years now.  In this blog post, we&#8217;re going to modernize our prior approach and add some cool new features like a front panel display and a configuration\/monitoring web interface.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-2 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-FrontOfBox.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" data-id=\"4087\" src=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-FrontOfBox-1024x610.jpg\" alt=\"\" class=\"wp-image-4087\" srcset=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-FrontOfBox-1024x610.jpg 1024w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-FrontOfBox-300x179.jpg 300w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-FrontOfBox-768x457.jpg 768w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-FrontOfBox-1536x915.jpg 1536w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-FrontOfBox-624x372.jpg 624w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-FrontOfBox.jpg 1605w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Front View of Device<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-OpenTop.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"714\" data-id=\"4088\" src=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-OpenTop-1024x714.jpg\" alt=\"\" class=\"wp-image-4088\" srcset=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-OpenTop-1024x714.jpg 1024w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-OpenTop-300x209.jpg 300w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-OpenTop-768x536.jpg 768w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-OpenTop-1536x1072.jpg 1536w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-OpenTop-624x435.jpg 624w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-OpenTop.jpg 1548w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Device with Top Off<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-BackOfBox.jpg\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"500\" data-id=\"4089\" src=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-BackOfBox-1024x500.jpg\" alt=\"\" class=\"wp-image-4089\" srcset=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-BackOfBox-1024x500.jpg 1024w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-BackOfBox-300x147.jpg 300w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-BackOfBox-768x375.jpg 768w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-BackOfBox-1536x750.jpg 1536w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-BackOfBox-624x305.jpg 624w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/09\/Tally-BackOfBox.jpg 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Back of Device (Open)<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Features and Overview<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Works with Spyder 200 \/ 300 \/ X20 \/ X80 hardware<\/li>\n\n\n\n<li>Works with every major release version of Spyder software<\/li>\n\n\n\n<li>Supports different servers and rules per individual tally<\/li>\n\n\n\n<li>Built-in web server for remote configuration and monitoring<\/li>\n\n\n\n<li>Front panel shows device IP and on\/off tally icons for quick viewing of status<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you have a Spyder video processor of any generation, this device will work as a tally controller.  For those wondering what tallies are, imagine a live show where multiple cameras are pointed at talent on a stage.  Lights are usually physically positioned on top of the cameras and light up when a camera is &#8216;live&#8217; to help the talent know which camera they should be looking at.  The tally controller described here contains relays (electronically controlled contact closures) which open and close when specific sources are shown or hidden in windows on Spyder.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The video below walks through the device hardware and software, providing probably a better end-to-end overview than this blog post for those of us out there who prefer to consume video content.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Building a Spyder Tally Device (Redux)\" width=\"625\" height=\"352\" src=\"https:\/\/www.youtube.com\/embed\/8xSgcWn2_8I?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Parts you Need<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First off, you&#8217;re going to need to buy some parts.  Here&#8217;s a list of what you need, some of which you may have around the house:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>($8 &#8211; $15) Either a <a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/JBtek-Channel-Module-Arduino-Raspberry\/dp\/B00KTEN3TM\/ref=sr_1_4?crid=1FTB7LRSDTOEM&amp;keywords=4-channel+relay+board+5v&amp;qid=1663525896&amp;sprefix=4-channel+relay+board+5v%2Caps%2C125&amp;sr=8-4\" target=\"_blank\">4-Port Relay board<\/a> or an <a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/Xiuxin-Channel-Relay-Module-Arduino\/dp\/B07C8LSXKC\/ref=sr_1_3?crid=22ZF0XBXY0SRR&amp;keywords=8-channel+relay+board+5v&amp;qid=1663525852&amp;sprefix=8-channel+relay+board+5v%2Caps%2C152&amp;sr=8-3\" target=\"_blank\">8-Port board<\/a> (lot of wiggle room on options here)<\/li>\n\n\n\n<li>($35+++) <a rel=\"noreferrer noopener\" href=\"https:\/\/www.adafruit.com\/product\/4295?src=raspberrypi\" target=\"_blank\">Raspberry Pi 2, 3, or 4<\/a>.  They should be $35, but the chip shortage has these well up over $80 as of the time of this writing.<\/li>\n\n\n\n<li>($19) <a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/STEADYGAMER-Raspberry-Preloaded-RASPBIAN-Compatible\/dp\/B07LGS1L4J\/ref=sr_1_1_sspa?crid=217PYWRUAOF2&amp;keywords=8GB+SD+card+raspberry+pi&amp;qid=1663528154&amp;sprefix=8gb+sd+card+raspberry+pi%2Caps%2C123&amp;sr=8-1-spons&amp;psc=1&amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUE5TUpZWDMwRzJTUEomZW5jcnlwdGVkSWQ9QTA4NDYyNTkyWkU2UVNBTTlRRkhGJmVuY3J5cHRlZEFkSWQ9QTAzNTk1ODFTS0lHT0lMWjJWWDcmd2lkZ2V0TmFtZT1zcF9hdGYmYWN0aW9uPWNsaWNrUmVkaXJlY3QmZG9Ob3RMb2dDbGljaz10cnVl\" target=\"_blank\">A good SD card<\/a> for running a Raspberry Pi OS.  Resist the urge to go cheap here, as cheap SD cards tend to burn out relatively quickly.<\/li>\n\n\n\n<li>($25) If you have a 3D printer, you can pick up <a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/dp\/B00J0GPC80?psc=1&amp;ref=ppx_yo2ov_dt_b_product_details\" target=\"_blank\">a spool of &#8216;Spyder blue&#8217;<\/a> filament.  If you don&#8217;t have a 3D printer, you can use a service like <a rel=\"noreferrer noopener\" href=\"https:\/\/www.xometry.com\/\" target=\"_blank\">Xometry <\/a>and have it printed for you for about $300 (honestly just go buy a cheap 3D printer).<\/li>\n\n\n\n<li>($10) <a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/gp\/product\/B07D83DY17\/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;psc=1\" target=\"_blank\">Blue I2C LCD display module<\/a> for our front panel<\/li>\n\n\n\n<li>($8) <a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/dp\/B07LB4F9V7?psc=1&amp;ref=ppx_yo2ov_dt_b_product_details\" target=\"_blank\">Panel mount USB Micro cable<\/a> to bring the power connector from the Pi to the back of the unit.  If you use a Raspberry Pi 4, use a <a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/AAOTOKK-3-1Panel-Adapter-Supports-Charging\/dp\/B08HS6X44P\/ref=sr_1_3?crid=26UNFWOPM7CU5&amp;keywords=usb-c+male+to+female+panel+mount&amp;qid=1663529307&amp;s=electronics&amp;sprefix=usb-c+mail+to+femail+panel+mount%2Celectronics%2C112&amp;sr=1-3\" target=\"_blank\">USB-C variant of this cable<\/a><\/li>\n\n\n\n<li>($12) Raspberry Pi Power Supply (<a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/DEVMO-Adapter-Supply-Charger-Raspberry\/dp\/B07S7Y9HW1\/ref=sr_1_3_sspa?keywords=raspberry+pi+power+supply+3b&amp;qid=1663529397&amp;s=electronics&amp;sprefix=raspberry+pi+power+supply%2Celectronics%2C135&amp;sr=1-3-spons&amp;psc=1&amp;spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUFWR0pRRkk3VEdDMUEmZW5jcnlwdGVkSWQ9QTA2MjU4MDMyNVczMUQ3SzNLQlhGJmVuY3J5cHRlZEFkSWQ9QTA5NzY5ODQxVzlONlhDSTFFTVIyJndpZGdldE5hbWU9c3BfYXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ==\" target=\"_blank\">Micro-USB for Pi 2 or 3,<\/a> or use <a rel=\"noreferrer noopener\" href=\"https:\/\/smile.amazon.com\/Raspberry-Supply-iUniker-Switch-Listed\/dp\/B097P2NLVH\/ref=sr_1_5?crid=EY9ILCQLXD0U&amp;keywords=raspberry+pi+power+supply+4&amp;qid=1663529450&amp;s=electronics&amp;sprefix=raspberry+pi+power+supply+%2Celectronics%2C132&amp;sr=1-5\" target=\"_blank\">USB-C for a Pi 4<\/a>)<\/li>\n\n\n\n<li>($6) Female-to-Female <a href=\"https:\/\/smile.amazon.com\/REXQualis-120pcs-Breadboard-Arduino-Raspberry\/dp\/B072L1XMJR\/ref=sr_1_5?crid=WJGNDIFXG2ZG&amp;keywords=breadboard+wires+female&amp;qid=1668304199&amp;sprefix=breadboard+wires+female%2Caps%2C163&amp;sr=8-5\" target=\"_blank\" rel=\"noreferrer noopener\">wire kit<\/a> to connect the parts together<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">3D Printing a Chassis<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I used <a href=\"https:\/\/www.tinkercad.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">TinkerCad <\/a>to design a simple chassis to hold a 4-relay board.  You can copy and modify this design as you see fit, but for most folks you can simply download the 3D print STL files for the top and bottom pieces, and either print them yourself or send them off to a 3D printing service.  If you watch the video from earlier in this blog post you&#8217;ll see the Raspberry Pi and the tally board are on the wrong sides of the chassis, and I&#8217;ve corrected this in the current design.<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-white-background-color has-background\"><thead><tr><th>Chassis Top Piece<\/th><th>Chassis Bottom Piece<\/th><\/tr><\/thead><tbody><tr><td><img decoding=\"async\" src=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Tally-Chassis-Top.jpg\"><\/td><td><img decoding=\"async\" src=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Tally-Chassis-Bottom.jpg\"><\/td><\/tr><tr><td><a href=\"https:\/\/www.tinkercad.com\/things\/9f3fRXSIMkH\" target=\"_blank\" rel=\"noreferrer noopener\">View in TinkerCad<\/a><\/td><td><a href=\"https:\/\/www.tinkercad.com\/things\/gZQWgpXlQ4g\" target=\"_blank\" rel=\"noreferrer noopener\">View in TinkerCad<\/a><\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">3D Chassis Parts for Tally<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Building the unit is quite easy once you&#8217;ve acquired and printed the parts required.  The open frame views in the video show off mounting the raspberry pi, tally board, and LCD front panel display in the chassis. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wiring the pieces together<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You can use simple breadboard style wiring connectors to save yourself from any kind of soldering, making the assembly a &#8216;Lego-like&#8217; plug and play experience.  The images below show the connections you&#8217;ll wire up from the Raspberry Pi to the LCD display and the relay board.  If you&#8217;re creating a tally controller with more than the 4 relays shown, you&#8217;ll simply pick some more GPIO ports on the Pi for the additional connections (just be sure to write down which pins are connected to the relay pins for later configuration).<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-Pinout-Table.png\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"338\" src=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-Pinout-Table.png\" alt=\"\" class=\"wp-image-4101\" srcset=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-Pinout-Table.png 760w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-Pinout-Table-300x133.png 300w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-Pinout-Table-624x278.png 624w\" sizes=\"auto, (max-width: 760px) 100vw, 760px\" \/><\/a><figcaption class=\"wp-element-caption\">Spyder Tally wiring pinout<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Display.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1717\" height=\"682\" src=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Display.png\" alt=\"\" class=\"wp-image-4099\" srcset=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Display.png 1717w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Display-300x119.png 300w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Display-1024x407.png 1024w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Display-768x305.png 768w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Display-1536x610.png 1536w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Display-624x248.png 624w\" sizes=\"auto, (max-width: 1717px) 100vw, 1717px\" \/><\/a><figcaption class=\"wp-element-caption\">Wiring diagram for connecting Pi to the LCD display<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Relay.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1720\" height=\"676\" src=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Relay.png\" alt=\"\" class=\"wp-image-4100\" srcset=\"https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Relay.png 1720w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Relay-300x118.png 300w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Relay-1024x402.png 1024w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Relay-768x302.png 768w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Relay-1536x604.png 1536w, https:\/\/www.knightware.net\/wp-content\/uploads\/2022\/11\/Wiring-LCD-Relay-624x245.png 624w\" sizes=\"auto, (max-width: 1720px) 100vw, 1720px\" \/><\/a><figcaption class=\"wp-element-caption\">Wiring diagram for connecting Pi to the Relay board<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Installing the Pre-Built Raspberry Pi Software<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/dsmithson\/SpyderTallyController\/releases\/tag\/v1.0.0\" target=\"_blank\" rel=\"noreferrer noopener\">Download SD Card Image for Raspberry Pi and\/or release binaries here<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Installing the pre-built software image for the Raspberry Pi is the easiest way to get going.  You can download the SD card image directly from the <a href=\"https:\/\/github.com\/dsmithson\/SpyderTallyController\/releases\/tag\/v1.0.0\" target=\"_blank\" rel=\"noreferrer noopener\">Spyder Tally GitHub project&#8217;s releases page<\/a> and use the official <a rel=\"noreferrer noopener\" href=\"https:\/\/www.raspberrypi.com\/software\/\" target=\"_blank\">Raspberry Pi Imager<\/a> tool to write that image file onto an SD card.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After writing the image file to the SD card, insert it into the Raspberry pi, connect an Ethernet (network) cable and power it up.  It shouldn&#8217;t be necessary to connect a monitor to the Pi, but it does feel nice to keep an eye on it during the first boot where it will perform one-time tasks like expanding the file system to fill the SD card.  That first boot will take several minutes, but eventually you should see the front panel light up and show the unit&#8217;s IP address.  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note that the software will wait for the network to become available before launching, and so you will not see anything until after the network is plugged in.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Installing Manually (Raspberry Pi or Other Devices)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you&#8217;d like to use a device different than the Raspberry Pi, or if you want to build your own Raspberry Pi image for whatever reason, you&#8217;re in luck because it&#8217;s easy to do!  The software may need some tweaking (particularly around hardware interface control) but should readily run on a wide variety of Linux devices including x86, x64, and ARM hardware with minimal tweaking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The steps involved in creating your own disk image can be extrapolated from <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/dsmithson\/SpyderTallyController\/blob\/master\/docs\/Linux\/README.md\" data-type=\"URL\" data-id=\"https:\/\/github.com\/dsmithson\/SpyderTallyController\/blob\/master\/docs\/Linux\/README.md\" target=\"_blank\">this README<\/a> up on the project&#8217;s GitHub site.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">One tweak I made when building the v1.0.0 SD card image &#8211; instead of installing the .Net Core framework on the device, I compiled the app as a <a rel=\"noreferrer noopener\" href=\"https:\/\/learn.microsoft.com\/en-us\/dotnet\/core\/deploying\/\" target=\"_blank\">&#8216;self-contained&#8217; deploymen<\/a>t.  This kind of deployment bundles in all the .Net runtime pieces needed to run the application, and can both slim down the overall disk footprint and decouple the app from needing to be deployed on a target with a compatible .Net framework version.  I like this approach and will likely continue this trend in future releases.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"> Summary<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Spyder is an excellent product, and I&#8217;ve always been proud to have been a part of its history during my years at Vista \/ Christie Digital.  Making accessory software and devices like this tablet controller still make me incredibly happy even years later.  I hope you enjoy making your own as much as I enjoyed creating it.  Let me know what cool environments you end up using it in!  <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you run into any snags or have ideas for improvement on the project, the easiest way to communicate is to file issues up on the <a rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/dsmithson\/SpyderTallyController\" target=\"_blank\">project&#8217;s official GitHub repository<\/a> issue tracker.  I do keep an eye out for comments and will try to reply as I can, but I tend to have a bad habit of not checking for comments for months at a time \ud83d\ude42 <\/p>\n","protected":false},"excerpt":{"rendered":"<p>A whole 7 years ago I published a blog post and a couple YouTube videos showing a cool Tally (camera relay) system that anyone could make with a $35 Raspberry Pi device and $10 relay board. Back then this was running Windows on the Raspberry Pi 2 &#8211; a special stripped-down version of Windows called [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[17,18,21,28],"class_list":["post-4086","post","type-post","status-publish","format-standard","hentry","category-vista-systems","tag-raspberry-pi","tag-relay","tag-spyder","tag-x20"],"_links":{"self":[{"href":"https:\/\/www.knightware.net\/index.php?rest_route=\/wp\/v2\/posts\/4086","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.knightware.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.knightware.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.knightware.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.knightware.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4086"}],"version-history":[{"count":7,"href":"https:\/\/www.knightware.net\/index.php?rest_route=\/wp\/v2\/posts\/4086\/revisions"}],"predecessor-version":[{"id":4127,"href":"https:\/\/www.knightware.net\/index.php?rest_route=\/wp\/v2\/posts\/4086\/revisions\/4127"}],"wp:attachment":[{"href":"https:\/\/www.knightware.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4086"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.knightware.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4086"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.knightware.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4086"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}