Jeremy, thank you; any chance you can field one more (probably not too 
intelligent) question as I'm only starting on git?

> git clone git://github.com/adafruit/adafruit-beaglebone-io-python
Fatal Python error: Py_Initialize: Unable to get the locale encoding
  File "/usr/lib/python2.7/encodings/__init__.py", line 123
    raise CodecRegistryError,\
                            ^
SyntaxError: invalid syntax
Aborted (core dumped)
> 
I'm guessing I'm doing something stupid? Thanks.
Bit_Pusher

On Monday, December 9, 2013 11:19:20 AM UTC-5, Jeremy L wrote:
>
>  On 12/09/2013 08:11 AM, Bit Pusher wrote:
>  
> Zach, your suggestions worked. I changed fragment@1 to: 
>
>    fragment@1 {
>     target = <&ocp>;
>     __overlay__ {
>       test_pru_iomap: pru_iomap {
>         compatible = "bone-pinmux-helper";
>         pinctrl-names = "default";
>         pinctrl-0 = <&mygpio>;
>         status = "okay";
>       };
>     };
> recompiled, and then when I loaded the overlay, and later did ADC.setup(), 
> I was still able to
> control the output pins with the ADC simultaneously working using pru0 
> commands
>
>      SET r30.t14
>  and
>      CLR r30.t14
>  
>  I also added pru0 to:
>    exclusive-use =
>     "P8.12", "pru0";
> as you suggested. Finally, your explanations about which files are being 
> affected when overlays are loaded
>  was very illuminating. I have spent time googling to try and understand 
> what is going on with device trees, and
> read articles such as http://www.devicetree.org/Device_Tree_Usage, but 
> your few lines of explanation have been
> more useful than anything I have found to date. If there is an article or 
> site you would recommend to read, I would
> be very interested. Also, if you happen to know where the source code for 
> Adafruit_BBIO.ADC can be found,
> I would be interested in trying to follow it through. Once again, thank 
> you for your
> help; with my limited knowledge re device trees, this is not something I 
> would have
> been able to solve on my own.
> Bit Pusher
>
> On Friday, December 6, 2013 2:50:39 PM UTC-5, Zachary Thorson wrote: 
>>
>> Odd, dmesg has no errors, but there is definitely a conflict between the 
>> two. 
>>
>>  Someone can correct me if I am wrong as this is a guess based on the 
>> behavior of the system (I'll have to look it up later) but loading a device 
>> tree will dynamically map a bunch of hardware register to the file system 
>> in certain locations based on the fragment used. Since the dts file you 
>> posted specified &ocp as the target, it placed it into 
>> /sys/devices/ocp.*/[Name]. 
>>
>>  In this case [Name] is the name that you specified is the one inside of 
>> that __overlay__ keyword.  That would be "helper".
>>
>>  I know for sure that the Adafruit Library looks for 
>> /sys/devices/ocp.*/helper.* to read from and control the ADC registers, so 
>> if your overlay is overwriting those values, it will lead to problems.  I 
>> am not sure why it would affect your pru code without seeing how you are 
>> trying to access the IOs.
>>
>>  Anyway, try changing the line:
>>  test_helper: helper {
>>  
>>  
>>  to something more unique such as:
>>  pru_iomap {
>>  
>>  
>>  Recompile, then try loading as before.
>>
>>  Though if you are not using the ocp mapping to write to the IO, you 
>> could probably drop the section.  Some of the sample dts files in 
>> /lib/firmware/BB-BONE-PRU-01.dts do not even map the ocp.
>>
>>  Also, you may want to add "pru0" to your exclusive use list so another 
>> cape doesn't try to use it at the same time.
>>
>>  After those changes:
>>
>>   
>>  0: 54:PF---
>>  1: 55:PF---
>>  2: 56:PF---
>>  3: 57:PF---
>>  4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
>>  5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
>> root@beaglebone:~# echo BB-BONE-PRU > $SLOTS
>> root@beaglebone:~# cat $SLOTS
>>  0: 54:PF---
>>  1: 55:PF---
>>  2: 56:PF---
>>  3: 57:PF---
>>  4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
>>  5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
>>  7: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-BONE-PRU
>> root@beaglebone:~# python
>> Python 2.7.3 (default, May 29 2013, 21:25:00)
>> [GCC 4.7.3 20130205 (prerelease)] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>> import Adafruit_BBIO.ADC as ADC
>> >>> ADC.setup()
>> >>> ADC.read("P9_40")
>> 0.86722224950790405
>>  
>>  
>>  
>>  Let me know how it goes,
>> Zachary Thorson
>>
>>  
>>  
>>  
>>  
>>  
>> On Wednesday, December 4, 2013 8:13:14 PM UTC-6, Bit Pusher wrote: 
>>>
>>> Zach, that would be very good of you; I got if from searching on the net 
>>> and it is barely changed (if at all) from what I found (but I didn't record 
>>> who I copied it from so I apologize for not giving credit). The *.dts is 
>>> below. I might mention that if I load my overlay only, then using >cat 
>>> $PINS, I can see the expected pin change to 6. If I setup the AD first in 
>>> python, I do not see any changes in the $PINS, and if I then try to load my 
>>> overlay and check the pins, they are still the same as just after boot. 
>>> Bit Pusher
>>>
>>>  /lib/firmware\> cat BB-BONE-PRU-00A0.dts
>>> /*
>>> * pru dts file BB-BONE-PRU-00A0.dts
>>> */
>>> /dts-v1/;
>>> /plugin/;
>>>
>>>  / {
>>>   compatible = "ti,beaglebone", "ti,beaglebone-black";
>>>
>>>    /* identification */
>>>   part-number = "BB-BONE-PRU";
>>>   version = "00A0";
>>>
>>>    exclusive-use =
>>>     "P8.12";
>>>
>>>    fragment@0 {
>>>     target = <&am33xx_pinmux>;
>>>     __overlay__ {
>>>       mygpio: pinmux_mygpio{
>>>         pinctrl-single,pins = <
>>>           0x30 0x06
>>>           >;
>>>       };
>>>     };
>>>   };
>>>
>>>    fragment@1 {
>>>     target = <&ocp>;
>>>     __overlay__ {
>>>       test_helper: helper {
>>>         compatible = "bone-pinmux-helper";
>>>         pinctrl-names = "default";
>>>         pinctrl-0 = <&mygpio>;
>>>         status = "okay";
>>>       };
>>>     };
>>>   };
>>>
>>>    fragment@2{
>>>   target = <&pruss>;
>>>     __overlay__ {
>>>       status = "okay";
>>>     };
>>>   };
>>> };
>>>
>>>  
>>> On Wednesday, December 4, 2013 8:17:47 AM UTC-5, Zachary Thorson wrote: 
>>>>
>>>> Could you post or send me your overlay?  I can load it on one of my 
>>>> BBBs and take a look for you. 
>>>>
>>>> Zach 
>>>>
>>>> On Tuesday, December 3, 2013 8:39:35 PM UTC-6, Bit Pusher wrote: 
>>>> > If I load my device tree overlay to use the high-speed GPIO pins 
>>>> first, and then try to read the ADC using Adafruit_BBIO, it kicks me out 
>>>> of 
>>>> python: 
>>>> > 
>>>> > 
>>>> > 
>>>> > ~/pru\> sudo python 
>>>> > Python 2.7.5+ (default, Sep 19 2013, 14:17:30)  
>>>> > [GCC 4.8.1] on linux2 
>>>> > Type "help", "copyright", "credits" or "license" for more 
>>>> information. 
>>>> > >>> import Adafruit_BBIO.ADC as ADC 
>>>> > >>> ADC.setup() 
>>>> > >>> ADC.read("P9_40") 
>>>> > ~/pru\>  
>>>> > 
>>>> > 
>>>> > notice no value returned and no python prompt. I suspect this 
>>>> indicates a problem. 
>>>> > I then rebooted (reset switch), waited until the network started 
>>>> working again (it takes 5 minutes each time for the network to work, 
>>>> something needs to timeout) 
>>>> > and then did the same, but this time did not load the device overlay 
>>>> to change one pru gpio to a high-speed output and got as expected 
>>>> > 
>>>> > 
>>>> > 
>>>> > ~/pru\> sudo python 
>>>> > Python 2.7.5+ (default, Sep 19 2013, 14:17:30)  
>>>> > [GCC 4.8.1] on linux2 
>>>> > Type "help", "copyright", "credits" or "license" for more 
>>>> information. 
>>>> > >>> import Adafruit_BBIO.ADC as ADC 
>>>> > >>> ADC.setup() 
>>>> > >>> ADC.read("P9_40") 
>>>> > 0.8072222471237183 
>>>> > >>>  
>>>> > 
>>>> > 
>>>> > I should mention that when I load both overlays, with my overlay 
>>>> first, >cat $SLOTS shows them both there, just the ADC overlay load does 
>>>> not 
>>>> > work correctly. If I run the ADC.setup() first, and then run 
>>>> > ~/pru\>>sudo sh -c "echo BB-BONE-PRU > $SLOTS" to load my overlay, 
>>>> then 
>>>> > 
>>>> > 
>>>> > 
>>>> > 
>>>> > /lib/firmware\> cat $SLOTS 
>>>> >  0: 54:PF---  
>>>> >  1: 55:PF---  
>>>> >  2: 56:PF---  
>>>> >  3: 57:PF---  
>>>> >  4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G 
>>>> >  5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI 
>>>> >  7: ff:P-O-L Override Board Name,00A0,Override Manuf,cape-bone-iio 
>>>> >  9: ff:P-O-L Override Board Name,00A0,Override Manuf,BB-BONE-PRU 
>>>> > /lib/firmware\>  
>>>> > 
>>>> > 
>>>> > and both overlays are  shown but the high 
>>>> > speed pin does not work. 
>>>> > Loading just my overlay only, works as expected as far as I can tell 
>>>> (i.e. the led turns on and off). 
>>>> > I'm guessing things are not quite as expected. 
>>>> > Also, could someone point me to the file in kernel source that loads 
>>>> overlays? 
>>>> > Thanks. 
>>>> > Bit Pusher 
>>>> > 
>>>> > 
>>>> > On Tuesday, December 3, 2013 12:16:34 PM UTC-5, Zachary Thorson 
>>>> wrote: 
>>>> > Correct me if I am wrong, but it appears that you simply want to use 
>>>> ADC and PRU pins whose pins DO NOT physically overlap on the board?  The 
>>>> cape-bone-iio device tree only grabs the ADC0-ADC7 pins plus analog power 
>>>> and ground, so it should not interfere with the PRU pins. 
>>>> > 
>>>> > 
>>>> > What issue are you getting when you try to load the PRU overlay after 
>>>> loading the ADC overlay? 
>>>> > 
>>>> > 
>>>> > 
>>>> > Note:  The adafruit library has a cleanup function in code, but it is 
>>>> commented out due to the lockup on load that you are describing. 
>>>> > 
>>>> > Zach 
>>>>
>>>>      -- 
> 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] <javascript:>.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
> This should be the repo you're looking for, though if not check the rest 
> of them there. 
> https://github.com/adafruit/adafruit-beaglebone-io-python
> HTH
>  

-- 
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.

Reply via email to