FunBox Build Guide

Keith Bloemer
15 min readJun 27, 2024

--

Note: This build guide is a living document, I am currently updating it with pictures and instructions as I receive feedback from builders. Check back for updates! — 6/27/2024

========================================================
PCB Revisions (note that v3.1 board is shown in the pictures):

v3.0 (6/1/2024 ): Original v3 version with Expression and MIDI
v3.1 (6/27/2024) : Moved dipswitches and 1/8 TRS jacks inward for easier install. Reoriented a few capacitors away from the edge of the board (was too easy to bend these when handling the board).
v3.2 (7/13/2024): Replaced the TL074 with a MCP6024 (pinout is the same, label change only). This was done for reduced noise.
========================================================

The FunBox is an open source digital guitar pedal platform designed around the Daisy Seed chip by Electro-Smith. It features buffered stereo input and output, as well as expression and midi input. Its design was inspired by high-end effect brands such as Meris and Chase Bliss, but the FunBox can be built for relatively cheap using commonly available parts. Here’s how to build one.

Completed Funbox Pedal
Neptune Reverb/Delay module demo

Step 0. Familiarize Yourself with the Funbox Resources

The Funbox pcb design files and software modules are all located in the Funbox repo on Github:

https://github.com/GuitarML/FunBox

Under the “hardware” folder you will find 3 versions of the Funbox PCB (printed circuit board) designed using KiCad. Version 3 is what I will be referring to in this build guide. Version 1 does not include Expression or Midi, and has 2 dip switches instead of 4. Version 2 has Midi in and Midi out (this version has not been tested). Version 3 is my “final” version which has expression input and midi input. The software should run fine on Version 1, if expression and midi is not desired. There is a BOM (Bill of Materials) spreadsheet for each design, which is an auto generated list of components from the KiCad schematic.

Under the “software” folder you will find my various software modules that run on the Funbox. The “Planet Series” are my more polished pedal examples, and “Experiments” contain interesting tests or examples of specific effects. All of my software is written in c++, and compiles for the Daisy Seed chip.

The “include” folder contains custom code that can be used for any new Funbox module. Currently, this contains the Funbox hardware abstraction (don’t worry about that for now), and a custom expression handler.

The “mod” folder contains code intended for modification of libDaisy (the Daisy core library) in order to compile for the Funbox. This contains definitions of how the Daisy Seed interacts with the controls. I’ll explain more about this when we set up the software environment.

Step 1. Order Parts

There are many sources for ordering electronics. If you have your own way you’re familiar with, do it your way. This is where I usually get my parts:

Tayda Electronics: Resistors, capacitors, diode 1/8" audio jacks, 5v Power converter L78L05, LEDs, IC sockets, and the pre-drilled and powder coated enclosure (125B for Funbox)

Pros: Cheap, lots of inventory, convenient enclosure drilling/powder coat
Cons: Long shipping times, higher shipping cost (for USA)

DigiKey: Dipswitch array, and IC’s that I can’t get from Tayda (MCP6002 for expression, and the IC for MIDI), MCP6024 quad op amp for in/out audio buffers.

Pros: High quality parts, things you can’t find other places
Cons: More expensive, higher shipping cost even for small items

LoveMySwitches: Knobs, potentiometers, footswitches, toggle switches, 1/4" stereo jacks, power jack, LED bezels

Pros: High quality parts, specific to guitar pedals, great customer service, fast shipping
Cons: Higher parts cost

OSHPark or PCBway for manufacturing the Funbox PCB

OSHPark (USA): Free shipping in USA, high quality boards, but higher cost for fewer boards (3 for $30 on Funbox), longer fabrication and shipping times (2 weeks standard)
PCBway (China): Cheap (10 for $5 for Funbox), fast fabrication and shipping (1 week), but silkscreen printing is less clear than OSHPark boards

