Posts Tagged ‘automation’

Lab in a Box Concept Embeds x86 Server and 6 ARM Boards into a PC Case for Automated Software Testing

November 3rd, 2017 7 comments

The Linux kernel now has about 20 millions line of code, Arm has hundreds of licensees making thousands of processors and micro-controllers, which end up in maybe hundreds of thousands of different designs, many of which are not using Linux, but for those that do, Linux must be tested to make sure it works. The same stands true for any large software used on multiple hardware platforms.

Manual testing is one way to do it, but it’s time consuming and expensive, so there are software and hardware continuous integration solutions to automate testing such as Linaro LAVA (Linaro Automated Validation Architecture), KernelCI automated Linux kernel testing, and Automotive Grade Linux CIAT that automatically test incoming patch series.

Both CIAT and KernelCI focus on Linux, and rely on LAVA, with KernelCI leveraging hardware contributed by the community, and proven to be effective as since it’s been implemented, failed build configs dropped from 51 with Linux 3.14 to zero today. However, settings the hardware and LAVA can be complicated and messy with all different boards lying around, so BayLibre engineers worked on an affordable “Lab in Box” concept to simplify administration and duplication of such systems in the hope of getting more people involved.

Click to Enlarge

They ended up with a nicely package system that fits into a desktop PC tower and includes:

  • ASRock Q1900B-ITX motherboard based on Intel Celeron J1900 with 8GB RAM and 120GB SSD running LAVA master and dispatcher
  • Devices Under Tests (DUT) will vary depending on your needs, but the demo system includes:
    • Renesas R-Car M3 Starter Kit
    • DragonBoard 410C
    • AML-S905-CC (LePotato) board
    • BeagleBone Black
    • Raspberry Pi 3
    • NXP SABRE Light
  • Connectivity / wiring
    • Network switch
    • USB hub
    • For each DUT board: power cable, serial debug cable, Ethernet cable
  • ACME Cape + Probes + Beaglebone Black to measure power consumption and control the DUTs
  • Power Supply – 530 Watt ATX power supply with +12V and +5V

Click to Enlarge

The system has been proven to work with complete continuous integration system fitted into a single PC case, and costing about 400 Euros excluding the DUTs. Software installation has also been simplified with partially automated software installations (WiP). However there may still need to work, as it’s been found to take a long time to build partially because it’s requires custom wiring for each DUT, boards need to support either 5 or 12V input, and DUT power consumption must be limited to 4A per pair of wires. This system also only supports board that fit into such case, and it’s not really scalable because using a larger case with more board may lead to excessive internal wiring. The Lab in a Box concept could be improved with a more powerful power supply, support for larger boards, and better documentation will also be provided. Baylibre may also work on a professional-grade “Lab in a Box” that fits into a rack.

Watch “Introducing the Lab in a Box Concept” by Patrick Titiano & Kevin Hilman, BayLibre for further details.

If you are short in time, you can also read the presentation slides.

As a side note, all Embedded Linux Conference Europe 2017 videos have been uploaded to YouTube.

Intel Speech Enabling Developer Kit Works with Alexa Voice Service, Raspberry Pi 3 Board

October 28th, 2017 4 comments

We’ve known Intel has been working on Quark S1000 “Sue Creek” processor for voice recognition for several months. S1000 SoC is based on two Tensilica LX6 with HiFi3 DSP, some speech recognition accelerators, and up to 8x microphones interfaces which allows it to perform speech recognition locally. The solution can also be hooked to an application processor via SPI, I2S and USB (optional) when cloud based voice recognition is needed.

Intel has recently introduced their Speech Enabling Developer Kit working with Amazon Alexa Voice Service (AVS) featuring a “dual DSP with inference engine” – which must be Quark S1000 – and an 8-mic array. The kit also includes a 40-pin cable to connect to the Raspberry Pi 3 board.

Click to Enlarge

Intel only provided basic specifications for the kit:

  • Intel’s dual DSP with inference engine
  • Intel 8-mic circular array
  • High-performance algorithms for acoustic echo cancellation, noise reduction, beamforming and custom wake word engine tuned to “Alexa”
  • 6x Washers
  • 3x 6mm screws
  • 3x 40mm female-female standoffs (x3)
  • Raspberry Pi connector cable

