WiFi Direct with Photon


No progress to report so far.


Where might we find some info on how to implement this ourselves? Broadcasting a signal couldn’t be that impossibly hard…

I think two photons connected directly with rx/tx would be a cool wifi boosting device. one connects to a signal, relays it to the other, and the other device broadcasts wifi. It may be slow but I cant think of a system that is cheaper and would use less power…


Here’s some pointers to get you started if you want to hack on this:

  • download the WICED SDK from broadcom
  • implement the new AP functionality in the HAL by exposing a suitable interface
  • multiplex the networking functionality in system/src/system_network.cpp so that the device can support multiple network implementations (the network implementation is selected by the network_interface_t value.)
  • implement the new AP network in the system layer that builds on the new AP functions in the HAL

The TCP/UDP sockets in Wiring already have a placeholder for the network they should bind to. (That part I have already done in preparation for AP mode.)

Getting something working just for you won’t take long at all. Although going from something hacked together to something production quality I expect would take considerably longer. If you do build something that is production-quality we are happy to take pull-requests to our repo! :gift:

What will take time is integrating it with the rest of the system, making it play well with the SoftAP setup, covering all the use cases and corner cases, providing an evolvable API in system firmware, providing a clean, simple API in the wiring layer, testing and documentation.

Quite a bit! Please don’t think I’m being derisive, I just hope to convey there’s a lot more that goes into producing production-quality software than just making it work. :smile:

Good luck with your efforts on this, I hope my pointers help you get started and you get something working.

Multi device talking - possible?

@mdma, a related topic to that of WiFi Direct is whether Photons could be configured to implement distributed functionality with the IoTivity.org Arduino library. IoTivity is a middleware that runs atop an OS/RTOS/loop to bring a common API for device discovery and interaction. I think it would be an interesting advance if IoTivity protocols could run on Photons, using CoAP likely. This interaction would not involve the cloud, and appears to be possible via either peer-to-peer or a local router.

The Arduino code in IoTivity requires the Arduino IDE, supports Arduino ATMega and Due currently, and requires the Ethernet Shield. It would be truly awesome if this middleware could be made to run on the Photons directly, or if the Photons could serve to connect the supported Arduino boards to WiFi networks (as sort of an immediately practical, though low-performance, WiFi shield).

Are you aware of any reason the Photon hardware or Particle Dev could not support either running IoTivity code on the Photon, or setting up the Photon to be a WiFi shield of sorts? If it could be supported, some sketch of the path forward would be helpful to ensure that any known concerns with the approach are considered up-front as much as possible.

Thank you.

Communicating between 2 photons with softAP

Direct wifi is going to be very useful for a huge community of interaction designers that are looking for a generic robust prototype solution. In conjunction with OSC integration Photon can become the standard off the shelf solution for wireless sensor networks and IoT prototyping. Anyone working on this?


Just an update - I’ve been swamped with bugfixes and urgent feature requests so this feature has not had any time from me (and it’s been prioritized after multi-threading support). Estimate timeline for release is September.


1 more vote from me for the support of wifi direct. Most of my applications are working in hybrid mode between the cloud and wifi direct. I like how it’s easy to develop applications with the Photon but without Wifi Direct, functionality will be very limited, and I won’t be able to port the hardware of my existing applications to using Photon.


I would also like Wifi Direct added to the Photon!


Some thoughts of mine:

  • The Soft AP SSID should be able to be set in code, e.g. ProductName-XXXX
  • The Photon should provide a list of SSIDs from a local scan, for the use of Soft AP/WiFi Direct to enable the Photon to ensure it’s SSID is unique (low chance of the random SSID generated to collide with another Photon but it would be nice to discount this altogether). This will also allow the Photon to dynamically discover others for WiFi Direct.


@mdma Do you have a branch of any POC hacked together even? I’m looking to have my Photon work as a wide-open unsecured AP just for experiments, and would rather not start from the beginning if I don’t need to!


Sorry, I’ve not started on this, so no branch to speak of far. This will happen after multithreading is added to the photon and Core support for 0.4.x


@mdma Hey there. Any new updates or time frame for the WiFi Direct feature? Sorry if I’m bugging you, but it would be great for our product.
An alternative would be the photon creating an AP that other devices can connect to (which we cannot do). I’m not talking about the softAP used in listening mode, we need one that would be usable in our application’s code.
Basically we need any form of communication with other devices with no connection to the Particle cloud (and no router).


@mdma, Just wondering if you have an updated time line for this feature?


This would be a key new feature with so many applications. I wish somebody takes it more seriously!


I doubt it’s because nobody takes it seriously, but rather because there’s a lot more going which requires a fair bit of attention.


Any idea on a schedule for this? The ability to run the photon as an access point so other devices can connect would be wonderful for lightweight projects, especially with multiple photons.


This, along with IPv6 support s high on our priority list for 0.5.0 release, which will be at the latest end of Q1.

Photon to electron communication?

IPv6, Great!


I would love to see this feature implemented soon :smile:


This would very useful for applications that are mobile! Would love to see this in the near future

Keep on trucking particle team :slight_smile: