Dragonboard 410c Android SPI


#1

Hi all,

I’m using Android in DB410c and I would like to use SPI master in a end Java Application.

I’m wondering if this guide can solve my problem https://developer.qualcomm.com/download/db410c/linux-android-software-build-and-installation-guide.pdf.
However, even if it’s the right procedure to follow, I don’t really understand the varius steps to perform.

In particular, I don’t understand if the Android source code downloaded from “Code Aurora” will be used in the Dragonboard or instaed in Ubuntu OS.
Unfortunately, I’m really not realizing what I’m doing.

Could you explain me which is the right procedure to follow and summarize the various steps to accomplish my end target?

Thanks!


#2

That document is explaining how to build Android itself (in particular, ancient 5.1 version). What you’re probably more interested in, is how to build software FOR Android.

But before you go there, you need to think about what you are trying to do. Android is NOT supposed to interface with hardware directly. Android software is supposed to interact with hardware through a HAL. What kind of hardware are you trying to interface with?


#3

Thanks for your reply.

I’m traying to interface with a SPI slave platform. So at the end I should be able to modify internal registers of SPI of Snapdragon in order to establish the communication. The problem is that the Android driver peripherals differ than those for Debian OS. As a result, I can’t follow the guides that I find online (e.g. “Enabling SPI on Dragonboard 410c with SPID”) since they are for Debian and I can’t run the various commands even using a rooted terminal emulator application on my OS platform.


#4

Some basic control over the GPIO with Android is fun and you will probably found more info here https://www.96boards.org/blog/openhours-community-minute-testing-96boards-audio-mezzanine-jean-marc-jobin/
This was made with the Android 5.1.
Just look at it and follow some links. I am sure you will find some material to understand how to proceed.
I liked the idea that I could linked my apps with some I/O.

For the future there is also Android Thing which is dedicated to IoT.
But did not find it available for the Dragon Board (yet).

Jean-Marc


#5

Thanks for your answer. Actually I’ve already managed to create an app that can directly interface with a GPIO. I could also think to create my SPI interface by using only GPIOs and timer but this is gonna last for long time.

For what I understood, the deafault Android configurations don’t offer the possibilites to update kernel configurations, update device tree, built the Kernel and so enable some specific drivers depending on the peripheral that it is using. Consequently, the following guide https://developer.qualcomm.com/download/db410c/linux-android-software-build-and-installation-guide.pdf is essential.

My question at this point is: is it possible to configure SPI interface for a generic peripheral (such as it happens on Depian by means SPIDEV) and then write a Java code for using it? Instead, do I need to enable specific drivers for my slave peripheral? I’m using ADS1299EEG as slave. Before tackling in this procedure, does someone know if what I’m trying to do is feasible?

I’m not sure if at the end SPIDEV option will be available in the Kernel configuration from the fact that I’m using a High Level Operating System Linux Android.