Thinking of performing a hardware mod for USB hosted microsd/bluetooth(Kindle Fire)

Search This thread

aaricchavez

Senior Member
Aug 9, 2010
206
105
Tampa
Ok, so i'm ordering a replacement digitizer and I figure this would be a good time to try this out.

As you all know, we Kindle Fire owners have neither expandable storage or bluetooth. Hashcode's new 3.0 kernel has the proper kernel modules/support for USB hosting. Instead of having to plug things in every time I need/want extra storage I figure that i'll try and hook up the stuff inside.

So here's what I figure i'll do when I get all the materials:

I already have a mini bluetooth USB dongle that i've disassembled.
aphfg0.jpg


And i'll be getting a mini USB microsd adapter that I can tear apart down to the same type of thing as the bluetooth dongle.
200g30m.jpg


Now, the easy part is finding space to put them, there are a few gaps/spaces that I found for the bluetooth dongle, and placing the microsd adapter should be just as easy.
The hard part is getting the wiring all wired up on the inside, and this is where I need advice/input. Trying to solder the wires to the pins on the charge/USB port would be too hard and risky since they're so close.
35ktt9u.jpg


I took apart a mini-b USB cable to use the pins to try and hook them up like that some way, but I don't have everything I need yet, so it's just a thought.
2zstwdh.jpg


Ideas, advice, thoughts and/or comments?

Also, I will be documenting what i'm doing so that I can post a tutorial if I succeed.

I've also posted this in the Kindle Fire general forums. http://xdaforums.com/showthread.php?p=25212300
 

Entropy512

Senior Recognized Developer
Aug 31, 2007
14,088
25,086
Owego, NY
Main problem with the SD adapter is that many USB SD readers behave badly if you insert the SD when the adapter is live - you need to insert the SD THEN plug the reader into a PC.
 
  • Like
Reactions: aaricchavez

aaricchavez

Senior Member
Aug 9, 2010
206
105
Tampa
Main problem with the SD adapter is that many USB SD readers behave badly if you insert the SD when the adapter is live - you need to insert the SD THEN plug the reader into a PC.
Hmmm, thanks for bringing that up, I didn't think of that. I'll have to see about putting a small switch in somewhere if I run into that issue.
 
Last edited:

AraKs

Member
Jul 22, 2010
14
6
Have you looked for another USB pinout on the board?
There might be one, if you can post an hi-res picture of the PCB I can try to find something useful :)
 
  • Like
Reactions: aaricchavez

aaricchavez

Senior Member
Aug 9, 2010
206
105
Tampa
Have you looked for another USB pinout on the board?
There might be one, if you can post an hi-res picture of the PCB I can try to find something useful :)
I was going to try and do that myself, but I couldn't find anything. Right now I ended up scraping off some of the black plastic around the pins at the point that they're going up and i'm trying to solder them alternating the top and bottom.
If you can find other places though that would be great. It might help me out, and it would def help others out if I succeed and write a tutorial.

Here are some hi-res shots from ifixit, unfortunately my real camera has a broken lens at the moment.

http://guide-images.ifixit.net/igi/BWbx2gTOKoo2SInC.huge
http://guide-images.ifixit.net/igi/SejZs5a65UTRcAYv.huge
 

scidon37

Senior Member
Feb 20, 2011
304
134
There's something I don't understand here; won't doing this render the USB port unusable? Don't you need a hub if connecting more than one USB device? Can the USB port provide enough power for these additional devices?

Sent from my SGH-I777 using Tapatalk 2
 
  • Like
Reactions: aaricchavez

aaricchavez

Senior Member
Aug 9, 2010
206
105
Tampa
There's something I don't understand here; won't doing this render the USB port unusable? Don't you need a hub if connecting more than one USB device? Can the USB port provide enough power for these additional devices?

