Back to

New Firmware release 0.9.8

Hello everyone!

A new firmware release is available here , to update your kit you can follow this guide .

New in this release

  • External GPS support
    • Sync RTC with GPS time.
    • Support Sparkfun XA1110 as GPS source
    • Support Grove GPS (through pm-board) as GPS source
    • Support Sparkfun NEO-M8U as GPS source
  • Dynamic reading interval based on GPS speed
  • User configurable WiFi retry interval and offline schedule to save battery
  • Support for external ADSx15 ADC
  • Support for Atlas Scientific Salinity and Total Dissolved Solids metrics
  • OLED display (documentation)
    • Update OLED display support use Seeed 128x128 SH1107G (v2.1)
    • New interface wich includes: Info bar, setup screen, readings display, error reporting, monitor plot and debug log.
  • Improved RTC and sleep management
  • Debug and ouput level settings are now persistent
  • Internal SCK flash memory support (documentation)
    • Keep reading sensors whithout WiFi or sdcard
    • Save more than 2 months of readings internally
    • Batch publishing when network is available
    • Recover old readings via SCK shell
  • Allow setting custom MQTT broker and/or NTP server host address and port via console
  • More efficient shorter/faster publish with less verbose MQTT message
  • Added support for Sensirion SCD30 CO2 sensor
  • Improved new error system (documentation)
  • Improved SCK responsiveness by adjusting update loop timings
  • SCK shell interface improvements
  • Updated most of the libraries, SAM and ESP cores.


  • Fix WiFi scan not finding networks
  • Fix bug on sdcard mode that enters in ESP reset loop on some situations
  • Increase I2S initialisation time to avoid microphone ramp up period
  • Fix not retrying publish after MQTT error
  • Fix diff when RTC update happens before saving readings
  • Fix PM sensor failing to start and PM monitor mode
  • Fix error on json buffer size that messes SAM<->ESP communication
  • Minor fixes.

This update must be done in both chips SAM and ESP.

If you found any issues please help us reporting it directly in our github repository or with a comment here!



Hi @victor,

Thx for this. I’ll take a look at it in a free moment.
I understand this has also the new interval setting for the noise?


Hi Victor,

This is great work, thanks to you and everyone on the team for moving things forward.

I’ve tried just now to do the update, my green light is blinking and it does not complete. Do you have any advice to debug this situation?

UPDATE: I’m reading the page on how to edit the firmware: Edit the firmware - Smart Citizen Docs


Is there any way to get the previous SAM file?

As I’m not able to install the ESP file (trying to do it through the phone doesn’t work), and I got my SCK complety useless.

Its intended to use a laptop that has full functionality on the USB Port. I can only suggest that you try it using that method.


Sorry for the late response.
When the led is green and blinking the SCK is waiting for you to copy the UF2 firmware file to it, if for some reason it doesn’t complete, restart the process by double-clicking the reset button and copying the file again.

Hope this helps!

Hi Xlarrosag,

You can get the previous SAM file from the releases page, just scroll down to the release you need.

On the other side, the ESP update process should work, sometimes is difficult to succeed doing it with a phone, why don’t you try it with a computer, it is a lot easier. If you get stuck please give us as many information as you can about the process you followed so we can try to help you debug it. Here is the update guide in case you need it.

1 Like

Hi bron,

Sorry for the late response.
The minimal interval for recording sensors is 5 seconds, we have tried smaller intervals and things get unstable. So to be on the safe side we keep this limit.

If you want to try smaller intervals you need to modify the minimal_reading_interval variable in the Config.h file, and recompile the firmware. You can find more info on this guide.

EDIT: just fixed a typo on the code to set the new read interval, so if you compile the firmware please pull the latest commits.

1 Like

Ohhh, thanks for the idea. I took me a time to realise how to connect with a laptop…with an IP adress. Now is fully updatet and running again. I see I made a mess with the token and appears to be a new device but at least is working again. :relaxed:

I noticed that the file version.h still contains 0.9.7 as the version code; and it somehow has to match the version of esp.

something that needs checking.?

Hi Bryn,

I’m not sure what you mean, version.h files where updated on August 26 in this commit.
Maybe you need to pull the changes to your local repository?

Ok looks like my update of the clone did not work as expected, I will investigate

Can you please help out with a git command to pull the correct version ?

You should be on master branch:

git checkout master

and then pull recursively

git pull --recurse-submodules

That was a good pickup.

I had missed out on a few of the most recent changes.

It seems like Git GUI’s Remote: fetch from Origin command does not do what it seemed.

What I did to fix it: I used Git to fetch a whole new clone of the repository
Then I used ‘Beyond Compare’ windows tool to compare the contents of my working directory with the newly teched repo; and I was able to merge in all of your recent changes whilst retaining my own changes. The goal is to NOT reproduce old bugs you already fixed.
Looks like I will need to keep on doing this from time to time until my work is complete.

I will also retry the build process to see if ti works any better.