Skip to content

Category Archives: Projects

μcuREST Tutorial

Getting Started With μcuREST you can implement REST services and/or a web application for communication with your embedded application. First you’ll need to decide which resources (variables or functions of your application) you wish to expose via HTTP and assign URI to those resources. Then define a μcuRESTresource map, binding URI names to the resources. […]

Cascaded Configuration Sets for C++1y

Introduction Preprocessor macros are widely used in C++ for configuring reusable modules, targeting different platforms or working around compiler’s differences. Such approach is inherited from C and used even in modern pure C++ libraries, such as boost. The aim of this work is to research on suitability of C++ templates and language features for establishing […]

μcuREST – an application server for constrained platforms

Introduction μcuREST (micurest) is a C++11 library for implementing REST services on constrained platforms, such as bare metal applications on low-end MCUs. The library is platform-agnostic, zero-allocation, and has almost no external dependencies. It allows mapping hierarchically organized URIs to C/C++ variables, constants and methods, and exposing the URIs via HTTP protocol.

USBUART

USBUART is a cross-platform libusb-based library for reading/wring data via USB-UART adapters with Android support. It implements a relay from endpoints of a USB-UART converter to a pair of I/O resources, either appointed by given file descriptors, or created inside the library with pipe(2). User application may then use standard I/O operations for reading and […]

cojson tutorial v2.0

1. Getting Started For a quick start the easiest way is using codegen. Paste you JSON into the left editor, hit button Run and collect results in the right editor. Adjust options if necessary and build with your application. With instructions, given in this tutorial, you may manually craft or adjust auto-generated structure of your […]

cojson – a JSON parser for constrained platforms

Introduction cojson is a C++ pull-type JSON parser/serializer for constrained platforms, such as bare metal applications on low-end MCUs. It does not use memory allocation and has almost no external dependencies. It is not intrusive – it neither forces nor implies any particular design of the application. Instead it adapts to fit any existing application […]

Моторес додаток для Android смартфону

Вступ Бензинові двигуни в косарках, мотоблоках та садових тракторах потребують регулярного обслуговування (заміни оливи, повітряного фільтра, тощо) кожні 20-30 годин роботи. Цей додаток допоможе відстежувати мотогодини в ручному режимі, коли користувач власноруч ініціює події пуску і зупинки, чи у напівавтоматичному режимі через "прислуховування" до шуму. Коли лічильник мотогодин досягне відмітки в графіку обслуговування, додаток відобразить […]

Motores app for Android phones

Introduction Petrol engines used in lawnmowers, tillers, garden tractors require regular maintenance (such as changing oil, air cleaner, etc) every 20-30 hours of runtime. This app helps tracking engine runtime in manual mode, when user initiates start and stop events or in semi-automatic mode by "listening" to the noise. Once engine's runtime reaches a point […]

Simple RJ45-pluggable IR-repeater

Design of this IR-repeater is based on a photo detector TSMP58138 made by Vishay. This detector differs from many others of this kind by the carrier out signal. The datasheet gives a sample circuit for a repeater application. This design offers slightly modified circuit with visual feedback and an implementation in form of a RJ45 […]

Implementing C++ designated initializers with templetized constructor

C99 facilitates support designated initializers: I found this handy feature very useful, since it does not require remembering order of the struct fields and simplifies refactoring and/or evolving of the existing code. C++0X and C++1X does not allow this (please follow this link for more details) This page has inspired me on a practical solution […]