P2 2.4GHz Emissions in FCC test


I'm using P2 with ethernet connectivity only. (Switch off WiFi completely) But a 2.4 GHz emission appears after 10 mins FCC certification test. I set the firmware to Semi-Automatic mode, switch off WiFi and BT, enable Ethernet, and connect to ParticleIO. It looks like the WiFi is off. And the 2.4GHz emission is lower than WiFi transmission power. Does anyone know if there's any 2.4GHz emission source on P2? Or it's a firmware issue? Or the P2 module limitation?

Really appreciate if anyone can help.

Can you provide a bit more detail about the firmware you're running?

Some more content right off the bat:

  • There is no source on the P2 that operates at that high a frequency other than the BT or WiFi radios.
  • We suspect that your FW may not actually be disabling both radios, so we'd like to understand how your firmware is running.
  • You should be able to see which radio is the source by connecting to either U.FL port; that should help you narrow things down.
1 Like


Thank you for your rapid reply. Please find the code as following. Could you advise if the WiFi and BT is off completely?

I'm using DeviceOS 5.3.0. And use Semi-auto mode:

SYSTEM_THREAD(ENABLED); // Enable Multithreads.

And here's the code how I switch off the wifi in setup() function:




delay(500);   //wait until Ethernet module is on

@rickkas7 can you take a quick look?

Can you get a USB serial log with trace logging enabled? It might provide useful information about what's happening around that time. It should also show if everything is shut down properly.

SerialLogHandler logHandler(LOG_LEVEL_TRACE);

When you are testing in the chamber, are you actually connected to Ethernet, or are you just in attempting to connect by Ethernet mode?

Are there Wi-Fi credentials on the device? If not, does the device go into listening mode (blinking dark blue). If it does, can you try without credentials?

1 Like

Hi rickkas7,

Thanks for you reply.

When we test it in the chamber, the device is not connected to Ethernet. It's just standalone and attempting to connect by Ethernet mode.

I cannot confirm if there's WIFI credential in the test P2 device at the moment but I'm sure it's not go into listening mode. Can I ask if the WiFi credential will enable the WiFi automatically in the low layer?

Meantime I've tested another P2 device with LOG_LEVEL_TRACE, as I cannot change the test device in the chamber today. And I have the following logs. Could you please confirm if the WiFi/BT is off according to the log. I'm not sure what is Interface 3&4 and what is power state 1&2. I guess the Netif en2 is the Ethernet interface?

