OSEMO stands for:

Open Source Equipment Management & Operation

OSEMO is pronounced “awesome-o.”

The OSEMO Advantage:

1. OSEMO is built with open source hardware and software.

Screenshot 2014-08-23 14.27.39The software is freely available to any and all.  This includes the bootloader, OSEMO library, and the Arduino compatible sketches.  All software/firmware is protected by the Attribution-ShareAlike 4.0 International License.  A copy of it can be found here: http://creativecommons.org/licenses/by-sa/4.0/.

Screenshot 2014-08-23 14.27.29The hardware schematics are freely available for perusal for fully understanding the OSEMO layout and being able to not only use it to its fullest extent, but also so that others can make Add-on, Adapters, etc. that will be OSEMO compatible.  Revisions, tweaks, hacks, etc. can be made as long as it is for non-commercial purposes. All hardware is protected by the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.  A copy of it can be found here: http://creativecommons.org/licenses/by-nc-sa/4.0/.

2. OSEMO is meant to be a universal controller.

OSEMO Module v3 angleEvery OSEMO module can control devices at the source voltage and/or a regulated 5volts.  Our first offering can control devices anywhere between 3 & 24Volts DC without an adapter up to 2 amps per pin!  Adapters allow control for anything from 220volt AC at 30 amps  to 12V DC at over 100 amps!  Every pin can be Pulse Width Modulated for soft-starting devices, software controlled dimming, etc.

3. Any OSEMO output can be controlled by any input--even across multiple OSEMO modules.

All switches and inputs are wired to an OSEMO module–not to the device they are to control.  Likewise all outputs and devices are wired to an OSEMO module–not to their switches.  In this way the OSEMO module’s firmware can dictate what input controls what output.  You can even have a single output (device) controlled by multiple inputs (switchs), a single input (switch) control multiple outputs, or a macro in which a series of outputs are interacted with in a programmed manner via one switch.  Here are some examples:

    * Single output controlled by multiple inputs: the switch on the driver’s side door as well as the switch on the passenger’s door can roll up and down the passenger’s window.
    * Multiple output controlled by a single input: a switch on the driver’s side door rolls up all the windows.
    * Macro event: a single switch labeled “Race” changes the seating position, changes the engine tune, tightens the suspension, lowers the ride height, adjusts the spoiler, and then flashes the hazards twice when everything is ready.


4. OSEMO is meant to be a wire-once controller.

OSEMO ver 2 010This does not mean that an OSEMO module cannot be changed and reused multiple times and in multiple ways.  In fact, that is part of the beauty of OSEMO’s versatility.  The “wire-once” part just means that you can wire the devices to it and any changes to how the device is used is done via software!  If you want your taillights to just come on solid when you hit the brakes, no need to rewire, just update the firmware.  If you want the taillights to flash twice and then stay on solid when you hit the brakes, no need to rewire, just update the firmware!

5. OSEMO is hugely expandable.

The main module comes with a set of Arduino shield compatible headers (http://www.arduino.cc/).  OSEMO can thus support any and all of the thousands of shields out on the market today.  These include everything from Ethernet shields to LCD screens, satellite communication to H-bridge motor controllers.  These are stack-able, so multiple shields can be used simultaneously.

OSEMO adapter 2014 005The main module also comes with a set of BoardX compatible headers (http://www.upgradeindustries.com/).  OSEMO can thus not only support any of the BoardX Add-ons, but can also support any of BoardX’s line of processor Add-ons!  This means you can add another 8-bit AVR processor or even a 32-bit Linux or Android capable ARM processor.  These could be used for parallel processing, offloading some computations from the main board processor, or even adding a Human Interface Device capability such a  touch screen while running Android!  These are also stack-able so multiple Add-on boards can be used simultaneously.

If you somehow cannot find an Arduino shield or Add-on board that suits your needs, or price point, feel free to design and make your own!  Remember, our schematics as well as Arduino’s and BoardX’s schematics are all open source.

The main module also comes with I2C expandability in the form of two Grove connectors  (http://www.seeedstudio.com/depot/grove).  So you can simply plug in any of the Grove components such as an humidity sensor, an accelerometer, or pressure sensor.  At the same time you can wire in any number of hundreds of I2C compatible devices and components available practically anywhere.  These can even be daisy chained for multiple components attached to a single board.

6. OSEMO can use the CAN-bus protocol natively.

OSEMO 2014CAN-bus has become the industry standard in automotive, marine, and industrial applications.  It is extremely robust with built-in error handling and can even continue transmitting if one of the two lines is broken!  The OSEMO libraries make what is OSEMO at Davesnormally a dauntingly complicated protocol extremely easy to use.   A single line of code initiates the CAN-bus hardware and a couple more lines of code are all you need to send and receive messages as easy as sending serial text.  Because of OSEMO’s native implementation of the CAN-bus as well as OSEMO’s “wire-once” ability allows you to only have to use four wires for the length of your implementation (power, ground and the two CAN-bus wires)!

Due to the simplicity of implementing the CAN-bus protocol with an OSEMO module you can now take advantage of it in any of your own automotive, marine, aviation, RC, robotic, home automation, etc. projects!

7. OSEMO was designed specifically for vehicles.

Why not just use an Arduino, Raspberry Pi, Galileo, or other similar board out there?


  1. None of them were designed for a vehicle.  Although they might be able to handle vehicle voltage levels to power themselves, they cannot directly manipulate devices at vehicle system voltage levels.  The OSEMO Module can control devices at 3.3V, 5V and the system voltage.  So if you are using a 12V system, then the OSEMO module can control the 12V devices.  Likewise if you are using a 24V system, then the OSEMO module can control the 12V device.
  2. None of them support CAN-bus natively.  With them you have to use a separate CAN-bus board and consider the library that comes with that board.  With OSEMO CAN-bus is already supported physically and is included in the library.  The add-on space can thus be used for other expansions.
  3. None of them can send over 1Amp to an output like OSEMO can (at 5V or system voltage).
  4. None of them can Pulse Width Modulate (PWM) any pin.
  5. None of them support BoardX AVR & ARM Add-ons.  With a BoardX AVR or ARM Add-on you can do parallel processing or dedicate the daughter board for controlling a specific area (such as fuel injection).


It is better to thus get the open source OSEMO Module designed by automotive enthusiasts for automotive enthusiasts!

OSEMO Module v3

Online Store

Generation image

Past Events and Projected Timeline
projected timeline

Videos showing projects already using OSEMO Modules.



Local Motors
Upgrade Industries


Mark Burhop
Matt Jackson
Jason Pederson
Mark Burhop


Tony Rivera
Justin Fishkin
John Perry
Christina Hall
Todd Mason
Kenneth Mansell
Michael Collins
Ben Smith
Russell White
Michael Mansell

Contact Us