boxysean / beaglebone-DMX

Library to turn BeagleBone into a DMX interface
32 stars 15 forks source link

make on beagleboard black; prussdrv_open failed #2

Open sjw1066 opened 11 years ago

sjw1066 commented 11 years ago

Ran linuxbuild for pasm, make in root directory. Was able to issue modprobe uio_pruss, but when I tried to run the dmx server output is as follows:

INFO: Starting dmx example. prussdrv_open open failed

Any idea as to what I've done wrong? Do I need to change the pin b/c of eMMC on the BBB?

boxysean commented 11 years ago

Haven't got a bb black yet and will be a month or two until I get my first. Perhaps team up with joehohman (issue #1) to see if you can get it to work? On Jun 18, 2013 4:13 PM, "sjw1066" notifications@github.com wrote:

Ran linuxbuild for pasm, make in root directory. Was able to issue modprobe uio_pruss, but when I tried to run the dmx server output is as follows:

INFO: Starting dmx example. prussdrv_open open failed

Any idea as to what I've done wrong?

— Reply to this email directly or view it on GitHubhttps://github.com/boxysean/beaglebone-DMX/issues/2 .

jessecobra commented 11 years ago

I do not have a DMX light with me at the moment to fully test this but I was able to get past this issue on BeagleBone Black by following these instructions: http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/05/22/bbb--working-with-the-pru-icssprussv2 It was in the other issues thread: https://github.com/boxysean/beaglebone-DMX/issues/1#issuecomment-19725271

Specifically I just enabled PRUSS in the device tree per the instructions:

cd /boot cp am335x-boneblack.dtb am335x-boneblack.dtb_orig dtc -I dtb -O dts am335x-boneblack.dtb > am335x-boneblack.dts_orig

The change to the dts file: pruss@4a300000 { ... status = "disabled"; ... };

To: pruss@4a300000 { ... status = "okay"; ... };

After any modifications have been made (maybe copy the file first so that you have a backup), it can be converted back into binary form using:

dtc -I dts -O dtb am335x-boneblack.dts_pru > am335x-boneblack.dtb_pru cp am335x-boneblack.dtb_pru am335x-boneblack.dtb

Reboot, now no errors!

root@beaglebone:~/bbdmx/bin# ./dmx INFO: Starting dmx example. AM33XX INFO: Initializing example. INFO: Executing example. File ./dmx.bin open passed

Boxysean, I owe you a beer :)

jessecobra commented 11 years ago

Ok got home, took my BB white DMX cape, attached it to my BB Black instead and while the dmx server runs, my light is not receiving any DMX data. Need to troubleshoot some more...

monirsabbagh commented 11 years ago

on (http://github.jfet.org/BBKNotes2.html) try the code under "Getting the PRUSS working" this works for me, so the error "prussdrv_open open failed" disappear. but still no output on the given pin!!!

monirsabbagh commented 11 years ago

All examples worked on BeagleBone Black except DMX. DMX example compiled and run with no errors, but no output on pin 3, any idea why?

jessecobra commented 10 years ago

I am going to post in the other issues thread, as this specific error is resolved by enabling PRUSS in the device tree for kernel 3.8. As for not actually sending any DMX data on pin 3 that is a different issue.

rcalderon821 commented 10 years ago

thanks for the information!! I got the PRU working only by changing the am335x-boneblack.dtb file as mentioned!

jessecobra commented 10 years ago

I am still stuck where you are though. PRUSS working but I need to figure out how to change the DMX output from P8 pin 3 to another pin. I'll be working on it over the weekend but please if someone else has figured out how to move pins, share! :)

jessecobra commented 10 years ago

Ok moving pins was much simpler than I had imagined. Again, this was to work around a BeagleBone black dependency on P8 pin 3 for the emmc flash to work properly, something the original BeagleBone never had.

I took a fresh BeagleBone Black running Angstrom 3.8.13 out of the box, enabled PRUSS using the methods explained above in this thread.

Then in /src/dmx.c

Change the DMX_PIN define from (6) to (12). Also change LOCAL_export_pin(38) to (44) to change the gpio numbers correctly. Also change the unexport.

Now for both BeagleBone white and black it "just works" off header P8 pin 12 (instead of P8 pin 3 from the original design).

I will post a video of this working shortly...

Both issues can be closed as far as I am concerned.

jessecobra commented 10 years ago

BBB doing DMX on P8 pin 12: http://www.youtube.com/watch?v=zv1aAT-f78c

I will work on getting the README and dmx.c updated for others to use.

andrelutza commented 10 years ago

I got the same error ("prussdrv_open open failed"), I changed the .dts file as you said, but now I got the stupid error after running a simple example:

INFO: Starting PRU_memAccessPRUDataRam example. AM33XX INFO: Initializing example. INFO: Executing example. Segmentation fault Does anyone have any idea on where could it come from? Thank you.

jessecobra commented 10 years ago

Do you have anything else using PRUSS at the moment? I get a seg fault if say I run two instances of ./dmx

andrelutza commented 10 years ago

I actually don't know. How can I verify that?

ESINC commented 8 years ago

Hey Jesse - I've got a brand new BBG. I'm stuck with the error 'prussdrv_open failed.' I know it's been a while since you've been active here, but would appreciate any advice. My .dts file is set to 'okay' as above, and it shows up in the cape manager slot 5.

jessecobra commented 8 years ago

Does your kernel otherwise support the PRUSS?

ESINC commented 8 years ago

It ought to - it's a Beaglebone Green, Debian 2015-10-20. Only difference between it and -Black should be that the HDMI circuitry is removed.

On Tue, May 17, 2016 at 9:40 AM, Jesse notifications@github.com wrote:

Does your kernel otherwise support the PRUSS?

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/boxysean/beaglebone-DMX/issues/2#issuecomment-219758929

jessecobra commented 8 years ago

I would get one of the standard PRU example working first to establish where the issue is? I doubt its HW related....