NES + ControlBlock

Home Forums RetroPie Project GPIO Adapter, ControlBlock etc. NES + ControlBlock

This topic contains 15 replies, has 3 voices, and was last updated by Profile photo of petrockblog petrockblog 2 years, 3 months ago.

Viewing 16 posts - 1 through 16 (of 16 total)
  • Author
    Posts
  • #87586
    Profile photo of tanglo
    tanglo
    Participant

    I’ve installed the ControlBlock on my Rpi, wired the original NES controllers, installed the driver, changed the settings for the CB, wired the power switch to the “button” pins on the CB, and wired the led.

    The LED is working fine. I am able to use the power button to switch off the rpi, but I’m not able to switch it on using the button.

    It seems like the EmulationStation software recognizes the CB, I get the “Configure Input” dialog, saying “2 gamepads detected. But when i press the A button on the controller, nothing happens.

    I’m using a 2A power supply for the Rpi and a 1A power supply for the CB.

    Any ideas?

    #87616
    Profile photo of petrockblog
    petrockblog
    Keymaster

    Regarding the power switch it is important that the button is a “toggle” switch and not a “momentary” button. I just do not know what the NES power button type is right now. You can turn on the RPi with the button, but not not turn off? Or does the RPi turn on without any button press?

    Ah, re-reading your post above I see that you are using two power supplies. You must only use a single power supply connected to the ControlBlock!

    If that does not solve the power button issue, what is the output of these service installation commands:

    git clone git://github.com/petrockblog/ControlBlockService.git
    cd ControlBlockService
    make
    sudo make install
    sudo make installservice

    How does your configuration file /etc/controlblockconfig.cfg look like?
    Could you maybe post one or two pictures of your controller connection setup?

    #87625
    Profile photo of tanglo
    tanglo
    Participant

    – The power switch is a toggle switch
    – I can not turn it on with the button. Only off.
    – The only way I am able to turn the Rpi on, is by connecting a power supply to the – Rpi itself.
    – Tried using a single power supply connected to the CB, nothing happened. That’s why I started using two.

    Installation commands gives the expected results.

    {
    	"input" : {
    		"gamepadtype" : "snes"
    	
    },
    	"powerswitch" : {
    		"activated" : true
    	}
    
    }
    

    Attached a picture of the connections

    Attachments:
    #87727
    Profile photo of petrockblog
    petrockblog
    Keymaster

    The power switch will only work with a single power supply attached to the ControlBlock. For what I experienced, the micro USB cable can also have an impact: In my case I had to used a very cheap one that seems to lead to quite a high voltage drop. There are also some posts about this in the official RPi forum, e.g., at http://www.raspberrypi.org/forums/viewtopic.php?p=370520#p370520.

    What does sudo i2cdetect -y 1 give as output? This checks for I2C devices …

    #87848
    Profile photo of tanglo
    tanglo
    Participant

    Solved.

    The USB port on the CB is defective.
    Soldered a cable to the 5V connection on the CB.

    Now everything is working fine.

    #87963
    Profile photo of petrockblog
    petrockblog
    Keymaster

    Glad that you figured it out. And sorry for the faulty USB connector. Just send me an email if you would like to get an sort of compensation or similar!

    #88838
    Profile photo of cnichols
    cnichols
    Participant

    I am using the ControlBlock with a RPi B+ to run RetroPie for a NES system and am currently facing 2 issues:

    1. I am getting a message on the Retropie splash screen when I boot on that states “readonly mode, sorry (start with –edit?)

    2. I am able to use the NES controllers to navigate EmulationStation but when I select a game, I do get any response within the game. A yellow alert shows up along the base of the screen that says “Joypad port #1 (SNES to Gamepad Device) configured”

    I changed the controller configuration using

    sudo nano ~/controlblockconfig.cfg
    and commented arcade and uncommented SNES.

    Any idea how to fix these two issues?

    Do I need to install the SNES Dev programs if I’m using the ControlBlock?

    #88870
    Profile photo of tanglo
    tanglo
    Participant

    Try to replace the code in the controlblockconfig.cfg with this:

    {
    	"input" : {
    		"gamepadtype" : "snes"
    	
    },
    	"powerswitch" : {
    		"activated" : true
    	}
    
    }

    Did You config the emulator?

    For the NES emulator, edit this file: /opt/retropie/configs/nes/retroarch.cfg

    Mine looks like this:

    # All settings made here will override the global settings for the current emulator core
    
    video_shader = /opt/retropie/emulators/retroarch/shader/phosphor.glslp
    video_shader_enable = false
    video_smooth = false
    
    input_player1_joypad_index = "0"
    input_player1_b_btn = "3"
    input_player1_select_btn = "6"
    input_player1_start_btn = "7"
    input_player1_up_axis = "-1"
    input_player1_down_axis = "+1"
    input_player1_left_axis = "-0"
    input_player1_right_axis = "+0"
    input_player1_a_btn = "1"
    
    input_player2_joypad_index = "1"
    input_player2_b_btn = "3"
    input_player2_select_btn = "6"
    input_player2_start_btn = "7"
    input_player2_up_axis = "-1"
    input_player2_down_axis = "+1"
    input_player2_left_axis = "-0"
    input_player2_right_axis = "+0"
    input_player2_a_btn = "1"
    
    input_enable_hotkey_btn = "6"
    input_exit_emulator_btn = "7"
    

    You do not need snesdev.

    #89004
    Profile photo of cnichols
    cnichols
    Participant

    So I was getting frustrated and started over from the beginning. Finally got all the hardware to be recognized and somewhat finished so I thought I was just having software issues. Formatting my SD card and installed RetroPie V 2.6. Ran through all of the setup stuff from
    https://github.com/retropie/RetroPie-Setup
    After I installed the emulators via binaries I shut down the Pi and Started installing the control block service per:
    https://github.com/petrockblog/ControlBlockService

    After I get to the

    cd ControlBlockService
    make

    I got the following message:
    Error Screen ControlBlockService MAKE
    –Configuring incomplete, errors occurred!
    Makefile:27: recipe for target ‘../lib/jsoncpp/build/release/lib/libjsoncpp.a’ failed
    make[1]: *** [../lib/jsoncpp/build/release/lib/libjsoncpp.a] Error 1
    make[1]: Leaving directory ‘/home/pi/ControlBlockService/src/controlblock’
    makefile:16: recipe for target ‘all’ failed
    make: *** [all] Error 2

    when I try to access the controlblockconfig.cfg file the only thing that shows up is a line at the top of the screen that says ‘GNU nano 2.2.6’

    Any experience with what this means or how to fix it?

    #89090
    Profile photo of petrockblog
    petrockblog
    Keymaster

    The link to the image in your post is broken.

    Just to make sure: Did you expand your file system after you copied the RetroPie SD Card image and booted for the first time? This is necessary, otherwise you would only have about 60 MB of free disk space.

    #89393
    Profile photo of cnichols
    cnichols
    Participant

    I type sudo raspi-config
    and select Option 1 > Expand Filesystem > ok > reboot

    When I load the SD card in my computer, it says the disk only has a 60 MB partition.
    Any idea how to fix this?

    #89455
    Profile photo of petrockblog
    petrockblog
    Keymaster

    Your windows PC will most probably not show all partitions of the SD card. What ist the output now when you type df -h?
    If you have expanded the file system after you observed the problems with the installation, I would suggest to try and re-install the ControlBlockService from scratch again (e.g., remove the ControlBlockService folder and rebuild/reinstall it).

    #89457
    Profile photo of cnichols
    cnichols
    Participant

    df -h

    Filesystem Size Used Avail use% Mounted on
    rootfs 15G 1.7G 13G 13% /
    /dev/root 15G 1.7G 13G 13% /
    devtmpfs 119M 0 119M 0% /dev
    tmpfs 25M 388K 25M 2% /run
    tmpfs 5M 0 5M 0% /run/lock
    tmpfs 49M 0 49M 0% /run/shm
    /dev/mmcblk0p1 57M 53M 4M 94% /boot

    #89496
    Profile photo of cnichols
    cnichols
    Participant

    Alright I got it back to where I was in the beginning. I have the NES controllers able to navigate emulationstation. I have changed the NES RetroArch.cfg file to make the one posted by tanglo (Thank You!). I have ensured the button configuration matched what was logged when I configured for ES.
    A=1
    B=3
    Up=1-
    Down=1+…

    When I select a game, I still cant get the NES controllers to do anything. I unplugged all other connections and just have the two NES controllers plugged in. Both work in ES, neither work within the games themselves.

    What other options do I have?

    #89605
    Profile photo of cnichols
    cnichols
    Participant

    I figured it out! I noticed it mentioned something about Port #3 when I loaded a game and wondered if the retroarch.cfg file should say something beside input_player1_joypad_index = “0”.

    Recorded the opening screen and the yellow text along the bottom reads:
    joypad port #0 (SNES-to-Gamepad Device) configured
    joypad port #2 (ControlBlock SNES gamepad) configured
    joypad port #3 (ControlBlock SNES gamepad) configured
    joypad port #1 (SNES-to-Gamepad Device) configured

    changed the retroarch.cfg file so input_player1 = 2 and input_player2 = 3.
    Started emulationstation and was able to navigate ES as well as use my original controllers within the game.

    I now need to troubleshoot controller 2 because the A button isn’t registering. I think it is likely a hardware or connection issue that I’ll have to figure out.

    Thanks again for the help!

    #89745
    Profile photo of petrockblog
    petrockblog
    Keymaster

    Glad that you made the ControlBlock work now!

    Looking at

    joypad port #0 (SNES-to-Gamepad Device) configured
    joypad port #2 (ControlBlock SNES gamepad) configured
    joypad port #3 (ControlBlock SNES gamepad) configured
    joypad port #1 (SNES-to-Gamepad Device) configured

    I can see that SNESDev is also running. I recommend to disable that! It is a driver for the RetroPie GPIO Adapter and you do not need it when you are using the ControlBlock! To uninstall the service you need to do follow these commands:

    cd /opt/retropie/supplementary/snesdev
    sudo make uninstallservice

    That will remove the devices “SNES-to-Gamepad Device” that you do not need anyway.

Viewing 16 posts - 1 through 16 (of 16 total)

Forums are currently read only - please visit the new RetroPie forums at https://retropie.org.uk/forums/

Skip to toolbar