5 [system.nm] INFO: State changed: NONE -> DISABLED
0000001245 [system.nm] TRACE: Interface 4 power state: 1
0000001266 [system.nm] TRACE: Interface 3 power state: 2
0000001311 [comm] INFO: channel inited
0000001453 [system.nm] TRACE: Request to power off the interface
0000001495 [system.nm] TRACE: Request to power off the interface
0000001690 [system.nm] TRACE: Updated file: /sys/network.dat
0000001722 [system.nm] TRACE: Request to power off the interface
0000001777 [net.en] TRACE: Closed MACRAW socket
0000001796 [system.nm] TRACE: Interface 3 power state changed: 1
0000001921 [system.nm] TRACE: Request to power on the interface
0000001956 [system.nm] TRACE: Interface 3 power state changed: 2
0000001983 [system.nm] INFO: State changed: DISABLED -> IFACE_DOWN
0000002012 [system.nm] INFO: State changed: IFACE_DOWN -> IFACE_REQUEST_UP
0000002043 [net.ifapi] INFO: Netif en2 state UP
0000002188 [net.en] TRACE: Closed MACRAW socket
0000002232 [net.en] TRACE: Opened MACRAW socket, err = 0
0000002256 [system.nm] INFO: State changed: IFACE_REQUEST_UP -> IFACE_UP
0000002292 [net.en] INFO: Link up
0000002293 [net.ifapi] INFO: Netif en2 link UP, profile=NONE
0000002298 [net.ifapi] TRACE: Netif en2 ipv4 configuration changed
0000002302 [hal] INFO: DNS server list changed
0000002303 [system.nm] INFO: State changed: IFACE_UP -> IFACE_LINK_UP
0000002306 [system.nm] INFO: State changed: IFACE_LINK_UP -> IP_CONFIGURED
0000002598 [system] INFO: Cloud: connecting
0000002973 [system] INFO: Read Server Address = type:1,domain:$id.udp.particle.io
0000003174 [system] INFO: Loaded cloud server address and port from session data
0000003205 [system] TRACE: Address type: 1
0000003222 [system] TRACE: Cloud socket=0, family=2, type=2, protocol=17
0000003354 [system] INFO: Cloud socket=0, connecting to
0000003453 [system] TRACE: Cloud socket=0, connected to
0000003591 [system] TRACE: Updating cloud keepalive for AF_INET: 25000 -> 25000
0000003695 [system] TRACE: Applying new keepalive interval now
0000003860 [system] INFO: Cloud socket connected
0000003878 [system] INFO: Starting handshake: presense_announce=0
0000003902 [comm.protocol.handshake] INFO: Establish secure connection
0000004009 [comm.dtls] INFO: session has 0 uses
0000004138 [comm.dtls] INFO: (CMPL,RENEG,NO_SESS,ERR) restoreStatus=0
0000004167 [comm.dtls] INFO: out_ctr 0,1,0,0,0,0,0,205, next_coap_id=cf3
0000004195 [comm.dtls] INFO: restored session from persisted session data. next_msg_id=3315
0000004232 [comm.dtls] INFO: session cmd (CLS,DIS,MOV,LOD,SAV): 2
0000004361 [hal] TRACE: Abort: 00000800
0000004416 [hal] TRACE: Abort: 00000001
0000004439 [hal] TRACE: Abort: 00000001
0000004463 [hal] TRACE: Abort: 00000001
0000007742 [hal] TRACE: Abort: 00000800
0000008415 [comm.protocol.handshake] INFO: Skipping HELLO message
0000008455 [comm.coap] TRACE: Sending CoAP message
0000008485 [comm.coap] TRACE: CON 0.00 size=4 token= id=3316
0000008546 [system] INFO: cloud connected from existing session.
0000008845 [comm.coap] TRACE: Sending CoAP message
0000008874 [comm.coap] TRACE: CON POST /E/particle/device/updates/enabled size=44 token= id=3317
0000009055 [comm.coap] TRACE: Sending CoAP message
0000009224 [comm.coap] TRACE: CON POST /E/particle/device/updates/forced size=44 token= id=3318
0000009295 [system] INFO: Sending application DESCRIBE
0000009358 [comm.protocol] INFO: Checksum has not changed; not sending application DESCRIBE
0000009412 [system] INFO: Sending subscriptions
0000009439 [comm.protocol] INFO: Checksum has not changed; not sending subscriptions
0000009485 [system] TRACE: Waiting until all handshake messages are processed by the protocol layer
0000009590 [comm.dtls] INFO: session cmd (CLS,DIS,MOV,LOD,SAV): 4
0000009904 [comm.coap] TRACE: Received CoAP message
0000009937 [comm.coap] TRACE: ACK 0.00 size=4 token= id=3316
0000013661 [comm.coap] TRACE: Retransmitting CoAP message; ID: 3317; attempt 1 of 3
0000013999 [comm.coap] TRACE: Sending CoAP message
0000014153 [comm.coap] TRACE: CON POST /E/particle/device/updates/enabled size=44 token= id=3317
0000014548 [comm.coap] TRACE: Received CoAP message
0000014581 [comm.coap] TRACE: ACK 0.00 size=4 token= id=3317
0000014615 [comm.coap] TRACE: Retransmitting CoAP message; ID: 3318; attempt 1 of 3
0000014671 [comm.coap] TRACE: Sending CoAP message
0000014699 [comm.coap] TRACE: CON POST /E/particle/device/updates/forced size=44 token= id=3318
0000015585 [comm.coap] TRACE: Received CoAP message
0000015709 [comm.coap] TRACE: CON POST /E/particle/device/updates/pending size=47 token=01 id=37808
0000016041 [comm.coap] TRACE: Sending CoAP message
0000016071 [comm.coap] TRACE: ACK 0.00 size=4 token= id=37808
0000016212 [comm.coap] TRACE: Received CoAP message
0000016264 [comm.coap] TRACE: ACK 0.00 size=4 token= id=3318
0000016346 [system] INFO: All handshake messages have been processed
0000016613 [system] INFO: Cloud connected
0000016780 [comm.coap] TRACE: Sending CoAP message
0000016877 [comm.coap] TRACE: CON POST /E/deviceinfo size=518 token= id=3319
0000017310 [comm.coap] TRACE: Received CoAP message
0000017429 [comm.coap] TRACE: ACK 0.00 size=4 token= id=3319
0000042637 [comm.coap] TRACE: Sending CoAP message
0000042850 [comm.coap] TRACE: CON 0.00 size=4 token= id=3320
0000043336 [comm.coap] TRACE: Received CoAP message
0000043643 [comm.coap] TRACE: ACK 0.00 size=4 token= id=3320

The device is communicating over Ethernet here INFO: Netif en2 state UP

Are you able to see the power draw on the device?


I cannot see the power draw as the P2 is integrated on our PCB board.

Can I ask if the WiFi enables when have WIFI credentials saved in P2?

Many thanks

My theory is that after 10 minutes of failing to connect via Ethernet, because you don't have an Ethernet cable connected during your test, the network stack is reset, and when it does, it's reverting to Wi-Fi. The second part of the theory is that if there are no Wi-Fi credentials on the device, it might not try to connect, and therefore not enable the Wi-Fi module.

I have not verified that this is actually happening, it's only a theory.

1 Like

Hi Rickkas7

Thanks for you reply. You theory is correct and very helpful!

The saved WiFi Credentials in P2 enables the WiFi in 5 mins after the network disconnection. After I clear the WiFi Credential, the WiFi stays OFF.

Many thanks


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.