Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    [PROJECT] JAMMA-Pi

    Community projects
    [project] jamma-pi
    5
    22
    9686
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • aTg
      aTg @Substring last edited by aTg

      @substring Aaa ok I2C not I2S, I need GPIO3 for h_sync an 5 for one bit of blue.

      The DPI is not negociable.
      https://www.raspberrypi.org/documentation/hardware/raspberrypi/dpi/README.md

      I study all the option for a long time, the only way is use SPI and move CS.

      Now before the launch of the 4.1 not is possible compile ControlBlockService2 into the release?

      These drivers give support for JAMMA-Pi and ControlBlock at the same time.

      Substring 1 Reply Last reply Reply Quote 0
      • Substring
        Substring @aTg last edited by

        @atg The real deal would be to add SPI support to the gpio arcade driver that ships with recalbox. There is no point in adding controlblock, and definitely not in 4.1

        Former dev - Please reply with @substring so that i am notified when you answer me
        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

        aTg 1 Reply Last reply Reply Quote 0
        • aTg
          aTg @Substring last edited by

          @substring Ok, it seems a good way, the only important point is that the integration of the SPI port allows to move the CS pin in any GPIO, this can be done, there are several examples but I do not know how it would have to be done in RB, this point Is the key part of the whole project.

          1 Reply Last reply Reply Quote 0
          • aTg
            aTg last edited by aTg

            This is a preview of the final aspect of the adapter.

            alt text

            The idea is reach a low-cost product for 30€ without any extra cables needed.

            javiertoti 1 Reply Last reply Reply Quote 0
            • javiertoti
              javiertoti @aTg last edited by

              @Substring and other members of Recalbox , please give support to @aTg , he is doing an amazing job with Rgb-Pi (scart solution) and he will do the same with Jamma-Pi

              @atg said in [PROJECT] JAMMA-Pi:

              This is a preview of the final aspect of the adapter.

              alt text

              The idea is reach a low-cost product for 30€ without any extra cables needed.

              Wow, that's an important effort.

              1 Reply Last reply Reply Quote 0
              • Substring
                Substring last edited by

                Adding SPI to the gpio driver is quite a big task 😕

                Former dev - Please reply with @substring so that i am notified when you answer me
                Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                aTg 1 Reply Last reply Reply Quote 0
                • aTg
                  aTg @Substring last edited by

                  @substring Can I offer a bounty to contirbute to the Recalbox project?

                  1 Reply Last reply Reply Quote 0
                  • llegoff
                    llegoff last edited by

                    Hello,
                    I have not tested, but there is an overlay to reroute the pins cs0 and cs1.

                    see on /boot/overlay/readme :

                    Name: spi0-cs
                    Info: Allows the (software) CS pins for SPI0 to be changed
                    Load: dtoverlay=spi0-cs,<param>=<val>
                    Params: cs0_pin GPIO pin for CS0 (default 😎
                    cs1_pin GPIO pin for CS1 (default 7)

                    put in /boot/config.txt , the line :

                    dtoverlay=spi0-cs, cs0_pin <n°pin>

                    there is another way : software i2c with dtoverlay i2c-gpio

                    Name: i2c-gpio
                    Info: Adds support for software i2c controller on gpio pins
                    Load: dtoverlay=i2c-gpio,<param>=<val>
                    Params: i2c_gpio_sda GPIO used for I2C data (default "23")
                    i2c_gpio_scl GPIO used for I2C clock (default "24")
                    i2c_gpio_delay_us Clock delay in microseconds
                    (default "2" = ~100kHz)

                    aTg 1 Reply Last reply Reply Quote 0
                    • aTg
                      aTg @llegoff last edited by

                      @llegoff I'm going to discard the SPI prorotype and make another based on i2c because I think with this bus is possible move all the pins.

                      Thanks for your participation.

                      1 Reply Last reply Reply Quote 0
                      • aTg
                        aTg last edited by aTg

                        Well I'm back again with the project, following the recomendations of @Substring I change the prototype to allow one MCP23017 conected by the port i2c to talk with Recalbox, I add to the circuit one RGB-Pi PCB for the video output and here is the little frankenstein.

                        alt text

                        alt text

                        I use the overlay i2c-gpio to move the pins from 2, 3 to 10 , 11

                        dtparam=i2c_arm=on
                        dtoverlay=i2c-gpio,i2c_gpio_sda=10,i2c_gpio_scl=11
                        

                        Now is the moment to enable the option en recalbox.conf, I thing the work is made by mk_arcade_joystick_rpi included but I read in the repo "The branch hotkeybtn now support one more button per player in place of MCP23017 support" and the scheme don't show any pin for i2c, this would be say not longuer avaible use i2c for controllers?

                        I try to activate on recalbox.conf

                         # ------------ D2 - GPIO Controllers ------------ #
                        ## GPIO Controllers
                        ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1)
                        controllers.gpio.enabled=1
                        ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2)
                        controllers.gpio.args=map=1
                        

                        But the program interfiring with the video output, and I don see what can be user to talk by i2c...

                        I need a little help from the Devs to talk with Recalbox by i2c and pins 10 & 11, any help is much apreciated!

                        Substring 1 Reply Last reply Reply Quote 0
                        • Substring
                          Substring @aTg last edited by

                          @atg i2cdetect ?

                          Former dev - Please reply with @substring so that i am notified when you answer me
                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                          aTg 1 Reply Last reply Reply Quote 0
                          • Substring
                            Substring last edited by

                            Anyway, the module needs some more parameters in the recalbox.conf, see https://github.com/recalbox/mk_arcade_joystick_rpi#more-joysticks-case--mcp23017

                            Former dev - Please reply with @substring so that i am notified when you answer me
                            Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                            1 Reply Last reply Reply Quote 0
                            • aTg
                              aTg @Substring last edited by aTg

                              @substring said in [PROJECT] JAMMA-Pi:

                              @atg i2cdetect ?

                              I thing i2cdetect don't detect nothing, I got this message:

                                   0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
                              00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
                              10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
                              20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
                              30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
                              40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
                              50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
                              60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
                              70: -- -- -- -- -- -- -- --                
                              

                              I follow the steps from the readme, my setup on the addresses of the chips in A0 A1 A2 are 000 in one and 100 in the other, I try only with one chip on 000 and the same result, when a run modprobe mk_arcade_joystick_rpi map=1,0x20 the i2c port is enabled on pin 2 or 3 and not on 10, 11 and lose the sincronism of the image.

                              This can be made because the driver acces to the ports by harware and don't use the DeviceTreeOverlays.

                              1 Reply Last reply Reply Quote 0
                              • Substring
                                Substring last edited by

                                @ian57 would you ever have some time to take a look at i2c gpio remapping and the kmk_arcade_gpio module ?

                                Former dev - Please reply with @substring so that i am notified when you answer me
                                Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                ian57 1 Reply Last reply Reply Quote 0
                                • ian57
                                  ian57 Staff @Substring last edited by

                                  @substring ok will do that during christmas holydays
                                  I will have som etime. please remind me through Slack 😉 or I will put an issue

                                  "UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity." Dennis Ritchie

                                  1 Reply Last reply Reply Quote 0
                                  • aTg
                                    aTg last edited by

                                    While I'm waiting for @ian57 to look at the problem on the repo of moving the pins, I'm going to continue with the sound section.

                                    After investigating different options and see which speakers have the most arcade machines that are usually 8 Ohms and between 10 or 15w I think there are two clear options to choose from.

                                    We have the TDA2003 that is a mono amplifier of 10w and option number two is the TDA2005 which is a stereo amplifier of 10w per channel and can be configured in bridging mode getting 20w mono.

                                    The interesting thing about the second option would be in the case of MVS machines that had a stereo wiring in the jamma, could change from 20w mono to stereo 10w + 10w playing with some jumpers and have compatibility with jamma and mvs.

                                    I'm going to prototype two amplifiers and try to configure them with the minimum number of components.

                                    One thing that f**k me a lot is that the encapsulates are not SMD and they should be soldered by hand, they are also upright and they are very ugly, it has occurred to me to knock them down and use the PCB as a heatsink, later also It could be placed on the back of the PCB to save space.

                                    What do you think is more interesting in terms of power? Maybe 20w is too much? The pc2jamma adapter works with a TDA2003.

                                    1 Reply Last reply Reply Quote 0
                                    • aTg
                                      aTg last edited by

                                      @ian57 Any new? I'm working on the others parts of the circuit but the buttons are the most important.

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Want to support us ?

                                      71
                                      Online

                                      99.6k
                                      Users

                                      28.1k
                                      Topics

                                      187.1k
                                      Posts

                                      Copyright © 2021 recalbox.com