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