Open Source Brushless Servo

The odrive is a open source high performance brushless servo platform based on RC BLDC motors. Great Stuff!

Key Specs

  • Two motor channels.
  • 24V, designed for more than 100A peak current.
    • 48V version just released.
  • DC-DC converter, for brake resistor or energy storage.
  • Encoder feedback for arbitrarily precise movements.
  • Supports power regeneration.
  • Optional use of a high power density battery means you can achieve >1kW peak power output with only a modest power supply.
  • Open source: HardwareSoftware


  • USB Serial port — PC, BeagleBone, RaspberryPi, etc.
  • CAN — CANOpen and CiA 402 is a possibility.
  • UART — Arduino, mBed, etc.
  • PWM — RC Recievers, Arduino, etc.
  • Step/direction — Existing motion controllers
  • Some general purpose digital and analogue pins


  • Many types of command modes
    • Goto (position control with trajectory planning)
    • Position commands
    • Velocity command
    • Torque command

GCODE from SVG in the Browser

Jscut is an open source browser based GCODE generator that uses SVG as an input.

Jscut seems to be the predecessor of LaserWeb by the same developer and several other contributors that is focused on controlling lasercutters but does basically the same with a more polished interface.


HowTo Enable the RaspiCam in Octoprint

First, if you haven’t already, activate the camera in raspi-config. Login via SSH type “sudo raspi-config” select “Interfacing Options” and enable the camera.

Configuring the camera

Now edit “sudo nano /boot/octopi.txt” uncomment the camera=”auto” line and change it to camera=”raspi”. Uncomment camera_raspi_options=”-fps 10″. These settings configure the camera to provide and image in the format 640×480@10fps. If you would like to change that check the available options at:

Enabling the camera in the octoprint browser interface

In the browser click on the little wrench in the top bar to open the settings dialog. Select “Webcam & Timelapse”. Set the “Stream URL” parameter to “http://octopi.local:8080/?action=stream”. Obviously change the hostname if you have configured it to something different.

Finally restart octoprint for the changes to take effect.

HowTo build the Marlin 3D Printer Firmware on the Raspberry Pi

If you are already running the excellent octoprint as a printserver on a Raspberry Pi it is very convenient to also build Marlin on it. The new Raspberry Pi Zero W with onboard wifi is at only 10$ just perfect for both tasks. If you want to use the camera streaming of octoprint I would recommend a Pi3 though.

I made a script that sets up the necessary build environment and provides commands for building and uploading. It uses the official Arduino toolchain. Everything is standalone, nothing is installed outside the marlintool directory.

It works on the Raspberry Pi and Linux in general but not on OSX. The script auto detects the build platform architecture. At the moment Linux 32 Bit, 64 Bit and ARM are supported.

Several parameters at the beginning of the script allow to adapt it further to your needs. Recently Anet A6/A8 support has been merged back into the main Marlin branch. I would highly recommend to switch to the official Marlin branch from now on. You can find example configurations for Anet printers in the Marlin sources at: Just replace the “Configuration.h” and “Configuration_adv.h” in the marlin directory with the files your find there for a good starting point of your configuration.

If you do not need additional hardware/board definitions because you use the ones that come with the toolchain set the parameter “hardwareDefinitionRepo” to an empty string. This prevents the script from fetching the board definition that is needed for the A8 from github.

If you are running octopi on you Raspberry you need to disconnect it from your printer before uploading otherwise the serial port is blocked.


here on github:

or download directly as a zip:

Commandline parameters

-s  — setup

Download and configure the toolchain and the necessary libraries for building Marlin. Also fetches the Anet board hardware definition from github if specified.

-m  — marlin

Download Marlin sources.

-f –fetch

Update an existing Marlin clone.

-v  — verify

Build without uploading.

-u  — upload

Build and upload Marlin. If you are running octopi on you Raspberry you need to disconnect it before uploading otherwise the serial port is blocked.

-b  –backupConfig  [name]

Backup the Marlin configuration to the named backup.

-r  –restoreConfig [name]

Restore the given configuration into the Marlin directory.

-c  — clean

Cleanup everything. Remove Marlin sources and Arduino toolchain.

-p  — port [port]

Set the serialport for uploading the firmware. Overrides the default set in the script.

-h  — help

Show help.

Open Source Image Classifier

Libccv is an open source image classifier and computer vision library.

It runs on Mac OSX, Linux, FreeBSD, Windows, iPhone, iPad, Android, Raspberry Pi. In fact, anything that has a proper C compiler probably can run ccv. The majority (with notable exception of convolutional networks, which requires a BLAS library) of ccv will just work with no compilation flags or dependencies.

Among lots of other things it has a SIFT implementation

The sources are available on github.