The specific quantities and component values can be found in the BOM file (.csv) in the hardware folder. Some things to watch out for when ordering:

  1. Make sure resistors are 1/4 watt. This determines the size and power rating. I get the blue metal film resistors from Tayda.
  2. Make sure capacitors are rated for 100v or less. Often I will see 50v, 63v, or 100v ratings. This doesn’t matter so much for operation, but it does determine the size of the capacitors. I’ve ordered 400v caps by accident, and they were huge! This is an example of a 100nF (0.1uF) capacitor I would buy.
  3. This is the Dipswitch I used, it has a reinforced back that makes it more stable on the board, by Wurth Elektronik.
  4. This PJ-320A is the 1/8 TRS (3.5mm) jack I used for MIDI and Expression input. They are super cheap. They have little bumps on the bottom to fit into tiny hole slots on the PCB, but you may want to file these off (my OSHPark boards did not have these slots, and the PCBway boards had the holes, but it didn’t fit well).
  5. Make sure the 1uF capacitors are the smaller box size (not radial), in order to fit underneath the Daisy Seed. These are the ones I used (WIMA type, they are more expensive). The only radial (electrolytic) capacitor you should have is the single 100uF.
  6. Use the smaller L78L05 power converter, not the larger L7805. This is the one I used.
  7. I use 5mm LEDs with the bezel from LoveMySwitches for Funbox.
  8. I used the 16mm right angle 1/4" smooth shaft potentiometers from LoveMySwitches.
  9. Make sure the footswitches are momentary, normally open. This is what I used from LoveMySwitches.
  10. These are the On-Off-On SPDT 3-way toggles (solder lug) from LoveMySwitches. You may be able to get these cheaper from Tayda.
  11. I recommend using sockets/headers for all the ICs, and of course the Daisy Seed. That way if it goes bad it’s an easy swap. It also ensures enough room for components underneath the Daisy Seed. This is what I use for the Daisy Seed, and you’ll need two of them.
  12. The power jack and LED holes on the enclosure drill template are sized for specific parts. This is the power jack and LED bezels I used.
  13. It’s optional, but highly recommended to use potentiometer covers. Otherwise you have to use electrical tape or something else to make sure the potentiometers don’t short out the backside of the pcb. These are what I use.
  14. I updated the Quad Op Amp for the in/out audio buffers in Funbox version 3.2. It has been changed from a TL074 to a MCP6024, this is the one I ordered. This change was made to reduce noise.
  15. Last but not least, make sure to get the Daisy Seed with the “Soldered” and “65MB” options selected. At the time of writing, this costs $29.95

Ordering the Funbox PCB (Either OSHPark or PCBway)

One nice thing about OSHpark is they make it quite easy to order a PCB designed in KiCad. All you do is go to their homepage, drag and drop the Kicad PCB file onto it, and there you go! Follow to prompts to order. You have to do a minimum of 3, which was around $30 for the standard purple board and free USPS shipping.

I have also shared the Funbox version 3 project on OshPark, so you can just click here to order. Go to “Actions”, and “Order Board”.

Drag and drop the .kicad_pcb file onto the OSHpark homepage to get started

For PCBway, you will need to generate Gerber files from the KiCad pcb file. You will upload this to the PCBway website to order the board. This is the guide I followed to generate Gerbers for PCBway. Different manufacturers like JLCPcb may have different requirements.

On the PCBway website, select Standard PCB Prototype (not assembly) and select the options you want. The Funbox board size is 59.7 x 67.6 mm, it asks for that to generate a cost quote. I keep all of the default fields the same, except for solder mask color, which I chose as black instead of green. After a quote is generated, you will go to a page where you can upload your Gerber files as a .zip.

PCBway ordering page

Ordering the Tayda 125B Enclosure

From the Tayda Electronics website, add both the powder coated enclosure and drill item to your order. The drill template for Funbox version 3 is linked here (and from the Funbox hardware readme document). Follow the instructions on the Tayda website for custom drill service. After ordering, you will need to wait about 20 minutes, then go to the Tayda Drill Tool website (you’ll need to create an account) and apply the Funbox drill template to your order. They are typically quite busy, so expect the whole process to add 2–3 weeks to your order delivery time. I’ve tried hand drilling my own enclosures, but unless you have a precision drill press, do yourself a favor and have them do it.

The Tools

Don’t forget that you will need wire! I use something like this. Make sure it’s “solid” and not “stranded” wire unless you enjoy massive headaches.

You’ll need a soldering iron, with solder. Lots of beginner kits include everything you need.

You’ll need small wrenches to tighten bolts on your components. A typical wrench set will do fine.

You’ll want wire cutters, preferably with a wire stripper for different gauges of wire. I also use needle nose plyers quite a bit when bending wire around lugs for soldering.