I could not find detailed information to get started, except for assembly guide shown in the video below. We do not that the kit will work with Amazon Alexa, and requires a few extra bits, namely a Raspberry Pi 3 board, an Ethernet cable, a HDMI cable and monitor, USB keyboard and mouse, an external speaker, a micro USB power supply (at least 5V/1A), and a micro SD card.

The video also points to Intel’s Smart Home page for more details about software, but again I could not find instructions or guide there,  except links to register to a developer workshop at Amazon Re:Invent in Las Vegas on November 30, 2017.

Intel Speech Enabling Developer Kit can be pre-ordered for $399 directly on Intel website with shipping planned for the end of November. The product is also listed on Amazon Developer page, but again with little specific information about the hardware and how to use it. One can assume the workflow should be similar to other AVS devkits.

Thanks to Mustafa for the tip.

Sonoff Wireless Switch Family Gets a $3 IP66 Waterproof Enclosure

October 27th, 2017 No comments

ESP8266 powered ITEAD Studio Sonoff wireless switches have been popular because they are inexpensive, highly customizable thanks to work from the community leading to open source projects such as ESPurna and Sonoff-Tasmota, and come fully packaged so you don’t need to make your own case for it.

That works well for indoor projects, but if you needed to control outdoors lights, gate, water pump, etc… you had to protect the device from humidity/rain. That may not be necessary anymore as the company is now selling Sonoff Basic with an IP66 waterproof enclosure for $7.75, or the case only for $2.90.Sonoff waterproof case:

  • Ingress Protection Rating – IP66
  • Material – PC V0
  • Dimensions – 132.2 x 68.7 x 50.1mm (See details)
  • Weight – 145.0g

IP66 rating is not suitable for prolonged immersion, but it should be good to protect against rain or high humidity. The box ships with two standardized PG7 waterproof connectors, and is large enough for Sonoff Basic. The enclosure can also be used for the larger Sonoff POW/TH10/TH16/DUAL or G1 switches but you’ll have to take out the board from those devices.

One potential use case is for outdoors Christmas lights, and ITEAD provides instructions just for that explaining how to install Sonoff Basic in the IP66 enclosure, and control an LED light strip. The video below demonstrates the waterproofness of the case.

RedRat-X IR, Bluetooth & RF4CE Box Can Control Multiple TVs and Set-top Boxes

October 26th, 2017 1 comment

IR blasters can be used to control multiple IR devices through infrared, or other interfaces, for example DVR can use such device to change the channel of a set-top box just before recording.

RedRat-X is one of those devices for automating control of TVs, STBs and other infrared equipment, but it’s quite more versatile, as beside its built-in IR blaster, it adds 3 IR outputs were you can connect your own IR transmitters, as well as USB and Ethernet for remote controls. Furthermore, it can also take add-on modules to emulate  Bluetooth and RF4CE remote controls.

RedRat-X specifications:

  • IR blaster via the front of the unit. 0 mA to 250 mA in 100 steps.
  • 3x plug-in IR jack sockets which can be used in two modes:
    • Current mode (default): For use with plug-in IR flashers – 0mA to 100mA in 100 steps.
    • Voltage mode: To interface to IR distributions systems, such as Xantech, Buffalo etc.
  • Optional add-on modules – Bluetooth or RF4CE functionality
  • Control Interfaces – USB or Ethernet
  • Misc – Multicolor indicator LEDs
  • Power Supply – 5V via USB
  • Power Consumption – <= 2W in normal operation.
  • Dimensions – 11.5cm x 7.5cm x 2.5cm

The company (RedRat) also offers a range of software solutions to control and manage their IR blasters including RedRat Device Manager for initial setup, configuration and firmware updates, IR Signal Database Utility to record your existing remote control codes, and RedRat’s Scheduler application to automate your setup.

Click to Enlarge

In order to get even more control, TestManager application provides script based control of STBs, and an NET SDK working on Windows (using .NET), as well as Mac OS and Linux machines (using Mono). The company also mentioned RedRatHub application, which provides a socket based mechanism to send instructions to RedRat hardware with sample client code written in Python, C#, Perl, or PHP. The company only advertises the solution for audio-visual applications, but it might be possible to integrate it into home automation system to control air conditioners, door bells, light bulbs, etc…

