Best way to work on both DaisyExamples and libDaisy

I have a custom board for the Seed (called the Rogue) with an 8-channel PCM1681 audio DAC, among other things, such as a microSD socket, MIDI IN and a USB Host port. While I designed it for use with dedicated firmware (I use a different toolchain - Keil MDK-ARM) I thought I would also contribute to the community by adding a board support package to the Daisy codebase. To that end, I currently have the Osc example working with 8 channels TDM, in addition to the 2-in, 2-out channels (I2S) on the Seed - so a total of 10 output channels. I’ve added a “rogue” example folder in the DaisyExamples repo, as well as a daisy_rogue folder to libDaisy/src. I also made a small number of changes to other parts of libDaisy.

I’ve only ever used git for my own single-contributor projects, so there are parts of git that I’m not well versed. I forked the DaisyExamples repo and made all my changes, but that doesn’t seem to capture the changes I make to libDaisy, which is a submodule. When I push my changes to my fork, and then look at the commit, it doesn’t include changes to libDaisy. I forked libDaisy, but now I have two separate repos and don’t now how to integrate them for development.

So my question is, what’s the best way to work on both DaisyExamples and libDaisy so that I can stay in sync and be able to offer my work to others?

2 Likes

Update: I changed the submodule link for libDaisy in my DaisyExample fork to point to my libDaisy fork by editing .gitmodules, but there’s still something amiss. When I push changes my changes to my libDaisy fork, the parent still thinks there are outstanding changes in the submodule. So confusing… Am I on the right track even?

I think I got it sorted out. Time will tell…

Hi Jamie,

Daisy Rogue Wav looks awesome! Please keep the community updated about it.
And we also greatly appreciate your contributing the board support package.

As for the question, I’m glad to hear that you got it sorted out. Feel free to post the solution as it may be helpful for other users in the future (I would love to learn what you did as well).

And don’t hesitate to post in this thread if a new issue arises related to this, and I’ll look into it with the team and get back to you as soon as we have a possible solution. Thank you.

Here are my steps to set up a working environment:

  1. Fork DaisyExamples
  2. Fork LibDaisy
  3. Make a few changes in libDaisy and commit/push to a new branch - I called it “master”
  4. Edit the .gitmodules file in DaisyExamples, modifying the libDaisy submodule link to point to my fork.
  5. Commit/push DaisyExamples
  6. Remove all my local content and then clone my fork of DaisyExamples

Now I have a local working fork of DaisyExamples that also contains my fork of libDaisy. The procedure to commit/push subsequent changes that seems to work is to commit/push libDaisy first, then commit/push DaisyExamples.

One question: Going forward, as I’d like to share progress with both TDM and hopefully an implementation of USB MIDI hosting (my board has a powered USB host port), is it better to post here on the forum or on the Discord server?

1 Like

Thank you so much for the information!

It would be great to see all the progress updates. Please feel free to share them on the forum in the Projects and Examples category. And Discord would be good for posting a link to them.

Looking forward to the updates!