[PD] Sensors GPIO Raspberry Pi Pd
Martin Peach
martin.peach at sympatico.ca
Sat Apr 20 23:17:17 CEST 2013
Oh sorry, it segfaults if you don't pass an argument at startup. (1 if
it's already initialized, 0 if not)
The line begining "if (argc > 0)" should say "if (argc > 1)".
Martin
On 2013-04-20 13:30, Martin Peach wrote:
> Well that looks a total mess...
>
> I did "sudo apt-get install i2c-dev" before all this, as well as all the
> things in http://www.instructables.com/id/Raspberry-Pi-I2C-Python/#step1
> except I didn't use any python.
> The segfaults might be because you are asking for more than 32 bytes in
> a read, or something wrong in the code, the listing below looks like it
> goes wrong right at the beginning.
>
>
> Martin
>
> On 2013-04-19 17:37, Julian Brooks wrote:
>> As I'm new to all this C stuff I just had a look inside the 'hello' file
>> and there's a few bits in there which may be of interest:
>> ^@D6T_checkPEC says 0x%02X
>> (which I think is ok from looking at the code?)
>> then it all goes wrong
>> ^@^@^@Unable to create socket (%d)
>> ^@^@^@>> %s <<
>> ^@^@^@127.0.0.1 <http://127.0.0.1>^@^@^@Unable to make address from %s
>> ^@%s: initialized:%d
>> ^@/dev/i2c-0^@^@Failed to open the bus. (%d)
>> ^@^@^@Failed to acquire bus access and/or talk to slave. (%d)
>> ^@^@^@^@Write failed (%d)
>> ^@^@Read failed (%d)
>> ^@^@^@%d ^@<0x%02X>
>> ^@^@^@d6t8l^@^@^@ %d^@
>> ^@^@^@sendto error (%d)
>>
>> BTW - I've removed libi2c-dev again and will leave it that way for now.
>>
>> Going to stop now but will be back tomorrow.
>>
>> Cheers,
>>
>> Julian
>>
>>
>>
>>
>>
>> On 19 April 2013 22:07, Julian Brooks <jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>> wrote:
>>
>> Edited your original file and all I changed was the ip address to
>> 127.0.0.1 and still seg fault (double checked /etc/hosts too).
>>
>> Also tried reinstalling libi2c-dev and then running 'hello' - same.
>>
>>
>> On 19 April 2013 21:54, Julian Brooks <jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>> wrote:
>>
>> hmmm - both files:
>> ./hello-2
>> Segmentation fault
>>
>> Try again...
>>
>>
>>
>> On 19 April 2013 21:51, Julian Brooks <jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>> wrote:
>>
>> Ok -found I had to remove 'libi2c-dev'.
>>
>> Then builds.
>>
>> More soon...
>>
>>
>> On 19 April 2013 21:28, Julian Brooks <jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>> wrote:
>>
>> Hey Martin,
>>
>> When I try to compile hello.c I get:
>> gcc -o hello hello.c
>> In file included from hello.c:8:0:
>> /usr/include/linux/i2c-dev.h:38:8: error: redefinition
>> of 'struct i2c_msg'
>> /usr/include/linux/i2c.h:67:8: note: originally
>> defined here
>> /usr/include/linux/i2c-dev.h:90:7: error: redefinition
>> of 'union i2c_smbus_data'
>> /usr/include/linux/i2c.h:125:7: note: originally defined
>> here
>>
>> Dunno if this is at all relevant but maybe this is a
>> good time to say I have a rev1 RPi so I'm on i2c 0 not 1.
>> The Pi install is very up to date though, including
>> recent runs of hexxeh's 'rpi-update' tool so all the
>> system's fresh.
>>
>> I did attempt to change the number of bytes to be read
>> which perhaps would explain why the .h file's are
>> complaining but I don't understand it for your version
>> which is 'as-is'?
>>
>> In fact why don't I attach the notes I've made of the
>> changes to the c file you sent. Was vaguely hoping I
>> might be able to say 'ta da' but have fallen at the 1st
>> fence:( bugger.
>>
>> Julian
>>
>>
>>
>>
>>
>> On 19 April 2013 19:51, Julian Brooks <jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>> wrote:
>>
>> Hi Martin,
>>
>> Meant to add re setting baud rate:
>> I've been making use of the gpio utility that comes
>> with wiringPi
>>
>> https://projects.drogon.net/raspberry-pi/wiringpi/the-gpio-utility/
>> Very handy for getting a quick visualisation of the
>> current state of all the pins and also easy-access
>> to setting the baud rate too (amongst other stuff).
>>
>> Julian
>>
>>
>> On 19 April 2013 14:36, Martin Peach
>> <martin.peach at sympatico.ca
>> <mailto:martin.peach at sympatico.ca>> wrote:
>>
>> Hi Julian,
>> Yes I've been messing with coding it in c on the
>> pi and sending the data to a [netreceive] in a
>> Pd patch on another machine. I'm attaching the
>> source code for the pi part and the Pd patch.
>> The code can be compiled on the pi with
>> gcc -o hello hello.c
>> You need to set the IP address of the receiving
>> machine in the code (I have 192.168.2.15, it
>> could be 127.0.0.1 for the same machine).
>> I tried changing the baud rate with
>> sudo modprobe -r i2c_bcm2708
>> sudo modprobe i2c)bcn2708 baudrate=90000
>> but it works fine at the default 100000.
>> It seems that you only need to write the command
>> once, after that simply reading gets you another
>> packet. Using a combined write/read operation
>> only works half the time, as I also found on the
>> Arduino. All you need to do is write the 0x4C
>> command once, wait a millisecond or so and then
>> read it.
>> Another issue is that I tried this with the 8X1
>> sensor, not the 4X4 one, so the code reads 19
>> bytes (need to change the expected read size in
>> the code). The 4X4 sensor sends 35 bytes which
>> is 3 more than the i2c driver maximum, so you
>> may not get the last part of a packet.
>> I'll try it later with a 4X4 sensor to see what
>> happens.
>>
>> Martin
>>
>>
>> On 2013-04-19 07:01, Julian Brooks wrote:
>>
>> Hi Martin,
>>
>> Did you manage to make any progress with the
>> sensor on the Pi?
>> I also wanted to ask whether the output
>> we're receiving from i2cdump
>> makes any sense to you as it doesn't to us
>> currently? Tried searching
>> around for possible info on the 'XX' & 'ff'
>> but drawing a blank here.
>>
>> Cheers,
>>
>> Julian
>>
>>
>> On 13 April 2013 01:11, Julian Brooks
>> <jbeezez at gmail.com <mailto:jbeezez at gmail.com>
>> <mailto:jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>>> wrote:
>>
>> Hey all,
>>
>> Some success finally:
>>
>> Hurrah!!
>>
>> The scl breakout pin on the pi proto
>> plate wasn't working properly.
>>
>> When unscrewed halfway it works, when
>> fully screwed in it doesn't.
>>
>> So - now got this:
>>
>> i2cdetect -y 0
>>
>> 0 1 2 3 4 5 6 7 8 9 a b c d e f
>>
>> 00: -- -- -- -- -- -- -- 0a -- -- --
>> -- --
>>
>> 10: -- -- -- -- -- -- -- -- -- -- -- --
>> -- -- -- --
>>
>> 20: -- -- -- -- -- -- -- -- -- -- -- --
>> -- -- -- --
>>
>> 30: -- -- -- -- -- -- -- -- -- -- -- --
>> -- -- -- --
>>
>> 40: -- -- -- -- -- -- -- -- -- -- -- --
>> -- -- -- --
>>
>> 50: -- -- -- -- -- -- -- -- -- -- -- --
>> -- -- -- --
>>
>> 60: -- -- -- -- -- -- -- -- -- -- -- --
>> -- -- -- --
>>
>> 70: -- -- -- -- -- -- -- --
>>
>> and
>>
>> i2cdump -y 0 0xa
>> No size specified (using byte-data
>> access)
>>
>> Gives a whole host of stuff I don't yet
>> understand but I don't care
>> currently as something is actually
>> happening.
>>
>> Will figure out a way of saving the
>> console info (any hints
>> anyone?) as it gets badly mangled when
>> cutting and pasting but
>> basically something like this:
>>
>> i2cdump -y 0 0xa
>> No size specified (using byte-data
>> access)
>> 0 1 2 3 4 5 6 7 8 9 a
>> b c d e
>> f 0123456789abcdef
>> 00: ff XX XX XX XX XX XX ff XX XX XX XX
>> ff ff ff XX .XXXXXX.XXXX...X
>> 10: XX ff XX XX XX XX XX ff XX ff XX ff
>> XX XX ff XX X.XXXXX.X.X.XX.X
>> 20: ff XX XX ff XX XX ff XX XX XX XX ff
>> XX XX XX ff .XX.XX.XXXX.XXX.
>> 30: XX ff XX ff XX XX XX XX ff ff ff XX
>> XX XX XX XX X.X.XXXX...XXXXX
>> 40: XX XX XX ff XX ff XX XX XX 64 XX XX
>> d5 XX XX ff XXX.X.XXXdXX?XX.
>> 50: XX ff XX XX XX XX XX XX XX ff XX XX
>> ff XX XX XX X.XXXXXXX.XX.XXX
>> 60: ff XX XX XX ff XX XX XX XX XX XX XX
>> XX ff XX XX .XXX.XXXXXXXX.XX
>> 70: XX XX XX XX XX XX XX ff XX XX XX XX
>> XX XX XX XX XXXXXXX.XXXXXXXX
>> 80: XX ff XX XX ff ff XX XX XX ff XX XX
>> XX XX XX XX X.XX..XXX.XXXXXX
>> 90: XX XX ff XX XX ff XX ff XX ff ff XX
>> XX ff ff XX XX.XX.X.X..XX..X
>> a0: XX ff XX XX ff XX XX XX XX XX XX XX
>> XX XX ff XX X.XX.XXXXXXXXX.X
>> b0: XX XX ff XX XX XX ff XX XX ff XX XX
>> XX XX XX XX XX.XXX.XX.XXXXXX
>> c0: XX XX XX XX ff XX XX ff ff XX XX ff
>> ff XX XX XX XXXX.XX..XX..XXX
>> d0: XX XX XX XX XX ff XX ff XX XX XX XX
>> XX ff XX ff XXXXX.X.XXXXX.X.
>> e0: XX XX XX ff XX ff XX XX XX XX XX XX
>> XX XX ff XX XXX.X.XXXXXXXX.X
>> f0: ff XX ff ff XX XX XX XX XX XX XX XX
>> XX XX ff XX .X..XXXXXXXXXX.X
>>
>>
>> Progress at least.
>>
>> Cheers,
>>
>> Julian
>>
>>
>>
>>
>>
>>
>>
>> On 12 April 2013 11:27, Julian Brooks
>> <jbeezez at gmail.com <mailto:jbeezez at gmail.com>
>> <mailto:jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>>> wrote:
>>
>> Message resent for thread archives
>> with smaller picture size.
>>
>> Julian
>>
>> ---------- Forwarded message
>> ----------
>> From: *Julian Brooks*
>> <jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>
>> <mailto:jbeezez at gmail.com
>> <mailto:jbeezez at gmail.com>>>
>> Date: 11 April 2013 19:24
>> Subject: Re: [PD] Sensors GPIO
>> Raspberry Pi Pd
>> To: Martin Peach
>> <martin.peach at sympatico.ca
>> <mailto:martin.peach at sympatico.ca>
>> <mailto:martin.peach at __sympatico.ca
>> <mailto:martin.peach at sympatico.ca>>>
>> Cc: PD List <pd-list at iem.at
>> <mailto:pd-list at iem.at>
>> <mailto:pd-list at iem.at
>> <mailto:pd-list at iem.at>>>
>>
>>
>> Hey Martin / list,
>>
>> Finally got all the stuff and ...
>>
>> It’s not working!
>>
>> We spent the day soldering cables
>> and connecting stuff up as per
>> the Omron ‘App Note 01’ spec sheet.
>>
>> Started off super-conservative
>> using the I2C level converter
>> (case 3 page 4)
>>
>> http://www.adafruit.com/__products/757#Blog/Flickr
>>
>> <http://www.adafruit.com/products/757#Blog/Flickr>
>>
>> We tried resistors on both sides
>> (being super paranoid!) and
>> then we took the low (Pi) side
>> ones off.
>>
>> We then moved on to case 2 page 3
>> of this same document…
>>
>> At each stage we checked with
>> “I2Cdetect –Y 1” and nothing was
>> visible.
>>
>> The grid shows no attached devices
>> every time we run it.
>>
>> We re-booted at every stage
>> following the various online
>> tutorials/methods of setting up I2C
>> GPIO on the Pi (checked &
>> double checked).
>>
>>
>> As you can see we’re using a pi
>> protoplate:
>>
>> https://www.adafruit.com/__products/801
>> <https://www.adafruit.com/products/801>
>>
>> In the photo I’ve attached the
>> cables are coded as follows:
>>
>> Orange GND
>>
>> Yellow 5v
>>
>> Blue SCL
>>
>> Green SDA
>>
>> The white is also 5v for the pull
>> up resistors.
>>
>> The resistor values are 4.7k btw.
>>
>> We have tested the cable that
>> terminates at the sensor and all
>> that is OK.
>>
>> I put a multimeter on the GND and
>> SDA solder points on the
>> sensor itself and got 3.7v…
>>
>> I put a multimeter on the GND and
>> SCL solder points on the
>> sensor itself and got 0.0v…
>>
>> Don’t know if this means anything
>> or could be useful to know!
>>
>> Stuck and frustrated now but hey, 3
>> weeks ago I knew absolutely
>> bugger all about any of this and
>> now I do (sort of).
>>
>> I'm thinking we could do with the
>> most basic i2c sensor we can
>> find as we have nothing to compare.
>>
>> Tonight I'm going to d/l a fresh
>> raspbian and start from scratch
>> to check that end.
>>
>> Feel like if we can't get past the
>> 'i2c-tools' tests we're
>> screwed - never mind getting it in
>> and out of Pd.
>>
>> Any thoughts/pointers/options from
>> anyone will be really
>> appreciated?
>>
>>
>> Cheers,
>>
>>
>> Julian
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> _________________________________________________
>> Pd-list at iem.at <mailto:Pd-list at iem.at>
>> mailing list
>> UNSUBSCRIBE and account-management ->
>>
>> http://lists.puredata.info/__listinfo/pd-list
>> <http://lists.puredata.info/listinfo/pd-list>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> _______________________________________________
>> Pd-list at iem.at mailing list
>> UNSUBSCRIBE and account-management ->
>> http://lists.puredata.info/listinfo/pd-list
>>
>
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>
>
More information about the Pd-list
mailing list