Bc2000 (for the BCF2000 & BCR2000) group photo

Yahoo Groups archive

Bc2000 (for the BCF2000 & BCR2000)

Index last updated: 2026-04-28 23:16 UTC

Message

Re: Firmware decoding

2008-02-25 by Dan Gendreau

Just a quick note about custom firmware efforts.
I have been making some small steps toward decoding it.

The firmware flash memory is 512kb in size, split into 2 banks of
256kb. When you update the firmware via sysex, it writes to the bank
that is currently not in use and switches banks on reboot.

The good news is that the current BC2000 firmware only uses 68-72kb of
the 256kb available for a firmware, so there is quite a lot of room
for custom code in there.

There seems to be a boot-loader in the first 4kb of each bank that
never changes. Based on their FAQ, I suspect that this boot-loader is
capable of accepting a sysex firmware update via the MIDI-In port even
if the main firmware and USB code is corrupted. This means it should
be possible to experiment with writing a custom firmware without
completely bricking your BC2000.

My first short term goal is to decompile the 4kb boot-loader and
figure out how it decodes midi firmware update packets. I am currently
writing my own windows ARM disassembler for this purpose. Once I
figure out the sysex firmware encoding, I will make my disassembler
and a sysex decoder available so others can work on the firmware as well.

I have several ideas that could improve the BC2000 UI significantly
once we get deeper into the firmware:

1) A new LED display driver that uses Bit-Angle modulation to add 2 or
4-bits of brightness per LED would be nice:
http://www.artisticlicence.com/app%20notes/appnote011.pdf

2) Add more display modes for the lower encoder rings

3) Make the Encoder Group buttons apply to more controls than just the
top 8 encoders.

4) New LED ring display modes that can show information from 2
controllers, like filter frequency(dot position) and resonance (dot
width) or the way some of the Nordlead LED rings work (showing
default/current values).

-Dan G.

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.