Developing with Terrarium

Roder

New member
I've just been trying to load example programs into my daisy, which is mounted on a terrarium from pedal pcb, using the Daisy Web Programmer. I'm using Mac, Chrome is up to date, the programs seem to successfully upload to the daisy, yet the only functional program is Blink. Others haven't worked, including all pass, which just makes repetitious digital sound with no signal from the guitar. I'm confident in the construction of the terrarium. Is the terrarium compatible with the Daisy Web Programmer? If so, what might I do to solve this issue. If not, are there any resources or advice concerning uploading to the daisy in the terrarium? Anything helps; I'm not particularly experienced programming this sort of hardware. Thanks!
 
I think the official Daisy Web Programmer only has programs for the official Electo-Smith Daisy hardware (Petal, Patch, Field, etc). The Terrarium has switches/knobs/leds hooked up to different pins on the Daisy Chip, so the official patches won't work correctly being loaded onto the Terrarium without modification.

Some people on this forum have adapted (and added onto) versions of the official Daisy Examples to run and be controlled by the Terrarium though. You can load the "name_of_program.bin" for these adapted programs onto the Daisy/Terrarium using the Web Programmer by using the "select a file from your computer" option.

You can try this with one of the programs I adapted/added to called rhythm_delay. The code for this program and the rhythm_delay.bin files are located here (here is the other thread that discusses this program). There is a multidelay (which I stated from for the rhythm_delay and I think a few more examples on this forum also.
 
I have succesfully built and programmed the Terrarium with the Libraries/examples/Daisyduino/Seed/Autowah. The output emits a steady pulsing wah sound but the pedal controls do nothing and no LEDs Is there a build for Terrarium code that will utilize the pots/switches/LED's that I can load from Arduino IDE?
 
I've never fooled with the Autowah example (or programming the Seed with Arduino) but it should just be a matter of changing the pin assignments for the controls and LED.
 
I am able to upload various effects from the Daisyduino library like reverb and pitch shift but I can't figure out how to enable the pots and switches on the Terrarium. I've tried adding the Terrarium.h file to my sketch and still nothing.
 
I don't think the Terrarium.h file that is linked above will work for the DaisyDuino environment without being modified. The formatting for the C++ programing and arduino programming is different. If you look in /DaisyDuino/src/daisy_petal.h you can see the formatting is different than the Terrarium.h file on this forum (that is for the C++ programming).

That said, when I just programmed the Verb.ino example to the Seed the knobs and switches work for me....they are just a bit jumbled, toggle switch #3 turns the effect on and off (but it only flips the effect on/off when the switch is being flipped to the up position). I can use the pots to adjust the reverb settings too, but the control mapping is different than for the daisy petal, so they are jumbled.

The Terrarium.h file for the C++ programming (linked above) is just a remapping of the daisy_petal controls, so you can probably get something similar working for the DaisyDuino stuff. A simple hack for now would be just reindexing the button and control parameters inside the official .ino files. For example if you change "if (hw.buttons[0].RisingEdge())" to "if (hw.buttons[4].RisingEdge())" in DaisyDuino/examples/Petal/verb/Verb.ino the left footswitch will turn the reverb effect on/off.
 
I don't think the Terrarium.h file that is linked above will work for the DaisyDuino environment without being modified. The formatting for the C++ programing and arduino programming is different. If you look in /DaisyDuino/src/daisy_petal.h you can see the formatting is different than the Terrarium.h file on this forum (that is for the C++ programming).

That said, when I just programmed the Verb.ino example to the Seed the knobs and switches work for me....they are just a bit jumbled, toggle switch #3 turns the effect on and off (but it only flips the effect on/off when the switch is being flipped to the up position). I can use the pots to adjust the reverb settings too, but the control mapping is different than for the daisy petal, so they are jumbled.

The Terrarium.h file for the C++ programming (linked above) is just a remapping of the daisy_petal controls, so you can probably get something similar working for the DaisyDuino stuff. A simple hack for now would be just reindexing the button and control parameters inside the official .ino files. For example if you change "if (hw.buttons[0].RisingEdge())" to "if (hw.buttons[4].RisingEdge())" in DaisyDuino/examples/Petal/verb/Verb.ino the left footswitch will turn the reverb effect on/off.
I have tried several uploads using the Daisy Web Programmer and Arduino IDE. The sounds are really good but I still can't figure out how to get the foot switches and LEDs working. I can turn the effect on and off using toggle switch 3 like a momentary switch. the potentiometers seem to do what they supposed to do. I can't find the above mentioned "If (hw.buttons(0) in the "rhythm_delay" code. It loads using the Daisy Web Programmer but no foot switches or LED are functioning, only toggle switch 3 and the potentiometers. I have checked the momentary foot switches, the LEDs, and looked for bad solder joints with no avail. I've built about 20 pedals but I'm new to coding. I've attached of PDF of the code (by Sonic Explorer) that i'm using.
 

Attachments

  • Rhythm_Delay PDF.pdf
    70.1 KB · Views: 13
When you program the Daisy Seed with the .bin file in the rhythm_delay repository (https://github.com/tnatoli/Sonic_Daisy/blob/main/rhythm_delay/build/rhythm_delay.bin) using the Daisy Web Programmer - do the footswitches and LEDs work correctly?

Since the .bin I pointed to above is already complied and known to work (I just doubled checked it still works too), any issues with the LEDs or footswitches points to a hardware (or Seed itself) issue.

The relevant area of the rhythm_delay code that concerns the footswitch to turn the effect on/off is line 457 (here). It doesn't use the same hw.buttons(0) reference like the arduino code, instead it uses petal.switches[Terrarium::FOOTSWITCH_1] - which says, to get the right number pin for the switch look at the Terrarium file for the thing called FOOTSWITCH_1 and get that pin number.
 
When you program the Daisy Seed with the .bin file in the rhythm_delay repository (https://github.com/tnatoli/Sonic_Daisy/blob/main/rhythm_delay/build/rhythm_delay.bin) using the Daisy Web Programmer - do the footswitches and LEDs work correctly?

Since the .bin I pointed to above is already complied and known to work (I just doubled checked it still works too), any issues with the LEDs or footswitches points to a hardware (or Seed itself) issue.

The relevant area of the rhythm_delay code that concerns the footswitch to turn the effect on/off is line 457 (here). It doesn't use the same hw.buttons(0) reference like the arduino code, instead it uses petal.switches[Terrarium::FOOTSWITCH_1] - which says, to get the right number pin for the switch look at the Terrarium file for the thing called FOOTSWITCH_1 and get that pin number.
I have programmed it as mentioned above but still no switches/leds are functional. I'm also getting no effect at all. I will keep at it and check the hardware for issues. Your help is greatly appreciated
 
I downloaded the Rhythm Delay repo. I have the daisy tool chain installed. I followed a video tutorial from Electro Smith and was able to get the Blink program running using `task build_all` and `task build_and_program`.

When I try this from in the rhythm_delay folder these options aren't available? In other words VSCode doesn't show the commands: `task build_all` and `task build_and_program`.

What am I doing wrong?
 
I was able to load: rhythm_delay.bin using the Daisy web programmer. You have to use Chrome, if anyone has trouble with Safari.

The rhythm_delay works great. There is an issue with control 6. The read in the source repo labels this: Swell. It seems to just add crackling noise as I turn it up. Everything else seems to be working.

My bypass LED is not working. I'm going to debug my board.
 
I think I figured it out, I read somewhere last night that you need to run things inside the DaisyExamples folder. I'm going to give this a try later today...
 
Moving the Sonic_Daisy-main directory into the DaisyExamples didn't work. I tried also putting it into DaisyExamples/seed.
 
When you load up the .bin file with Chrome and the Daisy web programmer it does not matter what directory the .bin file is in (it could just be in your download directory even).

When you recompile the code to create your own .bin file from the .h and .cpp files you have to make sure the relationship between the rhythm_delay directory and the DaisyExamples directory are correct.

I'm not sure why the Swell control would be adding a crackling noise. The Age control does add 'artifacts' when turned past noon which can sound like distortion and possible cracking, but that should be the knob in the middle on the bottom row.
 
the crackle is really pronounced, its not like an. “Effect”, there’s definitely something not right. It’s also really loud.

Besides being in the DaisyExamples folder looks like you need the .vscode folder in the directory to use the Daisy toolchain. You can generate a new project with a correct setup by running helper.py.

I did this and tried to build Cloudseed. The build seemed to work but failed at the need with:

The terminal process "/bin/bash '-c', 'make clean; make; make program'" terminated with exit code: 2.

Almost there but not quite.
 
Success! I was able to build and install rhythm_delay from the source code, and the issue with the Swell control is gone. I think the noise (knob 5) is working better now.

I had to change the path in the MakeFile so it pointed to libDaisy and DaisySP.
 
Back
Top