Can't get BeagleSNES to work on BBB

Hello, first time using a BBB, and I’ve hit a wall. I’m good with Arduino toys and before switching back to Windows 7 I used multiple Ubuntu machines for about 3 years. So some of this BBB stuff isn’t too far fetched for me.

I bought the board from Adafruit about 2 weeks ago now for the soul purpose of getting BeagleSNES to work on it. From what I can tell, the SD card isn’t getting written correctly or the Beagle can’t read it as it should.

I followed the getting started for BBB. I was able to plug it in and see it and then use Putty to log in as root. I also downloaded the latest software for it, imaged that onto an SD card and the update went fine, although it took about 65 minutes. Much longer than the “caution, may take 45 minutes” warning suggested. After plugging it back into my Windows 7 machine it looks fine, so the update seems to have worked, so my SD card burning ability is fine, and the BBB can read the card.

So I download the full BBB image, write that to a card, plug it into the BBB, plug in the miniUSB cable to Windows, and all I get is a unique blink pattern for about the first 10 seconds on power up. After that, its just the heartbeat pattern. Windows never sees any partition, so I can’t copy my roms to it. Basically it looks frozen somewhere. I checked the MD5 hash whatever code and it is a match for the file from Sourceforge. I try just plugging everything into the TV anyways (2 different TV’s) and there is nothing. I follow the instructions closely and repeat, nothing. I deviate a little and try resetting or holding the boot button longer, nothing. Just a heartbeat and no screen or sound action.

Then I go back and reburn the image to another 4Gb card, nothing on Windows or at the TV. I redownload the zipped image, rewrite both cards, nothing.

In summary, a whole lotta nothing :slight_smile: It seems like all the pieces have proven they work somehow, except the actual BeagleSNES image, which I downloaded twice and re-wrote to multiple cards, multiple times.

Now I am downloading Android and going to burn that to another card to see if that will work. If that works for me, then what? Is BeagleSNES working with the latest of everything? I assume it is or I would be able to find more problems in searching this forum, but I didn’t.

Should I try to do a complete format of the microSD card before writing the image to it? I don’t think that should matter.
Should I try getting an 8Gb card? I saw on some write ups that 4Gb is close and might not always work for other images.

Hello Scott. Here are some of the usual problems that I see when people contact me about BeagleSNES:

  1. Did you download the beaglesnes_full.img.bz2 file? Sometimes, people download one of the other files, which provides a portion of the system or the source code, rather than the executable image.
  2. Did you decompress the BeagleSNES image before you wrote it to the microSD card? I have had reports from people using my Android image that if you write the image without decompressing it, you get similar behavior to what you are reporting.
  3. The root filesystem in the image is EXT4, which won’t mount under Windows 7. If you don’t have a Linux system to mount the microSD card under, you’ll need to either copy the ROMs over to the BBB via the network or copy them onto the /boot partition (which mounts under Windows) and then copy them from the /boot partition into the proper place once you get BeagleSNES booted.
  4. Are you holding down the boot button to force the system to boot off the microSD card? You DO NOT have to do this. I wrote the uEnv.txt in the BeagleSNES /boot partition to specify the microSD card device as the boot device, so you can just pop in the microSD card and it will boot.

A 4 GB microSD card is fine, since I made the image about 3.6 GB in size to account for slightly smaller microSD cards that advertise themselves as 4 GB.

Your first step is to get the system booted. Then you can add some ROMs. If you have written the image properly, it should boot to the game selection GUI with the placeholder entries in the menu. If you aren’t seeing anything over the FTDI cable with PuTTY when you boot, you probably are writing the still-compressed image to the microSD card.

Andrew

Hi Andrew, thanks for responding.

  1. Yep, about 800mb, got the full image.
  2. Yep, on my 32bit Win 7 system using 7-zip to extract.
  3. With the imaged card in the BBB, nothing mounts, at all. I get lights dancing, but nothing.
  4. I tried with and without the boot button down, multiple times.

I felt like I was being safe about setting this thing up too. I have an anti-static mat at my bench and everything. It is new and this is one of the first things I’m trying with it.

I just tried to run android and that did not work either (BBB_JB_Android_3_8_13.img). Now I’m wondering if the board is busted. The steps seem very easy and clear to me. Something just isn’t working. I’d rather not spend another $45 to find out its software or my setup.

If I have the image written to the card, plug it in the BBB, and try booting it with the default setup, what will the screen look like on the TV?
What will happen if I boot without the controller attached?
Will booting work with and without the boot button held down at power up?
When should I be letting go of the boot button at startup?

Thanks again for taking anytime to address my questions. Very good job ( the write up is great ).

If your system is working OK (you boot off the BeagleSNES microSD card and you have the BBB plugged into an HDMI TV), you will briefly see a BeagleSNES splash screen in the kernel before coming up in the main game selection menu. Boot takes about 10-12 seconds. Once you hit the menu, the background music will begin playing. Zip forward to 0:40 to see it in action here:

https://www.youtube.com/watch?v=igJ4qADrSwo