RedRat-X is specialized hardware with the box selling for £250 ex VAT ($331 US). You’ll find more details about hardware, software, and documentation on the product page. You might be possible to reproduce something similar with a Raspberry Pi 3 + infrared HAT, and optional Bluetooth and RF4CE USB dongles, but then all the software part would be on you.

Via Electronics Weekly

Industrial Shields Industrial Panel PCs are Based on Raspberry Pi, Banana Pi, or HummingBoard

October 10th, 2017 4 comments

Boot&Work Corp., S.L. is a company based in Catalonia that sells industrial automation electronic devices under “Industrial Shields” brand. What makes their product noticeable is that they all appear to be based on maker boards such as Arduino or Raspberry Pi.

The company offers various Arduino based PLC modules with or without Ethernet that can be controlled with 10.1″ industrial grade panel PCs based on ARM Linux development boards.

Click to Enlarge

Currently three sub-families are available:

  • HummTOUCH powered by Solidrun HummingBoard-i2 NXP i.MX 6Dual Lite board
  • BANANATOUCH with either Banana Pi M64 (Allwinner A64 quad core Cortex A53) or Banana Pi M3 (Allwinner A83T octa core Cortex A7)
  • TOUCHBERRY with Raspberry Pi model B or Raspberry Pi 3 model B

Beside the different processors, the 10.1″ Panel PCs share some of the same specifications:

Industrial Shields Arduino PLC – Click to Enlarge

  • Display – 10.1″ resistive multitouch LVDS, 315 nits, 170° viewing angle, 1280×720 resolution
  • Video Input – MIPI CSI connector (HummTouch only)
  • System Memory – 512MB to
    • HummTOUCH – 1 GB RAM
  • Storage
    • All – micro SD slot
    • BANANATOUCH – 8GB eMMC flash (16, 32, 64 GB optional)
  • Connectivity
    • Fast or Gigabit Ethernet depending on model
    • BANANATOUCH and BERRYTOUCH 3 – 802.11 b/g/n WiFi, Bluetooth 4.0
  • USB – 2x to 3x USB ports
  • I/O Expansion – 8x GPIO, SPI, I2C, UART
  • Power Supply – 12V DC; supports 7 – 18V DC input up to 1.5A
  • Dimensions – 325.5 x 195.6 x 95 mm
  • Compliance – CE

The user manual lists further details about environmental conditions, for example for HummTOUCH models:

  • Temperature Range – Operating: 0 to 45°C; storage: -20 to 60 C
  • Humidity – 10% to 90% (no condensation)
  • Ambient Environment – With no corrosive gas
  • Shock resistance – 80m/s2 in the X, Y and Z direction 2 times each.

There’s no information about Ingress Protection (IP) ratings, so it’s safe to assume those have not been tested for dust- and waterproofness.


The company also have smaller 3.5″ and 3.7″ model based on Raspberry Pi 3 board only. HummTOUCH models are available with either Linux or Android, BANANATOUCH and BERRYTOUCH models are only sold with Linux (Raspbian),  but Ubuntu, Android and Windows 10 IoT are options if they are supported by the respective board.

The 10.1″ panel PCs are sold for 375 to 460 Euros, and the Arduino based PLCs start at 135 Euros. Documentation and purchase links can all be found on Industrial Shields website.

Review of Sonoff B1 Smart RGB Light Bulb – Part 2: Sonoff-Tasmota Firmware

October 5th, 2017 1 comment

I’ve already reviewed Sonoff B1 light bulb using the stock firmware combined eWelink app for Android, and as promised in the first part of the review, I’ve also tested the ESP8285 based WiFi light bulb with Sonoff-Tasmota open source firmware, and report my findings in this new post.

Before we can play with the new firmware, we need to install it, and I’ve just explained how to upgrade Sonoff devices to Sonoff-Tasmota firmware either using some soldering skills and a USB to serial board, or some network configuration skills and perform an OTA update using ITEAD Studio/eWelink original firmware update mechanism.

So for this part of the review, I’ll assume we have just freshly update the light bulb with Sonoff-Tasmota using the binary images released by the developer. First, you’ll need to find the IP address of the light bulb with your router or tools like nmap or arp, and access the web interface in your web browser with for example You’ll probably want to setup a fixed IP address for easier access later on. By default the firmware is set to use Sonoff Basic, but we can go to Configuration->Configure Module, to change that to Sonoff B1, and click Save.

Click to Enlarge