Sent from my SGH-I777 using Tapatalk 2
You need the USB hub for power from what I understand. The microsd adapter doesn't require any power and i'm not sure how much the bluetooth takes, but since the other takes none it might work out. If they don't work together then it doesn't really matter to me cause I don't need bluetooth.
Also, about it making the USB port unusable, yes and no. If you look at this pinout diagram here http://www.kineteka.com/microusb-b.aspx you'll see that there are 5 pins. On a USB cable only 4 are used. On a USB otg cable pins 4 and 5 ar econnected telling the device that it's a host and not a slave. When pins 4 and 5 are connected are connected USB will not work at all(So no adb or file transfers, etc.) because the cable is being told it's a host device. Once those two wires are separated then USB will work again because it will see itself as a slave device.
 
Last edited:

AraKs

Member
Jul 22, 2010
14
6
I searched info trought the TI OMAP 4430 documentation about the USB implementation.

(i have to "hide" the link or i won't be able to post!)

Here you can find a block diagram of a reference USB implementation:
h_t_t_p://w!w!w.ti.com/pdfs /wtbu/OMAP4430_ES2.x_DM_Public_Book_V_D .pdf
Section
A.4.4.2 USBA0 PHY Implementation Example

Also, Section
2.1 Terminal Assignments
Shows the pinout of the processor

Table
Table 2-1. Ball Characteristics
Shows the chip connections

The document lists also USB0, USB1 and USB2 but i can only see ball pinouts for "usba0_*" and anything like "usba1_*" or "usba2_*".

So i think that there's only one USB connection and you'll have to solder a USB HUB somewhere between the CPU and the USB connector. :confused:
 
  • Like
Reactions: aaricchavez

aaricchavez

Senior Member
Aug 9, 2010
206
105
Tampa
I searched info trought the TI OMAP 4430 documentation about the USB implementation.

(i have to "hide" the link or i won't be able to post!)

Here you can find a block diagram of a reference USB implementation:
h_t_t_p://w!w!w.ti.com/pdfs /wtbu/OMAP4430_ES2.x_DM_Public_Book_V_D .pdf
Section
A.4.4.2 USBA0 PHY Implementation Example

Also, Section
2.1 Terminal Assignments
Shows the pinout of the processor

Table
Table 2-1. Ball Characteristics
Shows the chip connections

The document lists also USB0, USB1 and USB2 but i can only see ball pinouts for "usba0_*" and anything like "usba1_*" or "usba2_*".

So i think that there's only one USB connection and you'll have to solder a USB HUB somewhere between the CPU and the USB connector. :confused:
Thanks for the help, but how am I going to solder directly to the processor?
And if I could get the correct pins anyways there would be no need to use USB I could just hook the microsd up directly since the 4430 already has those.
If there was a data sheet somewhere out there for this specific board something like what you're suggesting might be possible, but it's not really the way it is now.
And i've never used USB host capabilities before, but from the videos i've watched people on other devices don't use a hub unless they hook up more than one device.
 
Last edited:

AraKs

Member
Jul 22, 2010
14
6
I see. You are right!

Anyway, i came up with another solution for the bluetooth connectivity: it requires a bit of soldering and a couple of kernel modules (or a custom-built kernel).

You can solder some wires from the serial port of the kindle fire:
http://xdaforums.com/showthread.php?t=1525439

to a UART bluetooth module:
h_ttp://w_w.tdvdesign(dot)com/BluetoothModule/

Then write a script the brings up the bluetooth interface at boot.
In Linux should be feasible, in Android i don't know... maybe there's a praticular framework that needs specific drivers...

---------- Post added at 04:53 PM ---------- Previous post was at 04:23 PM ----------

Enable kernel bluetooth+UART HCI:
ht_tp://docs.blackfin.uclinux(dot)org/doku.php?id=bluetooth_over_uart
 
  • Like
Reactions: aaricchavez

aaricchavez

Senior Member
Aug 9, 2010
206
105
Tampa
I see. You are right!

Anyway, i came up with another solution for the bluetooth connectivity: it requires a bit of soldering and a couple of kernel modules (or a custom-built kernel).

You can solder some wires from the serial port of the kindle fire:
http://xdaforums.com/showthread.php?t=1525439

to a UART bluetooth module:
h_ttp://w_w.tdvdesign(dot)com/BluetoothModule/

Then write a script the brings up the bluetooth interface at boot.
In Linux should be feasible, in Android i don't know... maybe there's a praticular framework that needs specific drivers...

---------- Post added at 04:53 PM ---------- Previous post was at 04:23 PM ----------

Enable kernel bluetooth+UART HCI:
ht_tp://docs.blackfin.uclinux(dot)org/doku.php?id=bluetooth_over_uart
**Disregard**This could help with bluetooth if I can't get USB host to work, but that still leaves no solution for the sdcard, which is my primary concern. I've actually gotten all the wires soldered onto the correct pins on the usb port, but I can't get USB host to work for any device, with or without the correct modules.**Disregard**

You got me thinking though, I could probably add a UART sdcard and GPS module on like that. Awesomeness, thanks for the idea. I'll try that out if I can't get USB host to work.
 
Last edited:

AraKs

Member
Jul 22, 2010
14
6
You got me thinking though, I could probably add a UART sdcard and GPS module on like that. Awesomeness, thanks for the idea. I'll try that out if I can't get USB host to work.

I've also seen a lot of hardware mods that connected sdcards to gpio lines. That could be an option too.

For the sdcard over UART it's possible, but i'm concerned about the performances... :confused:
At 115200bps baud rate you get 14.0625KBps!!! :(
 
  • Like
Reactions: aaricchavez

aaricchavez

Senior Member
Aug 9, 2010
206
105
Tampa
I've also seen a lot of hardware mods that connected sdcards to gpio lines. That could be an option too.

For the sdcard over UART it's possible, but i'm concerned about the performances... :confused:
At 115200bps baud rate you get 14.0625KBps!!! :(
True, true. You seem to have more experience then I do at this. I'll prob buy a GPS UART module and do that. I have the wires soldered onto the USB pins on my Kindle, but I haven't had time to do anything more then that yet.
 

AraKs

Member
Jul 22, 2010
14
6
Thank you :)
A GPS module will be very useful.
A 7" tab it's portable enough to be carried around and used with a simple car mount...
I'll look for the needed kernel modules asap ;)

Sent from my Nexus S using XDA
 
  • Like
Reactions: aaricchavez

Deehee3

Member
Feb 28, 2011
21
1
I don't really understand why using the usb-port should be a Problem. Just solder your what-ever-you-want-device to the original usb pinout, it's big enough. Solder a rly small switch (taken from an old mobile Phone for example) between pin 4 and 5 to change host and normal mode. Finally, if u need more power there of course is a battery inside the Kindle, get it from there ;)
I'll receive my Kindle in a few days i hope (u can't buy it regularly in germany...), will play a bit with this stuff :)
 