If the gamepad is not plugged in, the lower left corner of the game selection menu will say “PLEASE CONNECT PLAYER 1 GAMEPAD”. The system will still start up just fine without one plugged in, though. Once you plug a gamepad in, the lower left corner will change to “+ to select game”.

BeagleSNES has two modes for starting up. The first is the default “fast boot” setup, which uses BeagleSNES as the init process for the system. In this mode, many of the service daemons aren’t started to shorten boot time. Because of this, networking will not work. the other mode is “development” mode. It takes about 20 seconds to boot, rather than 10, but it gives you networking and all the other daemons that you’re used to having in a full desktop system. So, you’ll never have network connectivity with BeagleSNES unless you switch from “fast boot” to “development”. This is done by commenting out one line and commenting another one in in the uEnv.txt file in the /boot partition. The BeagleSNES manual .pdf has instructions to get you through the process.

But, it sounds like you might have some fundamentals to take care of, first. Are you using a 5VDC 2A power supply? You won’t get very far by powering the system via USB because pushing the AM3359 at a full 1 GHz draws too much power. You’ll need to use a power supply. When connecting to the system using PuTTY, are you connecting over the network, or via an FTDI debug cable? The FTDI cable will tell you exactly what is going on, and it is a must because you’ll see output from the boot process from the bootloader starting through to a login prompt. This debug output is probably your best bet in having me help diagnose your problem, since there are a lot of variables we can eliminate by looking at the output.

Aside from that, if you have no microSD card in your system, and you connect your BBB to your HDMI TV (while the BBB is off), and then you turn on the BBB, do you see the Angstrom installed on the BBB’s eMMC running on your TV? If not, did you see Angstrom boot on the TV before you flashed the eMMC to update it? You might just have to retry the eMMC flash (and maybe re-download and/or rewrite the microSD card you use to flash the eMMC).

I have not held down the boot button when booting from BeagleSNES before, so I’m not familiar with what will happen if you do. You do not need to hold the button down, since I have set up the uEnv.txt and bootloader for the BeagleSNES image so that it will be picked up by the bootloader installed in the eMMC (with the Angstrom image). My Android image that you tried is set up the same way… both BeagleSNES and the Android image are designed to just “burn and go”.

Anyway, if you don’t have the power supply and FTDI cable, definitely pick those up. If you have the FTDI cable, send me a log of your system booting at hendersa (at) icculus.org and I’ll look it over to see if I find anything odd. Glad you like the documentation! It turns out that the time taken to write good docs pays for itself many times over in reduced support mails!

Andrew

So close…

I had an old PC sitting around collecting dust so I formatted that to Ubuntu 12.04. I re-did everything from that machine. Before I started, when I plugged in the SD card that I had setup from the Win7 machine into the Ubuntu machine it seemed to mount the two partitions fine … but it also gave me a pop-up error message about not wanting to mount the drive for some reason … even though I could see both parts. Anyways, it did this each time I mounted the card. After I reformatted the card with the beaglesnes image that message has no longer come up. I have mounted the card several more times too.

At first it did not work. Then I took it out of its Adafruit case and tried. Then it would boot up, give me music, and let me scroll through the placeholder’s in the default config. I am certain I tried this before but it did not matter. I quickly realized that the molding on the cable needed to be cut down. If I had read adafruit’s page closer, I might have caught that note. Not happy about that, but it worked. I think that I had both a cable problem and a Windows problem, but maybe it was only a cable/case problem and I didn’t do something else write the time I tried that with the Win7 SD card setup.

I have been at it for a while today, but the problem now is that it will not select the games I’ve added in the menu. I have tested the controller on the Ubuntu machine and can see the start and select buttons do register. I have been doing everything in the Ubuntu machine. The pictures are showing up, the text descriptions are updated. At first I had 5 games listed so I tried adding 5 more. Each time the menu list updated as expected, but pressing start or select doesn’t do anything. The roms are all in the rootfs/home/ubuntu/beaglesnes/rom folder. They are all .smc. I even removed spaces and tried shortening the .smc file names.

I’m only using one controller. I can’t really think of much else to try right now. Again, I welcome any support. I attached my games.cfg file if that helps

games.cfg (1019 Bytes)

Hey Scott. I have been away for the holidays and won’t be back to my office with my equipment until the start of next week. You have everything set up correctly, it seems. The games.cfg looks OK, in any case. The problem is that the button numbers for the start and select are hardcoded in the front-end GUI. I have a better button mapping scheme on my dev list for v0.5 of BeagleSNES, but I can’t work on it and get another release out until I am able to get back to my equipment. The short answer is that you will require a code change and recompile to get it working for your particular controller.

I have a big laundry list of things that I have been working on that I want to get out for v0.5, and a few of the items have been delaying me in getting the release out. I may just have to bite the bullet and expedite the more urgent items because a large number of people have received new BBBs for the holidays and have been filling my inbox with all sorts of issues regarding gamepads and button mappings.

Good work on getting everything working as well as you have so far. I should write a book on how to develop the BBB into a standalone appliance based on all of the feedback and reports that I have received from everyone over the last six months…

