Firmware
200e ELECTRIC MUSIC BOX

Occasionally, we make changes in a module's firmware to fix software bugs or to add new features. The little firmware cards we used to supply with modules have been replaced by a single USB card. With a Macintosh computer running OS10.5 or higher, you can load the USB card from the web, and then transfer the firmware to the module.

There are now two versions of the firmware for each module. The old version numbers are between 1 and 29; the new versions are numbered 30 or more. All current modules are shipped with version 30 firmware.

ALL MODULES IN A SYSTEM MUST BE ONE VERSION OR THE OTHER - A MIX CAN RESULT IN IMPROPER OPERATION.

First you'll need to equip your computer with the smarts to read the USB card. Just click on the "Buchla Firmware Utility" link below to download the appropriate program.

To download a module's firmware to your computer, Control-click (or right-click) the module number in the "Hex file" column below.

To program the firmware hex file into the USB card, plug the card into your computer and double-click the hex file's icon in the Finder. The Firmware Utility application will launch and display info about the programming process.

- Right Click on links to Download .hex files


NOTE: If you have not yet updated your system to v30, scroll down to the next section entitled "UPDATING FIRMWARE IN PRE VERSION 30 SYSTEMS" for instructions.

Module Hex file Vers Last Change Date
200e-USB Buchla Firmware Utility 1.3.8 1/12/2012
206e Six Channel Mixer 206E 30.2    
207e Mixer / Microphone Preamp 207E 30.2    
210e Control and Signal Router 210E 30.2    
222e Kinesthetic Input Port 222E 30.1    
223e Arpeggiator 223A 30.2    
223e Tactile Interface Port 223M 30.1  
225e MIDI Decoder 225E 30.4 Fix E/F/G/H bus outputs. 6/23/12
225e Preset Manager 225S 31.8 Fix preset name corruption bug when backing up to card. NOTE: Before updating from a version prior to 31.3, backup the 225 to a card to retain preset names. If you have a 251e, take it out of Remote Enable before backing up! 6/20/12
227e System Interface 227E 30.1    
230e Triple Envelope Tracker/Pre amp 230E 30.3    
249e Dual Arbitrary Function Generator 249E 30.3 Sequence changes happen immediately. 3/7/12
250e Arbitrary Function Generator 250E 30.5 Fix issue with interpolation corrupting fixed voltages. 1/12/13
251e Quad Sequential Voltage Source 251E 30.7 More reliable button debouncing. NOTE: Make sure your Preset Manager has been updated to 31.7 or greater BEFORE updating the 251e. 6/16/12
256e Control Voltage Processor 256E 30.3 Fix for knob changing multiple values after preset load. 5/7/12
259e Complex Waveform Generator 259E 30.8 Fix slew on pitch CV. 5/11/12
260e Duophonic Pitch Class Generator 260E 30.1    
261e Complex Waveform Generator 261E 30.2    
266e Source of Uncertainty 266E 30.1    
267e Uncertainty Source / Dual Filter 267E 30.0  
272e Polyphonic Tuner 272E 30.8    
281e Quad Function Generator 281E 30.2    
285e Frequency Shifter 285F 30.2    
285e Balanced Modulator 285B 30.2  
291e Triple Morphing Filter 291E 30.1  
292e Quad Dynamics Manager 292E 30.3 Fix problem with velocity on internal MIDI bus. 3/8/2012
296e Spectral Processor 296E 30.2    
   
   

Now plug the USB card into the memory card receptacle on your system and power up the system while holding the Remote Enable button on the target module. The LED on the card will blink rapidly while the firmware is being loaded to the module, then blink slowly when the load is complete. Some modules use alternatives to the Remote Enable button; see the exception list at the end of the next section.

NOTE: these instructions apply only to new systems (delivered after Dec 1, 2011) with all modules running version 30 (or higher) firmware.

DO NOT OPERATE SYSTEMS THAT MIX VERSION 30 FIRMWARE WITH PRE-VERSION 30 FIRMWARE.
(They won't burst into flame, but they probably won't operate correctly).

