I’ve tried building for all versions for my argon.
Downloaded and installed all the required header files.
Same result on either Particle Web or Particle Workbench.

I’ve invested a lot of money and wait time for this, would love to get it built!


AirQualityWing.cpp:39:0: undefined reference to “AirQualityWing::setInterval(unsigned long)”

AirQualityWing.cpp:93:0: undefined reference to “AirQualityWing::setup(std::function<void ()>, AirQualityWingSettings_t)”

/root/.particle/toolchains/gcc-arm/9.2.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: AirQualityWing.cpp:94:0: undefined reference to “AirQualityWing::begin()”

AirQualityWing.cpp:28:0: undefined reference to “AirQualityWing::toString()”

/root/.particle/toolchains/gcc-arm/9.2.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: AirQualityWing.cpp:31:0: undefined reference to “AirQualityWing::toString()”

AirQualityWing.cpp:110:0: undefined reference to “AirQualityWing::process()”
error

AirQualityWing.cpp:19:0: undefined reference to “AirQualityWing::AirQualityWing()”


Help !!!

    jchisholm59 sorry about the trouble. I’ll get back to you tomorrow. There is some working community code as well as code for the SGP version of the board in a separate branch. Stay tuned

    jchisholm59 to answer some of your questions see below:

    And at the VERY least, shouldn’t the fan be spinning in the HPMA?

    I believe the settings are to take a sample every 10 seconds. So the fan should turn on briefly every 10 seconds. Its optimized so the fan isn’t running all the time. This helps expand its overall lifespan.

    Does this board require a battery to function?

    No it does not.

    What are you getting on the console output? You should get something like this:

    Serial monitor opened successfully:
    Air Quality Wing
    0000041193 [app] WARN: Error tvoc - no data
    0000042208 [sgp40] INFO: raw: 28277 index: 0
    0000043204 [sgp40] INFO: raw: 28729 index: 0
    0000044207 [sgp40] INFO: raw: 29016 index: 0
    0000045203 [sgp40] INFO: raw: 29233 index: 0
    0000045240 [app] INFO: {"pm25":5,"pm10":6,"temperature":20.54,"humidity":36.16}
    0000046200 [sgp40] INFO: raw: 29284 index: 0
    0000047204 [sgp40] INFO: raw: 29509 index: 0
    0000048207 [sgp40] INFO: raw: 29549 index: 0
    0000049202 [sgp40] INFO: raw: 29604 index: 0
    0000050206 [sgp40] INFO: raw: 29669 index: 0
    0000051232 [sgp40] INFO: raw: 29742 index: 0
    0000052203 [sgp40] INFO: raw: 29787 index: 0
    0000053207 [sgp40] INFO: raw: 29823 index: 0
    0000054203 [sgp40] INFO: raw: 29862 index: 0
    0000055200 [sgp40] INFO: raw: 29895 index: 0
    0000055237 [app] INFO: {"pm25":7,"pm10":8,"temperature":20.55,"humidity":36.25,"tvoc":0}

      What version of DeviceOS are you using? It may make sense to do a Cloud Flash since it will ensure your device is 100% up to snuff both system and application side. It was a nightmare getting my older Boron working and up to date on the latest.

      Also I would go to your device page and check the bottom right hand corner. There should be no entries for functions and variables. (see below) If there are, you’re running the wrong firmware.

      I would recommend that you run git log and make sure it matches mine:

      ❯ git log
      commit 5e4b97cb6031d45669bb91d20f9da1c0ddd66fd1 (HEAD -> master, github/master)
      Author: Jared Wolff <hello@jaredwolff.com>
      Date:   Sat Jan 8 22:48:21 2022 -0500
      
          Changes to work with latest library.
          
          Changed:
          * Added library as submodule
          * Updated code to use new sensors
          * Updated readme
      
      commit e2c71c2049d040551ae1619cb8936260b38ab617
      Author: Jared Wolff <hello@jaredwolff.com>
      Date:   Sat Jan 8 22:47:24 2022 -0500
      
          Updating library:
          
          * Removing old dependencies
          * Adding submodule for library

      Can you confirm it matches?

        Ahh, there was some issues with using the System.sleep command that I did not foresee. I’ve pushed a small tweak to master.

        Looks happy now!

        jaredwolff
        I’m getting absolutely nothing on the console..
        Zero, zilch.
        Tried it on two argons, they just do the normal slow blue pulse, and are visible, healthy and reachable.
        No output other than the expected flashing/ rebooting messahges.

        If I replace the Argon with a Feather Huzzah 32 built to obtain the same results with the added benefit of MQTT,
        everything works fine.

        My Argons all work as exoected with any other app.

        jaredwolff
        OK I’ll try again with a second Argon and let you know.
        I pulled your repo yesterday (Jan 12) , built, cloud flashed, and got nothing.

        OK I’ve switched Argons.
        Put the new argon on a known good air wing with a known good HPMA115 (after correcting the cable)

        Followed your latest build instructions to the letter (well except for the “Init the library submodule using git git submodule update –init –recursive” which I’m gonna dismiss as a typo, just one “git” works fine)

        Sucessfully built AIR-QUALITY-WING-CODE after selecting “argon” and my target.
        Did a Cloud Flash, the OTA flash apparerntly went as expected, with the appropriate messages appearting on console.particle.io

        Blue LED is slowly pulsing as always.
        Waited 10 minutes, pulled the power and rebooted.
        Blue LED slowly pulsing as always.

        Console reports..nothing.
        I can signal it.
        I can ping it.
        Health Check reports everything good.
        I’ve done exactly the same with 4 (four) argons.
        Same result or lack thereof.

        There are no variables or functions in the lower right of the Console page.
        Fan in HPMA never spins up.

        Don’t know what else to tell you but it just ain’t gonna fly.

        Tried every OS from 2.0.0 up to the current 3.2.0-rc-1

        Same results.

        Are there ANY reports in the wild of anyone else actually getting this working?

          jchisholm59 Are there ANY reports in the wild of anyone else actually getting this working?

          It’s working on a Boron I have here. You should, at the very least, be getting some particle monitor output with or without sensors connected.

          When you mean console, are you using the >Particle: Serial Monitor command though the command window or monitoring output on Particle’s website? If you aren’t using the Serial Monitor, let’s try that as well.

          When you do a cloud flash, does the device download the update and then start to run it? This is usually indicated by the intermittent purple flashing followed by a reconnection to the cloud. You should also see those reconnect events in Particle’s console.

          jchisholm59 Tried every OS from 2.0.0 up to the current 3.2.0-rc-1

          I would stick with 3.1 since that’s what I tested with.

            jaredwolff Thanks Jared I’ll try the serial console.
            Yes the device during Cloud flash downloads something as indicated by purple flashing and flash/reconnect messages in the Particle console.
            But having downloaded it, there is no indication that it is actually running anything.
            There are obviously some functional differences between the Boron and the Argon.

              jchisholm59 There are obviously some functional differences between the Boron and the Argon.

              It’s the same nRF52840 processor. Functionally it’s cellular vs wifi. I think there’s something funky going on with your setup or maybe you’re flashing to the wrong device? I would double confirm that the board ID you’re using to flash in the bottom right hand corner of VSCode is the same you’re trying to write to.

              Looking forward to the results with Particle Monitor.

              I did take an Argon out of service to try it on my end. It took about 4 minutes to fully update everything including the app.

              Air Quality Wing
              0000026286 [app] WARN: Error tvoc - no data
              0000027291 [sgp40] INFO: raw: 28587 index: 0
              ^[0000028291 [sgp40] INFO: raw: 29055 index: 0
              0000029291 [sgp40] INFO: raw: 29414 index: 0
              0000030291 [sgp40] INFO: raw: 29475 index: 0
              0000030322 [app] INFO: {"pm25":6,"pm10":7,"temperature":21.46,"humidity":36.40}
              0000031291 [sgp40] INFO: raw: 29786 index: 0
              0000032291 [sgp40] INFO: raw: 29843 index: 0
              0000033291 [sgp40] INFO: raw: 29919 index: 0
              0000034291 [sgp40] INFO: raw: 30122 index: 0
              0000035291 [sgp40] INFO: raw: 30147 index: 0
              0000036314 [sgp40] INFO: raw: 30184 index: 0
              0000037291 [sgp40] INFO: raw: 30229 index: 0
              0000038291 [sgp40] INFO: raw: 30281 index: 0
              0000039291 [sgp40] INFO: raw: 30324 index: 0
              0000040291 [sgp40] INFO: raw: 30365 index: 0
              0000040319 [app] INFO: {"pm25":7,"pm10":8,"temperature":21.46,"humidity":36.21,"tvoc":0}

              I would look carefully at all the steps you’re doing to make sure you’re not making any silly mistakes. I, for one, have made tons of them which lead to a similar situation.

              Another thing you can try also, is flashing a working sample with the same DeviceOS version to make sure the device is still working ok.

              Also, can you send a picture of your hardware setup?

              Well I’ll be forked.

              Lovely Nova Scotia storm last night knocked out the power and crashed my trusty Linux box.
              I fired up a backup and went through the build again on the second computer.
              Can’t see how that should make a difference but..

              It’s working !!

              Thanks for all your support.
              Now on to the second pertinent topic:

              Since my data is being held hostage by Particle.Io who are telling me that my Sandbox is about to expire but they’ll be happy to $ell me an expensive upgrade, have you had any success with writing a webhook that will sucessfully talk to a local Telegraf instance and push it’s data into InfluxDB ?

              I’ve spent counless days trying this, my local up-to-date Telegraf with the Particle plugin enabled will apparently accept the blob from Particle but never outputs any data to my InfluxDB instance.

              There are a million opinions on what a working webehook should be but none actually seem to work properly.
              I’ll try your Google Sheets idea.
              The Adafriot IO as well as an Ubidots web hook do work however.

              Cheers

              Jim

                jchisholm59 that’s great news!!!

                jchisholm59 There are a million opinions on what a working webehook should be but none actually seem to work properly.
                I’ll try your Google Sheets idea.
                The Adafriot IO as well as an Ubidots web hook do work however.

                I’m a big fan of InfluxDB. I actually wrote something up a while back on the subject. Plus, it’s Particle oriented. So that should help!

                  jaredwolff Man that write-up is awesome.
                  If I can get Particle to write directly to my InfluxDB instance I’ll be a happy camper.

                  Terms and Conditions | Privacy Policy