Photon SoftAP mode - mobile cannot obtain address

A strange “spooky action at a distance” issue…

Have a very simple, custom PCB which we solder Photons to. It just exposes some of the I/O onto connectors. There is a capacitor on the 3V3 to GND pins and as well as some others, and that is about it.

The PCB meets with the Particle ground plane recommendations.

With a constructed PCB, I place the Photon into listening mode and try to connect to it using a laptop or mobile phone. Neither client was able to connect, complaining “Connecting” as it is unable to obtain an IP address, rather than “Connected”.

The problem was consistent for a number of boards that I tested. Signal strength was a.okay, measured -30 dB.

Suspecting hardware, I took a fresh Photon out of a tray and was able to connect to it in SoftAP mode consistently. This is good and expected.

Next, I placed the same Photon onto a PCB which only had the capacitors loaded, but just holding it on carefully by hand (yeah, I know…). It consistently failed, just like the soldered boards.

This points to the PCB, but everything else works, Specifically it can connect to our AP and can transact with the Particle cloud.

Then did this experiment. Placed sticky tape over the pads on the PCB so that the Photon could not make electrical contact. Held it gently in place by holding the connector on the USB cable, not the board.

It still failed!

Next I lifted the Photon 1 mm above the PCB and so on until it eventually passed at 4 mm above the board.

Problem for us that we have gone into a pilot 100 unit batch production without testing this particular functionality until now… yikes!

Any clues as to what might be going on here? Really hoping that it can be fixed in firmware…

PS - I note this post for the record:

You said your PCB meets the ground plane recommendations, does it also adhere to the keep-out zone around the chip antenna (no copper what-so-ever)?
Can you try with a uFL antenna? This might be the easiest fix for the already manufactured boards.

@ScruffR, good to hear from you.

Can confirm that there is a rectangular keep out zone.

I will report back on the uFL antenna (will the ones that came with the Electrons be okay?)

1 Like

I’d say not really, since they are rated for lower frequencies (up to 2100MHz - WiFi is 2400MHz) and different impedance, but a quick test should be OK. If it works better with that, a propperly tuned antenna will definetly work then.

But you have to set the ext antenna in code (STARTUP()) then. This setting is stored, so you only need to set this once per device.

@UMD, any chance you can share the layout with us? I believe there is another topic regarding the P1 and layout issues. One key thing is to avoid ground loops on the board layout.

Sounds annoyingly similiar to what several users including myself have witnessed.
I ended up using the photon in a header or actually I am not using a header, but mounting the pin version directly to the board, the 2-3mm clearance made the difference in my case, although I am seeing a bit slow wifi join, which may or may not be related.

1 Like

@peekay, @mora, @scruffr - what do you guys see with one side of the PCB image below?


See the rectangular blank “keep out zone” on the left hand image… it is surrounded by the ground plane, ie we have a perfect ground loop around the keep out zone… bad, right?

I got our electronics engineer to make a cut in three places at the top of the loop.

Good news is that the RF performance improved from -50 dB to -35 dbB!

Bad news is that the “connecting” problem is still evident. So, perhaps there are other ground loops in the mix. Will continue on with research and report back.

@peekay123, layout to follow as requested.


@UMD nice pcb! The portion connecting the two plane together is probably causing the ground loop. On the bottom side, after the antenna area.

@peekay, @kennethlimcp find attached the three PDF’s of the layout - top, bottom and combined:

@UMD, can you hold the Photon slightly backwards such that the antenna is not within the pcb and see if connection works?

The loop i am referring to is here:

Given that this is just a 2 layer board, I’d be very tempted to just take a sharp knife and scrape off the loop that @kennethlimcp has highlighted on both the top and bottom of the board. I suspect this may help.

@Scruffr, @peekay123, @mora, @kennethlimcp, good news, we have solved the issue…

(@kennethlimcp I mentioned at the start of the post that I could get it to work by having the Photon 4 mm above the PCB, I think this is similar to your suggested test).

We completely removed the ground plane at the top of the keep out zone, but this change did not fix the issue.

We then made the keep out zone larger by two mm on each side, and this solved the issue. Yikes!

Here is a photo of the mods:

We will of course modify the production PCB’s moving forward. Lesson for us is to test everything

Thanks guys - you are all champions.

1 Like

I’m still curious what’s causing the issue…

I have removed the word “[SOLVED]” from the title… doing the same mods on other boards did not do the magic.

We put another person onto the case who has a physics background. He is thinking that it is a capacitance effect…

He was curious about our finding of the 4 mm lifting sorting it out and I noticed in other posts that mention was made of someone using headers and all was good, but without was bad.

More to follow…

Valiant effort by all! Seems as though there should be a " Here’s a best practice guide to designing a PCB for the Photon". Not all of us are engineers and this would have saved the OP some $.

Interesting, my keepout goes as far wide as possible, stopping just short of the pads, could maybe go 1mm more and then only access those pads from the outside, but its not alot.

I did get my old boards to work by using an external antenna, but that just reinforces that the issue is in the antenna/keepout area.

@Mora, we have definitely not fixed the problem!

It is all a bit random, I have a board with no modification that works, and the one that we modified above is still flaky.

I take onboard that this looks very much like a hardware problem, but can’t help but think, is this a firmware problem as well?

How come it can connect, but just can’t serve the address? How can it work as a client okay, but not as an Access Point?


I looked into the software part some time ago, sadly you very quickly run into the WICED wall where the sources are just not available anymore.

The calls to the WICED code all return ok, so for the photon pov everything is ok, yet the dhcp server is not giving out ips.
If you manually set your ip to for example after connecting to the wifi, you can complete the softAP setup using a webapp.

But only particle developers can see any deeper than the wiced calls to debug the issue, it does indeed seem like a issue that could be solved in software.

If someone wants to send me a board and a photon that exhibits the problem, I’ll happily look into a firmware solution.

I dont have any SMD photons atm, they were repurposed for the header based board :smile:

I will gladly send a copy of my rev1 and rev2 board assembled without photons if thats any help.