aaricchavez

Senior Member
Aug 9, 2010
206
105
Tampa
I don't really understand why using the usb-port should be a Problem. Just solder your what-ever-you-want-device to the original usb pinout, it's big enough. Solder a rly small switch (taken from an old mobile Phone for example) between pin 4 and 5 to change host and normal mode. Finally, if u need more power there of course is a battery inside the Kindle, get it from there ;)
I'll receive my Kindle in a few days i hope (u can't buy it regularly in germany...), will play a bit with this stuff :)
I've already got the wires soldered to the pins, I just wasn't able to get USB host working. And there's no room for a switch right on the pins, but I thought of a good solution. Reed switches!

Other thread was created here, just want to keep all the threads up to date: http://xdaforums.com/showthread.php?t=1632277

The UART modules are only an idea, the main problem with going that direction instead of USB host is the drivers the modules would need(They all usually come with generic ones, but they would need to be customized for Android). I have very limited code/coding knowledge so I would need alot of help or soeone to do that part completely. I was going to pm Hashcode for help if I decided to try out the UART modules. Also, i'm unsure if more than one module can be used at the same time.

Like I just posted in the thread i'm still waiting on some stuff to arrive to actually get started on the USB host attempt. I have the wires soldered to the USB/Charge port pins, but since I don't have the microsd adapter or any more spare cords to rip apart I can't go further. I ordered about 10 different mini microsd adapters to take apart and see which works out the best.

Other people have USB host working, so shouldn't be difficult. I've just never used USB host before so i'm not real sure of what to expect.
The only downside is that there needs to be a switch of some sort somewhere to disable USB host so that adb/storage will work. I'm trying to think of something a little more elegant that having a huge hole in the case with a switch protruding out of the side. I'm going to go searching for some solutions and a super small switch.

