meisner Well … I came back here since I finally received my Argon (and other pieces) and tried to get this working, but have encountered only problems. For some reason I was not being notified of your replies.

You may want to check and make sure whatever account you’re using is providing a valid email address. I’m getting notifications on my end.

meisner Based on your last reply (and the feedback from Golioth), it feels like I wasted my money (& time) on the Particle Argon board.

It’s not necessarily wasted, but as I mentioned the previous Particle library does not work directly with the latest version of the AQW. The HPMA though should be measuring as that hasn’t changed, so I’m not sure what’s happening there. Are you using your own cable and HPMA?

The documentation you should be referring to is here: https://docs.jaredwolff.com/air-quality-wing/index.html

meisner Another detail; looking at your photo above, the orientation of the HPMA115 sensor seems to be different than the board I received. Is the one you have in the pic an old one (like a different rev)?

This was a prototype board. I ended up flipping the pinout that way no matter what orientation you plug the cable it works every time.

    jaredwolff

    jaredwolff You may want to check and make sure whatever account you’re using is providing a valid email address

    Nope…it was me! I didn’t know I had to “Follow” or subscribe to this thread. I am used to that automatically happening when you start a topic.

    jaredwolff Are you using your own cable and HPMA?

    Nope…I got the sensor and cable from you when I ordered my AQW. Invoice #: YxnD1TKa.

    I also notice the fan in the sensor never turns on. Is there some debugging I can do with the HPMA to test it separately?

    jaredwolff The documentation you should be referring to is here: https://docs.jaredwolff.com/air-quality-wing/index.html

    OK, I have come across multiple articles, so I will try to follow this one. It sounds as thought using the Zephyr kernel is the recommended way to go? I was trying other paths since it seemed like Zephyr wasn’t the only option…maybe that was my first problem?

    jaredwolff This was a prototype board. I ended up flipping the pinout that way no matter what orientation you plug the cable it works every time.

    Good…just wanted to be sure I was connecting it properly.

      meisner Nope…it was me! I didn’t know I had to “Follow” or subscribe to this thread. I am used to that automatically happening when you start a topic.

      Super weird. It should do that especially if you’re the author. I’ll have to test that on my side.

      meisner Nope…I got the sensor and cable from you when I ordered my AQW. Invoice #: YxnD1TKa.

      I also notice the fan in the sensor never turns on. Is there some debugging I can do with the HPMA to test it separately?

      Got it. Can you send me a picture of your setup to make sure I assembled the cable correctly? In order to save time on the motor, it only turns on when it takes a measurement.

      meisner OK, I have come across multiple articles, so I will try to follow this one. It sounds as thought using the Zephyr kernel is the recommended way to go? I was trying other paths since it seemed like Zephyr wasn’t the only option…maybe that was my first problem?

      It is. I just updated the documentation a bit to use the VSCode plugin. You should be able to build for the particle_argon target but I have no tested it. You do need an external programmer for it to work. (A nRF52 DK works fine)

        jaredwolff Got it. Can you send me a picture of your setup to make sure I assembled the cable correctly? In order to save time on the motor, it only turns on when it takes a measurement.


        Here’s the cable, sensor, Argon and AQW. Hopefully it shows what you needed.

        jaredwolff It is. I just updated the documentation a bit to use the VSCode plugin. You should be able to build for the particle_argon target but I have no tested it. You do need an external programmer for it to work. (A nRF52 DK works fine)

        I just placed an order for an nRF52 DK from Digikey … so when I get that, I will give it a try. In the meantime, review the page you mentioned and start assembling my Zephyr dev environment. Does the VSCode plugin also require a Zephyr cross-compile setup? I am referring to this page; https://docs.zephyrproject.org/latest/boards/arm/particle_argon/doc/index.html#programming-and-debugging

        Thanks!

          meisner Here’s the cable, sensor, Argon and AQW. Hopefully it shows what you needed.

          Looks great!

          I did notice though that you’re trying to insert the Argon on the pins. You’re not going to make a good connection here and things will likely not work the way you expect. I suggest putting female headers on the AQW if you want to do this.

          (if all the pins are soldered, disregard. I simply can’t see the underside!)

          meisner I just placed an order for an nRF52 DK from Digikey … so when I get that, I will give it a try. In the meantime, review the page you mentioned and start assembling my Zephyr dev environment. Does the VSCode plugin also require a Zephyr cross-compile setup? I am referring to this page;

          It installs everything for you including the toolchain for ARM devices. So you should be good to go!

            jaredwolff Thanks for the confirmation the cable is good. Do you think it may be related to not using the recommended dev environment like Zephyr? Based on what you mentioned before, it seems like the HMA enable is not being asserted (since the fan doesn’t come on).

            Steve

              It’s most likely because you’re not making a good connection at the Argon with the AQW. Again, I can’t see if things are soldered but generally this isn’t a way to connect the boards.

              I would also trace each pin on the cable and make sure they go to the same position on the other side.

                jaredwolff Just to put this idea to bed, it is not the quality of the connection. I did tack the underside with a minimal amount of solder on each pin to allow me to desolder it later (since I wasn’t sure how I wanted to set it up yet). I just replaced the “tacked” joints with female headers and I got the same result.

                I did visually check the cable as well and found it to a 1-to-1 match. The connectors are too small for any test probes I have, so I couldn’t check the connections electronically. But if you lay the cable flat there is a clear 1-to-1 pairing. So I can’t check if one of the connectors is crimped poorly.

                Once I get the Zephyr setup going, I will let you know how I make out.

                  I managed to find some 28gauge solid wire to use as probes and applied +5v to the HPMA…the fan starts. Then I checked the output of the AQW and it never sets pins 2 & 8 (5v & gnd) to +5v. So I am putting my money on the Zephyr dev environment.

                    meisner Just to put this idea to bed, it is not the quality of the connection. I did tack the underside with a minimal amount of solder on each pin to allow me to desolder it later (since I wasn’t sure how I wanted to set it up yet). I just replaced the “tacked” joints with female headers and I got the same result.

                    Got it!

                    meisner I did visually check the cable as well and found it to a 1-to-1 match. The connectors are too small for any test probes I have, so I couldn’t check the connections electronically. But if you lay the cable flat there is a clear 1-to-1 pairing. So I can’t check if one of the connectors is crimped poorly.

                    Ok good. Thanks for double checking.

                    meisner I managed to find some 28gauge solid wire to use as probes and applied +5v to the HPMA…the fan starts. Then I checked the output of the AQW and it never sets pins 2 & 8 (5v & gnd) to +5v. So I am putting my money on the Zephyr dev environment.

                    Sounds good. If you want to use the Argon, you should be able to use the particle_xenon target. I have not tested it but the pins that matter are the same.

                      Update after a day’s worth of investigation;

                      • Using the Particle Argon and building for the Xenon board works fine. The resulting “merged.hex” file once flashed causes the fan to spin every 60 seconds. So I assume it is working.
                      • I cannot find output anywhere though; I setup Golioth and nothing comes out there. I was wondering how this would actually work since my net connection is over the ESP32 on the Argon…and I never gave it credentials! And there is no support (as far as I could see) for the ESP32.
                      • Nothing on the SWD serial console. I began to look into adding MQTT to push the data, but don’t have the energy for that right now. Even looking into Zephyr’s support to blink an LED is overly complicated.

                      Is there any simple way to get some data out of this somewhere? I believe it’s working, but can’t be sure.

                      Oh and I had to flash the device using the SWD & Particle Debug board in an undocumented way (it was the only way that worked):

                      ~/.particle/toolchains/openocd/0.11.2-adhoc6ea4372.0/bin/openocd -f ~/.particle/toolchains/openocd/0.11.2-adhoc6ea4372.0/share/openocd/scripts/interface/cmsis-dap.cfg -f ~/.particle/toolchains/openocd/0.11.2-adhoc6ea4372.0/share/openocd/scripts/target/nrf52-particle.cfg -c “adapter_khz 1000” -c “transport select swd” -c “init” -c “reset halt” -c “nrf5 mass_erase” -c “flash write_image build/zephyr/merged.hex” -c “reset” -c “exit”

                      Sorry for the long text with the absolute paths, but I thought it may be significant.

                        Just changed the STANDARD_SENSOR_INTERVAL to 15 and rebuilt/flashed and yes, the fan comes on every 15 secs. So it is working. But for me to further develop (add MQTT and ESP32 support) I will need some debug/printk support.

                        I would love to hear any thoughts on this you may have!

                          meisner Using the Particle Argon and building for the Xenon board works fine. The resulting “merged.hex” file once flashed causes the fan to spin every 60 seconds. So I assume it is working.

                          Excellent it looks like it’s working!

                          meisner Nothing on the SWD serial console. I began to look into adding MQTT to push the data, but don’t have the energy for that right now. Even looking into Zephyr’s support to blink an LED is overly complicated.

                          You’ll need to use Segger RTT for the particle boards. There is a Makefile in the root directory which you can use to start a server and console. This works on OS X but should be similar for other platforms.

                          For programmingI use nrfjprog which you can get here: https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools (It’s essentially a wrapper for J-Link’s software)

                          By the way here’s a link to getting half of the equation for Zephyr on an Argon:

                          https://learn.adafruit.com/adding-a-wifi-co-processor-to-circuitpython-esp8266-esp32/program-particle-argon

                            jaredwolff You’ll need to use Segger RTT for the particle boards.

                            OK thanks for all the help so far Jared, but I need to take a different path here. It seems like at many turns I need to buy another piece of HW or spend a good deal of time learning something I had no interest in. My goal was air quality info to be sent via MQTT. I have gone down so many tangential paths that this is taking too much time.

                            jaredwolff By the way here’s a link to getting half of the equation for Zephyr on an Argon:

                            https://learn.adafruit.com/adding-a-wifi-co-processor-to-circuitpython-esp8266-esp32/program-particle-argon

                            Yes…even this article you cited is about replacing the stock firmware with CircuitPython … already saw this and determined, “Nope…don’t want to go down that path.”

                            Instead, I am looking at my first idea of using the AQW with an Adafruit Feather (with wifi support) and the Arduino IDE. I just need to understand the AQW interface & API better now.

                              meisner Instead, I am looking at my first idea of using the AQW with an Adafruit Feather (with wifi support) and the Arduino IDE. I just need to understand the AQW interface & API better now.

                              Got it. Sorry it’s taking longer than expected. I have a Huzzah32 here. Let me see if I can get the AQW code working on it. I’ll likely be able to get it working with Golioth fairly easily if you’re open to using something like that. They have a generous dev tier which is sufficient if you’re doing this for hobby purposes.

                                6 days later

                                OK…success!

                                I have had the AQW running (in the 3D printed enclosure you designed) for most of the day today using the HUZZAH32 and the Arduino IDE. Here’s the project:

                                https://github.com/smeisner/AirQualityWing

                                Let me know if you have any thoughts. This is the first version of the code, so improvements would be welcomed!! There is a “to do” list at the end of the README as well.

                                  2 months later

                                  Just added support for OTA upgrades, OLED display and telnet session for diags to the github project.

                                  https://github.com/smeisner/AirQualityWing

                                  …in case anyone is following along. I have modified STL files to accommodate the display as well, but haven’t uploaded them yet. Coming soon.

                                    Terms and Conditions | Privacy Policy