Sparkfun WX shield and Onion Arduino dock issues (negative values, no GPS)

Hello - I recently purchased a Weather Shield (DEV-13956) and have it connected to an Onion Omega with the Arduino dock. It is mostly working, but I’m having some issues. I am using the “Weather Shield Example” code with GPS set to SW-UART directly from the hookup guide.

  • Temp, Pressure and Humidity read negative values.

  • GPS lat/long are zero value

  • Date/Time are empty

The only thing that seems to be working correctly is wind dir, speed, etc… via the RJ-11 connectors.

Using the Onion command-line I can see there are two devices 0x40 and 0x60 on the i2c bus.

root@Omega-C22D:~# i2cdetect -y 0

0 1 2 3 4 5 6 7 8 9 a b c d e f

00: – – – – – – – – – – – – –

10: UU – – – – – – – – – – – – – – –

20: – – – – – – – – – – – – – – – –

30: – – – – – – – – – – – – – – – –

40: 40 – – – – – – – – – – – – – – –

50: – – – – – – – – – – – – – – – –

60: 60 – – – – – – – – – – – – – – –

70: – – – – – – – –

Kinda stuck on where to go from here. Thoughts?

Hi TKinNC,

Unfortunately, the Weather Shield appears to not really be compatible with the Arduino Dock for the Onion. The issue you are running into here is most likely related to the TXS0108E IC the Arduino Dock uses for level shifting between the Arduino dock and the Onion. That chip has internal pull-ups that do not play well with devices like the Weather Shield that have their own pull-up resistors.

There might be a couple of ways around this issue but I have not quite figured one out yet. What I have come up with would be to either bypass the TXS0108E or disable the pull-up resistors on the I2C lines for the SI7021 and MPL3115A2LGA8. Both solutions raise new problems, though.

If you bypass the TXS0108E, you would need to also bypass the level shifting that is switching between 5V and 3.3V logic on the I2C bus on the Weather Shield and that will most likely break the example sketch since it is looking for those devices on the ATMega328’s I2C bus. If you disable the pull-up resistors on for the two sensors and bypass the level shifting, you risk damaging them by sending them directly to the 5V logic I2C pins on the Arduino side of the Arduino dock.

Long story short, there might be a way to get this shield to work outside of what I have laid out here but it is almost certainly going to require modifying the Weather Shield, the Arduino Dock or both boards. If you want to look into it more, I would recommend reviewing the schematics for the [Weather Shield and the [Omega Arduino Dock.

There might also be some helpful information on [Onion’s community page .](http://community.onion.io/)](Onion-Hardware/Schematics/Omega-Arduino-Dock-2.pdf at master · OnionIoT/Onion-Hardware · GitHub)](https://cdn.sparkfun.com/assets/1/1/4/d/6/Weather_Shield_V12.pdf)

Thanks for looking into this TS-Mark. I really appreciate it.

An issue with pullups was kinda what I was afraid of, but I wasn’t able to find those schematics - so thanks for hunting those down.

Is there an easy way to add WIFI to the Redboards? It kinda defeats the purpose of having a weather station that has to be physically attached to a PC. (this is going outside a greenhouse)

**EDIT: Would this work? - https://www.sparkfun.com/products/14871 (Arduino Uno WiFi R2)

Hi again,

There are several options you could use for adding WiFi to a RedBoard or standard Arduino. The Arduino WiFi should work without too much hassle. You might need to adjust some things in the library but since the Arduino WiFi runs at 5V and uses an ATMega chip, it should not have too many issues with the example code. It would just be a matter of modifying the code to send the data via WiFi.

Another option would be to use something like the [SparkFun WiFi Shield. We also have a simple breakout of the [ESP8266 WiFi Module here. Just be aware the ESP8266 runs at 3.3V so if you use the standard module, you would need to level shift the serial lines from 3.3V to 5V. The WiFi shield handles that shifting on the board.

Depending on what range you need for wireless communication, you could also send the serial data from the Arduino+Weather Shield via Bluetooth using something like the [Bluetooth Mate 4.0 or another of our Bluetooth modules.

Finally, even though it is probably a bit too far into your project to switch shields, we have weather shields for both the [Particle Photon and the [ESP32 Thing. Both of the boards those shields are designed to work with have built-in WiFi. I would recommend checking out the Hookup Guides (linked on their respective product pages) for these weather shields if you want to learn more about them.](SparkFun ESP32 Thing Environment Sensor Shield - DEV-14153 - SparkFun Electronics)](SparkFun Photon Weather Shield - DEV-13674 - SparkFun Electronics)](Bluetooth Mate 4.0 - HM-13 - SPX-14839 - SparkFun Electronics)](WiFi Module - ESP8266 (4MB Flash) - WRL-17146 - SparkFun Electronics)](SparkFun WiFi Shield - ESP8266 - WRL-13287 - SparkFun Electronics)