1. From zero to SoC in LiteX

    Sat 22 August 2020

    Recently I had a need for microcontroller with larger than usual number of peripherals and found that none of STM32s have the number of peripherals I wanted, so I decided to do a small feasibility study on building my own using LiteX.

    This article details the sequence of steps I …

  2. Deployable convolutional neural network libraries

    Thu 23 February 2017

    I recently reviewed the current state of neural network libraries from a perspective of integrating them in multi-platform, desktop C++ applications (Linux, Windows). Although there has been a lot of progress in machine-learning, it mostly seems to be concentrated on the research/development side. As a consequence, deployment of the …

  3. Machine learning on other people's computers

    Thu 09 February 2017

    Recently I've been experimenting with machine learning models for image recognition tasks (convolutional neural networks, CNN).

    The training phase of the machine learning requires a whole lot of floating point operations. Even though current generation CPUs are really good at number crunching, their performance is still not enough- GPUs outperform …

  4. An overview of RaspberryPi cameras

    Wed 11 January 2017

    RPi is one of the most interesting SBCs for small, self-contained image recognition applications. In this post, I will explain why I think this is the case and present an overview of cameras I have tested on RPis.

    Why RPi?

    RPi is not the only SBC around. Some of them …

  5. MAVLink wireless bridge (MAVBridge)

    Sun 04 December 2016

    I have been using MAVLink on various flight controllers for ~ 2 years now and one thing that made me mad was lack of high bandwidth wireless connectivity between PC and airborne platform.

    The most common wireless options for MAVLink are RF transceivers operating in ISM bands and Bluetooth SPP (serial-port-profile …

  6. Upping STM32 debugging

    Thu 24 December 2015

    Lately a major part of my day job has been writing software running on STM32 microcontroller. Up until this point my only debugging tools were limited to:

    1. printf-littering code and looking at output in serial console;
    2. Stepping through code with debugger (gdb together with OpenOCD or stlink);

    Both of the …

  7. Using Dynamixel's RoboPlus without USB2Dynamixel

    Fri 07 November 2014

    Recently I needed to debug Dynamixel's MX-12W smart servo motor which didn't work in multi-turn mode.

    Having exhausted all other options (reading datasheet carefully, probing data line to verify that MCU sends what I think it should send), I decided to try moving the motor using Dynamixel's RoboPlus software.

    Usually …

  8. My take on a custom laptop

    Tue 19 August 2014

    Overview of custom laptop

    Inspired by bunnie's Novena, I decided to build my own customized laptop with focus on experimentation with hardware.

    My main motivation for this project was that I got tired of lugging around devboards, USB UART bridges half-assembled projects. Also, I'm usually a bit concerned about my soldering skills and EE …

  9. TV-OUT on Olimex's A10-LIME

    Tue 01 April 2014

    I got my hands on Olimex's new A10-OLinuXino-LIME as a potential replacement for RaspberryPi which I fried by accident. One specific requirement I had was a composite TV output (PAL/NTSC). It is not mentioned anywhere in product briefs by Olimex, but this SBC does have an analog video output- …

  10. Combating endstop noise on a RepRap

    Thu 06 March 2014

    While assembling my new toy - a larger, RepRap-based 3D printer, I experienced strong noise on endstop inputs.

    Endstops on my machine are pure mechanical switches, and the wires to endstops are in the same cable where wires to stepper motor are (unshielded, of course).

    I wasn't surprised to see some …

continue   →