Andrew

I thought I had the right controller, the Tomee. There isn't any brand written on it, but that is what I thought Amazon was selling me. Is there one specific one that you can link me to that I can order and it will work? Some people on the reviews at Amazon complain about it being the wrong brand.

I'm gone for a couple weeks on Monday for work. Not in a rush. Either way, thanks again for working on this and replying.

Hi Andrew. Is there a short explanation for why I can’t quickly edit the “snes9x.conf.BBB” file and change the lines

J00:B8 = Joypad1 Select
J00:B9 = Joypad1 Start

to something like

J00:B6 = Joypad1 Select
J00:B7 = Joypad1 Start

to effectively test different button mappings? I tried editing them and popping the card back in the BBB but it doesn’t seem to do anything. Does modifying that conf file require a rebuild to take effect?

When do you hope to release the v0.5?

Yes. The front-end GUI does not look at that configuration file for button mapping. That is the configuration file for the SNES9X emulator. Part of my work for v0.5 is to pull button mappings from that file. v0.5 should give you the following:

  • An additional VFAT partition that houses the config files, ROMs, and images. This way, you can pop the microSD card into your non-Linux PC and add ROMs, edit files, etc.
  • XML for the games.cfg. This is using the Expat XML parsing library. This will eliminate most of the common problems, I hope, like the config file having to be just-so or DOS end-of-line characters messing things up, etc.
  • Key mapping from the SNES9X emulator’s config file so that you can do a custom key mappings.

I am a PhD student, and I’ve been working on a papers over the past few months, so I haven’t been working on BeagleSNES development as much as I would like. I’m still working on it, though, and I’ll be getting a release out as soon as I can. Trust me, I don’t want to answer mail after mail for support when I can release a new version that addresses these issues directly!

Andrew

I’ll keep an eye out for the update. In the meantime, I bought a second, different controller and everything works now. Connecting the controller has been a little spotty compared to the other one that the start and select buttons don’t work on, but it works. I cycled the power a couple times, plugged and unplugged it and it eventually worked. Once it did work it seemed more consistently connected after a power cycle. The other remote didn’t have that issue. Oh well. It works.

I’ve only tried a few games quickly, but I like it. For anyone else ordering through Amazon…

This is where I ordered the one that worked: http://www.amazon.com/gp/product/B0058FN036/ref=oh_details_o02_s00_i00?ie=UTF8&psc=1
Sold by Hitgaming Video Games

This is where I ordered the one that caused me problems: http://www.amazon.com/gp/product/B0034ZOAO0/ref=oh_details_o03_s00_i00?ie=UTF8&psc=1

Sold by Hitgaming Video Games

Good luck getting the right one :slight_smile:

Anyways, thanks Andrew. I also got the Android 4.2.2 running on the BBB. Good work on that too! That also worked after I tried imaging the disk from the Ubuntu machine.

Glad that you found the Android image useful! If you have the chance, can you plug in each of those gamepads that you have, run “lsusb”, and send me the results? I suspect that they will report as different gamepads, even though the branding is the same. I’d eventually like to have an sqlite database that has USB ID strings and button mappings in it so that BeagleSNES will automatically configure your controller if it is one listed in its database. But, if your two gamepads both report exactly the same and still have different button mappings, that means the database approach might not work.

The 3.12/3.13 kernels have much better USB support, so USB gamepads should work far better (especially when hotplugging). But, they aren’t quite there yet. When they are, I’ll move both the BBB and BB-xM over to those kernels.

Andrew

I know this will sound like a rookie talking, but that is pretty much my level with BBB. I assumed you meant to remote into the BBB when it was running the bSNES image and run that command. I thought it would just be plug and play with an ethernet cable and putty, but I could never make that connection connect for some reason.

Then I took out the uSD card and only had the miniUSB cable connected. I could remote in then and run that command, but nothing was showing up other than the root hub with the controller plugged in.

So I just plugged both controllers into my Ubuntu PC and ran it, thinking that they should appear the same on any linux device. Here’s what I saw with everything else. The blank lines are the controllers:

Bus 001 Device 016: ID 058f:6465 Alcor Micro Corp.
Bus 003 Device 004: ID 046d:c016 Logitech, Inc. Optical Wheel Mouse
Bus 004 Device 004: ID 12bd:d015
Bus 004 Device 003: ID 12bd:d012
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Let me know if that is not quite what you had in mind :slight_smile: Feel free to talk as if I’m linux impaired.

Hi guys,

I bought the components for the BeagleSNES project too and I have the same symptoms as Scott. I’m using version 7 and doing the imaging from my macbook.

The SD card shows the “boot” folder successfully so I am making an assumption that it works correctly. When booting my BBB with the SD card, nothing happens. Without the SD card, the default Debian image boots fine and it displays the Beagleboard image on the TV.

When I plug the SD card into a live BBB, the log file shows it’s getting plugged in and that it’s 8GB in size. An lsusb however, shows nothing.

Can you offer any further tips for me to attempt to resolve this problem please?