English Version Spanish Version French Version

MIDIbox Hardware Platform, BankStick

The BankStick is supported by many MIDIbox projects as exchangeable, hot plug&playable storage device. It consists of a 32k or 64k I2C EEPROM (24LC256, resp. 24LC512).

These EEPROMs allow to configure an address at the three chip select pins #1, #2 and #3, so that up to 8 EEPROMs can be connected together, and accessed individually by the MBHP_CORE module:

(link to .pdf).
When multiple EEPROMs are put on the same "chain", pins 4-8 will be connected together (like you have in this picture)... but E0/E1/E2 must be different, they give that IC it's "ID". It's simplified a bit... you would connect up the 5V and ground pins also... this means you can join many pins of one IC together and then just connect each IC to a common wire.
You can remove any of the ICs in this schematic.... ie. you can have just two, one with ID=0 and one with ID=7 (for MB-SID this is good, ID=7 is used for the "ensemble" storage, ID=0 to ID=6 is for patches).

MIOS applications allow to swap a BankStick during runtime on a similar way like known from USB memory sticks. For my own MIDIboxes I'm mostly using a Sub-D socket, since the EEPROM fits nice into the case. But you are free to use a different plug type and/or case for the EEPROM if you like.


IIC EEPROMs are mainly manufactured by Microchip, Atmel and ST. They are compatible, but unfortunately have a small, but annoying difference: the number of available chip select inputs!

  • Microchip EEPROMs: named "24LC256" (32k) and "24LC512" (64k). They provide three chip select inputs, so that you are able to attach up to 8 devices on the IIC bus.
  • Atmel EEPROMs: named "24C256", there is no 64k device! Only two chip select inputs (A0 and A1) are provided, which limits the maximum number to 4.
  • ST EEPROMs: named "M24256" - don't buy them, they only have a single chip select input, so that only a single BankStick can be accessed on the IIC bus.


  • 24C256, Part #ST 24C256 BN6 at Reichelt for EUR 1.20 (the part number implies that this is an EEPROM from ST, but since 2004 they deliver an Atmel device with CS (chip select) inputs
  • 24LC256-I/P, Part #150234-14 at Conrad for around EUR 2.80
  • 24LC256-E/P-ND at Digikey for around US $2.40
  • 579-24LC256-I/P at Mouser for around US $1.70

MIOS Support

The BankStick concept has been integrated into MIOS. Several system functions are available for reading and writing (MIOS_BANKSTICK_*), so that you are able to use the EEPROM as external non-volatile memory for your own applications. By using the address pins A0-A2, up to 8 chips can be attached to the IIC bus (J4 of the core module). In this way the maximum available memory size is 8*32k = 256k with 24LC256 devices, resp. 8*64k = 512k with 24LC512 devices. The access times: reads - about 100 uS, writes - about 10 ms, page writes (64 byte at once) - about 10 ms.

Should I buy a 24LC256 or 24LC512?

You can use 24LC512s with applications, which were made for 24LC256 based BankSticks. In such a case, only the lower half of the memory will be accessed. A small number of applications can handle a single 24LC512 like two 24LC256, but due to the programming and especially testing effort for all the variations, such an option is mostly not provided.

For newer applications like MIDIbox SID V2, MIDIbox SEQ V3 or MIDIbox 808, the usage of 64k BankSticks is recommended to store the full number of patches/patterns per bank.

For example, the MIDIbox SID V2 patch size is 512 bytes, and since the "Program Change" MIDI event allows to send 128 different values, 128*512 = 64k are required to store a bank of 128 patches. With a 24LC256, you could only store 64 patches per bank (the bank itself is selected with CC#0)

Last update: 2023-04-23

Copyright 1998-2023, Thorsten Klose. All rights reserved.