Oopsy / SPI / DAC7554

Hello! Recently received a dsp.coffee dpt which is a development eurorack module based on the Daisy Patch Submodule. I’m poking around and attempting to get oopsy set up for this.

There are 4 extra CV outs which are supplied by a DAC7554 chip which happens to be connected to the SPI pins of the daisy patch submodule.

I have the pre-release oopsy installed and setup and have been looking at custom JSON files, but I feel like there is probably something else needed somewhere to get these cv outs mapped properly. I do have driver files for the DAC7554. Getting all of this setup, how do I then reference the DAC in the custom JSON?

Thanks! Any help would be greatly appreciated. Just want a push or two in the right direction.

You can find the driver files here:
https://github.com/joemisra/dpt/tree/main/lib/dev

Afaik the custom JSON can only address components that are integrated with libDaisy.

Since this DAC7554 is not supported by libDaisy but “bolted on” separately I don’t think it’s possible to use with Oopsy.
At least not using a custom JSON.

This would require manually adjusting the resulting header files to incorporate the correct driver and config.

(ready to stand corrected, though)

I hope it’s possible. It is connected to the four SPI pins of the daisy patch sm, so Im hoping it’s like any other component in that respect.

There are custom driver files written for the daisy library.

I’m trying to figure this all out for myself and a couple other users. The developer of the module is tied up with a lot of other things right now. This is on the list, just not a top priority understandably.

Hi John!

In order to get it to work, the C++ would need a little bit of tweaking (for example, figuring out a way to set each CV individually so you could have four objects in Oopsy). Then, you would need the JSON-to-Daisy glue for Oopsy.

Thank you Takumi!

Speaking a bit more with the developer of the DPT, when programming for those cv outs, he does so with one single line of code to update all four outputs of the dac.

I’m thinking maybe you can track and store values in gen~ using a 4 sample length data object. Poke to store the values and peek to output?

Are there any conventions with the custom JSON files for dealing with that sort of thing?

Hi John! I hope you had a good weekend.

Unfortunately, it’s not going to be enough to get things working just by modifying a JSON file. You will need to do C++ programming.
If you’re interested, I can provide an outline of what you’ll need to do.

An outline would be incredible to see!

Only just very recently got into C++, but am willing to take a look. There are also some others in the community who might be willing to take a crack at it.

Thank you!

Sounds good!!
We will put together and share the outline when we get a chance.

Thank you so much! Looking forward to it and I will be keeping my eyes open.

Hey John! Thank you for the wait.

Here’s an outline of what you need to do:

The main thing is creating a component definition in this file: https://github.com/electro-smith/oopsy/blob/bootloader-additions/source/component_defs_patchsm.json
You should be able to add it without too much trouble or additional work. Since there’s not really any resources currently on how to do this, you would have to figure it out from what’s in the source.

And you would also need to add a couple lines to this file to ensure the object is actually placed in the code: https://github.com/electro-smith/oopsy/blob/bootloader-additions/source/json2daisy.js.
It’s a bit hefty so take your time. The key is making sure the replacements object has a member for this new object.

Good luck!!

1 Like

Thank you so much for the info! Will poke around a bit and see what I can do!

1 Like