March 4, 2019
I've had a couple of Silicon Labs Blue Gecko Starter kits that I've been experimenting with. These were the one's I ordered a couple of weeks ago. I also got a BGM13S radio module for the board. This looks like the most likely candidate in the Silicon Labs chips. This is a module which means it has an antenna and other goodies that it really takes to make a reasonable radio (plus FCC certifications). It is also capable of 18 dBm output and claims 400 feet line of sight range. Good.
So I've been retrenching a bit over the last few days, but here's what's working.
- The empty bluetooth app. This has lots of intrastructure but minimal GATT stuff. Its an example that builds and runs out of the box. I can talk to it with the test scripts built for the Thundersense board.
- The empty bluetooth app but using the micca run-time to handle Bluetooth stack interactions. This is the same place I got to before with the Thundersense board.
- A non-radio application to handle the LED's and buttons on the base board. Everyone knows you have to get the LED's and buttons running first. They are very valuable for an embedded system. Fortunately, I also got standard output redirected to a UART output via the USB, so event tracing and all that good stuff works and can be viewed with an ordinary terminal program right on your desktop.
With a bit more work, I should be able to hook up mecate to the serial output and monitor the event traces if that looks like a benefit in testing. The interesting part of this last application is that I ported the SIO domain from the Models to Code book to run on the starter kit. So all the LED's and buttons are actually operating via the Signal I/O domain. It was a bit harder that I expected, I'm really out of practice on these types of systems these days. Also found a couple of problems in the domain, forgot about some clocks and interrupt enables, and the usual pain of trying to make things work on bare-metal.
The next step is to begin to include code to access the expansion header pins and assign other peripheral functions to them. First up will be the I2C. With I2C running off the expansion header, I can then wire up the Sparkfun Environmental board and see if I can get some measurements off the transducers.
Andrew
March 8, 2019
More good progress on proving out the hardware. I was able to get the I2C bus hooked up via the expansion header and using the simple drivers and HAL library, can read the chip ID's for both the BME280 temp/pres/rh sensor and the ADP luminosity sensor. I didn't go any further than reading the chip ID's. That proves the chips are functional and now a real driver needs to be written (later).
Emboldened by that, I wired up the anemometer to an I/O pin that I routed to the pulse counter peripheral. Again using the HAL library I'm able to read the pulse counts and using the manufacturer supplied conversion factor, compute a wind speed in real engineering units.
Next will be to look at the wind direction transducer. That will require an ADC conversion to measure the voltage. Once that is done, then I think we have reasonable assurance that the SiLabs board and the Sparkfun sensor board work together and we can go forward with them. There still remains the problem of excessive power consumption on the wind direction transducer, but I have some ideas as to how we can control power to the transducer and only turn it on when we need it.
Andrew