UPDATE: I figured out the issue - I needed to burn a fresh image onto the SD card before the script would copy the files. I would have appreciated some sort of error message :P Anyways, using the manual .dtb file copy mentioned previously, I got the driver loaded and the device tree loaded for eqep0. However, I'm getting no useable output from the position variable. While troubleshooting, I began to wonder if the eQEPs will work with only Ain and Bin connected (all my encoder has). Is there a setting that needs to be changed to ignore INDEX and STROBE? Just wondering, though I'll probably figure out how to get it operational sooner or later.
--Willie On Monday, January 27, 2014 8:07:10 PM UTC-6, Willie Warke wrote: > > Nathaniel, > > First of all, thank you very much for all the work you have put into the > BeagleBone and provided to the community through your Github repository. I > am working on a robotics project using a BeagleBone Black and have > thoroughly enjoyed using it as a hardware platform. Recently, I've been > working towards getting a rotary encoder reading up and running using your > eQEP method, but, being inexperienced with Linux kernel compilation, have > run into a problem I can't seem to solve. I've made it through most of > Derek Molloy's tutorial and patched it with your eqep script, but haven't > figured out how to deploy the image to SD card. Instead of install_image.sh > in the linux-dev/tools directory, all I have is install_kernel.sh. Having > configured the system.sh MMC variable for my SD card (/dev/sdd), I run the > script, it asks the "are you 100% sure" question, I enter "y", then it > unmounts, displays the partitions on the card, and the script finishes > without copying anything onto the card. Any advice or input would be > greatly appreciated! I admit I don't really know what I'm doing, but I've > searched and searched for an answer and haven't found one yet. > > Thanks, > Willie > > On Thursday, July 25, 2013 2:38:29 AM UTC-5, Teknoman117 wrote: >> >> Its just a work in progress, but here's what I have now that its >> midnight. Tomorrow I'll through together some documentation, test it >> further, and put together an API. Essentially in its current form its a >> couple of device tree overlays, a kernel patch (been using Robert's >> linux-dev am33x-v3.8 kernel) which puts in the driver, and there is an >> example of polling the position attribute. I'll put some docs together >> tomorrow, I'm tired. >> >> https://github.com/Teknoman117/beaglebot/tree/master/encoders >> >> Nathaniel Lewis >> CTO at E1FTW Games >> 3rd year Undergraduate, Computer Science and Engineering >> Project Manager for the Robotics Society at UC Merced >> Undergraduate Lab Technician Intern at MESA Labs >> (925) 961 7578 >> [email protected] >> >> On Jul 24, 2013, at 12:18 PM, Nathaniel Lewis <[email protected]> >> wrote: >> >> I've actually put together a kernel driver for the eQEP hardware that >> presents a poll able sysfs interface. It plugs beautifully into the device >> tree, and supports absolute and relative modes. Relative resets the >> counter and notifies a polling program based on a provided period, which >> drives the eQEP unit timer. I'm posting all my code to my blog and to >> github today. >> >> - Nathaniel Lewis >> >> On Wednesday, July 24, 2013, tbh wrote: >> >>> My overall goal is like the title says: I need to read a quad encoder >>> count, and I have a beaglebone black. Eventually, I'll be using c++. Any >>> help on how to proceed or links on things I should read are appreciated. >>> >>> I've seen 3 ways of reading an encoder on the beaglebone: (1)polling >>> GPIO >>> pins<http://bwgz57.wordpress.com/2012/04/11/beaglebone-with-a-rotary-encoder/>, >>> >>> (2)using interrupts in a kernel driver, and (3)using the eQEP built in to >>> the hardware of the beaglebone SOC. I'm interested in (3) because it seems >>> to me that it would be the most efficient. However, it seems like most >>> people are using (2), and I can't find a whole lot on how to do (3). >>> >>> Here's what I have found so far in case it's useful to anyone else. >>> - the TRM for the bealgebone >>> SOC<http://www.ti.com/lit/ug/spruh73h/spruh73h.pdf>. >>> Section 15.4 is where the eQEP is documented. >>> - A thread >>> here<https://groups.google.com/forum/embed/?place=forum/beagleboard&showsearch=true&showpopout=true&showtabs=true&hideforumtitle=true&parenturl=http%3A%2F%2Fbeagleboard.org%2FCommunity%2FForums#!searchin/beagleboard/quadrature/beagleboard/GzRSJYjs60M/Vs67S0SRon4J>apparently >>> about enhancing an already working eQEP driver. >>> - A thread from the TI Community asking about linux drivers for >>> eQEP<http://e2e.ti.com/support/arm/sitara_arm/f/791/t/276433.aspx> >>> . >>> - A wiki page from a TI presentation about using eQEP with one of their >>> dev >>> boards<http://processors.wiki.ti.com/index.php/Omapl137_linux_eqep_driver> >>> . >>> - Two threads with the same original post, and slightly different >>> responses. They are a bit over my head. >>> thread1<http://comments.gmane.org/gmane.linux.kernel.input/21481> >>> thread2 <http://en.it-usenet.org/thread/18798/20687/> >>> - A reference in some comments on a blog >>> post<http://bwgz57.wordpress.com/2012/04/11/beaglebone-with-a-rotary-encoder/>that >>> they got an eQEP driver working to read a quad encoder (but without >>> any explanation). >>> >>> I know people are working on the problem of making (3) easy to use. Is >>> there some other link on how to do it that is eluding me? >>> >>> If there's not, in the meantime, I'm interested in device drivers, and I >>> think it's practical information, so I'd like to learn as much about them >>> as I can. Perhaps I'll even get to the point where I can help the ongoing >>> eQEP effort. I'm rather inexperienced in driver writing, though. I've been >>> wading through the linux device drivers book<http://lwn.net/Kernel/LDD3/>, >>> so I guess that's a start. However, I've never recompiled my own kernel, >>> which it looks like I'll probably have to do, and I've never even >>> cross-compiled. Could somebody help me out with a place to start? >>> >>> In the meantime, I'll be looking at method (2). Thanks in advance. >>> >>> -- >>> For more options, visit http://beagleboard.org/discuss >>> --- >>> You received this message because you are subscribed to the Google >>> Groups "BeagleBoard" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >> >> -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
