Casio RZ-1 Custom Firmware

By using the methods outlined in a previous Casio RZ-1 firmware hacking article, a new operating system has been developed for the Casio RZ-1 with the following features:

ON-THE-FLY PATTERN SWITCHING DURING PLAYBACK

In pattern play mode, any other pattern can be selected during playback and it will be queued for play directly after the current pattern. If an unused (never been recorded to) pattern is selected then the current pattern will simply continue playing, minimizing embarrassing mistakes while jamming.

Changing between different patterns in real-time is easily the most lamented missing feature from the original RZ-1 firmware, so the capability to now do should cause many RZ-1 owners to rejoice.

ADJUSTABLE SAMPLE ATTACK

Eliminates that short silence at the start of samples when sampling through the sampler input. Basically, this tightens up the attack of drum hits so they don’t lag behind the beat compared to the ROM sounds. This is fully adjustable, so drum hits can have ultra-tight attack (tighter than the stock toms!) while strings can retain their soft attack, and so on.

In other words, the Casio RZ-1 is effectively designed to pad the sample input with a 12 millisecond buffer. Typically, this causes drums to fall roughly 11~14 milliseconds behind the drum sounds in ROM which makes for sloppy timing. Now anywhere from 0 to 12 milliseconds can be selected. Ranges are given in sample points and can be any value between 1 and 255 — with 1 being the stock RZ-1 behavior (12ms of padding) and 255 being zero padding (0ms, fastest attack possible). On average, a value of 214 preserves the entire attack while also eliminating any preceding silence.

Sample attack trim can be adjusted by holding SAMPLING and either pressing or holding the up/down arrows.

ACCENT LOCK

Accent lock makes all drum hits have extra emphasis by default. On a stock RZ-1, emphasis can easily be added through MIDI triggering (velocity of 97-127), but live drumming requires holding down the Accent button (losing a hand in the process) or shoving something in the button to keep it stuck down (a guitar pick, etc.) The accent lock feature makes the RZ-1 use its full 10-bits of output during live (non-sequenced) play unless specifically de-emphasized with the ACCENT or MUTE buttons.

Accent lock mode can be toggled by holding ACCENT and pressing VALUE UP/DOWN while in pattern/song standby mode. Although the accent lock behavior is always in effect (real-time playback, recording, etc.), the hotkey to toggle the mode setting is locked out during playback or record modes. The accent lock setting is stored in NVRAM–just like pattern/song/sample memory–so it is persistent but non-permanent; stock behavior can easily be returned to without further EPROM swapping and without even powering on/off.

Note: Accent lock will also affect notes being recorded, and any notes which are emphasized in real-time will be so emphasized upon playback, just as if ACCENT had been held down.

MIDI SDS (more-or-less)

Now that a SysEx method has been worked out to save/load samples and rhythm data, actual SDS holds only marginal improvement which makes this idea more-or-less unnecessary and not worth the effort. To be clear, this works on stock RZ-1 machines as well, so no custom firmware needed! Say goodbye to MT sideloading.

INDEPENDENT MIDI TX/RX CHANNEL ASSIGNMENT

Self-explanatory, hopefully.

LOCAL ON/OFF

Use the RZ1 as a MIDI trigger for other equipment but do not trigger internal sounds. Okay… kind of lackluster, but way more useful than the “Note Enable/Disable” setting which has been replaced. Does anyone even use that?

SAMPLE REVERSE

Reverse the sound of the Sample 1, Sample 2, Sample 3, and Sample 4 slots — individual or linked. This uses the INSERT button in the same context as the SAMPLING button, except the selected sample is overwritten with a reversed version of itself. Just like SAMPLING, it cannot be done during a performance but can be done rapidly without powering off.

Idea: Sample a long cymbal into pads 1~4 and then reverse the whole thing for a nice build-up.

METRONOME ON/OFF

Metronome on/off is toggled with the MUTE button and up/down arrow hotkey method (just like accent lock). This would appear to have limited utility, but was a requested feature.

CUSTOM SAMPLE LENGTHS FOR SOUND ROM BUILDERS

Alternate OS variant which reallocates various slack in ROM to maximize storage of sound data. Chiefly, this significantly extends both the kick and the snare drum (more than doubling the kick length), but also marginally lengthens sample space for the toms and a couple other drum hits. This is only relevant for people that are willing and able to build their own custom sound ROMs, but very handy for those that do.

NVRAM

All new settings (MIDI Tx/Rx channels, local on/off, sample trim, accent lock on/off, and metronome on/off) are retained at power-off and saved/loaded along with rhythm data backups, giving the same functionality as the stock firmware.

OLED SUPPORT (new in v2.0)

16×1 OLED support has been added with v2.0 and requires no physical case modifications unlike the 16×2 LCD method. Any 16*1 OLED with a WS0010/RS0010 type chipset (or clone) should now work as a drop-in replacement while also maintaining compatibility with the stock 16×1 LCD, as well as the 16*2 LED LCDs method.

