Will do, I'll get a schematic posted to the pubs.gumstix.com site later today.
FYI, in Geppetto you should be able to hit the "Autodoc" button and it will give you a document that outlines the important information (connections). Also, we have an internal system which generates device tree information for designs automatically. We are in the process of opening it up for public use. Does something like that interest you?
I would be interested in seeing the output of the DTS auto-generator.
The RPi dts overlays have some non-standard extra features.
Does your tool handle those?
I'm using a 4.9 kernel from the RPi official repo and here is what it looks
like using the stock config and overlays for an RPi2/3 kernel
rtc i2c ds1340 standard rtc, driver built, use i2c-rtc-overlay.dts
temp i2c tmp102 hwmon, driver not enabled, need dts
pressure spi ms5611 iio, driver not enabled, need dts
accel spi lsm303d iio, driver not enabled, need dts
gyro spi l3gd20h iio, driver not enabled, need dts
So only the RTC will work out of the box.
I don't mind working on this and trying to get changes pushed upstream.
and wrote a new ms5611-spi-overlay for the RPi boards.
Since you have LEDs on gpio 16 and 18 and claim gpio 17 for the IMU according to the datasheet, I assume you must be using SPI bus 0 for the barometer. (GPIOs 18, 17 and 16 are the CS pins for SPI bus 1).
I've tried both CS 0 and CS 1, but in both cases I get errors when the ms5611 driver tries to read the chip PROM
I'm sorry for not getting this to you yesterday, I was having troubles with our pubs server. I've attached the schematic here.
I mentioned the "Autodoc" button. The document that this produces is the technical specifications listed in the store here. I took a look at it and unfortunately it is missing necessary information (CS, INT, DRDY pins). I will get that fixed.
To answer the question about non-standard GPIO selection and SPI choice. The reason is that the board was made without knowledge of which pins are "supposed" to be connected to any specific device. In Geppetto, a user should be able to make any connection they want (even non-standard) as long as it's an option in Geppetto. When the design is done, a software image will be generated (DTB) that will use whatever pins they've connected. We're almost there but we have some bugs to work out. We also have the ability to prioritize connections. So if there is a standard connection for something, it will be shown at the top of the list of available connections with a Linux "Tux" approved icon ... or some other OS icon. This gives less advanced software users a good rule of thumb about where to connect pins. The choice of connections was done to highlight the flexibility of Geppetto. I'd need to look it up to see what GPIO pins should be prioritized. If you've got a list of them, I can input it into the system pretty quickly and that would be a big help.
As for the SPI choice. The barometer was put on the same SPI bus as the IMU because that's what is done on the AeroCore2. In the case of the AeroCore2, it's necessary for the devices to share the same bus because of pin availability. Here we don't have that constraint, so as you said it probably should go on another bus. When another spin of the board is done we'll change the bus.
I should also mention, the "Technical Specifications" document in the store I mentioned earlier has been updated and now should have all the information necessary to work with the board ... without the schematics.
Please let me know if you see any issues or if you come across other boards that do not have the necessary documentation.
I had needed this driver hack earlier to get the IMU working earlier on one of our custom boards. I had faced the same WhoAmI mismatch error and remember doing something on the lines of what I have done in the attached patch.
Hopefully this works for you.
On Wed, Apr 26, 2017 at 1:13 PM, Scott Ellis [via Gumstix] <[hidden email]> wrote:
Not having much joy with either of the IMU components
[ 3.468222] iio iio:device1: l3gd20: WhoAmI mismatch (0x0).
[ 3.473913] st-gyro-spi: probe of spi0.1 failed with error -22
[ 3.479913] spi0.0 supply vdd not found, using dummy regulator
[ 3.485836] spi0.0 supply vddio not found, using dummy regulator
[ 3.492281] iio iio:device1: lsm303dlm_accel: WhoAmI mismatch (0x0).
[ 3.499484] st-accel-spi: probe of spi0.0 failed with error -22
Do you have a dts for another board where you used these same components?
There are multiple ST devices to choose from and I probably have that wrong.
If you reply to this email, your message will be added to the discussion below:
See the gumstix-spi-overlay-readme.txt in the download dir for some instructions.
I made things optional in the DTS because I didn't find a combined ST accel/mag driver and so was only able to enable one at a time.
I don't think it's possible to configure two kernel drivers for one CS line.
But you can use /dev/spidev0.0 to get access to both at the same time.
A sample config.txt for the board would look like this