This will reboot the light bulb with Sonoff B1 configuration, and you should be able to turn on the light bulb by adjusting the Color or Brightness sliders, or pressing the Toggle button.

It works with some lag, one or two seconds, just like on the eWelink app. What you don’t get in the current web interface is the ability to adjust RGB values, so only the white lights can be controlled easily. More on RGB control later. You’ll also lose timer and schedule ability from the web interface, because that’s more of a task for your home automation server using either MQTT or Domoticz whose options are available in the Configuration menu as shown below.

Configuration, MQTT, and Domoticz – Click to Enlarge

I won’t explain how to use those in details, as Karl’s has already written a tutorial using MQTT it with his home automation project with Sonoff-Tasmota (aka arendst’s firmware), and one my side, I have published instructions to setup MQTT and Domoticz with ESPurna open source firmware for a Sonoff POW switch.

Click to Enlarge

Other menus in the configuration include reset/backup/restore configuration, logging parameters, and other parameters such as Belkin Wemo or Hue Bridge emulation. If we go back the back to the main menu, we have some more buttons beside Toggle and Configuration such as access to the console, which you can use to monitor the output log, and send various commands, including ones to control the RGB lights. For example, I could set to the light to green with the command “Color 00FF000000”, since for Sonoff B1 they use hexadecimal values for Red, Green, Blue, Warm White, and Cold White. You can also use those commands over serial, MQTT, and a web API. For the latter the command

will set the color to red, and return:

Other options include Information with a complete overview of most parameters…

Click to Enlarge

Firmware Upgrade to do so either from an update server, or a local file, and Restart to reboot the device.

Click to Enlarge

Sonoff B1 with ITEAD Studio’s stock firmware and eWelink app is pretty much plug and play, and you can control multiple lights from one app, configuring the white and RGB lights, and setting timers and schedules, all right from your smartphone. The downsides are that it requires the Internet to communicate with the cloud service, the firmware and app are both fully closed source so you can’t add features or easily integrate it with your home automation system using standard protocols such as MQTT or a REST API. It does integrate with Amazon Alexa or Google Home however.

Going the open source firmware route is more a hack-flash-configure-get confused-setup-learn-and-play solution. Once you have overcome the steps to upgrade firmware to Sonoff-Tasmota, it’s not at all convenient to control your devices from the built-in web interface, especially if you have many. The firmware has really been designed to use with an home automation gateway like Domoticz, where you can manage with your lights or switches from a single web interface. So you’d have to setup your gateway, and you’ll likely get an Android app with it to do something like eWelink app, except you’ll have much more flexibility. You can get a bunch of lights to change colors in sync with your music (likely with a short delay), turn them on when motion and low light conditions are detected, or when specific persons are detected using face detection, etc.. The limit is only your imagination, and willingness to learn new skills.

I’d like to thank ITEAD Studio for sending a review sample. If you are interested, you can purchase the light bulb directly from them for $18 plus shipping. It can also be found on sites like Amazon US or Banggood.

Google Adds Home Mini and Home Max to its Google Assistant Family

October 5th, 2017 No comments

As we’ve just discussed in our post about Pixel 2 / Pixel 2 smartphones, Google had a hardware day yesterday, where they made announcements about various devices with new smartphones, Pixel Buds earbuds optimized for Google Assistant, Pixelbook chromebook, and so on.

Google Home family has also been extended with two new models: Home Mini with a much smaller device and a lower price, as well as Home Max with premium speakers.

Left to Right – Home Mini, Home, Home Max

Google Home Mini


  • Speaker – 360 sound with 40mm driver
  • Microphones – “Far-field voice recognition supports hands-free use”
  • Audio formats – HE-AAC, LC-AAC+, MP3, Vorbis, WAV (LPCM), FLAC
  • Connectivity – Dual band 802.11 b/g/n/ac WiFi, Bluetooth
  • USB – 1x micro USB port for power
  • Misc – Play/Pause/Talk button, volume buttons, LEDs, microphone on/off switch
  • Power Supply – 5V/1.8A
  • Dimensions – 98 mm ∅ x 42 mm (h)
  • Weight – 173 grams (device only)

Home Mini is compatible with devices running Android 4.2 and higher, or iOS 9.1 and higher, and comes with built-in ChromeCast audio support. The new Home Mini appears to compete directly with Amazon Echo, as it is sold for $49.

