Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 2 years ago.
Improve this question
Is it required for a mobile phone to have a dedicated Zigbee chip in order to be a Zigbee node (coordinator/router/endnode) ?
If yes, then, I guess there should be a driver module for it as well ?
I don't know about the exact HW structure of mobile phones; in laptop we have a wlan card with its own antenna and driver; how about mobile phone ? there are separate wifi, gps and bluetooth chips with separate driver modules for each, and all sharing the same antenna ?
Thanks
Yes, even though several wireless technologies (WIFI, Bluetooth, ZigBee) can work in the same 2,4 GHz frecuency, you still need a transceiver (transmiter and receiver chip) which supports specifically this technology. In the case of ZigBee, you need an IEEE-802.15.4-compliant transceiver chip.
The idea of including a ZigBee module in one phone is quite interesting. However, I am afraid that you will not find many phones like this. May this change in the future? I have no clue.
Could you give us please more information about your Project? On these kind of projects you usually do not need your phone to be part of the ZigBee network. The coordinator could be connected to one normal PC, and you can provide access to the ZigBee network through an web application. From this application you can serve all data gathered in the network, see the status of the nodes and even send commands.
Another possibility, is to create a network bridge between two technologies, so you can plug a ZigBee chip to your phone through USB, WIFI, Bluetooth, Android port, ... But in this case, unless you find a final product, you will have to assemble some chips and write some code.
At this point in time for ZigBee support the hardware will require a separate IEEE 802.15.4 transceiver chip (802.15.4 is the underlying protocol that ZigBee uses). The most common frequency for operating ZigBee is the 2.4GHz band common to WiFi and Bluetooth, so in theory one chip and antenna could provide unified WiFi + Bluetooth + 802.15.4... but to the best of my knowledge there is nothing on the market (yet). There are however unified Bluetooth+Wifi chips (eg RaLink RT3592BC8). GPS always uses a separate antenna/chip because it operates on a different frequency band.
I've answered a similar question here:
https://stackoverflow.com/a/16985211/1752548
It's about using an SDIO Zigbee card in an android device. I haven't managed to make them work yet, but it looks promising.
Hope it helps
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
I want to exchange some data between two android phones. I realize I can do this over WiFi and Bluetooth but their range is much limited as compared to GSM. I'm wondering if I could do this directly using the GSM module.
As far as I know a SIM's function is not to provide transmission but only identification. It allows phone to authenticate with a provider and decrypt the signals sent on that network. The hardware to transmit and receive signals is there in the phone. So if a phone is not registered on the network it would still receive the signals going around it (though for the sake of efficiency it may choose not to do so if unregistered) but not understand it since it can't decrypt it.
Now in light of above, two phones that are in range of one another could directly transmit and receive with each other if programmed to do so. And the range of transmission would be quite good.
Is it possible to program an android phone to transmit data over GSM without a SIM?
Note: I realize what is being asked here may not be implementable straightaway using standard Android SDK. But this is for experimentation and DIY projects so I'm okay working with rooted phone and performing hacks.
No. It is not possible. The Radio Access Network technology, GSM or CDMA is only one part of cellular technologies. There are two main parts in cellular technologies: the Access Network (BTS or, NodeB (UMTS), RNC (UMTS), and RAN technology) and the Core Network, where, in GPRS and UMTS, there are components like Service GPRS Support Node (SGSN) and Gateway GPRS Support Node (GGSN), among other functional components.
In order to send data, first, a cell phone needs to establish a Packet Data Protocol (PDP) context, which involves data stored in the SGSN and the GGSN. For this the IMSI, stored in the SIM, and TMSI are necessary. If the device cannot establish a PDP context, it won't be able to send data.
You can read more in about UMTS Network Architecture Specifications in http://www.3gpp.org/ftp/Specs/html-info/23002.htm
In LTE, it's the same case.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 2 years ago.
Improve this question
I am working on project push to talk over wifi hotspot or wifi direct in real time, but I am unable to connect more than 10 devices through one hotspot as android given this limitation.
but I want to connect 40 - 50 devices, so can anyone tell me that how can I connect with multiple devices, So that one message can be delivered on all 50 devices in real time from one device without any router or additional hardware.
USING HOTSPOT IN THE HOUSE WITH MORE THAN 10 DEVICES
I've been searching for an answer to that for a little while. I found something that works with a little money what I end up using was some old devices that I had laying around the house. What you need is two items you need a repeater, and also an old router. if you have to use a repeater alone, it uses it in bridge mode so therefore it will not be assigning new IP addresses. The IP address are assigned by the phone in that case, so therefore you will reach its limit. on top of that, the repeater itself will take away one of the spots on your phone as one of the 10 devices. but I did is the following. I use the repeater which has a ethernet out. connected my phone to the repeater. Then I plugged in my old router into the repeater routers WAN port and connected it with a CAT5 cable to the repeater. Placed the old router into DHCP mode bring it with a new network name. Then connected all the devices to the old router, and none of them show up on the repeater or on the phones hotspot. Basically you're creating a subnet I guess. Works great and honestly for low bandwidth devices it runs fine, the speed test was almost the same as off of the repeater itself. If anything, use the high priorioty/bandwidth devices onto the hotspot directly, and then use the repeater/router for the low bandwidth stuff (smart speakers/plugs/lights)
also another tip I can say. Right now my wireless carrier gives me unlimited hotspot to all of my phones. I have multiple phones that come in and out of the house. So what I have done is place all the phones with the same exact SSID for the hotspot, and also the same exact password. So therefore the Wi-Fi repeater will join so whichever phone is in the house. Personally this has been a great replacement for internet in my house since my demand for internet is not that high. And if you have unlimited internet I guess you can use this even as a replacement for home internet. also this way it distributes the Hotspot data usage to all the different phone.
That seems like a tall order considering the limitations are more to do with the WiFi components than the OS. The only possible approach I see would be to dynamically connect/disconnect the WiFi connections and cycle through each of your 50 connections. Doing that in a timely fashion and without killing the battery in the process will probably be quite challenging.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
This is kind of wide question, I found many information about this topic.
Possible technologies
Bluetooth
GameKit iOS only?
Bluetooth P2P library, with Wi-Fi and GPS?
Wi-Fi
Wifi Direct?
Bonjour zeroconf?
Neither of these does currently have a fully-implemented peer-to-peer library, or I haven't found such.
In fact I'm not interested in any kind of gaming library (and I don't target such issues)
Questions I'd considered
Peer to peer connection in android
Android since API 14 and no support for cross-platform usage
Android Peer-to-Peer technolog
ANI (https://github.com/pocmo/Android-Network-Intents) only network intercepted
DIAL,MOVL only wi-fi
Android Peer-to-Peer Connection
C2DM/GCM requires mobile data
Can Android do peer-to-peer ad-hoc networking?
Direct Wifi only
Peer-to-Peer video from iOS to Android?
Requires network data and server
http://forum.unity3d.com/threads/141469-Wifi-Bluetooth-Multiplayer-on-iOS-and-Android
GameKit is compatible only with other GameKit
https://www.alljoyn.org/docs-and-downloads/documentation/alljoyn-android-environment-setup-guide-rev-d
Bluetooth is not well supported, and requires rooting of device.
I'd like to efficiently communicate between as many devices as possible, without need of using mobile data (3G,HS*PA,LTE) or WIFI AP as intermediate point.
And not connecting people over large distances, really just like a PAN over Bluetooth.
Thus, what features I'd require to have
Totally OFFLINE (not requiring any mobile data services or wifi AP)
Cross-platform compatibility (Android, iOS)
Mobile OS backwards compatibility (Android since 2.3, iOS since 5.1.1)
Features I'd like to have
Route optimization (OSPF, MME, ...)
Not requiring devices to authorize to network (see Android insecure BT RFCOMM)
Possible wrapping up-to tens of users (20-30 max imo, or more if possible)
If needed, network could possibly choose its own leader (server node) ?
Is there currently anything I could use for mentioned features?
I know google just came out with a cross platform api for ios and android devices to communicate with each other. I don't know what you're exactly looking for but this one lets you pass small binary payloads between Android and IOS devices. they don't have to be on the same network at all either or connected to the internet. I'll include the link just check it out.
https://developers.google.com/nearby/messages/overview
Open Garden is developing this sort of technology and implement it in their app, Firechat. Testing the app, we found that Android-to-Android connections worked only over Bluetooth, iPhone-to-iPhone worked with bluetooth or wifi, and Android-to-iPhone only works if the phones are connected to the same network.
Here's a link to their sdk which should be out soonish: https://opengarden.com/sdk
I'd look into WebRTC datachannels which has native support for both iOS and android. You can also include desktop browsers as peers with WebRTC.
Currently only OpenGarden's FireChat is one of the only major players doing this. They do provide a mesh-kit sdk which currently I think you need to Apply for.
There is another project which has been kinda of shakey, but I heard was suppose to have a release coming really soon: The Thali Project
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
So I'm currently developing a multiplayer turn-based card game. I'm done all the core game logic and UI, and just trying to figure out the best method of trying to make it multiplayer, with it connecting thru multiple phones. Right now, it seems my only option is Bluetooth, which from what I've researched is a very poor option, especially due to the fact that there's no support for it in emulators. So I'm wondering if there are any alternatives. The alternatives needs the following:
The ability to have what is essentially a "Game Lobby" where players can join "Rooms" (Similar to the ones of many other multiplayer games such as Call of Duty)
Supports API level 8 and above
Connects up to a maximum of 6 players
Does not require the Internet in order the play (This is the most important one)
Does not require any payment in my part (No servers)
Preferably easy to test on emulators
I've also considered direct-WIFI, but it requires API 14, which makes the game unavailable to over half the Android market.
Also, if there isn't any other option, is there an SDK or tutorial for multiplayer Bluetooth turn-based games? And is it even possible to have the ability to have "Game Lobbies" using bluetooth without the devices being paired?
Using Bluetooth fits your list of requirements, and I don't see any other way short of wifi which you ruled out.
As far as I know the Bluetooth communications must be implemented using a client-server model. For example one player must start the game, he will host your Game Lobby, and the other players can connect to it. The host probably also want to play, so you have to implement it in a way that the main "game engine" can communicate with two kinds of players: remote over Bluetooth, and local (the host himself). This is probably a bit tricky but doable.
I'm not sure if there is a limit on the number of active Bluetooth connections. 3 devices at the same time worked fine for me on a pretty old phone (API version 4). However, battery ran out much faster.
About the pairing... The devices I worked with (not phones) were using Bluetooth in server mode, and I had to pair with all of them to use. By the same logic, I think the players will all have to pair with the server (the phone that starts the game).
Given your requirements, I'd say your options are Bluetooth and Wi-Fi Direct. Neither should be easy/supported by emulators (never tried Wi-Fi Direct).
It should be noted that bluetooth needs a master device, that connects up to 7 remote devices. Wi-Fi direct is to my knowledgeable a more decentralized approach (what if the master decides to leave the game?).
Both approaches allow to retrieve discoverable devices. Might be worth considering a hybrid approach, where all devices with Android 4 use Wi-Fi Direct. Older devices also use Wi-Fi direct by connecting, via Bluetooth, to a newer phone that relays the packets.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Has anyone tried to make Android and Arduino communicate with each other?
I found a couple of projects online:
Amarino
Android-Arduino
What do you guys suggest is the best way to make those two communicate?
Either build a serial cable for your Android phone, like this one for the G1,
http://www.instructables.com/id/Android-G1-Serial-To-Arduino/.
Or add a Bluetooth module to your Arduino,
or use an Ethernet-shield for your Arduino and connect via TCP/IP.
Which one to use depends on your project and your budget. I don't know if the serial cable option exists for phones other than the G1. The Bluetooth module has the advantage of beeing wireless for both, the Arduino and the phone, and using the Ethernet-shield you could make the Arduino worldwide accessible by using port-forwarding on your firewall.
I've been working with Amarino since they started and I haven't had a problem since. However I have no experience with other projects since I have only worked with one.
These are my two favorite opensource devices though. Way to go with not joining the iPhone band wagon. It really pleases me when there is someone who takes the initiative to go far and beyond, because it shows that your thinking about the long run. Most people don't.
A solution to this is to make the Arduino act as USB host and have it talk the Android Debug Bridge (ADB) protocol. This works with any stock, unrooted Android device. More information here:
code.google.com/p/microbridge
Your options seem to boil down to connecting the two using a serial interface, or via Bluetooth (I'm guessing you'll either need a Bluetooth shield or something similar). There are many resources on the Internet dealing with setting up Arduinos with both of these.
You may also be able to set up some sort of basic server on the Arduino and be able to interface the phone to it via a console, or through a specially defined interface on the phone, or even a web based interface. There seem to be a fair few robot designs being controlled by Android/Arduino maybe have a look at these.
Without some more ideas about what you intend to do once they're linked it's difficult to be more specific, although if you root your Android phone you will be able to install a cut down version of Debian on it, and then you will be able to apt-get install various packages. With this in mind, there becomes little difference between connecting your Arduino to a computer and connecting it to your Android phone.
[EDIT]: If nothing else you could make an Arduino based one of these: Android Controlled Statue.
I heard someone talking about this before and they were trying to do it via USB but they stated the problem with it was Android does not fully support USB Host. If that is the only issue it seems like it should be easy enough to port over the USB host drivers?!?! Maybe I am simplifying it to much.
I liked Nikolaus answer.
I think the best way to connect is writing a TCP/IP server in the Arduino (Example can be found easily on the internet), and using or the Ethernet Shield (~10U$S) or the Wifi Shield(~10U$S). The TCP/IP server for both solutions uses the same code, the only difference is the INIT.
Mobility: If you need you Arduino to be on the move, buy the Wifi shield.
Static: IF you are static, and only want to control from the Android phone, use the ETH shield (Lower cost).
Adrian