Can programs be flashed to Seed through data pins?

I sort of saw another post about this but they didn’t mention the data pins directly (D- and D+ on pinout). I hooked the data pins up to a usb-c breakout along with power and ground but when I hit boot+reset, my computer (windows) says usb device not recognized.

Of course I can flash just fine through the micro-usb port but what about making hardware with its own usb port? And updating the hardware without pressing boot and reset? All in all the Seed doesn’t seem set up for a consumer product with software that can be updated (without making the attached micro-usb port, boot, and reset buttons accessible in the hardware)?

If you use the Daisy bootloader, there’s an option to use the other set of USB pins, which you can run to a USB connector of your choice. But currently there’s not a good way to recover if a firmware update fails, so yes, it’s a bit tricky to use as a consumer product. I ended up having to do my own bootloader in order to not have to use the on-board Boot or Reset buttons.

Thanks for the trail to the Daisy bootloader. Reading the documentation, I see what you are talking about with USB (and SD card). Not the same as running program_dfu while connected via usb but rather transferring a .bin file to usb or sd storage and then powering on the seed. So not ideal for development (of course JTAG is the most ideal anyways). But you are saying there isn’t a good way to recover the if update fails via .bin file; I don’t see mention of that in the documentation. Do you mean the seed has to then be reset with boot button in that case or that the seed will just have to be re-powered to try the .bin file again?

I think I didn’t quite explain it right: I was just talking about using ‘program_dfu’ but with the alternate USB pins. Regarding SD cards, I’m not doing that so I don’t know all the details, but it’s possible that the bootloader would re-try from a failed .bin update if you re-tried, but I don’t know either way. The ‘program_dfu’ way won’t, unless you press the ‘Boot’ button within the first few seconds, which is a bit of a snag when the Seed is fully enclosed.

I see. I’ll have to look in the bootloader documentation about that option you mention but, as you say, not much point if you’re trying to develop on a fully-enclosed prototype. Or in your case, end-product sans usb drive or sd card.

Looks like I’ll be alright for my end-product since I will have an sd card but an inconvenience for developing with enclosed hardware. I suppose snaking a little JTAG ribbon and header in would suffice but my project won’t really have the clearance for that.

Just curious, what is your end product?

Hardware sampler and sequencer. On a tangential note, you seem adept in firmware development so I’ll ask if you ever encounter an example of stereo audio streaming from an SD card, I would love to know about it. I’ve got loading samples into memory going but streaming without memory limits is something I’d like to have but feel a bit lost in with the daisy example of streaming being quite limited.

Sounds like a fun project!
I haven’t done any SD work or streaming, but I think it should be relatively straight-forward. You could try searching all of GitHub to see if anyone is doing it with a similar hardware setup or even with Daisy. and/or asking Claude.ai!