EEVblog Electronics Community Forum
Electronics => Projects, Designs, and Technical Stuff => Topic started by: intabits on October 05, 2018, 08:29:00 am
-
Quite some time ago, an eBay seller sent me this module instead of another (much cheaper) item.
(https://www.eevblog.com/forum/projects/help-needed-with-a-gps-bt-stm32-module/?action=dlattach;attach=539336;image)
I would like to use it's GPS functionality, but I can find very little documentation on it.
(Just the usual gibberish in an ebay/Alliexpress add)
Does anyone recognize this module or is able to provide some info on it?
From what I can gather, it contains:-
1/ a NEO_M8N GPS module (I know a little about using them)
2/ a HC_06 bluetooth module (I know nothing about using that)
3/ an STM32F103T8 microcontroller (Also something I've never used).
(https://www.eevblog.com/forum/projects/help-needed-with-a-gps-bt-stm32-module/?action=dlattach;attach=539342;image)
From the pinouts, it seems that the GPS and Bluetooth modules are externally accessible.
But wouldn't that interfere with the (presumably) signals from the STM32 controller?
I'm guessing the SWDIO, SWCLK, and NRST are for programming the CPU?
Would the VCC pin be for +5v, or another 3.3V?
Could the three main sections be electrically separate, allowing independent operation?
(Not likely though, as the blurb says "Power-on default, the module will send the data directly to a Bluetooth GPS module...")
Any insights would be appreciated.
For what it's worth, couple of ad blurbs follow:-
-------------------------------------------------------------------
CJMCU-802 M8N HC06 Bluetooth Wireless GPS Data Transmission Module TFT
Description:
- CJMCU_802 module will send GPS data directly to Bluetooth, Bluetooth wireless module to the mobile communication, can also access the computer serial TTL output data. It is also possible to change the format of the transmission data,
- Power supply: 3-5V.
- CJMCU_802 integrated GPS module (M8N), HC_06 Bluetooth module and stm32 microcontroller.
- The main control chip selects STM32F103T8, ARM32-bit Cortex-M3 core, 64KB of flash memory, and 20K running memory, 7 channels of DMA, 7 timers, onboard 8M Japanese Murata original crystal, controller can run in 72M Frequency, ultra-fast solution speed.
- HC_06 Bluetooth module to intelligent wireless data transmission to create, using the British CSR BlueCore4-Ext chip, follow the V2.0 + EDR Bluetooth specification. This module supports UART, USB, SPI, PCM, SPDIF and other interfaces, and supports SPP Bluetooth serial protocol.
Module composition:
- STM32F103 microcontroller
- HC-06 Bluetooth module
- U-BLOX M8N GPS Beidou chip
- Compass active antenna
- Onboard GPS signal indicating LED lights, Bluetooth connection status LED, power LED indicator
-------------------------------------------------------------------
M8N + BT_HC06 with MCU single-chip Bluetooth wireless transmission module with Compass GPS Compass GPS antenna
Power-on default, the module will send the data directly to a Bluetooth GPS module via Bluetooth wireless transmission to mobile communications, can also be connected to a computer serial TTL output data. You can also change the format of transmission data,
Power supply 3-5V.
Products with integrated GPS module (M8N), HC_06 stm32 Bluetooth module and microcontroller. NEO_M8N Series modules provide high sensitivity and minimum acquisition time, while maintaining low system power, easy RF integration, to provide good performance. GLONASS and Beidou can run simultaneously, and can be found to M8N more satellites easily search to 15 or more, the positioning accuracy
You can achieve good.
The main control chip selection STM32F103T8, ARM32-bit Cortex-M3 core, 64KB of Flash memory and 20K of memory to run, DMA 7 channels, seven timers, Japan Murata original board 8M crystal, the controller can run 72M the frequency, ultra-fast solver speed.
HC_06 Bluetooth wireless data transmission module into the intelligent building, the British CSR's BlueCore4-Ext chip, follow V2.0 + EDR Bluetooth specification. The module supports UART, USB, SPI, PCM, SPDIF interfaces, and supports SPP Bluetooth serial port protocol.
Modules:
1, STM32F103 microcontroller
2, HC-06 Bluetooth module
3, U-BLOX M8N GPS Compass Chip
4, active antenna Compass
5, on-board GPS signal indicator LED light, Bluetooth connection status LED, power LED.
Note: The module does not provide schematics. Providing customers a note.
-------------------------------------------------------------------
-
I'm not familiar with that module. I think you should be able to do what you want however.
Even if the board is actively reading the GPS, adding another receiver won't be a problem. There would be no interference. GPS modules (the NEO series included) automatically start up, connect and start transmitting fix information unless explicitly configured to not do so. I would be surprised if they had configured the system to do that.
I would approach this by snooping on the urx_gps and utx_gps pins with a logic analyzer to see where the data is being carried (i.e. are they labeled relative to the microcontroller or the GPS). Using a logic analyzer, you could also check what the baud rate is (though, according to the NEO-8M datasheet(1) its default is 9600 just like almost every other GPS module on the market). If you don't have a logic analyzer (I've got a cheap Selig clone that's been invaluable), an oscilloscope or even a DMM could give you enough information about which pin to connect to.
As for dealing with the bluetooth module and the processor, it's really necessary to have a bit more information about how things are being connected. A full schematic wouldn't really be necessary though. You'd only need to trace the USART pins for the GPS and Bluetooth back to the ST microcontroller. At that point, it should be easy enough to program. I work with ARM controllers from NXP (rather than ST). They are both programmed through SWD (Serial-Wire Debug) -- on the SWDIO, SWCLK and RST pins. The description that you included states that it can be powered from a 3-5v supply. That makes me think that the Vcc pin allows that voltage range. There is also a 5-pin package very close to the Vcc pin with a small capacitor on one side and a large capacitor on the other. I would be willing to bet that that chip is a 3.3v regulator (I can't read any numbers off of it).
Programming an ARM microcontroller isn't tough; but it's not as easy as Arduino either. It takes some getting dirty in the datasheets and most companies have (frankly) terrible example code. Either way, the board should be sufficient for your current needs... and allow for added functionality in the future too.
Cheers,
Martin Jay McKee
1) https://www.u-blox.com/sites/default/files/NEO-M8_DataSheet_(UBX-13003366).pdf (https://www.u-blox.com/sites/default/files/NEO-M8_DataSheet_(UBX-13003366).pdf)
-
Hi Martin, thank-you for your help.
I was hoping that this was a clone of some other product (sparkfun or whatever) that someone might recognize, and that might point me to some documentation. Even just a block diagram would be a huge help.
From what I've seen, the GPS TXD should be sending out NEMA data, and I will look for that.
But even applying voltage might be a problem, though as you say, it appears that there is a regulator to provide the 3v3. I'll try to identify the part and check that VCC goes to its input and its output goes to 3.3v.
I looked at the NEO datasheet and saw that it had other interfaces, particularly the SPI, which might go to the STM32, leaving the UART signal free for me to fool with. But then we see that UART and SPI share the same pins, oh well.
To talk to the NEO, how things are connected becomes important, as you mention. I suppose I could watch the RXD line to see if the STM32 is driving it, and try driving it myself, weakly at first to see if there is any contention. Surely this is possible, otherwise there is little point in bring the RXD pin out to the connector.
As a last resort, I guess I could always lift the NEO (or maybe better the STM32) to ensure separation...