Price (estimated for cheapest parts w/o shipping)
- Daisy Seed: $30
- Tayda Enclosure (Powder coat and drill): $10.50
- Funbox PCB: $5 (PCBway) for qty 5 (sometimes they have a deal $5 for 10)
- Control Hardware (potentiometers, knobs, power jack, stereo jacks footswitches, led bezel) from LoveMySwitches: $22
- Special Parts (Dipswitches, Midi IC, MCP6002) from DigiKey: $8
- Electrical Components (resistors, capacitors, diodes, 3-way toggles, 1/8" TRS jacks, IC sockets): about $20

This comes out to a total of $95.50! However, shipping will add quite a lot depending on where you are located, up to $50! The main offenders for me in the USA are Tayda (Thailand) ~$15, and PCBway (China) ~$20.

If you are starting from scratch with no parts on hand, I would budget $150 for this project. That being said, if you plan to make more than one, ordering extra parts up front will significantly lower the cost of additional units. I would recommend getting extras of the electrical components, and maybe some the control hardware just in case you lose some parts (guilty) or something arrives broken (rare but it can happen).

Customization

This is YOUR pedal, make it your own! I went with boring (but classy) black and white, but you can choose from tons of enclosure colors, knob shapes and colors, and toggle switch styles. Tayda offers a UV printing service, where you send a design (they recommend using Adobe Illustrator) and have it printed on the pedal. If done right, the results look quite professional. I have a Funbox template for Adobe Illustrator included in the Funbox repository under the “graphics” folder. Read the UV Printing Service instructions on the Tayda Electronics website for more info.

Note: If you use the Adobe Illustrator Funbox Template, you’ll need to remove the “helpers” layer, as this is just a reference to where the drill holes are located when creating the design.

Step 2. Solder the FunBox PCB

Now you have all your parts and it’s time for the fun part! Ok, ok, some people think it’s the fun part. What’s not to like about melting metal?

Front and back of Funbox PCB (PCBway board)

There are lots of tutorials online about how to solder. If you are new, get some practice in before doing it on the Funbox. It’s quite a pain to undo solder joints! The fastest way is to take your time and get it right the first time. I don’t use anything fancy, just a cheap starter soldering kit, a fan to disperse the smoke, and a roll of solder.

Electrical components in place, but not yet soldered

All of the component values are printed on the pcb. I usually put all of the parts in and angle the leads so the components stay in place. Then I solder everything I can reach, trim those leads, and repeat until everything is done. For the Daisy Seed headers, I use tape to keep them in place while soldering (make sure they are straight!). For the smaller IC sockets, I just bend the leads so they stay in place.

Soldering the back side of the PCB
Trimming leads after soldering some of the components

There is a tight fit between the 4-Dipswitch array and the 1k resister on its’ lower side, so I recommend soldering the dipswitch in first, then put the resister in to make sure it doesn’t interfere with the dipswitch.

I like to use painter’s tape to hold certain components in place while soldering, such as the dipswitches and pin headers.

I usually do all the electrical components (except the LEDs), then do the potentiometers, then the toggle switches. I recommend using the enclosure as a guide before soldering the pots and toggles in place. The potentiometers are somewhat bendable, but the toggles are solid and can’t be adjusted once soldered in place.

About to solder the potentiometers and toggles

Note: The toggle switches usually come with two nuts. I leave one nut on the toggle before installing to ensure proper spacing, and use the other one to tighten on the front side of the pedal enclosure.

For the LEDs, I put them loose in the board, then fit the board in the enclosure with the bezels installed, and then adjust the height of the LEDs as desired. Once they’re in place, bend the LED leads so they don’t move, and solder in place.

IMPORTANT: For the LEDs, 100uF capacitor, and two diodes, make sure the polarity is correct before soldering. (Positive vs. negative hole). Note that the convention is different for the LEDs and 100uF cap vs. the two diodes. For the LEDs and 100uF cap, the square pad denotes NEGATIVE (Cathode, shorter lead). For the two diodes, the square pad denotes the POSITIVE lead. I don’t know if this makes sense, but it’s the convention I’ve seen on other hobby DIY electronics. As the saying goes, measure twice, solder once. Or something like that.

Step 3. Assemble the Pedal

Once the board is soldered, I usually do things in this order:

  1. Install the board into the enclosure, and tighten at least one of the potentiometer nuts and one toggle nut. Hopefully the 1/8" sockets and dipswitches line up with the enclosure holes.
  2. Install the power jack, measure and cut wires and attach to 9v/Gnd holes, and solder in place.
  3. Install the two stereo jacks, measure and cut wires and attach to the inL, InR, OutG, and OutL, OutR, OutG (these stand for in-Left, in-Right, in-Ground, and same for audio out). Solder in place. Sometimes the 1/4" jack lugs are hard to reach, so I remove them from the enclosure, solder the wires to the jack, install the jack, then solder the wires to the board. Make sure there is some clearance between the enclosure and the bare metal lugs.
  4. Install the two footswitches and solder. It doesn’t matter which order the wires go, just make sure the right side footswitch goes on the right side of the board, and left goes on the left.
  5. Install the Daisy Seed and ICs into the sockets. Double check the orientation of the ICs. Powering on the pedal with ICs in the wrong orientation will likely fry some circuitry.

At each major step, it’s a good idea to review what you just did to make sure the solder joints aren’t loose.

With everything checked and re-checked, if you are familiar with the Daisy environment, flash a quick example program to the Daisy Seed and test that the pedal works! If not, continue on to step 4.

It can be disheartening to power up the pedal and it not work after all the time you just put into building it, but don’t get discouraged! Troubleshooting is part of the process. There are many forums online that have people that can help you out, such as the Daisy Forum, StompBoxForum, or PedalPCB forum. If there is an issue specifically with the Funbox PCB, you can email me at: smartguitarml@gmail.com

Step 4. Setup the Daisy Software Environment

The best place to start is the Daisy Wiki. This will tell you how to install the Daisy Toolchain and set up your environment on your computer.

Step 5. Flash an Example Program on Funbox

Now that your Daisy Environment is set up, let’s compile a program and run it on the Funbox. You can download one of the pre-compiled binaries from the Funbox releases and skip the build steps, but this is how you compile it from source code, if you want to write your own programs or modify mine.

IMPORTANT: I use two different methods of installing firmware to the Daisy Seed. The first is the standard method of storing a program on Flash memory. The other is known as the Bootloader method, which installs the program to the larger SRAM memory. I’ll detail each method here. Of my Planet Series modules, Venus, Jupiter and Pluto use Flash, while Mars and Neptune use SRAM. I prefer to try to use Flash memory first, and only use SRAM if the program is too large to fit in Flash. Flash has 128KB, and SRAM has 480KB.

Setup the Funbox repo to build:

It’s best to clone the Funbox repo using git. If you don’t have git, go get git and install git! Next, you’ll need to be familiar with using a command line terminal on your computer.

git clone https://github.com/GuitarML/FunBox.git
cd FunBox
git submodule update --init --recursive

That last command will download and update all of the submodules you need to compile these programs.

Next, you’ll need to replace some files in the libDaisy/src folder. Go in the “mod” folder and copy both “daisy_petal.cpp” and “daisy_petal.h”. Then navigate to libDaisy/src and paste these files here, choosing to overwrite the existing ones when prompted.

These files have been re-written to accommodate the Funbox controls. You must do this BEFORE building libDaisy.

Next, build libDaisy and DaisySP. These are maintained by Electro-smith.

make -C libDaisy
make -C DaisySP

Build the Pluto Dual Looper program

Finally, you can compile an effect program for Funbox! Navigate to the Pluto program directory and build.

cd software/Pluto
make

If your Daisy environment was set up properly, the “make” command will compile and build your pluto.bin program. A new folder called “build” will be created containing the “pluto.bin file” and abunch of other stuff you don’t care about.

Note: For Neptune and Jupiter, you must compile the CloudSeed code first. Navigate to the CloudSeed directory and build with “make”. You can then build the effect program as normal.

cd software/Jupiter/CloudSeed
make
cd ../jupiter
make

Upload Program to Daisy Seed Flash (Jupiter, Pluto)

Uploading programs to the Daisy Seed via USB

I like to use the Daisy Web Programmer. Simply go to this website, and connect your Daisy Seed via USB. The Daisy Seed should now be powered and have an indication light.

Next, hold the “boot” button on the Daisy Seed, then press the “reset” button and let go in opposite order.

Press the “Connect” button on the webpage and select the DFU device.

Upload your program (pluto.bin or other *.bin file) using the “Choose File” button and navigate to your program.

Click the “Program” button to upload to the Daisy Seed. You should now be able to use the Funbox pedal with the installed program.

UPDATE: It’s come to my attention that the Daisy Web Programmer might not be maintained with the latest software by ElectroSmith. For convenience I still like to use it, but if you run into any issues you may want to use the terminal command to upload your Daisy Seed programs. Run the following command after connecting the Daisy Seed and doing the boot/reset button procedure.

# Run this from the module directory, such as Funbox/software/Mars
make program-dfu

Note: When running “make program-dfu”, you may get the following warning and error output. This is normal and can be ignored.

Warning: Invalid DFU suffix signature
A valid DFU suffix will be required in a future dfu-util release!!!
Error during download get_status
make: *** [../../../libDaisy/core/Makefile:345: program-dfu] Error 74

Upload Program to Daisy Seed SRAM (Mars, Neptune)

For the SRAM process, first you have to upload the Bootloader program to Flash. Do this by connecting the Daisy Seed by USB, and doing the normal DFU process:

Hold the “boot” button on the Daisy Seed, then press the “reset” button and let go in opposite order.

Next, upload the bootloader program to flash from the command line:

# Run this from the module directory, such as Funbox/software/Mars 
make program-boot

NOTE: The “make program-boot” command must run from the terminal in the same directory as the makefile. i.e., Funbox/software/Neptune or Funbox/software/Pluto, etc. This is because it looks for the SRAM rule in the makefile.

If the Daisy environment was set up correctly, you’ll get a progress bar in the terminal window as the bootloader is uploaded to the Daisy Seed’s flash memory.

Next, you can upload your program to SRAM by using the Daisy Web Programmer or “make program-dfu” in a terminal window in the module directory.

There you have it! Your very own DIY digital guitar pedal full of possibilities. If you have questions, issues, or feedback, you can email me, Keith, at smartguitarml@gmail.com.

Thanks for reading and keep on rockin!

--

--