We recommend that when you add new modules to an older system that you update all the modules to version 30 firmware. See instructions in the next section




UPDATING FIRMWARE IN PRE VERSION 30 SYSTEMS

As you may have guessed, version 30 firmware represents a major improvement over earlier versions. But to implement it, we have to make some major changes. Normally transparent to the user, each module contains two pieces of software. One piece is a very small program called a code loader, which is used to load the main program, which gives a module all its characteristics. To effect the necessary changes, we must replace the code loaders. These recently available code loaders can load much larger programs, and they cannot be erased, either by intent, or accidently. These are important improvements, and will increase the reliability of the system immensely, as well as paving the way for new features and substantially larger programs.

There are two caveats to the changes. One is the necessity of changing the microcomputer in the preset manager (either a 206e or a 225e). This requires that you return the preset manager to the factory, where we will install a new microcomputer. This computer was unavailable when these modules were designed, but is necessary to keep the system moving forward. Preset Managers containing the new computers can be identified by the startup message "Primo Version".

The other caveat is the fact that your old presets will not function with the new firmware. Hopefully, you noted the old patches, and won't have too great a difficulty recreating them.

These changes are one time only; never again will you need to make such a fundamental change. NOTE: Once you've updated to the new code, you cannot return to the old - the new code loaders are permanently locked in your modules.

We have expended a great deal of effort to make the version 30 upgrade process as safe and straightforward as possible. Conceptually, there are only three stages to the process for each module: 1) install a utility program that can replace a module's code loader; 2) use the utility program to install a new code loader; 3) use the new code loader to install new version 30 firmware. It is unlikely but possible that you will encounter a problem with any one of these steps. As described in the instructions below, you should see the red LED on the USB firmware card blink quickly for a few seconds as a file is read from the firmware card into the 200e module's internal memory. If you have a 292e, the blue LED on its front panel will also remain illuminated during the time the file is being read. If the file doesn't appear to be loading as expected, the best course of action is to remove the module from the system immediately. You can then continue to upgrade the system and contact B&A for further troubleshooting instructions after you have attempted the upgrade for all the modules in your system. It's very important that you do not proceed to the next stage of the upgrade for a module unless the previous stage was successful. It's also important that you do not attempt to continue upgrading other modules in the system with a partially upgraded module still installed.

Before you begin the upgrade process, it is vital that you verify the presence of working code loaders in all of the modules in your system. A module must have a working code loader in order to perform the v30 upgrade. If you have a 292e, the blue LED on the front panel can be used. First, make sure no card is in the system's memory recepticle. Power on the system with Remote Enable (or alternate) held down for the module in question. If the blue LED on the 292 blinks (296e, 251e, 257e, 267e) or remains illuminated (all other modules) this indicates the presence of a working code loader. If there is no LED activity at power on, contact B&A. NOTE: This procedure will cause the module in question to appear to "hang". Do not expect normal operation until the next power cycle.

So now lets get down to the task at hand. You'll need a USB memory card and a Macintosh computer running OS 10.5 or higher.

Step 1) Click on the "Firmware Utility" link below. This will download the USB Firmware Card programming application - packaged as a zip archive - to your computer. Double-click the zip archive to uncompress the application and then move the application to the Applications folder (or other preferred location).

Step 2) With the provided USB cable, plug the USB card into your computer, and right-click on the link in the Code Loader Loader column that corresponds to your module to save the hex file to your Mac. From the Finder, double-click the hex file. The Buchla Firmware Utility will launch and about 4 seconds later the card's LED will blink at about 1.5 cycles per second, indicating that the load is finished.

