Freematics OBD-II Adapter V2 sample completed

After our first Kickstarter campaign was over, we have been keeping up pushing the project Freematics forward, though the goal of the campaign wasn’t reached. The sample of Freematics OBD-II Adapter V2 is now under testing. The V2 has several changes and improvements. The most important one is the GPS support. One serial UART of STM32 was led out to 4 pins for connecting GPS module. The STM32 processor will process the NMEA data input from the connected GPS module and parse it. We have extended ELM327 AT command-set to provide access to the parsed data. The added commands are:

  • ATBR1 <baudrate> – setting serial baudrate for AT command line interface (default 38400bps)
  • ATBR2 <baudrate> – setting GPS serial baudrate (first setting turns on GPS parsing)
  • ATGPS – retrieving parsed GPS data
  • ATGRR – retrieving raw data (NMEA) from GPS module (once a complete line)

The second change is that the main controller has been replaced by ATMega328P. This change was made in consideration of several factors. ATMega644PA is large in size and has too much more hardware resources than is normally needed in most applications. ATMega328P has much smaller footprint so we can have more space on the board for other stuff. It also has lower power consumption. Switching to ATMega328P brings an additional advantage of the compatibility with standard Arduino UNO, so no Arduino IDE addon package is needed any more.

freematics_obd_v2_pcb

The PCB layout of Freematics OBD-II Adapter V2

Continue reading

New TFT LCD shield for Arduino with microSD and I/O sockets

Here comes a brand new TFT LCD shield for Arduino. It features:

  • 2.2″ TFT LCD screen of 320×240@16bpp driven by SPI
  • I2C socket (SDA, SCL, VCC, GND)
  • UART socket (Rx, Tx, VCC, GND)
  • Analog socket (A2, A3, VCC, GND)
  • MicroSD socket (supporting up to 32GB SDHC)
  • Push button (D8)
  • Reset button
  • Compatible with Arduino UNO R3 and Bluno

The screen is driven by SPI with fast rendering speed. For software, it is supported by MultiLCD library which provides easy API for displaying characters/digits of various size and drawing bitmaps.

This shield can be order in Telematics Hardware Store.

Evaluating Nordic nRF51822

Nordic nRF51822 is a SoC chip integrating ARM Cortex M0 and Bluetooth Low Energy. Its advantage over TI CC2540, which is used in current Freematics OBD-II Adapter and OBD-II data logger kits for BLE communication, is that it has a 32-bit ARM core with more sufficient processing power comparing to CC2540′s 8-bit 8051 core, while the cost is only a little higher. That means, more work which previously requires additional chip can be done in that SoC chip. With bold imagination, there is possibility to port Arduino to this chip so that it can be programmed like Arduino or Maple.

I just got a nRF51822 dev board on hand and will start evaluation shortly.

IMG_7789

Switching among Arduino LCD shields or modules with ease

arduino_lcd_shieldsRecently I developed a library for ease the job of displaying texts and numbers on different LCD/OLED modules. This is mainly for my OBD-II data logger project which can be made up of different sets of Arduino hardware. I named the library as Arduino Text Display Library for Multiple LCD, or short as MultiLCD.

The library encapsulates several libraries for various Arduino LCD/LED display shields or modules into a set of unified APIs.

Currently it supports these hardware:

  • DFRobot LCD4884 shield
  • Nokia 3310/5100 LCD module
  • LCD1602 shield
  • SSD1306 OLED module
  • ZT I2C OLED module

Continue reading

Arduino SD card picture viewer with TFT LCD shield

IMG_2687

I just started to play with TFT LCD screen with Arduino. I used Itead 2.8″ TFT shield which is said to work great with UTFT library. Taking into account that Arduino has too limited Flash to hold a full frame of picture, and that the shield has a SD card socket on the back, I decided to make a SD card picture viewer as my first approach.

The 8-bit AVR-based Arduino has not only limited storage but also limited computation power. It is impossible to decode JPEG or PNG on-the-fly with Arduino, nor is it possible to load a whole bitmap from SD card into SRAM. The image files have to be stored in raw data format and loaded and rendered portion by portion. The native data format of the TFT control chip is RGB565 (2 bytes for a pixel, 5 bits for red, 6 bits for green, 5 bis for blue). So I used MediaCoder, which is a universal media transcoder I developed, to generate the raw image data of RGB565. It can also convert video files to a sequence of image files.

Continue reading

Building an OBD-II + GPS data logger with Microduino

P1050336Right now an enhanced version for the Arduino OBD-II data logger kit is under development. The new kit will feature 10Hz GPS logging via MTK3329, OBD-II data logging via Arduino OBD-II adapter, and 3-axis accelerometer sensor data logging via MPU6050 embedded inside the adapter. What is more interesting is that the new kit will base on a variant of Arduino, named Microduino, with smaller size and better capability, stackable like normal Arduino, making the whole kit small and tidy.

For those who have previously ordered the Arduino OBD-II data logger kit, there is no worry about your investment, as the most worthy parts in the kit (OBD-II adapter and I2C OLED module) are still usable in the new kit, and there will also be an upgrade pack (including the new Microduino parts and MTK3329 GPS receiver) by the time the new kit is ready for order. Continue reading

A tutorial for Arduino Builder

Arduino Builder is a tool for viewing and compiling Arduino sketch (source code) and programming the Arduino board with the compiled code (HEX code).

From this link you can pick the latest version and download. Once downloaded, extract the 7z compressed package to a new folder and you can launch Arduino Builder by running ArduinoBuilder.exe in the folder.

Before launching, please plug your Arduino to computer with USB cable, as the program will search for available serial ports appeared on your system and display them.

Continue reading

Arduino Uploader 0.6 released with both GUI and CLI versions

Arduino Uploader now comes with GUI version which makes compiling and uploading an Arduino sketch to the board never easier. With no more than 3 clicks, you sketch will be running on your board. Take a look at the the screenshot. The command line version is also updated and have the same functionality as the GUI version while the former can be integrated into 3rd party applications (a real example: Mind+).

arduino_uploader_console arduino_uploader_report

Download Arduino Uploader