Google Home Max


  • SoC – Quad core ARM Cortex A53 @ 1.5 GHz (Could it be Amlogic A112 or A113 processor?)
  • Speakers
    • 2x 4.5″ (114 mm) high-excursion (+/- 11 mm) dual voice-coil woofers
    • 1x 0.7″ (18 mm) custom tweeters
  • Microphones – “Far-field voice recognition supports hands-free use”
  • Audio In – 3.5mm analog audio input jack
  • Audio formats – HE-AAC, LC-AAC+, MP3, Vorbis, WAV (LPCM), FLAC, Opus
  • Connectivity – Dual band 802.11 b/g/n/ac WiFi, Bluetooth 4.2
  • USB – 1x USB type C port
  • Sensors – Ambient light sensor,  orientation sensor
  • Misc – Play/Pause/Talk button, volume buttons, LEDs, microphone on/off switch
  • Power Supply – AC Power 100-240 V, 50/60 Hz
  • Dimensions – 336.6 x 190.0 x 154.4 mm
  • Weight – 5.3 kg

Home Max has the same Android and iOS requirements, and support for ChromeCast audio as the mini version, but it adds support for multi-room audio and wireless stereo pairing, meaning you can use it as a Bluetooth speaker too. Price is $399, but you’d have to join a waiting list before ordering it. You can do so, and find more details on the product page.

Upgrading Sonoff Stock Firmware to Sonoff-Tasmota – USB to Serial, and OTA Update Methods

October 4th, 2017 7 comments

This post was initially supposed to be part 2 of Sonoff B1 light bulb review, where I would have explained how easy it was to use OTA mechanism to update to Sonoff-Tasmota open source firmware, and shortly show about its features and capabilities. However, it took me over 10 hours to make that work, mostly due to misunderstand in the documentation, and time spent to configure routers. I also failed the first time with Sonoff B1, so I used the serial console method, and instead managed to use SonOTA method with Sonoff POW switching from stock firmware to Sonoff-Tasmota without having to solder or tear down anything.

Updating software with a USB to Serial Board

Using a USB to serial board is the most common method to switch from stock firmware to open source firmware such as ESPurna or Sonoff-Tasmota in Sonoff devices or other ESP8266 based devices. It’s quite straightforward with Sonoff switches like Sonoff TH16.

Click to Enlarge

You just need to solder a 4-pin 2.54mm pitch header, connect the board, and use esptool to flash the image. One it’s done you can simply remove the wire, leave the header in place, and put the case back in place. But with Sonoff B1 light bulb, it’s quite as easy. First there are no through holes in the board, and you need to solder up to 6 wires on small solder pads.

Click to Enlarge

The GND, Tx, Rx, and 3.3V must be soldered and connected to the USB to serial board, while GPIO0 must be shorted to enter programming mode, so I also added two more wires for GPIO0, and an extra GND pin.

Click to Enlarge

Important warning: Never connect the serial board and AC/mains at the same time. Your equipment and life may be at risk.

Now we can download the latest version of the firmware, install esptool, connect the USB to serial board to your computer – which will also provide powered to the board -, and run esptool to flash the firmware:

That’s pretty straightforward, and the output should look as below if everything runs normally:

Most products on the market defaults to access point mode when they are first booted, but Sonoff-Tasmota’s developer have instead decided to provide pre-built image in client mode connecting to a default access point with SSID: indebuurt1 ; password: VnsqrtnrsddbrN. That’s a bit of a pain, as you need to configure another router with those credentials, before changing it to your home router. An alternative way is to build some source, and change the default AP settings, so the device can connect right away after flashing. Still, I’d wish an image that default to AP mode would be nice. It’s actually not a problem for most Sonoff devices, as you can switch to AP mode with the button (4 short presses), but Sonoff B1 does not have one.

Now imagine you have a dozen or more of Sonoff B1 light bulbs that need to be update to Sonoff-Tasmota. That would be a real pain to solder and unsolder the required wires for each bulbs. One solution is to create a jig with pogo pins for firmware update, as the one shown below specifically designed for AI Light. You just need to pop out the bulb, click the jig, flash over serial, remove the jib, refit the bulb, and you’re done.

I don’t know if one exists for Sonoff B1, but the jig above could certainly be customized to work with it.

