This repository contains everything you need to build the Mimir's Well guitar pedal. You can build it from a kit or PCB.
Directories:
arduino
: code for the display driver, and for writing the "yellow" EEPROMsassembly
: documents to help people building from a kit or PCBeeprom-helper
: simple tool to help when creating EEPROMs. see its READMEpcb
: gerber and dxf files, e.g. if you want to produce your own PCBschematics
: schematicsv1
: a one-off prototype (which is now my most-used pedal)
The pedal has 2 pairs of 24LC32A EEPROMs. Each pair contains a bank of 8 programs, and has a "Yellow" EEPROM and a "Blue" EEPROM. The colors aren't significant, and just refer to the color I use when writing each chip's number on it. It's a simple way to avoid getting them mixed up.
There are lots of ways to write to EEPROMs, and this is only one of them.
This holds the program name and control labels for each program in the bank. I use this EEPROM Helper script to make the label text file, or the arduino file.
You can write to it using these shell scripts: burn-labels.sh and make-labels.sh.
You can also write it using an Arduino sketch. You can hook it up as follows:
This holds the FV-1 programs.
You may be be able to write the banks using an arduino and a custom sketch, but I simply use a very inexpensive EEPROM programmer. Specifically I use a USB CH341 EEPROM programmer. These can be found for about $5. You may need to find and install USB drivers.
I use the ch341eeprom commandline tool on Mac OS X to write the data to the USB programmer. If you're not on Mac you'll need to find an alternative tool.
To create these banks I do the following:
- Create a "hex" bank using SpinAsm assembler
- Unfortunately this only runs on Windows. An alternate assembler exists but I haven't tried it.
- Convert it to a "bin" file using the
srec_cat
util from the "srecord" packagebrew install srecord
on Macsrec_cat bank-input.hex -Intel -o bank-output.bin -binary
- Erase the EEPROM, probably optional
ch341eeprom -v -s 24c32 -e
- Write the bin file
ch341eeprom -v -s 24c32 -w bank-output.bin
- Check for problems. Optional but recommended
ch341eeprom -v -s 24c32 -r /tmp/eeprom.bin # read back the data
diff /tmp/eeprom.bin bank-output.bin # this should not output anything
Here is a script I use for steps 2-5.
To help streamline this process I have a really simple tool I use: eeprom helper
It's just a simple javascript page that lets me check which programs I'll be burning, then it does 2 things:
- Gives a snippet of arduino code or a text list of labels for the burning the Yellow chip, described above.
- Lists the spn files for reference, which is helpful when manually working with SpinAsm Assembler in step 1 while burning the Blue chip.