4Z7DTF left a comment on my post "Another Yaesu VX-8DR external GPS with an Arduino/..." to let me know about his VX-8 Arduino GPS project on github.
There have been a number of projects that use either an Arduino or bare ATtmega microcontroller to turn the GPS module's NMEA sentences back into the a format the brain dead parser built into the VX-8's firmware can handle.
He has done some additional testing, actually fuzzing, showing the VX-8's parser does no error checking what so ever.
Also, another interesting bit, in his work, he noted there is no need for the communication to be bi-directional. I don't know what, if anything the VX-8 tries to send to the GPS module, but it appears to be unnecessary.
What is interesting about that is the microcontroller then really only needs a single serial port. Most of the other projects are bi-directional using a software UART emulation for the second port. So it might be possible to implement this project with something much smaller and even lower power. It would be interesting to see if this can be done with the ATTiny85, using something like the Adafruit 3.3V trinket. That is supposed to draw around 9 milliAmps at 8 Mhz, but 3 mA of that is just for the green power LED! The ATTiny has no built in UART, so it would be all software serial.
Notes on the various things I'm interested in. Well, interested enough to write and share some notes on.
Showing posts with label Arduino. Show all posts
Showing posts with label Arduino. Show all posts
Friday, January 15, 2016
Friday, August 14, 2015
Another Yaesu VX-8DR external GPS with an Arduino/ATmega328 translator.
I've collected links for a few of these projects to add a better external GPS to the Yaesu VX-8DR, instead of the somewhat proprietary Yaesu option.
Here's another one from VK3YY that got posted recently:
Here's code from DFannin on github:
Update 2016-01-15, 4Z7DTF notified me about his project, which includes more additional analysis of how poor the VX-8's parsing and error handling is.
Good detailed blog post Reverse Engineering the Yaesu VX-8DR GPS Interface. From Feb. 2013. He didn't arrive at the solution, which I believe F4FXL and at least one other have. But I think he's got most of the relevant details for the padding differences listed as well as some other very useful info including details on the GPS chips used in VX-8 and VX-8G.
We now know how to connect to and send a properly formatted GPS NMEA message to the Yaesu VX-8DR. Here's the summary:
Here's another one from VK3YY that got posted recently:
Here's code from DFannin on github:
Update 2016-01-15, 4Z7DTF notified me about his project, which includes more additional analysis of how poor the VX-8's parsing and error handling is.
Background Info:
Good detailed blog post Reverse Engineering the Yaesu VX-8DR GPS Interface. From Feb. 2013. He didn't arrive at the solution, which I believe F4FXL and at least one other have. But I think he's got most of the relevant details for the padding differences listed as well as some other very useful info including details on the GPS chips used in VX-8 and VX-8G.
We now know how to connect to and send a properly formatted GPS NMEA message to the Yaesu VX-8DR. Here's the summary:
- 9600baud TTL 3.3V serial signalling, 8/N/1
- NOT RS232 -5 to +5V signalling -- you need a level converter if that's all you have
- 3-wire physical interface to the following pins:
Pin GPS Side Purpose Yaesu Side Purpose 4 GPS RX Yaesu TX 5 GPS TX Yaesu RX 6 GPS GND Yaesu GND - According to 4Z7DTF (2016-01-15), there is no need for the communication to be bidirectional. Only the TX Data from the GPS to the VX-8 is required.
The messages need to be formatted exactly as follows:
|
Labels:
Amateur Radio,
Arduino,
ATmega328,
DIY,
Electronics,
GPS,
Yaesu VX-8
Thursday, August 8, 2013
Understanding the Arduino platform (You don't need a separate Arduino board for everything you build)
From time to time, I've heard some objections about using the Arduino platform to build things because of the costs. Arduino prices have come down, but it's also worth understanding you don't need an Arduino board for every project.
The Arduino is essentially a board that has an Atmel AVR ATmega328p microcontroller chip on it with a USB interface, power supply, clock crystal, and a lot of sockets for the pins in a (now) well known form factor that allows stacking additional board/modules called shields for additional functionality.
The older units had an FTDI USB serial interface chip on it which added significantly to the cost, but had some interesting alternative uses. Newer Arduinos use another Atmel AVR chip that has USB support built in, which winds up being less expensive than the FTDI chip.
The form factor (size of the board with pin sockets) makes it easy to get started and prototype but also adds to the cost.
The Arduino software environment also makes it significantly easier to get started with microcontroller programming. There is an small, development environment for Windows/Mac/Linux which completely wraps the C/C++ compiler and chip programmer making it a simple push button operation to compile your sketch and program the chip.
The AVR microcontroller is essentially a full system on a chip, with an 8 bit CPU, a small amount of RAM, 32K of flash memory, a small EEPROM, and a TTL level serial interface. There is even an internal oscillator so you don't have to use a separate crystal, or resonator, if you have an application where you don't need the timing stability offered by an external crystal.
Bare ATmega328P chips cost $2-4 in single quantities. They come without any programming, so you need hardware to program the chip.
The Arduino gets around the need for having hardware to program the microcontroller chip by preloading a bit of firmware, a boot loader, that allows the chip to receive code over the USB/Serial interface and write it to the 32K flash to program itself.
An Arduino can be used to program bare AVR chips, so you can use one Arduino to create more Arduinos.
So the moral of the story, once you've built something using an Arduino, you don't have to dedicate a whole Arduino board to each device. You can easily build your project with a bare AVR chip and only the supporting components you need for your projects. Typically this can be done for less than $5.
Note: This post is another reply that I had sent to a mailing list that I thought would be worth preserving and sharing as a blog post.
The Arduino is essentially a board that has an Atmel AVR ATmega328p microcontroller chip on it with a USB interface, power supply, clock crystal, and a lot of sockets for the pins in a (now) well known form factor that allows stacking additional board/modules called shields for additional functionality.
The older units had an FTDI USB serial interface chip on it which added significantly to the cost, but had some interesting alternative uses. Newer Arduinos use another Atmel AVR chip that has USB support built in, which winds up being less expensive than the FTDI chip.
The form factor (size of the board with pin sockets) makes it easy to get started and prototype but also adds to the cost.
The Arduino software environment also makes it significantly easier to get started with microcontroller programming. There is an small, development environment for Windows/Mac/Linux which completely wraps the C/C++ compiler and chip programmer making it a simple push button operation to compile your sketch and program the chip.
The AVR microcontroller is essentially a full system on a chip, with an 8 bit CPU, a small amount of RAM, 32K of flash memory, a small EEPROM, and a TTL level serial interface. There is even an internal oscillator so you don't have to use a separate crystal, or resonator, if you have an application where you don't need the timing stability offered by an external crystal.
Bare ATmega328P chips cost $2-4 in single quantities. They come without any programming, so you need hardware to program the chip.
The Arduino gets around the need for having hardware to program the microcontroller chip by preloading a bit of firmware, a boot loader, that allows the chip to receive code over the USB/Serial interface and write it to the 32K flash to program itself.
An Arduino can be used to program bare AVR chips, so you can use one Arduino to create more Arduinos.
So the moral of the story, once you've built something using an Arduino, you don't have to dedicate a whole Arduino board to each device. You can easily build your project with a bare AVR chip and only the supporting components you need for your projects. Typically this can be done for less than $5.
Note: This post is another reply that I had sent to a mailing list that I thought would be worth preserving and sharing as a blog post.
Subscribe to:
Posts (Atom)