Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Very early initial support for RPi 5 based on dev branch of circle. #638

Merged
merged 4 commits into from
Apr 17, 2024

Conversation

diyelectromusic
Copy link
Collaborator

@diyelectromusic diyelectromusic commented Apr 15, 2024

Initial support for RPI 5 based on develop branch of circle.

This is very experimental. Not to be merged at this time!

Known not to work:

  • HDMI sound support (disabled in minidexed.cpp)
  • USB Gadget support (disabled in kernel.cpp and usbminidexedmidigadget.h

I've seen it working with PCM5102 I2S sound, HD44780 (non I2C) display, HDMI console output, rotary encoder, USB keyboard. It probably works with PWM sound output if you have the additional PWM filter hardware on GPIO pins 12/13...

Update: Looks like I2C SSD1306 is fine, so I'd guess I2C HD44780 ought to work too.
Update: Serial MIDI now working fine.

Everything else: I've no idea :)

Note: to get this running needs the latest boot files from Raspberry Pi (see the circle documentation), an updated config.txt (part of this commit) and the new kernel_2712.img file built when RPI=5.

I've not done anything with the automated build process, but if someone wants to fight with the build.yml file, feel free!

Otherwise to build you'll need to ensure you are building the develop branches of circle-stdlib and circle itself (see the submod.sh file).

Apart from that, well, it seems to work :)

By the way, I don't think we say this enough... Rene is amazing for his circle environment that is doing all the heavy lifting here :)

Also, on that point, now we've upgraded to a more recent circle, we need to be testing the builds for RPi 1,2,3,4 too before accepting this change!

Kevin

IMG_7785

@rsta2
Copy link
Contributor

rsta2 commented Apr 16, 2024

Thank you, Kevin! The serial device defaults to the UART JST socket on the RPi 5. You have to append an additional parameter 0 here to direct it to GPIO14/15. This will work with all RPi models.

@diyelectromusic
Copy link
Collaborator Author

Thank you, Kevin! The serial device defaults to the UART JST socket on the RPi 5. You have to append an additional parameter 0 here to direct it to GPIO14/15. This will work with all RPi models.

Ah great - I'll take a look later this evening :) I've not really dug into it at all yet - I only built the thing!!

Kevin

@diyelectromusic
Copy link
Collaborator Author

If anyone is able to test this for side-effects of the circle upgrade on a RPi 1,2,3,4 then the build is here:
MiniDexed_2024-04-16-96294ed

Note: This does NOT include the RPi 5 version yet. That requires an update to the automated build setup on Github.

Kevin

@diyelectromusic
Copy link
Collaborator Author

Ok, so this build works on the following for me:

  • RPi V1
  • RPi V1 Zero (Gadget Mode)
  • RPi V3A+ (Gadget Mode)
  • RPi 4

Showing mixture of HD77480 and I2C SSD1306 screens, rotary encoder, buttons, PCM5102 I2S DAC, and serial and USB MIDI.

So I'd say the basic build seems pretty ok to me at the moment.

Kevin

@probonopd
Copy link
Owner

Note: This does NOT include the RPi 5 version yet. That requires an update to the automated build setup on Github.

Let's see if we can change that :)

Build for testing: MiniDexed_2024-04-16-a031f41

@rsta2: https://github.com/rsta2/circle?tab=readme-ov-file#building should probably be updated.

@rsta2
Copy link
Contributor

rsta2 commented Apr 16, 2024 via email

@Banana71
Copy link

With my Raspberry Pi 4 (SSD1306, GY-PCM5102, classic MIDI Input) everything seems to be fine. 👍

@Banana71
Copy link

Raspberry Pi 2 (without Display, GY-PCM5102, classic MIDI Input, PerformanceSelect over MIDI, ChunkSize=128) looks good too.

@diyelectromusic
Copy link
Collaborator Author

Latest build now tested on:

  • RPi V1 (MIDI + USB)
  • RPi V1 Zero (MIDI + USB Gadget)
  • RPI V3A+ (MIDI + USB Gadget)
  • RPi 4 (MIDI + USB)
  • RPi 400 (MIDI + PC Keyboard)
  • RPi 5 (MIDI + USB)

With various combinations of HD77480 or ssd1306 display, rotary encoder, PCM5102 I2S DAC and GPIO buttons.

I think we can probably merge this in with a note on the main page that RPi 5 support is present but experimental and doesn't support HDMI sound or USB Gadget mode. What does everyone think?

Then I might revisit the polyphony/TG situation - I see no reason it shouldn't be 32 note/16 TG by default on a Pi 5... anyone?

Kevin

@Banana71
Copy link

I see no reasons against a merge 😎

@probonopd probonopd merged commit 75eb763 into probonopd:main Apr 17, 2024
@diyelectromusic diyelectromusic deleted the rpi5 branch April 17, 2024 19:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants