A prototype is a preliminary model of something. Projects that offer physical products need to show backers documentation of a working prototype. This gallery features photos, videos, and other visual documentation that will give backers a sense of what’s been accomplished so far and what’s left to do. Though the development process can vary for each project, these are the stages we typically see:
Proof of Concept
Explorations that test ideas and functionality.
Demonstrates the functionality of the final product, but looks different.
Looks like the final product, but is not functional.
Appearance and function match the final product, but is made with different manufacturing methods.
Appearance, function, and manufacturing methods match the final product.
M2 by Macchina is an open source automotive interface that can take your car to the next level. Use it to unlock your car's potential or as a development platform for your next product.
Join the community and let your ingenuity guide your project.
We have been getting a lot of questions along the lines of "Can M2 start a car?" So we decided to put together a quick demo. How we accomplished this is explained in section 11 and update 3.
M2 has the protocols and libraries to work with any car that isn't older than Google. (check the FAQ for more information)
M2 is based on the Arduino Due. If you have any previous experience with the Arduino platform, you can leverage existing code, libraries, tutorials, and established communities. But don’t worry if you don't - this is a fantastic development platform built for newcomers and professionals alike.
Are you familiar with open source hardware but new to using it with cars? No worries, Craig Smith and No Starch Press have you covered with this great book. We are working together to bundle M2 with the book at a great price. That's not the end of our collaboration: Craig has also joined the Developer Program to help improve M2!
M2 has two installation options:
an OBD2 method for simple plug-and-play
a wired under-the-hood solution for a more permanent install
(Option preference will be selected in a follow up survey)
The area under the dash and the gaps under the hood are very small, so we made M2 as tiny as we could (2.22" x 1.60" x 0.62") (56.4mm x 40.6mm x 15.7mm)
M2 has a wireless socket using the DIGI XBee form-factor. Connect your car to the web, phones, satellites, IoT devices, or the cloud.
We are lucky enough to be based in Minnesota, right next door to the creator of DIGI XBee boards and Digi-Key, their reseller! We were early customers of their new DIGI XBee Cellular LTE module. We think it works great for many of the applications M2 was designed for, so we have built a bundle option to get you working with it right away.
M2's breakout board lets you use your own processor board and save money - just wire it up and get coding!
Automotive interfacing circuits won’t change as quickly as microprocessor technology. M2's modular approach allows for simple and inexpensive upgrades.
The one thing that all car hobbyists can agree on is that playing with cars isn't cheap. Open source hardware is the answer! M2 is feature-packed and can go toe-to-toe with more expensive professional solutions feature-for-feature!
A couple years ago, a few of us got together to work on a fun side-project: we turned an old Ford Contour into an electric car. We replaced the existing gasoline motor with an electric motor and the fuel tank with batteries. Rather quickly we realized that a major obstacle was convincing the various computers within the car to not be too upset after its engine had gone missing. We wanted the gears in the automatic transmission to shift at the ideal time, the fuel gauge to display battery capacity and generally wanted our “new” car to perform exactly how we wanted. Our challenge stemmed from the closed, unpublished nature of modern-day car computers. We started Macchina to solve this problem.
Eventually, we realized that others might benefit from a product like M2, not just for electric car building but for more general applications. Thankfully, several of us worked in the consumer electronics industry and already knew how to take an idea through prototyping and into production. We launched a business to focus on production and further development. Earl and Josh run the show. Josh manages technical developments, while Earl manages everything else.
How does it work? Everyone can think of something about their car they would like to change or add, but maybe you need a little help finding inspiration or getting started. So we are starting a video series where we will show you how to use M2 and what others are doing with it. We’re going to start with the basics and slowly get more technical. Please make suggestions.
Programming M2: Working with M2 is easy if you are familiar with Arduino. If you are getting started, it’s a great opportunity to learn about the Arduino platform, electronics, and cars.
Here is a summary of the steps needed to duplicate our shift light project on a CANbus-equipped manual transmission car that also illustrates the basic workflow when car hacking with M2:
Step 1: Download the latest Arduino IDE and install the Macchina boards add-on; test everything is working by blinking an LED.
Step 2: Download and install one of several open source "Sniffer" applications to your computer and upload the corresponding "sketch" to M2.
Step 3: Use the "Sniffer" application to identify the piece of data you are looking to use. In this case, engine RPM.
note: some information is standardized across many cars and you could just look it up online. RPM is an example of this.
Step 4: Write a "Sketch" to watch for RPM data and light up some LEDs proportionally and flash when it is time to shift.
Going further: While this example describes a fairly straightforward project using CAN data, more advanced projects are also made simple with M2. Check out section 13 for more information on what the established community is excited about.
Here is how we started the car:
Want some more detail? Let's dig a bit deeper into M2 and discuss hardware features, what we have so far for software and firmware, and where we are in the development of M2's hardware.
Hardware Development status: After spending several years developing and testing prototypes with the guidance of a small group of industry experts, we have arrived at a functional beta unit. We've been using this hardware in our own personal projects and are now ready to get these into more hands as we work toward a Release version!
Processing board: We chose the Arduino Due as the basis of M2's processor board. Shrinking the Due by well over 50% was no small task! We decided to make further improvements by using the High Speed SD card interface and writing the appropriate firmware libraries to allow for faster data logging. We also added several LED options and a couple switches for a more pleasant development experience. Lastly, we tacked on a EEPROM to store variables after power is cut to M2.
Wireless Socket: M2 accommodates a wide variety of wireless options using the popular DIGI XBee form factor socket. Many inexpensive, plug-and-play boards already exist including BLE, WIFI, GSM, 3G, LTE, GPS and others. You can even reprogram M2 wirelessly. Check out Digi-Key for more information on options.
Interface board: The goal is for M2 to be able to interface and communicate with as many cars as possible. We crammed 2 channels of CAN, 2 channels of LIN/K-LINE, a J1850 VPW/PWM and even a single-wire CAN (GMLAN) interface onto the board. Automotive environments require M2 to be seriously strong, so we built in plenty of protection circuitry. Lastly, we have 6 general purpose driver circuits, each of which can source and sink up to 1 amp of current at 12 volts!
Enclosures: We have a few configurations of enclosures designed and ready for 3D printing. You can download the designs, tweak them as needed, print, share, lather, rinse, repeat. We know that 3D printed enclosures are not the best solution for mass production. Check back later for stretch goals that offer more polished solutions.
Libraries: We provide the same familiar and widely adopted programming experience used with Arduino products. The enormous volume of existing libraries and well-tested code gives your project a head-start. Of course, we are contributing back to the open source code base as we develop car-related libraries and projects. For example, we developed our own LIN library, adapted a 9141 library and found an excellent CAN library, all complete with examples to get you rolling. All are found in our Github Repo.
Software Compatibility: Another goal for the M2 is to maintain compatibility with as many existing open source software packages as possible. We are working with several developers to ensure that our hardware works with their software. M2 is already compatible (or plans to be) with the following software packages. In fact, we are working with several of these developers to ensure an optimized experience on M2:
SavvyCAN, a cross-platform application by EVTV and Collin Kidder
CanCAT, by Matt Carpenter
MetaSploit, by Craig Smith of Open Garages
CANtact, by Eric Evenchick of Linklayer labs
In general all SocketCAN-based applications and future iterations of the LAWICEL protocol
ELM327 emulation opens up the possibility of using some of the well-tested smartphone and computer-based Apps and software, including:
Torque, an Android App by Ian Hawkins
Dashcommand, an iPhone, Android, Windows App by Palmer Performance
Many more (dozens at least)
This list is only the start, and with your help we can make M2 very versatile... See Section 13 for more about developer projects.
Open Source Commitment: For M2 and Macchina to reach its full potential, we need a large, active, and engaged community. Open source hardware and software allow us to more quickly develop and iterate our designs with community feedback. We will learn from one another and create the best tools available.
To that end, we will release all design documentation to our development team once our campaign is over and we begin shipping beta units. Going forward, we will release updated design documentation as updated hardware is released.
How can I join the community? Like all open source projects there are many ways to get involved. Here we will show you how to get involved in Macchina's open source automotive development and a brief overview of the greater community.
Developer Program: We know the developers are the people who do the heavy lifting in open source communities. We want to encourage those early adopters by offering the "M2 Developer Edition". This level is designed for those ready to jump in right NOW and start testing this beta-level hardware, help find bugs, test hardware, and build awesome projects. Learn more about this option below in section 13.
Patron Program: Even if you are not yet a super-dev or don't have the time to be one, but still want to be involved and support your favorite project(s), we offer the "M2 + Open Source Patron" reward. With this level, you still get Release M2 hardware and you also support ongoing or existing project(s) through your contribution. Anything above the $79 goes directly to the developer(s) that you select in a future survey. Check out the current projects here. We will eventually be baking these support features into our forum along with a way to recognize what projects people have supported.
The greater community: Right now, we have a standard forum and the previously mentioned GitHub repo. Our forum is set up for the development team to collaborate and track progress. Stop in and see what everyone is up to. In the future we will make our forum more suited for everyone. We have been thinking ahead a little and we are almost finished building a tipping module so you can easily support people that build things you find useful. We realize that the old school forum style is not everyone's favorite, so one of our future goals is to build a community hub more customized to the community’s needs.
In the meantime here are some other great and related communities worth checking out:
Meet Ups: Online open source hardware communities like Arduino and Raspberry Pi should not need mentioning, but take it a step further and go to some local meets. Many car manufacturers have enthusiast clubs too. If you are interested in spreading the word about M2 at any of these meets, get in touch and we will help you prepare.
Blogs: There are many great blogs that share our interests. A favorite of ours has always been Hackaday; they have a lot of good car related content. Let us know your favorite in the comments. We are also supporters of a newer community on Reddit called r/carhacking, which works as a great aggregator for all these blogs and provides a good discussion platform. We hope to start seeing projects using M2 on these blogs soon!
Social: There are plenty of car nerds worth following on Twitter. Some of the general groups we keep an eye on are automotive security researchers and Open Source Hardware enthusiasts. Follow us, check out who we are following and give us suggestions in the comments.
Activism: You probably don't think much about legislation in regards to cars and your hobbies, but you might want to start. Should you be able to work on your car and who should have access to the software are up for debate. The EFF is fighting for your rights in this space; we chose to support them and urge you to consider doing the same.
T Shirt Design Project: Help us design a t-shirt for the community. We aren't graphic designers, but we had pictured something retro racing inspired. Send us your ideas! The "winner" will receive recognition and a special package including M2. Profits from this project will be donated to the EFF to support their Right to Repair efforts.
How are we going to accomplish all of the above? If you have made it this far you must be pretty serious. In this final section we will lay out our plan in detail.
Kickstarter: The goal of our Kickstarter campaign is to reach out and meet all of those car nerds out there. This is obviously a big task but we plan on being very active here (Kickstarter), and on Reddit, Twitter, and any car community that will have us. We are treating this Kickstarter as home base, so we will take part in the comment section daily. We encourage you to stop by Reddit's r/carhacking page and discuss your project ideas. You can also follow us on Twitter (@macchinacc) for easy updates.
While our number one priority during the Kickstarter is outreach, we will also be working hard on documentation, managing the ongoing testing, and preparing for developer beta testing of M2. We will start the production process of Beta M2 hardware when the Developer Reward sells out because we want them to arrive as soon as possible after the Kickstarter ends. Final production is planned for after the developer testing phase; we will be preparing for it by purchasing parts and communicating with manufacturers.
Hardware Development: After several iterations of the electrical design, we are at a point where we are ready to start getting M2 into more people’s hands. We feel that all major functionality is ready for field-testing and are satisfied with the performance of all of the major features of M2. We’ve tested everything from the CAN and LIN transceivers to the Native SD and USB ports. We’ve made sure that the power supply is sturdy enough to power potential add-ons and tried several wireless modules to make sure everything works as expected.
We plan to be fully involved in the future development of this project in every aspect, even after this campaign is over. While the campaign is up and running, hardware development will briefly take a back seat to outreach. Once we have shipped the Beta M2 hardware, Release M2 hardware development will go back to priority #1.
During the Kickstarter, we will compile all of the feedback we receive. We will start by taking into account general feedback we get during the Kickstarter. After the Kickstarter ends, and as the 100 early developers crank out awesome projects, find bugs, and suggest and create improvements to M2, we will roll these into the final “release” version. We look forward to working with you to learn and improve M2 to be the best it can be.
Firmware/Library/Documentation Development: As with any embedded hardware project, firmware creation is tied closely with hardware testing and validation. A major aspect of the Arduino community (and the open source movement as a whole) is that we share and collaborate together. Many excellent libraries already exist to give M2 the functionality it needs. The CAN bus library, written by Collin in Michigan, is a perfect example of this. While many existing libraries are mature and well-tested, we needed to create new code specifically for the other automotive peripherals found in M2. We’ve spent several months working with developers from all over the world to help us write some custom libraries:
ISO9141 library written by Ivor in the Netherlands.
Native SD card, LIN and SWCAN written by Blaz in Slovenia.
J1850 VPW library written by Siddharth in India.
12VIO drivers written by John in the USA.
While a lot of progress has been made, we still have some work to do. For example, we need to make sure some of the lesser-known and less common protocol libraries are further developed and tested.
Here are some libraries that are very early in development:
Overcurrent circuit driver code
J1850 PWM (older Ford cars)
low power/sleep mode library
Developer Program: All supporters who have purchased the Developer Reward or who are already part of the program will receive these perks:
Early access to our Beta M2 hardware (shipping immediately after KS ends)
Early access to design documentation
Direct contact with the core Macchina team
Developers who are engaged, involved and otherwise contribute to the project will receive these perks:
Finalized Release M2 hardware (in addition to Beta M2 hardware)
Influence over the final design
Early access to future projects
Anything else you can think of within reason
Here are our expectations to receive the finalized Release M2 hardware:
1) Idea: Stop into the forum and create a topic letting us know what you are planning do with your Beta M2 hardware. This way we can give you feedback on your idea. It will also help us understand who is testing what. This will also be a great time to meet people who are trying to accomplish similar things and potentially work together as a team.
2) Update: Once you get your hardware check back into the forum. Update your thread letting us know you are ready to start, your hardware is working, and any changes you have made to your idea.
3) Findings: Write up your findings in another update. Share how your project went (it's ok if it crashed and burned spectacularly), bugs you found, suggestions you have, tools/libraries/documentation you found or created that helped, things you decoded, and anything else that might be helpful to us or someone else.
We are pretty flexible on all of this - even if your project was to confirm and verify the work of other developers, that is a valid contribution! The bare minimum: 1 post with 2 updates, but hopefully you will help out the other devs and generally take part in the new community.
Production: Production of subcomponents will take place in several locations around the world, with final assembly and testing happening in our own facilities in Minneapolis, MN. The only way we can ensure high quality hardware is to oversee and have control over final assembly and testing. We will also share our test rig, hardware plans, and software.
We are currently planning two production runs. A Beta M2 hardware run starting as soon as the Developer Reward sells out and a Release M2 hardware run starting after the design is finalized. The production start date for Release hardware will vary based on what revisions we decide to tackle. However our goal is to keep the scope of any changes to a minimum and leave bigger changes to a future (M3?) project. Production of the developer units has already begun and we are preparing for the final production run by buying some of the longer-lead time items.
Shipping: Shipment of early Developer Rewards will happen as soon as the Kickstarter ends. Other Rewards are scheduled to ship 4 months after the campaign ends. We feel this is enough time to gather feedback from early developers, update the design files, run some final tests and then go into full production. This estimate assumes that no major defects will be found during developer testing.
Right now we plan to ship every reward in one batch, but we may consider going to two or more batches if demand is high.
More updates to follow.
Several people have helped in the past and many continue to be involved. We would like to thank the many people that have come together to help us build Macchina. Aaron, Andy, Brian, Chris, Dan, Dave, Doug, Dustin, Helen, Jeff, Johnny, Kat, Ken, Mark, Melissa, Merlin, Rainer and Special Interest Auto Service; this would have been very difficult without you all.
Lastly, we’d like to thank the organizations that have helped us promote this project. Chief among them are: Arduino, DIGI International, Digi-Key, Hackaday, Open Garages.
Risks and challenges
All hardware companies deal with many inherent risks, from sourcing to lead times. We mitigate these risks by buying parts in advance, working closely with distributors/manufacturers and other best practices. We are confident in our ability to deliver quality hardware, we have over 10 years of experience doing just that. On top of that we already have a working version of M2 that has been through a few major and many minor revisions. That said we are committed to being transparent and keeping everyone updated on progress and setbacks should we face any.
Like many open source projects, we believe the long term viability hinges on helping to build a strong community. Luckily for us the car hacking community preexisted us and only shows signs of growing bigger and more popular. We will do our part by providing detailed documentation, tutorials/videos, and spreading the word. Please do your part by building awesome projects and sharing them along with your ideas, resources, and knowledge!
A great option for more advanced DIYers, with their own hardware. This is the Interface board of the M2 Release Hardware that thousands of hours of work will have gone into! Use it with your Edison, ST Dev board, RPi, or favorite microcontroller using the Breakout board.
Get M2 and select a Open Source project to support. This is the final version of M2 Hardware that thousands of hours of work will have gone into! You are also choosing to support the developers who also contribute countless hours to the project.
Everything the novice needs to get started with M2. Do it all with the help of Craig Smith's Car Hacker's Handbook. This book gives an in-depth introduction to reverse engineering and other car hacking techniques.
Upgrade your M2 to 4G! DIGI, Macchina, and Digi-Key, three MN based companies are teaming up to get you started right away with a premium wireless option. This package includes everything you need to make your car a 4G LTE equipped IOT (internet of things) car.
Get an even larger discount for helping us get things moving. You totally supported us before it was mainstream. This is the final version of M2 Hardware that thousands of hours of work will have gone into!