Posts Tagged ‘arduino’
Friday, February 5th, 2016
mavroOBD PART 2 – Arduino 328P ODB CanBus Hacking
… continued from part I.
It’s been a while since I last posted an update on the mavroOBD project. After a few (3) board revisions, I’m happy to report that I’ve successfully miniaturized the Arduino UNO (ATMega328P based AVR) and SeeedStudio CANBus shield into a compact OBD module form factor. Next, I will begin the coding portion and will post updates as that happens. Feel free to post a comment if you are interested in helping out with this project.…
Thursday, December 24th, 2015
mavroOBD – My OpenSource project designed to “hack” your vehicle
Today I’m announcing my next project, mavroOBD. It’s an open source Arduino compatible OBD/Can-Bus module. The goal behind this is to provide an easy way for people to interact with their vehicles. Not sure where this will lead but I’ve been wanting to get into the “car hacking” space for a while. I’ve already sourced an OBD port module and designed two boards (power and mainboard). This is an open source project and is available here on Github.
The idea is to be able to enhance my vehicles capabilities — since they don’t provide us a way to do this via configuration screens in the vehicle — one thing that drives me crazy is in my vehicle, I have to press a button for my front parking sensors to be active (if I haven’t been in reverse first). This is annoying when pulling into a space. My first task will be to emulate the parking sensor button when traveling less than 10mph.
The first step is to sniff the OBD port Can-Bus traffic to see if I have access to the system via the OBD port. Depending on the manufacture some of the “internal”, non-diagnostic features are on a low or medium speed Can-Bus. I’m still learning so if anyone has more knowledge and wants to share, please post a comment or join my efforts. More to come… components will be here soon and I will be posting again when I get the boards populated and I can access the high-speed can bus network of my vehicle.…
Saturday, May 10th, 2014
DIY: Building a Mini (220mm) Quadcopter Part 3 – Transmitter & FrSky D4R-II Receiver
(This is part of a multi-part series on building a FPV mini 220mm quadcopter)
These next parts aren’t really that exciting but much needed for controlling the quadcopter. I already have a Futaba 9C controller that features a neat little module system. So I just needed to purchase a FrSky Transmitter Module that works with my Futaba controller — the FrSky FF-1 2.4Ghz Combo Pack for Futaba w/ Module & RX), it’s only $39 for the kit.
Friday, May 9th, 2014
DIY: Building a Mini (220mm) Quadcopter Part 2 – Minim OSD v1.1
Since I’m building a FPV (first person video) based quadcopter, I need something that will display the copters telemetry a display or goggles. I’m going with the Minim OSD v1.1. I like that it is a mini Arduino (328P) based on-screen display board.
Monday, April 21st, 2014
Tag-Connect: The ICP Connector That Saves PCB Space & Cost Less
There are a lot of little details you need to think about when taking a project from PoC (proof-of-concept) to production. Most projects today have some form of onboard microprocessor and require you to flash your custom bootloader and/or program code onto it at some point. There are many ways this can be accomplished but the most common method is using an ICP (in-circuit programmer) connected to a 6-pin ICP header somewhere on the PCB.
Thursday, March 24th, 2011
Arduino Shield: Video Experimenter
Just found out about the Video Experimenter shield (via hackaday) created by Nootropic Design. I’ve been looking for something like this for my screen masking controller project. One has been ordered and will report back once I make some progress getting it tied into the masking controller (which has now been converted to an Arduino project as well).
Here are a few details on the shield, peep the video below for the full effect:
- Overlay text and graphics onto a video signal from a camera, DVR, DVD player, VCR or any other source of composite video.
- Capture low-res video image frames for display or video processing. Give your Arduino the gift of sight!
- Perform object detection for computer vision projects.
- Decode closed captioning or XDS (extended data services) data embedded in television broadcasts.
- Works with NTSC (North America) or PAL (rest of the world) television standards.
Tuesday, August 3rd, 2010
Russound RNET to Sonos Bridge (Arduino MEGA) – Part 2
While it was possible to use an Arduino duemilanove (Atmel 328 chipset) for this project (See Part 1), I was really limited due to the 2K of RAM. It was fun trying to optimize code to get things to run in that amount of memory, however, it caused me to not be able to expand on functionality and features. I have upgraded the project to an Arduino MEGA (Atmel 1280 chipset). This platform gives me up to 8K of RAM — which should be more than enough memory (famous last words).
A lot of people have asked me to explain what exactly I’m doing with the Arduino. It’s pretty simple. First, I’m using a RS232 shield (not shown) to capture RS232 commands from the Russound Controller. When a key is pressed on the Russound keypads I read the RS232 data and either ignore or react to the events. Currently, I’m looking for +, -, Next, Previous, Play/Pause, Menu events. I plan on using the Menu button to offer deeper content browsing menus (need to sniff the RS232 or wait for Russound to publish protocol). The + & – buttons will allow to scroll playlists and the rest of the transport buttons are self explanatory.
// Example RNET Next Track Event: F0 0 7D 7 0 0 7F 5 2 1 0 2 1 0 E 0 0 1 7 0 1 2A F7
Since the Sonos is a uPnP based system there is no IR or way to traditionally control it. Everything needs to be done via HTTP calls. I’m using an Ethernet Shield to translate the RS232 events to uPnP messages. The biggest challenge has been parsing the huge amounts of VERY VERBOSE SOAP-based notification messages. I parse the data real time, looking for strings that I want to store (things like playstate and metadata).
To make matters worse, Sonos is URL encoding XML data inside of an XML structure. So writing a simple XML parser is not possible. You have to look for things like &lt; for a less-than bracket (<). There were times I wanted to scrap the whole project because of this due to the limited RAM and string utilities — it really makes things a lot harder to deal with.
// Example of nested URL encoded XML: <Event xmlns="urn:schemas-upnp-org:metadata-1- 0/AVT/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-10/"> <
Thursday, July 22nd, 2010
Russound RNET to Sonos Bridge
Here’s a sneak peak at my latest project — the RNET to Sonos Bridge. All coded using an Arduino and Ethernet Shield. What this little device allows you to do is control a Sonos device using any Russound whole house audio system that supports RNET sources. It allows next, previous, play, pause and I’m working on playlist access and support. Current track metadata gets sent to these keypads as a multi-field message.
I’m pretty much code complete but I’m running into a few memory issues… The Arduino only has <2K of available RAM that I can work with. I have an Arduino Mega (which offers 8K) on order to see if that solves things. I think I can still optimize my code to make it work with the 328.
I’ll post more when I get it 100% stable.
Update: Got it working! With about 500bytes left of RAM on the 328 chipset… this was a fun little project. Below is a video:
Also running on E6 Color Keypads:
About the archives
Welcome to the archives here at MAVROMATIC.
These are a collection of our previous posts. If you'd like to read about the latest and greatest, click here.