All the UART GPS modules I found when searching "uart gps module" on Google are mostly from India and are between $30-50ish, the receivers look to be about the size of a quarter.

*http://robokits.co.in/shop/index.php?main_page=product_info&products_id=289

*http://robosapiensindia.com/robomar...n=com_virtuemart&Itemid=64&vmcchk=1&Itemid=64

*http://robosapiensindia.com/robosap...ategory_id=27&option=com_virtuemart&Itemid=64

I decided to look on Sparkfun and adafruit and i'm glad I did, it looks like they both have some modules, but I haven't looked around and dug through them yet.

*http://www.sparkfun.com/categories/4

*http://www.adafruit.com/category/35_58

All the optimism aside i'm not all too sure that we could get the GPS UART module to work. From what I see (First picture: http://xdaforums.com/showthread.php?t=1471813) the UART output that Hashcode put into use only has two GNDs a TX and RX. The modules that I found all look like they need 8 connections. Adafruit has a nice pic of the connections labeled here: http://www.adafruit.com/products/746


If you're talking about microsd UART modules, as mentioned in the thread I created, someone made the point that it wouldn't make much sense because speeds would be way too low.

I hate to double post, but I found the perfect solution for the switch. A reed switch or two plus a small magnet will work wonders :D

http://www.sparkfun.com/products/8642

Edit: Here are the switches that I am buying, they're the cheapest spdt reed switches I could find: http://www.newark.com/hamlin/mdrr-dt-15-20-f/switch-reed-spdt-co-1-5a-175vdc/dp/24C6463

This will allow USB host to be activated constantly and then deactivated easily with a neodymium magnet to use adb, USB storage and whatnot.

I'm pleased that I found such an elegant solution, no need to mess up the housing to put in a switch :D
 

Top Liked Posts

  • There are no posts matching your filters.
  • 1
    Main problem with the SD adapter is that many USB SD readers behave badly if you insert the SD when the adapter is live - you need to insert the SD THEN plug the reader into a PC.
    1
    Have you looked for another USB pinout on the board?
    There might be one, if you can post an hi-res picture of the PCB I can try to find something useful :)
    1
    There's something I don't understand here; won't doing this render the USB port unusable? Don't you need a hub if connecting more than one USB device? Can the USB port provide enough power for these additional devices?

    Sent from my SGH-I777 using Tapatalk 2
    1
    I searched info trought the TI OMAP 4430 documentation about the USB implementation.

    (i have to "hide" the link or i won't be able to post!)

    Here you can find a block diagram of a reference USB implementation:
    h_t_t_p://w!w!w.ti.com/pdfs /wtbu/OMAP4430_ES2.x_DM_Public_Book_V_D .pdf
    Section
    A.4.4.2 USBA0 PHY Implementation Example

    Also, Section
    2.1 Terminal Assignments
    Shows the pinout of the processor

    Table
    Table 2-1. Ball Characteristics
    Shows the chip connections

    The document lists also USB0, USB1 and USB2 but i can only see ball pinouts for "usba0_*" and anything like "usba1_*" or "usba2_*".

    So i think that there's only one USB connection and you'll have to solder a USB HUB somewhere between the CPU and the USB connector. :confused:
    1
    I see. You are right!

    Anyway, i came up with another solution for the bluetooth connectivity: it requires a bit of soldering and a couple of kernel modules (or a custom-built kernel).

    You can solder some wires from the serial port of the kindle fire:
    http://xdaforums.com/showthread.php?t=1525439

    to a UART bluetooth module:
    h_ttp://w_w.tdvdesign(dot)com/BluetoothModule/

    Then write a script the brings up the bluetooth interface at boot.
    In Linux should be feasible, in Android i don't know... maybe there's a praticular framework that needs specific drivers...

    ---------- Post added at 04:53 PM ---------- Previous post was at 04:23 PM ----------

    Enable kernel bluetooth+UART HCI:
    ht_tp://docs.blackfin.uclinux(dot)org/doku.php?id=bluetooth_over_uart