0.4.3 Firmware Release for Photon/P1

The firmware team are pleased to inform you that the latest system firmware for the photon (0.4.3) is available from the firmware repository’s releases page.

If you are experiencing WiFi connection problems, or other unexpected behavior we recommend updating to this release.

These are the changes since the previous 0.4.2 release:


  • Half-duplex mode on Serial1 via Serial1.halfdupliex(). Thanks to @prices.
  • WiFi.connect(WIFI_CONNECT_SKIP_LISTEN) allows application firmware to skip listen mode when there are no credentials.


  • I2C methods now use micros() for timeouts rather than millis(), so I2C functions can be used in an interrupt handler. #460
  • WiFi.listen(false) to programmatically exit WiFi listening mode.
  • make is verbose by default. To silence, add -s to the command line.
  • WiFi.connect(WIFI_CONNECT_SKIP_LISTEN) starts connection but does not enter listening mode if no credentials are found.
  • Setup/Mode button now starts listening mode when WiFi is off.
  • WiFi.listen(false) can be used to exit listening mode (from an interrupt.)
  • LED flashes high-speed green when requesting an IP address via DHCP.


  • [Photon/TCPServer] - TCPClient.connected() was not returning false when the socket was asynchronously disconnected.
  • Fix time being reset on wakeup. (removed WICED RTC init code that resets to default preset time in platform_mcu_powersave_init() within photon-wiced repo.) #440
  • TCPClient.connected() was not returning false when the socket was disconnected from the other end.
  • strdup() was returning garbage #457
  • attachInterrupt() should work on all interrupt pins now except D0 & A5. Please note there are shared lines as per the following issue comment : [#443] (https://github.com/spark/firmware/issues/443#issuecomment-114389744)
  • I2C bus lockup when no slave devices are present by issuing a STOP condition after sLave send address fails.
  • spark/ events not propagated to application handlers. #481
  • sprintf calls not linking correctly. #471
  • Photon/P1 sometimes did not start without hitting reset after a cold boot.
  • Disable LTO compile for user firmware since it causes linking problems (see sprintf above.)

Hi @mdma thanks for the release,
sorry i’ m new to the photon, where can i find all the change logs between the 0.3.4 (which i belief is on the photon now) and this version?

Edit: never mind, i see now that the releases link above is showing what i wanted, i think.

Thanks for the release,
in the future the photon firmware will be split in three different libraries, like Spark Core? or will continue like development branch?


@Xtal, ALL firmware, including the (upcoming new) Core firmware are based on the new HAL (hardware abstraction layer) and will be (locally) built like the develop branch but in stable official releases (like 0.4.3). :smile:

Can the update be applied OTA or only in DFU mode?

Thanks for your answer

1 Like

@sazp96, YES and the instructions have just been added to the releases page thanks to @Dave :smiley:

1 Like

Awesome! Thanks @dave and @peekay123!


Is it possible to check what firmware version I’m currently running before I upgrade?

First search result for “photon firmware version” :smile:

1 Like

I noticed recently that itoa() now compiles without calling extern

extern "C" char* itoa(int a, char* buffer, unsigned char radix);

I didn’t see anything in the recent firmware release notes…

Is there a page somewhere that I need to watch for Particle Dev update notes?

(Also, I noticed two of my Photons hit a major behavioral roadblock, not staying connected to WiFi… It started about a week or two ago. I just got home to check it out and had to update the firmware to get everything back working correctly. Were there recent updates to the Particle Cloud that were not backward compatible for all Particle Functions?)