Note: Unless also installing a previously unsupported display, there is no reason to upgrade to v2.0 from v1.96. No additional features have been added.

Technical Note: The display contrast signal (pin 3) and backlight (pins 15 & 16) are of no consequence when installing an OLED. Nothing should be connected to pins 15 and 16.

POTENTIAL FEATURES TO BE ADDED IN V2.1

– A variant OS which supports 8×2 display addressing instead of 16×1 (as it currently does). Replacing the old display with a modern LCD–while possible–is not just a drop-in affair. But with a few new LCD controller commands in the correct places, it could be.

Note: This has been coded, but currently causes a mysterious bug which locks up the entire machine in a certain menu, so that needs to be resolved before it can be released. Now that OLED support has been added, this is a low priority, but is still desirable as OLEDs are significantly more expensive and harder to obtain than LCDs.

CURRENTLY UNSUPPORTED WISH-LIST IDEAS THAT ALMOST DEFINITELY WILL NOT HAPPEN

– Copying patterns while in Record mode instead of having to toggle back to Play mode. Not being able to do so is a pretty big workflow hindrance, really. While the ability to copy patterns in Record mode has already been coded, the problem is that there’s no real workflow improvement due to not being able to change the selected pattern while in Record mode. Since toggling back-and-forth between Play and Record is essentially still necessary, there’s minimal reason to actually release this feature.

– Assigning new MIDI notes to pads (from General MIDI to something custom). Probably not going to be implemented as it’s too much effort/code and it’s generally easier to just change the controller. The MIDI notes issue would be very easy to hardcode into whatever was desired, but it would be significantly more difficult to make it adjustable on-the-fly and stored in NVRAM so it is recalled after reboot / power off.

DISCLAIMER & INSTALLATION NOTES

Disclaimer: While tested, the firmware is not guaranteed to be bug free. Although highly unlikely, assume it will corrupt data, crash in the middle of an important performance, or otherwise fail at the worst possible time. No fitness for purpose is implied and the use of this firmware is at the risk of the end-user.

A couple things the prospective end-user should know:

– This firmware took *years* of development and testing, yet is freely given. If some profiteer is selling this for more than an extremely modest sum (blank EPROMs and programming are not expensive!) then a crook is at work; the audacity to charge $25+ for a $1.50 ROM and 5 minutes of time when the developer does not receive a dime or even credit! — be honorable eBay sellers!

– Installation will almost definitely require one of two things, unless you totally luck out and the OS ROM is already in a socket for some miraculous reason; data suggests that no stock machines have sockets for the ROMs.

Option #1 — Desolder original OS ROM and replace with a socket (leaf-wiper or machine-pin DIP, SIP, or ZIF).
Option #2 — Cut the Chip Select pin of the original OS ROM and piggyback a socket directly on top of the original.

uPD23C128E-031

Unfortunately, this is not a simple pull ‘n’ swap, and either option requires some degree of electronics/mechanical proficiency. Support will not be offered to anyone who solders the replacement firmware directly to the PCB without using a socket; it’s a no-go idea.

Also, backup any sample/rhythm data (remember to verify!) before installing this firmware. Count on it being erased during the chip swap. Yes, really.

TROUBLESHOOTING

Put the RZ-1 back together and it doesn’t seem to be working correctly? These are answers to (hopefully not so) common problems.

Problem: Neither the drum pads nor other buttons are responding.

Joiner A (white flat ribbon on right side) is not connected properly.

Problem: The normal buttons work, but the drum pads don’t make any sounds.

Does it play sounds when trigged over MIDI? If so, check the Local On/Off setting which replaced the standard “Note Enable/Disable” to make sure Local=ON.

Does it not play sounds even when triggered over MIDI? If so, there are lots of things to check. Joiner B (white flat ribbon on the left side) could be not connected properly. Check the output cables, master volume, and instrument faders. Check that all cables going to the analog board are connected properly.

Problem: Oh no! It says “NVRAM CORRUPTED!” when the RZ-1 is turned on!

This is normally not an issue unless it happens repeatedly. It is a notification that somehow the battery-backed RAM appears to hold invalid data, and that a data reset has been triggered to restore everything to proper default settings.

This isn’t uncommon on the first boot after installing the custom firmware, but if it occurs during normal operation then causes include a dying/dead battery, a loose battery (when using a coin cell holder), the battery shorting on another component, or being sent invalid SysEx (sometimes intentionally).

One specific problem with the battery is the connection between the yellow wire (near the battery) and the metal post on which it is fitted. This yellow wire is designed as an easy way to clear the RAM without removing the battery, as the stock battery is soldered in and ordinarily non-removable. If the yellow wire is not making perfect connection with the post then the RAM contents may be lost or scrambled, leading to “NVRAM CORRUPTED!” until consistent battery power is restored.

Download: Casio RZ-1 v2.0u custom firmware EPROM binaries for both 27C128 and 27C256 type chips.

Bookmark the permalink.