Oopsy Custom Json tips?

Hey All! I’m sure this is a basic question but I’m trying to wrap my head around custom boards / custom Jsons and Oopsy… So maybe someone more knowledgeable might be able to lay it out for me in simple terms.

I’ve created a custom board for the Patch Sub Module. To access things properly, I’ve created a custom Json file (customboard.json) and used json2daisy which created a *.h file (customboard.h). Up till this point I’ve been using PD, so I placed the files in the right place and so far it works great with pd2dsy.

However, when I try to create a Gen~ patch and load this same customboard.h into the Oopsy loader (I click BROWSE and select customboard.h), it will flash to my daisy but not work at all. Is there something extra I need to do in Oopsy for it to recognize it? Or do I have to do something to my Json for Oopsy? Do I need to put the files in a certain place? I’m having trouble decoding this with the info from the github and other resources. Any tips would be super helpful!

I’ve tried trouble shooting a bit - Ive tried selecting Patch_sm in the Oopsy loader instead of my custom file - and thats send to my board with no problems (but of course doesnt have the proper mapping of knobs/cv of the custom board)… So the system works, just not my custom file.

Thanks in advance for any tips!

best
Doron

Inside Oopsy I loading with custom Json files.

Saved with a .json suffix.

Note the pin numbers are the numbers of the GPIO number not the physical pin.

{
	"name":"colortone_digital_15_v1",
	"defines": {
		"OOPSY_TARGET_HAS_MIDI_INPUT": 1
	},
	"components": {
		"sw1": {
			"component": "Switch",
			"pin": 8
		},
		"sw2": {
			"component": "Switch",
			"pin": 9
		},
		"sw3": {
			"component": "Switch",
			"pin": 10
		},
		"sw4": {
			"component": "Switch",
			"pin": 26
		},
		"sw5": {
			"component": "Switch",
			"pin": 25
		},
		"knob1": {
			"component": "AnalogControl",
			"pin": 24
		},
		"knob2": {
			"component": "AnalogControl",
			"pin": 19
		},
		"knob3": {
			"component": "AnalogControl",
			"pin": 22
		},
		"knob4": {
			"component": "AnalogControl",
			"pin": 20
		},
		"knob5": {
			"component": "AnalogControl",
			"pin": 23
		},
		"knob6": {
			"component": "AnalogControl",
			"pin": 18
		},
		"knob7": {
			"component": "AnalogControl",
			"pin": 21
		},
		"led1": {
			"component": "Led",
			"pin": 11
		},
		"led2": {
			"component": "Led",
			"pin": 12
		},
		"led3": {
			"component": "Led",
			"pin": 13
		},
		"led1a": {
			"component": "Led",
			"pin": 7
		}
		
	},
	"aliases": {
		"sw1_bypass": "sw1",
		"sw1": "sw1",
		"sw2_tap": "sw2",
		"sw2": "sw2",
		"sw3_FwdRev": "sw3",
		"sw3": "sw3",
		"sw4": "sw4",
		"sw5": "sw5",
		"sw6": "sw6",
		"knob1_len": "knob1",
		"knob1": "knob1",
		"knob2_speed": "knob2",
		"knob2": "knob2",
		"knob3_fb": "knob3",
		"knob3": "knob3",
		"knob4_mix": "knob4",
		"knob4": "knob4",
		"knob5_mix2": "knob5",
		"knob5": "knob5",
		"knob6": "knob6",
		"knob7_exp": "knob7",
		"knob7": "knob7",
		"led": "led1",
		"ledBypass": "led1",
		"led1": "led1",
		"ledTempo": "led2",
		"led2": "led2",
		"led3": "led3",
		"led1a": "led4"
	}
}

Thanks for the response! Unfortunately it doesnt seem to work for me… Ive tried copying your code into a new json file but still nothing. Actually, even if I go through and manually pick the daisy.patch_sm.json file from the Oopsy/Sources folder it doesnt work either - it only works if I select it from the menu of preset jsons. I assume Im missing something, but not sure why it doesnt do anything at all…
Im also curious, what do you mean by the GPIO numbers and not the physical pin? The PatchSM seems to use a numbering system with ABCD prefixes - is that what you mean?
Thanks!

By the Pin numbers Im referring to the physical pins on the seed that you have your controls (Pots and switches) connected to. The Eagle Library lists the GPIO numbers that are related to the Physical pins. I use the GPIO numbers in the .json file.
So in the example I posted earlier knob1 is listed as Pin: 25 but its actually physical pin 32 GPIO 25.

See Below.

Hi @fadedinstruments

We have an open PR on Github that has reworked the custom JSON to support different “SOMs”; essentially allowing for configuring JSON for the Daisy Seed or the Daisy Patch SM.

Previously, there were two different formats for writing JSON: one for the built-in boards, and one for “custom” boards (which is why trying to grab the built-in patch sm JSON wasn’t working as expected).

This separation has been removed in the latest update.

All of the built-in boards’ JSON files have been rewritten into this format as well (e.g. Daisy Pod, Daisy Patch.Init()), and can serve as examples alongside a new wiki article that goes over the details of how to work with custom JSON within oopsy.

We are currently still in the process of testing and reviewing this ourselves, and will be working on wrapping this update up over the next week or so.

Any feedback, bug reports, questions, etc. are all welcome.

2 Likes

Thanks! Sorry about the delay - its been a busy two weeks… Im just getting to this now and it still doesnt seem to be working for me. I feel like my custom Json is okay - I followed the instructions on the wiki article you posted and compared it to the examples of the Patch_Init.json - but it still doesnt work. I downloaded the Oopsy forks - oopsy-main.zip and oopsy-sensors-update.zip - but those work at all for me (even the included Patch_init presets dont function for me - whereas the older Oopsy I’m able to use the Patch_sm preset). Is this maybe still being worked out or am I messing things up?
Thanks again - I know Im a beginner here so some things are still difficult for me to understand!

Okay! I figured it out and its working now! I’m sure theres a better way to do this… But I just copied the LibDaisy had to copy the libdaisy folder from the sources folder of the old Oopsy to the newer oopsy-sensors-update and it works :slight_smile: Thanks!