I think you are using this link, In there you can see the specifications for the different GPIOs.
GPIO 14, 165, 204, 205, 212, 213, 236 and 237 are for analog inputs (A4 and A5).
GPIO 27 and 28 are for I2C. The GPIO 214 is used to set it at LOW before the changes in those MUXes.
In the Edison Breakout Board you can't use those because there are not ADC's in there.
CMata_Intel, that link was to the references I was referring to. I see the pins listed in the BSP and HG - but.
However, we need for the Mini Breakout board - so I need to know where do I dig to find to get to the low level definitions/documentation
With mraa not complete in this regards, I am lacking the access to the GPIO needed.
So next step, if is kernel level, or what - we need to be pointed to the where for Mini Breakout board and eventually the module a la carte.
Thanks in advance.
Correct me if I am wrong. On the stock Edison yocto image, echo 28 > /sys/class/gpio/export is my GPIO number from the HardwareGuide?
1 of 1 people found this helpful
For my digging around to understand how the breakout board works, the things that I rely on are:
The hardware guide for the breakout board: https://communities.intel.com/servlet/JiveServlet/previewBody/23252-102-8-27632/edison-breakout_HG_331190-004.pdf
The actual hardware module guide: https://communities.intel.com/servlet/JiveServlet/previewBody/23158-102-6-27348/edison-module_HG_331189-002.pdf
The MRAA hardware guide: mraa/edison.md at master · intel-iot-devkit/mraa · GitHub
And the MRAA sources: Depending on what I am trying to understand GPIO, I2C, ... I look at the specific files, but then look at the board definition in the file:
About line 605 in the current sources shows the board definitions as MRAA sees them.
Also as I have been playing around trying to generate an Arduino definition for this breakout board, I have extracted some of this stuff and created my own Excel Spreadsheet, which I am still hacking on. I want to for example have a column that says, this pin is used in Serial1, this one is PWN2...
At some point may try to figure out how to upload. Currently don't see any normal way to upload zip files or excel documents....
Hope this helps
"In the Edison Breakout Board you can't use those because there are not ADC's in there."
Does this mean the Edison has ADC's but they are not connected to the minibreakout board?
If that's the case i see gpio 14 on the mbb, which should be capable to do AD converting then?
@mmi, I could be wrong, but it is my impression, that there may not be any native Analog to Digital converters as part of the Edison module. If you look at figure 1 of the Edison Arduino Hardware Manual, you will see in the diagram an external ADC unit that talks to the Edison using SPI. So again it is my impression that the mini breakout board has no Analog to Digital conversion hardware.
@deium, some of the details with using GPIO pins on the breakout board, I have experimented with, but have not fully fleshed out in the Arduino code base.
Example: With the Arduino board, if you wish to do something like: pinMode(1, INPUT_PULLUP), This cooresponds to the Edison Pin 131. With the Arduino board there are some other Edison pins also associated with this pin, one that controls the direction (249) and another that controls the PU resistor( 217).
With the simple breakout board, it does not have this additional hardware. This I believe is MRAA pin 131. To control PU (or PD) support for this pin, instead of talking to a different IO pin, you instead talk to the kernel debug...
In particular I believe: /sys/kernel/debug/gpio_debug/gpio131/current_pullmode If I remember correctly, this logical file can have three values (nopull, pullup, pulldown).
But it has an additional capability in that you can also control how strong of a pullup to enable. My breakout board is more or less dead (The replacement I purchased may be here tomorrow), So I don't remember all of the values, but I think it can be something like 2K, 20K, ???.
Note I know my Arduino variant for this board needs work to properly enable the PU resistors...
Is this the level of details you wish were documented in one place?
If you look closely at the Edison Arduino board, you'll see and ADS7951. That is the ADC, which provides analog inputs on the Arduino shield. It's connected to the edison via SPI.
This chip is not present on the mini breakout board. There is no ADC on the Edison module itself. So you only get analog inputs with the Arduino board, or another set of external components that provides this functionality.
Kurt and David: thanks, you are right. I have only the minibreakout but the ADS7951 on Arduino board is a confirmation.
Sorry guys if the way the question was asked was less than coherent, must be my pain killers.
Where do we get the detailed definitions/documentation for the GPIO for the Edison Module and Mini Breakout?
We are dealing with an Edison Module, a mini breakout board and electronic components (1.8V 2.3V 2.7V) that are not Arduino.
Eventually, I would imagine that the mini breakout board is swapped away for a smaller custom board.
Maybe I should add that as a programmer, I have an electronics partner that is questioning, location of pullups,sequences, collectors, and documentation, that after KurtE's project failed has many questions regarding how the internals are laid out - that has not been stated elsewhere, so that the non Arduino project doesn't blow up as well.
If our projects are only dealing with the Edison Module and or the Mini Breakout board - where is the documentation, and or definitions, or possible source code to look at for the GPIO, SPI, I2C etc ...
1) Does there exists such documentation? I already have the Module Hardware Guide, and the Board Support Package, and the mraa code for the libmraa.
CMata_Intel, in #1 - you correctly identified the source of my example with the link you provided that went to David_J_Hunt webpage at Emutex Labs, gave some interpretation of the command lines that followed, and pointed out an obvious that the ADC only exists on the Arduino board. In #3 - you are clear my meds didn't allow you to understand my question.
In #2, I pointed out that I have edison-breakout_HG_331190-004.pdf and edison-breakout_HG_331190-004.pdf
KurtE, I have been following your projects, as you know. So I believe that you understand a bit of what I say - the libmraa is incomplete, (it get updated every couple of weeks - thus to say incomplete can not be incorrect) and I am not speaking of the UPM for the various types of modules, so where do they get their original documentation/source code/definitions. The link you provide to the edison.md is repeated in the above Hardware Guides. example: When I look at the mraa code, I don't see where it defines the pullups, and sure there is an enumerated type that is referred to - but the definitions are not defined there.
There is a reference I read somewhere in the mraa project that the mraa is a wrapper for an already defined part of the kernel - not workd for word so don't crucify me on this part.
David_J_Hunt, you have dealt with the mini breakout board in your camera project, and with your experience with the ubilinux - maybe you know where the source is for the origins for all the GPIO pins. You are obviously understanding each to be calling them with a value written to the /sys/class section
So, is this all defined in the kernel - if so where can I find the source code to look at, if it is defined else where - then where Is the root originating source code?
mmi, maybe you can help clarify my question. it is pointed out that the ADC can not be used on the mini breakout board, and now the chip is identified and confirmed on the Arduino board -- can you aslo confirm that the mini breakout board does not have the ADC - because it IS the mini breakout board that we have and are dealing with, and we understood that there is no ADC on the mini breakout board - and I am not sure how everyone is now focused on a chip that has no bearing to a project that doesn't have it.
The best place to get information on the GPIOs is by going through the schematics.
The mixing guide on EmutexLabs was done for the Arduino board, but there is some crossover to the mini breakout board, as it's a subset of the Arduino board.
deium, definitely the Atom processor has no ADC and also the Quark controller doesn't have one. If you need an ADC with the minibreakout board you have to connect one externally just like it's done on the Arduino board.
It would have been fine to see the ADC builtin but it's not a showstopper.
David_J_Hunt, This looks to be a huge step in the direction needed - and thanks a million for the pdfs. One other quick question and it arises with the fact that there is a second I2C lines on the mini breakout board which if I understood your correctly, we wouldn't find it so much as here (as a subset of the Arduino) -- just making sure I understand correctly - I'll pass these through my electronics partner, and thanks again.
Where do I locate the original source code that matches to the schematics - is that in the kernel source? Any pointers?
, thanks mmi.
It isn't a showstopper as it wasn't needed. My original question at the top of the post could not have been clear, and for that I apologize. I don't understand how and where the post got moved away to discuss an ADC on the Arduino board.