Boron 2g/3G and Feather-Wing

Hello
I want to use the Feather-Wing GPS system some thoughts:
can Boron 2g / 3G be used?
how the various elements communicate with each other so that there is no need to make connections with wires (bluetooth?).
From Particle docs:
for example, you can easily build a GPS with display by using a tripler with the Adafruit Ultimate GPS FeatherWing and the FeatherWing OLED Display 128x32, no soldering necessary!)
Thanks Valentino

Ciao Tino,

there’s some info here:

image

and from there I got this link:

Perhaps that can get you started?

@Tino52, wiring is required even though you don’t see it in the picture. All the wiring is done under the board.

Thanks now I have connected SLC-SDA and performed some tests on the display I can see some texts, the gps module should arrive so after receiving it I can rerun the exercise.

Hello thanks for answering me at the moment I use an Adfafruit tripler I don’t have the gps module yet, ordered.
However, I reread the doc and I see that some connections must be made between the micro and the modules for oled and I made a connection between the SCL-SDA of the modules (oled and micro).
Best Valentino

There are no additional connections in the picture above with the Boron, GPS, and LCD. The FeatherWing Tripler makes all of the connections between the FeatherWing modules. Since both the GPS and display use I2C, this works because it is a shared bus protocol so the same connection can be made to multiple devices.

1 Like

Thanks for the answer now I am waiting as already written of the gps module.
All Best
Valentino

1 Like

Wow! Somehow I completely missed the connections between the three devices! Geesh! :roll_eyes:

Thanks to everyone who answered me
For now, Best Regards
Valentino

You’ll find ADAFruit’s products to be extremely easy to prototype with, I have a number of argons with oled and additional device, for example, a test bed for attiny85 programming and testing. This is a boron 3g with a extender between a 4 feather board and the 2.8" feather lcd with an i2c io expander and a number of relays. This project I built to allow me to cellularly control power and usb outlets via a touch screen or alexa for my network rack at home.

Here is the thing to worry about, you need to build out your pin assignments first. Some pins are hard set in the hardware, others like spi, may not share well with others. I always map out my pins before starting.

Thanks for your answer and all the wishes for a Merry Christmas and New Year
Valentino

Hello @rickkas7
i can’t figure out which connections to make to use the code SimpleGPS.cpp. I connected the various modules with the IC2 interface and flashed the sketch but nothing so I also connected the serial (TX - RX) the answer on the Serial is “no location”.
In the sketch there are these commands:
// The GPS module on the AssetTracker is connected to Serial1 and D6
Could you explain to me what I need do or to connect? For your Info I use the Trippler Feather Wing
Thanks Valentino

If you are using a FeatherWing Tripler, there are no additional connections to make. The Adafruit Ultimate GPS FeatherWing connects by serial like the Particle Electron AssetTracker.

(I said I2C above, but I was thinking about a different GPS FeatherWing. The Adafruit Ultimate GPS FeatherWing uses a PA6H and serial, default 9600 baud 8N1.)

These are the libraries you need. If you are using Particle workbench, these go in project.properties. Otherwise, add the libraries to your WebIDE project:

dependencies.AssetTrackerRK=0.4.1
dependencies.oled-wing-adafruit=0.0.8

This is the code to query the GPS and update the LCD, as is shown in the picture above.


#include "Particle.h"

// Port of TinyGPS for the Particle AssetTracker
// https://github.com/mikalhart/TinyGPSPlus
#include "TinyGPS++.h"

#include "oled-wing-adafruit.h"

SYSTEM_THREAD(ENABLED);

/*
   This sample sketch demonstrates the normal use of a TinyGPS++ (TinyGPSPlus) object directly.
 */

void displayInfo(); // forward declaration

const unsigned long PUBLISH_PERIOD = 120000;
const unsigned long SERIAL_PERIOD = 5000;
const unsigned long MAX_GPS_AGE_MS = 10000; // GPS location must be newer than this to be considered valid

// The TinyGPS++ object
TinyGPSPlus gps;
unsigned long lastSerial = 0;
unsigned long lastPublish = 0;
unsigned long startFix = 0;
bool gettingFix = false;

OledWingAdafruit display;

void setup()
{
	Serial.begin(9600);

	// The GPS module on the AssetTracker is connected to Serial1 and D6
	Serial1.begin(9600);

	// Settings D6 LOW powers up the GPS module on the Particle Electron AssetTracker
	// pinMode(D6, OUTPUT);
	// digitalWrite(D6, LOW);
	startFix = millis();
	gettingFix = true;

	display.setup();
	display.clearDisplay();
	display.display();
}

void loop()
{
	display.loop();

	while (Serial1.available() > 0) {
		if (gps.encode(Serial1.read())) {
			displayInfo();
		}
	}

}

void displayInfo()
{
	if (millis() - lastSerial >= SERIAL_PERIOD) {
		lastSerial = millis();

		char buf[128];
		if (gps.location.isValid() && gps.location.age() < MAX_GPS_AGE_MS) {


			display.clearDisplay();
			display.setTextSize(2);
			display.setTextColor(WHITE);
			display.setCursor(0,0);
			snprintf(buf, sizeof(buf), "%f", gps.location.lat());
			display.println(buf);
			snprintf(buf, sizeof(buf), "%f", gps.location.lng());
			display.println(buf);
			display.display();

			snprintf(buf, sizeof(buf), "%f,%f,%f", gps.location.lat(), gps.location.lng(), gps.altitude.meters());
			if (gettingFix) {
				gettingFix = false;
				unsigned long elapsed = millis() - startFix;
				Serial.printlnf("%lu milliseconds to get GPS fix", elapsed);
			}
		}
		else {
			strcpy(buf, "no location");
			if (!gettingFix) {
				gettingFix = true;
				startFix = millis();
			}
			display.clearDisplay();
			display.setTextSize(1);
			display.setTextColor(WHITE);
			display.setCursor(0,0);
			display.println("no fix");
			display.display();
		}
		Serial.println(buf);

		if (Particle.connected()) {
			if (millis() - lastPublish >= PUBLISH_PERIOD) {
				lastPublish = millis();
				Particle.publish("gps", buf, PRIVATE);
			}
		}
	}

}

You probably won’t be able to get a GPS fix with the PA6H built-in antenna indoors. Maybe in a window, but not always.

Thanks @rickkas7 in the meantime it works, but being cold outside I tried to make it work from the inside but it is clear to me that the gps antenna must be external then I made some small changes in order to view them on the oled. However I copy your skecht and implement it there is always learning.
Have a nice weekend
Valentino

Hello @rickkas7
I use Tripler Feather Wing with GPS Adafruit, Oled, and Boron. Today I wanted to insert an Argon instead of the Boron. Always using the same skecht as the Boron. With Argon after a while it continues to go Offline and Online anyway with the time that is frozen on the display. I couldn’t find in the Adafruit / Particle documentation if this setup needs the GSM network.
Thanks Valentino