SonOTA – Sonoff OTA Firmware Update Method

However, in an ideal world you’d prefer not to mess with the hardware at all. If only ITEAD Studio provided a way to upload custom firmware with their stock firmware that’d be ideal, but it’s not the case right now. Luckily, the OTA mechanism was reverse-engineered, and SonOTA is an (experimental) implementation that allow to flash alternative firmware to Sonoff devices without altering the hardware or needing special jigs.

The method on Sonoff-Tasmota wiki does not work on Sonoff B1 because there SSID is not advertised in pairing mode, but somebody in github had managed to update one light bulb using DNS spoofing. Since I used the first method with Sonoff B1, but only partially managed to make it work, I switched to Sonoff POW, and succesfully tested the DNS spoofing method.  Several items are required, so I’ve drawn a diagram showing how those interact.

  1. The Home Router is just the WiFi router you’d normally use to access the Internet
  2. The smartphone with eWelink is requirement to configure WiFI on the Sonoff device, and update it to the latest stock firmware version. It can also be used to easily check access points.
  3. The WiFi laptop runs SonOTA, and will act as ITEAD Studio firmware update server located at (for example,, etc…)
  4. “Temporary” Router with DNS spoofing will make sure redirect to your laptop/computer running SonOTA, so it takes over when Sonoff device tries to update the firmware. It still needs to be connected to the Internet.
  5. Sonoff device – The device we want to update

Potentially, you could combine the router, router with DNS spoofing, and WiFi laptop into one device, if you have a Debian based router, but I still separate all three in my case, since home router does not support DNS spoofing, and I failed to install SonOTA on the temporary router.

The very first step is to pair the Sonoff device with eWelink app, connect it to your home router, and update the firmware to the latest version, in my case 2.0.4.

Click to Enlarge

Now you can configure your temporary router to use DNS spoofing. I did not have any spare router with such feature, so I instead used VS-RK3399 board with Debian, and configured it as a router with hostapd, and isc-dhcp-server using those instructions. This part will heavily depend on your router, and whether you use Debian, or other Linux distributions. For reference, here are some of the main configuration files I used:

  • /etc/hostapd/hostapd.conf

  • /etc/network/interfaces

  • /etc/dhcp/dhcpd.conf

The next step was to configure DNS spoofing. I first went with dnsmasq, and I could successfully confirm it worked with dig, but for whatever reason Sonoff B1/POW would still connect the ITEAD server. Finally I tried with dnsspoof, and it worked OK.  Installation in Debian:

/etc/dnsspoof.conf configuration file to redirect traffic to ITEAD / eWelink update servers to my WiFi laptop:

You can run it as follows:

DNS spoofing took me the most time, as beside restarting service in the router itself, you have to restart the devices connected to it to reflects the changes. I also messed with /etc/hosts file in the router and laptop, but it should not be necessary, as the important is to fool the Sonoff device.

Let’s switch the WiFi laptop configuration. It should work with both Linux and Windows, but mine is running Ubuntu 16.04, so that’s what I used. Let’s create a working directory, get SonOTA code, and install all required libraries and tools.

Now we’re ready for the update. Launch SonOTA script in legacy and no provision modes:

This will first ask you to select the WiFi interface, and enter your SSID and password, and start probing for the Sonoff device:

Delete your Sonoff device in eWelink app, and restart pairing, this time connecting it to your temporary router with DNS spoofing enabled, and shortly after the SonOTA script should start to transfer the image to the device:

Now you should be able to use your smartphone or the laptop to connect to FinalStage access point, start a browser to access You should see the interface below, click on scan for Wifi network, and select the one you want to replace indebuurt1 SSID, in order to connect to your “home router”.

Click to Enlarge

Click on the button Save on the bottom of that page, and after a while you should be able to access Sonoff web interface into your home network

Output log of script for that last step:

Success! Finally… Now you can configure Sonoff-Tasmota to use your actual device – in my case Sonoff POW – instead of Sonoff Basic. I’ll show a bit more about that while testing Sonoff B1 with Sonoff-Tasmota in an upcoming post. Whether you choose between the serial or OTA method will depend on the number of devices you have to update, and/or whether you prefer soldering or messing around with network settings. If you are after maximum efficiency for a large number of Sonoff B1 light bulbs, then a jig with pogo pins should be by far the fastest way to reflash them all.