Step 3) Unplug the USB cable from the card and plug the card into the memory receptacle on your system, and while pressing the "remote enable" button (or its surrogate) on the module, turn on the power. Hold the button down until you see the red LED on the firmware card flashing quickly (1-3 seconds). A few seconds later the code will be transferred and the LED will again blink slowly. You have now loaded a special program called a code loader loader, which you will use to load the new code loader to your system. The code loader loader temporarily takes the place of the module's firmware, so after it is loaded the module's front panel LEDs will illuminate randomly and the front panel will be unresponsive until step 7 when the version 30 firmware is installed.

Step 4) Remove the card from the memory receptacle and return the card to your computer's USB connection. Control-click the link in the Code Loader column and save the hex file to your Mac. From the Finder, double-click the hex file. The Buchla Firmware Utility will launch and four seconds later, the LED will again blink.

Step 5) Unplug the USB cable and return the card to the system memory receptacle, and power on the system WITHOUT PRESSING ANY BUTTONS. The LED on the card will blink quickly while the code loader is being installed. When the load is complete, the LED will slowly blink.

Step 6) Now once again remove the card from the 200e and plug it into the computer. This time Control-click to download the Firmware using the link in the appropriate row. You are now loading the new version 30 firmware to the card. Four seconds later the card's LED will blink.

Step 7) Unplug the USB cable and move the card to the system memory receptacle, and while depressing the Remote Enable button (or its surrogate), power up the system. Hold the button down until you see the red LED on the firmware card flashing quickly (1-3 seconds). The LED will continue to flash rapidly while the firmware is loading; then blink slowly when the task is complete. This can take a minute or two, depending on the module. Some modules require a power cycle before they'll execute the new firmware. To cycle the power, turn off the system for at least 2 seconds before turning it back on.

Repeat steps 2 through 7 for each of the pre-version 30 modules in your system. A blank in the table means that the module is already provided with a functional code loader. Just jump to the step 6 to load its firmware. When you're finished, check the version number for each of the modules in your system. All should be version 30 (or higher). Version numbers are checked by depressing the module's "remote enable" switch (or its surrogate) for a couple seconds. The version number will appear in the preset manager's window.

In order to give you a clearer picture of how the process works, we've created a short video demonstrating the upgrade for a single module:

Module Code Loader Loader Code Loader Firmware
200e-USB   Buchla Firmware Utility 1.3.8
206e Six Channel Mixer 206Ev01_cl_fixer.hex 206Cv01.hex 206E
207e Mixer / Microphone Preamp 207Ev01_cl_fixer.hex 207Cv01.hex 207E
210e Control and Signal Router 210Ev01_cl_fixer.hex 210Cv01.hex 210E
222e Kinesthetic Input Port 222Ev01_cl_fixer.hex 222Cv01.hex 222E
223e Arpeggiator 223Av01_cl_fixer.hex 223Cv01_arp.hex 223A
223e Tactile Interface Port 223Mv01_cl_fixer.hex 223Cv01_main.hex 223M
225e MIDI Decoder     225E
225e/206e Preset Manager     225S
227e System Interface 227Ev01_cl_fixer.hex 227Cv01.hex 227E
230e Triple Envelope Tracker/Pre amp 230Ev01_cl_fixer.hex 230Cv01.hex 230E
249e Dual Arbitrary Function Generator     249E
250e Arbitrary Function Generator 250Ev01_cl_fixer.hex 250Cv01.hex 250E
251e Quad Sequential Voltage Source     251E
256e Control Voltage Processor 256Ev01_cl_fixer.hex 256Cv01.hex 256E
259e Complex Waveform Generator 259Ev01_cl_fixer.hex 259Cv01.hex 259E
260e Duophonic Pitch Class Generator     260E
261e Complex Waveform Generator 261Ev01_cl_fixer.hex 261Cv01.hex 261E
266e Source of Uncertainty 266Ev01_cl_fixer.hex 266Cv01.hex 266E
267e Uncertainty Source / Dual Filter     267E
272e Polyphonic Tuner 272Ev01_cl_fixer.hex 272Cv01.hex 272E
281e Quad Function Generator 281Ev01_cl_fixer.hex 281Cv01.hex 281E
285e Frequency Shifter 285Fv01_cl_fixer.hex 285Cv01_fs.hex 285F
285e Balanced Modulator 285Bv01_cl_fixer.hex 285Cv01_bm.hex 285B
291e Triple Morphing Filter 291Ev01_cl_fixer.hex 291Cv01.hex 291E
292e Quad Dynamics Manager 292Ev02_cl_fixer.hex 292Cv02.hex 292E
296e Spectral Processor     296E
   
   

