UART Bitrate Converter for GPS on Nikon Cameras

Modern Nikon DSLR cameras supports the connection of a GPS on the remote shutter port to include automatic geotagging of the shoots.

The camera uses a small proprietary double-sided connector to receive the position data form a remote GPS unit. The protocol used is the standard NMEA 0183.

Nikon official GPS unit is quite expensive, and I had an old Bluetooth GPS unit which I’m not using anymore but had the NMEA output at the wrong bitrate, as the camera only accept NMEA data at 4800bps, while the GPS works at 38400bps.

This project, made for my good friend and photographer David (checkout his blog!), is a small firmware for an ATMega168 to read the data from an high speed UART port, and reply that on a slower port, using a circular buffer for the data.

Read more of this post


FTDI based USB to UART/485 Interface

If you work with embedded electronics, UART ports is something you’ll probably use every day to interface with all your SoCs and microcontrollers. As modern PCs and laptops almost always lacks legacy serial ports, you need a good USB to UART interface for all your serial needs.

USB to RS232 interfaces are easily founds online and in computer stores, but if you need RS485 and TTL UART ports you may have some problem finding the right tool.

This projects is a compact USB to TTL UART or RS485 converter, based on the popular FTDI FT232 chip. It features 3.3V TTL UART operation and an 8P8C connector (sometimes referred as RJ-45) with on board termination and bus power injection options for 485 port.

Read more of this post

Using Serial Ports on GNU/Linux Systems

While for the modern PC user serial ports are just a page on Wikipedia, for the embedded developer a 3 wire UART can be a simple point-to-point bus, or even the only way you have to access the debug data of the system.

Serial ports are almost always used in SoC based designs as the bus to access the bootloader command prompt and the debugging console, and is not uncommon to find SoC with 5 or more serial ports. Also, many peripherals communicate with the main processor via UARTs, such as GPS, GSM modems, Bluetooth radio, field bus devices and general purpose microcontrollers.

On a GNU/Linux system, a serial port is just a character device file, which can be opened, written, read and closed. However, to properly use the device from a C application, you have to use a certain command sequence, which can be quite tricky if you never did it before.

Read more of this post