Hello,

Question regarding the AQW demo project at https://github.com/circuitdojo/air-quality-wing-zephyr-demo. Upon cloning this project, and invoking west init, assuming I am using the same cross-compile toolchain, is this project build-able by a single command?

In other words, the AQW driver which is referenced as a separate git repo in AQW demo’s west.yml file will be built at the correct time when command to build the demo is issued?

I would like to test this out, which could save me this post to the forum. However, my instance of Zephyr and SDK are located in a different path locally compared to those expressed in the demo. Local copy of Zephyr may be at the same version, but I’m trying to avoid pulling down Zephyr RTOS sources with every example project I explore (a downloading which west init normally insists on doing), as Zephyr is nearly 3GB of sources and supporting files. Also, my toolchain variant happens to be ‘zephyr’ rather than ‘gnuarmemb’.

Due to these SDK and toolchain differences I’m not able to build Jared Wolff’s AQW demo out of the box. I’ll need to figure out a way to override the SDK and toolchain settings on a per project basis, at a shell prompt, to build and move more freely between Zephyr projects I find out in the community.

  • Ted

    tedhavelka66 In other words, the AQW driver which is referenced as a separate git repo in AQW demo’s west.yml file will be built at the correct time when command to build the demo is issued?

    Yup once initialized you can build with west build -b nrf52840dk_nrf52840 and it will compile accordingly. When you do a west update it will pull all dependencies necessary. I recommend you follow the install instructions included in that repo. (Just uploaded them)

    Cool, thank you for the lightening speed reply, and SDK configuration steps! I’ve actually stepped through the first steps up to west build -b nrf52840dk_nrf52840, and I stand corrected that west update pulls in Zephyr and SDK which I already have installed “nearby”. But again I think because I’ve tailored my bash shell env variables per earlier instructions at Zephyr’s “getting started” page I’ll need to overcome those settings.

    At present I don’t have an nrf52840 board, but just to build and see compilation succeed will give me a working example with confidence. Thank you again Jared!

      By the way, west.yml files in both AQW driver and AQW demo refer to the driver project’s “path”. The path: meh stanza looks like a key value pair. Do we need to be mindful and keep this “path” attribute or key value synchronized in the two projects, demo and driver?

      AQW demo west.yml:

        1 manifest:
        2   remotes:
        3     - name: nrfconnect
        4       url-base: https://github.com/nrfconnect
        5   projects:
        6     - name: nrf
        7       repo-path: sdk-nrf
        8       remote: nrfconnect
        9       revision: v1.6.1
       10       import: true
       11     # Drivers repository
       12     - name: air-quality-wing-drivers
       13       path: aqw
       14       revision: main
       15       url: git@github.com:circuitdojo/air-quality-wing-zephyr-drivers.git
       16       import: true
       17   self:
       18     # This repository should be cloned to 
       19     path: demo

      AQW driver west.yml:

        1 
        2 manifest:
        3   projects:
        4     # Sensirion algoritm
        5     - name: embedded-sgp
        6       path: aqw/ext/embedded-sgp
        7       revision: 4f69c0d8e2f7192aeaf0d268211b1f54af50146b
        8       url: https://github.com/Sensirion/embedded-sgp.git
        9   self:
       10     # This repository should be cloned to 
       11     path: aqw
      ```

        tedhavelka66 At present I don’t have an nrf52840 board

        Did you say you had a nRF9160 Feather or Thing Plus nRF9160? AQW will be working with both shortly.

        Good evening Jared,

        Yes, I’m working with a Sparkfun Thing Plus nRF9160 development board. I’m enjoying use of Sparkfun’s Qwic connect cables to attach alternate I2C and SPI ready sensors to this board.

        By the way, I am revamping my modest Kionix driver work to follow the “out of tree” and “separate from driver demo” structure. It’s kind of like two tiny Zephyr based projects, as you already know. I’ve just created the out-of-tree, independent driver directories and files. Am I correct that a “stand alone” driver such as AQW driver is not compile-able by itself? E.g. must be compiled by being part of some larger build?

        Out of curiosity I tried here to compile the newly restructured Kionix driver, knowing there is no int main() in its sources. cmake (or build process) errors out with the message:

        No project() command is present. The top-level CMakeLists.txt file must
        contain a literal, direct call to the project() command . . .

        Only asking for sanity’s sake. I expect to be able to compile a demo I write which follows more or less the layout of your AQW demo.

          tedhavelka66 Yes, I’m working with a Sparkfun Thing Plus nRF9160 development board. I’m enjoying use of Sparkfun’s Qwic connect cables to attach alternate I2C and SPI ready sensors to this board.

          Awesome. Thanks for your purchase. 😀

          tedhavelka66 Am I correct that a “stand alone” driver such as AQW driver is not compile-able by itself? E.g. must be compiled by being part of some larger build?

          Yup

          Terms and Conditions | Privacy Policy