Here are the modules with two computers, a top one and a bottom. All require two separate loads, utilizing the two alternatives to the "remote enable" buttons. NOTE: Update the two sections independantly i.e. load the fixer and new code loader in one computer before proceeding to the other computer.

206e - The top computer is for the mixer, and is accessed with the "remote enable" switch; the bottom one is for the preset manager, and is accessed with the "DATA" switch.

223e - The top computer is for the arpeggiator, and is accessed with the "clock" button; the bottom one is accessed with the "remote enable" button.

225e - The MIDI decoder is accessed with the "remote enable" switch, and the preset manager is accessed with the "DATA" switch.

256e - The A "Breakpoint" switch accesses the top computer and the C "Breakpoint" switch accesses the lower.

281e - Use the 2 "QUADRATURE" switches to select the top computer or the bottom.

285e - Use the two "reference source" switches to select the frequency shifter or the balanced modulator.


FIRMWARE ARCHIVE

Module Hex file Vers Last Change Date
200e-USB Buchla Firmware Utility 1.3.8 Add 267e support. 1/17/2012
206e Six Channel Mixer 206Ev12 12 standalone preset 10/14/2010
207e Mixer / Microphone Preamp 207Ev13 13 standalone preset 05/12/2010
210e Control and Signal Router 210Ev19 19 standalone preset 10/11/2010
222e Kinesthetic Input Port 222Ev19 19 performance improvements 12/29/2010
223e Arpeggiator 223Av3 3 add MIDI clock sync 03/08/2011
223e Tactile Interface Port 223Mv4 4 03/04/2011
225e MIDI Decoder 225Ev19 19 wait for code load to finish before sending data out on the bus 05/19/2011
225e Preset Manager 225Sv26 26 wait longer for code load to finish before sending out data on the bus 07/05/2011
227e System Interface 227Ev5 5 update for new hardware 01/27/2011
230e Triple Envelope Tracker/Pre amp 230Ev5 5 pulse leds shine bright for a trig out and dim for a sus. gate 07/06/2010
249e Dual Arbitrary Function Generator 249Ev4 4 tempo fixed 05/16/2006
250e Arbitrary Function Generator 250Ev28 28 add MIDI clock sync 03/08/2011
251e Quad Sequential Voltage Source 251Ev3 3 UI fixes, sync flag / save preset crash fix, randomize functions 5/17/2011
256e Control Voltage Processor 256Ev07 7 Vast increase in resolution, save presets on firmware update 12/06/2010
259e Complex Waveform Generator 259Ev21 21 principal oscillator cv and fm affect mod oscillator in track mode 08/28/2011
260e Duophonic Pitch Class Generator 260Ev02 2 standalone preset, fix pot ranges 06/13/2010
261e Complex Waveform Generator 261Ev17 17 fix pitch rollover 02/03/2011
266e Source of Uncertainty 266Ev07 7 standalone preset, save presets on firmware update 05/12/2010
272e Polyphonic Tuner 272Ev01 1 08/05/2011
281e Quad Function Generator 281Ev05 5 standalone preset, save presets on firmware update 05/04/2010
285e Frequency Shifter 285Fv8 8   05/13/2010
285e Balanced Modulator 285Bv8 8   05/13/2010
291e Triple Morphing Filter 291Ev10 10 08/28/2011
292e Quad Dynamics Manager 292Ev06 6 standalone preset, save presets on firmware update 05/25/2010
296e Spectral Processor 296Ev06 6 Support for v2 hardware 07/05/2011