After having a quick chat with cr2 about the process of linux i was surprised to see that external usb host support on the universal is still unknown (obv it uses usb host internally for phone)
basically i have a dongle which on one end has a mini-usb plug (i.e. goes in phone) and on the other end has a usb a receptacle.. i got it with a development kit for an AVR micro-controller that has onboard usb client/host... plugging in the cable switches its mode.
now from what i understand of the pxa270 dev manual
http://www.balloonboard.org/hardware/300/ds/PXA270-dev-manual.pdf
(section 20.4) is that the chip has 3 onboard host ports. the first is dedicated (which i assume is the one used for the phone) the other 2 are shared by usb client mode and must be configured to use host mode. there also is usb-otg supported on chip which may be how things are set up.
to me this suggests that physically the external usb port we have access to can be set to host mode via setting registers (or some software based setup) however i have not looked properly at the pin layout (and electronics is only a hobby) so if someone could try and decipher from this doc
http://pdf1.alldatasheet.net/datasheet-pdf/view/82521/INTEL/PXA270/datasheet.pdf
to progress we need to see whether this is the case or whether there is a physical aspect to setting host mode (if there is then seeing if it wired up)
then we need someone with a bit of low level coding skills (prob linux based coding route) to do any initialisation then on to testing.
as i said i have a dongle but i'm not willing to risk my exec (poor student y'see) until i know a few bits... i have no intention of frying my phone due to test usb device drawing to much power from phone and melting something (i am not sure how the usb spec handles it...i know pc's shut the port down if it draws too much power but a pda i'm not so sure... especially if it isn't expecting it!)
what are other peoples thoughts on all this can anyone investigate anything or verify any of my thoughts etc
i'd like to settle the mystery which ever way it turns out...usb host mode under linux would sure be shiny
it would also be interesting to see whether the 3rd port is connected up
also see section 12 of the first pdf it covers more in depth the details regarding usb
I am looking for something specific, but don't know what … maybe you guys can help me out.
Let me provide some background first. There are special controllers for espresso machines available which act as a PID controller for temperature regulation. To simplify things: They read the temperature of the water and regulate the heating element to a specific temperature with much greater precision than the integrated "mechanical" thermostat is able to.
Today there are kits for various espresso machines available, but they are rather expensive. So I was thinking: Well, what about some homebrew stuff (no pun intended)? I could fit more functionality in there and – here comes the interesting part for the XDA community – connect the controller to my Galaxy Nexus!
My first idea was grabbing some development platform (e.g. Arduino or IOIO), but I'm not sure if this is the right approach. Let me explain what the perfect board can do:
- read two or three temperature probes
- read a water level sensor
- read and control four switches
- provide some kind of CPU for acting as a controller
- provide a clock to "wake" the machine in the morning
- provide a USB connection for controlling from Android and programming/flashing from OS X
- optional: Bluetooth functionality for wireless Android control
I can figure out how to wire the stuff together and how to write some PID software. But the most interesting part will be the Android connectivity, but I have no idea what platform I can use …
It would be awesome to plug a USB cable in (or connect via Bluetooth) and read the live temperature data, start/stop the brewing process and so on. The PID has to regulate the machine without the phone – depending on the switch state (i.e. "pull a shot" or "make steam") the heating element would be regulated.
Of course there are even more interesting applications, like sending a tweet ("I just brewed a coffee!") or a pressure readout …
As far as I understand, I just have to look for a single-board microcontroller with some analogue and digital inputs, some digital outputs and a USB connection. Is this possible with something like an Arduino? Or do I need something more complex?
Hey! Nice to see another homebrewer! They sell chips like that already. People have converted freezers to kegerators, and the chip manages the temp, turning on the freezer around 55 degrees F.
Sent from my SCH-I535 using xda premium
I would suggest you toying with Android ADK
This is a board you could use is: arduino.cc/en/Main/ArduinoBoardADK it's a bit pain in the ass to set it up for the first time but once you get used to it it's pretty simple
Freezer? 55 degrees? I'm talking about brewing espresso … The problem there is temperature stability within 1° Celsius.
I already learned more about the Arduino platform and I think it is the right idea for my small project.
As far as I know a bluetooth connection via Android can be established, too.
You should definitely check out a book called;
"Programming Your Home: Automate with Arduino, Android and Your Computer"
Author is Mike Riley.
Publisher is The Pragmatic Bookshelf, Dallas Texas - Raleigh, North Carolina.
I'm pretty sure it's available as an e-book and is full of projects combining these technologies.
The first project has a ball float incorporated in it so I think it's perfect for your idea.
I'm working on a sous-vide immersion circulator at the moment, but it isn't too complex.
A PID controller does all the hard work.
PS
No barista in their right mind would let a machine steam milk!
---------- Post added at 05:48 PM ---------- Previous post was at 05:41 PM ----------
...almost forgot - ISBN-13: 978-1-93435-690-6
You can pretty much do everything including put the PID into the Arduino. You though will need to create the shield board with the extra sensors you need. Once that is available talking to the Arduino from Nexus is a cake walk. The USB Host and well as USB Accessory mode API is pretty straight forward and you can use either depending on how you want to interface the two. If you use some other microcontroller board other than Arduino then you will probably not be able to use Accessory mode but will have to use the USB Host with the microcontroller board exposed as a CDC class device using the USB as virtual serial port (Atmel, MicroChip controllers provide this interface). Also you will need to hack your Nexus to provide additional power supply (probably using Pogo pins) as USB port will be powering your controller board.
Best of luck!
pankaj013 said:
You can pretty much do everything including put the PID into the Arduino. You though will need to create the shield board with the extra sensors you need. Once that is available talking to the Arduino from Nexus is a cake walk. The USB Host and well as USB Accessory mode API is pretty straight forward and you can use either depending on how you want to interface the two. If you use some other microcontroller board other than Arduino then you will probably not be able to use Accessory mode but will have to use the USB Host with the microcontroller board exposed as a CDC class device using the USB as virtual serial port (Atmel, MicroChip controllers provide this interface). Also you will need to hack your Nexus to provide additional power supply (probably using Pogo pins) as USB port will be powering your controller board.
Best of luck!
Click to expand...
Click to collapse
If you have a device that supports OTG/USB Host, a USB-enabled microcontroller is MUCH cheaper than ADK (which requires the accessory to act as a host).
ADK should be described as "DDK" - Dock Development Kit. The requirement for the "accessory" to act as a host and to provide power makes it limited to dock-style devices. True accessories should be powerable from the device.
Adafruit's ATMega32U4 board is a great one to work with - https://www.adafruit.com/products/296
Another option, much more expensive but allows your device to be network-enabled easily (built-in Ethernet) is the BeagleBone. Lots of GPIOs on 0.1" headers and Ethernet.
I would tend to lean towards arduino. It is certainly powerful enough. All the research I have done makes conecting bluetooth really easy. Although serial to android seems a bit more difficult. For the task you are trying to do I would expect a standard arduino (or clone) and a bluetooth module off of ebay (make sure you choose one that can handle 5v) should be a good starting point.
I have only every made diy arduino buy purchasing the usbisp cable and pl-2303 style usb>serial ttl adaptors. If you search on ebay some of them have the dtr line on one of the pins making auto reset easy. They are a bit more rare, but are worth searching for and paying a few dollars more.
I have never done brewing, but fiddle with arduino (atmega8 atmega168 atmega328 atmega644p atmega1284p). Feel free to ask questions.
arjag said:
I would tend to lean towards arduino. It is certainly powerful enough. All the research I have done makes conecting bluetooth really easy. Although serial to android seems a bit more difficult. For the task you are trying to do I would expect a standard arduino (or clone) and a bluetooth module off of ebay (make sure you choose one that can handle 5v) should be a good starting point.
I have only every made diy arduino buy purchasing the usbisp cable and pl-2303 style usb>serial ttl adaptors. If you search on ebay some of them have the dtr line on one of the pins making auto reset easy. They are a bit more rare, but are worth searching for and paying a few dollars more.
I have never done brewing, but fiddle with arduino (atmega8 atmega168 atmega328 atmega644p atmega1284p). Feel free to ask questions.
Click to expand...
Click to collapse
I will have to agree on that one, but only by experience.
those chips are a pleasure to deal with.
I even got my tablet talking to mine before I screwed it up!
Hit me up here or on #arduino on freenode (or anyone else there for that matter) if you want any hints or help if you decide to go that route, I'd be happy to help!
DW
You should try Arduino board, it's not that difficult to use and they're plenty of resources on the Internets.
Also, you could develop an Android app for controlling it. My team had successfully developed an Android controlled RC-car via Bluetooth.
You could find the source code of the Android app here on Github!
Another approach might be to get an ethernet shield for arduino and hook it up to your homw network. Then you could use a browser to control it, so you are not just limited to your Android device.
Ethernet setup is really simple, start with the demo code and modify to your needs.
Sent from my SAMSUNG-SGH-I747 using xda app-developers app
check out the andropod
Not 100% what you described, but this is absolutely rad nonetheless...
i just saw this the other day: http://www.ftdichip.com/Android.htm
with a standard UART to android usb host in one cable, you can do regular old RS232 or TTL-voltage RS232 comms with practically any of the simplest of the simple mcu's out there.
UART interfacing hardware with your phone? it'd be super easy to write java or shell interface wrappers to do tons of cool automation stuff, plus if you have an old beater phone lying around, it's a super robust DAQ unit in the making...
booooiiinnnniiiiiinnnnnggggg I want...
http://code.google.com/p/tc4-shield/
It's already got a four-channel ADC intended for thermocouple use, as well as GPIOs to drive the SSRs. People have already worked out zero-crossing detectors if you want finer control.
The water probe is a little problematic; I'd stick with the existing Gicar or equivalent.
I'm in the process of using it for thermocouple and power-relay interface to a Raspberry Pi to run a La Marzocco GS I'm restoring.
The Arduino is disappointing in its computational power. Its enough to run a PID, but can't really deal with a TCP stack and a webserver too.
Please note that Arduino can use Bluetooth connectivity to Android. It is easy on Arduino and very convenient.
Arduino can be battery powered for a long time if you program its sleep mode correctly.
http://tvwbb.com/showthread.php?35674-HeaterMeter-v4-0-for-RaspberyPi-Standalone
Shouldn't be a far leap from a fan/heating element to a water heating element. Plus: "HeaterMeter is also reportedly suitable for connecting to a solid state relay and controlling a sous vide heater if you prefer your food float around in fancy water instead of smoke and fire."
Arduino (or Msp430 Launchpad, or Microchip Pic or whatever) + a cheap, 6 dollar Bluetooth Serial adapter, + coding an app for android is all you need. Don't mess with usb or ethernet/wifi. Bluetooth Serial is all you need.
also use Android Suit
So i have a CA-FI 7008000 android powered car stereo, it is a freescale based android 2.2 device with a USB host port dedicated for usb modems. Currently I am attempting to use the Sierra wireless 313u (att momentum 4g ) with it. When plugged in, it powers on and status lights begin blinking indicating it does see a network, but does not connect (light should go solid). Currently it isplugged into the correct port and is in Modem only mode. I have verified the device works on windows and a mac.
I've done a fair amount of hacking in android, but I'm beyond lost with this.
under dmesg in terminal im getting **** like this:
<6>usb 1-1: new high speed USB device using fsl-ehci and address 5
<4>usb 1-1: config 1 has an invalid interface number: 7 but max is 3
<4>usb 1-1: config 1 has no interface number 2
any ideas?
It sounds like either the USB descriptors in the device are a bit flakey or else your Linux is.
You can use usbview.exe under Windows (although it's ancient).
http://www.ftdichip.com/Support/Utilities.htm
Copy out the right hand pane for your modem.
Hey does anyone have the udev rules for the nexus 4?
tweaked said:
Hey does anyone have the udev rules for the nexus 4?
Click to expand...
Click to collapse
Maybe I'm missing something, but just plug your N4 into your Linux machine and type lsusb in Terminal. The numbers will pop right up, along with a number of others...you should be able to spot the N4's numbers easy enough.
tedr108 said:
Maybe I'm missing something, but just plug your N4 into your Linux machine and type lsusb in Terminal. The numbers will pop right up, along with a number of others...you should be able to spot the N4's numbers easy enough.
Click to expand...
Click to collapse
I dont get anything to do with the phone;
Code:
Bus 001 Device 001: ID id6b:001 Linix Foundation 1.1 root hub
Buss 001 Device 002: ID 80eeL0021 VirtualBox USB Tablet
Thats all I get with lsusb.
tweaked said:
I dont get anything to do with the phone;
Code:
Bus 001 Device 001: ID id6b:001 Linix Foundation 1.1 root hub
Buss 001 Device 002: ID 80eeL0021 VirtualBox USB Tablet
Thats all I get with lsusb.
Click to expand...
Click to collapse
Hoping you have a good USB cable connecting your N4 to your computer...
Try enabling Android Debugging under Developer Options. If you are on 4.2, you may need to enable Developer Options first as explained in the second post in this thread here: http://forum.xda-developers.com/showthread.php?t=1989777
I'm not 100% sure that is the problem, but it is worth a shot. Honestly, I kind of figured lsub would show just about anything ... "debugging" enabled or not. Also, you have a really short list with lsusb ... I get a much bigger list than you do. Not sure why that is. Perhaps you are running a virtual machine or whatever ... I have no experience with them at all. If you are connecting other Android devices to your machine without issue, I'm guessing that enabling debugging will work.
Still waiting on my N4 ... or I would just give you the numbers!
Greetings....
I am hoping to get my Asix Usb to Ethernet adapter working with my nook STG. I believe the only remaining requirement is to compile the drivers for it (which are android 2.x compatible according to the driver manufacturer website).
I am rooted and have 'usb host mode' successfully working.
When my adapter is plugged in, it displays as a 'connected device' in my Usb Host information app and shows the details; make/model etc - so its connected successfully.
It works plugnplay with my other droid devices, however in these devices there is an Asix driver folder in /sys/bus/usb/drivers and there is not in my Nook, thus I believe i simply need to compile the drivers which will create the Asix driver folder.
If you have the correct setup and can compile the drivers for me (and potentially other Nook users), i will exchange them for 10GPB or 10 of your currency, via your desired means.
I am slowly trying myself on an ubuntu vm in windows but can only use the pc for short periods due to eye troubles; hence trying to use a Nook as my sole computer.
INFO:
Device: Nook STG firmware 1.21 - kernel source file link = images.barnesandnoble.com/PResources/download/Nook/source-code/nook2_1-2.tgz
Adapter Driver: Asix AX88772 - driver source file link = www.asix.com.tw/FrootAttach/driver/AX88772C_772B_772A_760_772_178_LINUX_Driver_v4.11.0_Source.tar.bz2
Adapter Info: BobjGear Adapter made for Android Tablets = www.amazon.co.uk/BobjGear-Ethernet-Exceptions-Description-Ultrabooks/dp/B007RTACDM
Other info: An XDA thread compiling the same drivers - http://forum.xda-developers.com/showthread.php?p=37548841
I don't know how to apply the drivers so I need to learn how to do so, I have ADB set up and have Noogie, CWM and NookManager .img also.
Any other info needed i will provide
Sam
Just a quick comment:
Host mode on the Nook currently uses a lot of power.
Something like >100mA in comparison to a usual 8 mA or so.
It's not been tracked down yet.
I can get you better figures for this later.
Presumably this is for some fixed install using hard-wired power?
Renate NST said:
Presumably this is for some fixed install using hard-wired power?
Click to expand...
Click to collapse
No I'm actually just using it as it is; no hardware mods.
I have not used usb host enough to know the drain speed but while plugged in to a live ethernet yesterday, it drained seemingly quick.
This isn't a preventative issue though; my need to access the web on the nook via ethernet (no wifi dizziness) is urgent.
If i had to recharge every 10 mins e.g, this would be extremely hindering but still necessary.
Hard wiring may be desirable (maybe not if it's permanent), i haven't read any posts on it thus far.
I do have a powered hub etc if applicable, i dont know if it can charge as well as hosting from the usb.
Sam
Yes, you can USB host and charge.
I'd recommend a back-powering hub.
That way, if you want to throw a USB keyboard on it too, you can.
See: http://forum.xda-developers.com/showpost.php?p=22956658&postcount=103
Great, i'll give it a try