This page lists some of my personal, commercial and research projects. Most of the resources are available under permissive open-source licenses, including the hardware. Sources are available at https://github.com/iqyx. You can contact me using qyx@krtko.org or qyx@freenode.

  • 02/2018 Migration of pages from the old location http://qyx.krtko.org/projects/ and others is ongoing. Old links should still work though.
  • 10/2019 Documenting recent projects

tomato-single-cell

Deprecated OSS, OSHW Research Prototype field test

A single-cell Li-Ion/Li-Po/LiFePO4 battery solar charger board for the natWatch platform (tomato-series solar chargers)


nwDaq-G201
(OSS Plumcore, OSHW, research, Status: prototype manufactured, errata, next rev. planned)

A miniature and battery powered data logger and remote data acquisition system for CAN based sensors


nsprofiler-cap
(abandoned, Status: for reference only, testing FW available)

13-segment capacitive profiler probe for measuring moisture content in soil and snow


lcd-temp-hum-meter

(OSS, OSHW, one-off play-project to try STM32L053 segmented LCD driver, Status: working prototypes)

Quite ordinary temperature, humidity and pressure meter with a 8-digit 14-segment LCD display. Built to try the internal segment LCD driver of the STM32L053 microcontroller, failed partially thanks to a MCU bug. Personal project.


HVAC PLC using SAMA5D27-SOM1 module

Personal OSS (Buildroot, Linux), OSHW Prototype field test

A PLC with ethernet, USB host, USB device, 2x CAN interfaces and 2x RS485 interfaces built around the SAMA5D27-SOM1 module from Microchip. It runs a buildroot-based Linux in my basement with a bunch of python scripts to control my HVAC. Personal project. Base for a controller board for another commercial project.


Octavo Systems OSD335x-SM based mainboard for the NW-R platform

Proposal/Idea OSS (Buildroot, Linux), OSHW

A Octavo Systems OSD335x-SM based mainboard for the NW-R platform running GNU/Linux for more computationally intensive DAQ applications.


2-cell TSP solar power board, 2U NWR form factor

Proposal/Idea OSS, OSHW Research

Solar power board for the NWR platform. Charges a two series cell Li-Ion or Li-Po external battery and provides 5V power to the NWR backplane. Design partially verified.


Onion Omega2S based internet router for the NW-R platform

Proposal/Idea OSS (OpenWrt), OSHW

A Onion Omega2S module based board for connecting a NWR DAQ system to the Internet. There are several interfaces available:

  • front panel 100Base-TX ethernet port (RJ45 connector)
  • internal single-chain 802.11b/g/n WiFi (SMA connector)
  • mini-PCIe slot (USB & PCIe, SIM socket) for 802.11 wireless card, cellular modem or LoRaWAN modem, etc (SMA connector hole reserved)
  • internal LoRa radio (SMA connector)
  • internal 2G/Edge modem (with SIM socket, SMA connector)

Omega2S module is OpenWrt compatible.


uMesh secure mesh network protocol stack
(abandoned, OSS, Status: functionality redone and included in Plumcore)

uMesh is a set of experimental communication protocols intended mainly for low data rate wireless mesh networks such as sensor networks for environmental data gathering, asset and people tracking, short message delivery and paging, narrowband voice communication etc. in scenarios, where common network infrastructure is not reachable and/or is not feasible for a particular purpose. Protocols are designed with high level of security in mind which could make them suitable for many critical and disaster recovery applications in the future.


plumCore framework

(OSS, Status: active WIP)

A modular framework for data logging, remote data acquisition and low power wireless mesh networks.


uMeshFw Bootloader (uBLoad) (abandoned, old versions working on a specific hardware, OSS)

A (slightly more) secure bootloader for (not only) uMeshFw compatible wireless nodes


qdlLibrary
(OSS, not maintained anymore, used in personal and commercial projects)

A simple display list rendering library. Main difference from other libraries for drawing objects on a canvas is that here the objects are rendered when display refresh occurs. Objects to be drawn are sorted as a nested boxes (hierarchical structure, tree). This approach uses much less memory and allows drawing on large displays without controller with dedicated display memory. It also makes “redrawing” screen and user interface widgets easier - there is no need to actively redraw anything after changes.


SimpleFlashFileSystem
(OSS, not maintained anymore, used in Plumcore and other personal projects. Replaced by SPIFFS available on GitHub)

Simple filesystem originally developed for saving configuration and firmware update images on NOR flash memories in embedded systems. It is based on other similar filesystems (like yaffs, jffs), but it is made even simpler. No filenames or directory structure is supported, files are referenced by their IDs (like on smart cards). Filesystem is optimized for simplicity and is probably unoptimal in every single way.


qNode5 - uMesh debug platform

uMeshFw compatible debug platform with STM32F407 MCU, radio, gps, LiPo accu and large STN transflective LCD display.


qNode4 - uMesh-compatible solar powered low-cost node

First working hardware architecture capable of running uMeshFw. Contains low-cost STM32F401 Cortex-M4 MCU, RFM69 radio, battery step-down converter and solar step-up converter (without MPPT) feeding a LiPo charger.


RF amplifier for the 433MHz band

Amplifier and filter for amateur balloon telemetry reception


Solar power management module

Power management module for solar charging of small capacity LiPo cells controllable over I2C bus. Primarily intended to be used on uMeshFw solar-powered nodes. Although quite funtional, very old and never really used.


LED lamp in a jar

White led driver board enclosed in a glass jar.


GPS tracker with a simple LCD interface

After much negative experience with Android GPS tracking (battery usage, bad reception) I decided to build my own dedicated GPS tracker despite the fact that multiple similar devices are readily available on the market.

No prototype was made.


TreeCli - a hierarchical, tree structured command line parser/interface

Treecli provides a convenient way to configure various embedded devices using common serial and network interfaces. It is inspired by command line interfaces commonly found in network gear (switches, routers, firewalls..).


LineEdit library

Lineedit aims to be a lightweight command line editor usable over common stream interfaces (like sockets, serial ports, etc.). It was written to be used on an embedded platform and its features and code are optimized for embedded environments.


kiwi-simple

2Msps, 4-channel, 1Vp-p, GPS synchronized signal digitizer


plumpot-lp

Low power STM32L4 base board for the natWatch platform with micro-sd slot, QSPI flash


plumpot-cellular

One of the first natWatch platform base boards. It contains a STM32F401 MCU, Quectel M66 GSM/GPRS modem and a AX5243 radio.


meteo-solar-shield

A circular-shaped base board for low-cost integrated sensors enclosed in a solar shield. It has two A-coded M12 connectors, communicates over the CAN bus and can be supplied with a 3.6-33V power.


2 channel ultrasonic transducer driver and time-to-digital converter


VLF loop antenna preamplifier


Soil moisture sensor with capacitive sensing

A small capacitive sensing soil moisture sensor node based on the STM32L4 MCU with a AX5243 radio transceiver

GPS-synchronized VLF receiver for the purpose of lightning detection and mapping. Project was started long time ago as a possible contribution to blitzortung.org, however it was abandoned later. There are plans to revive it with many improvements compared to the original design. 02/2018 - Part of the project is implemented with the kiwi-basic digitizer


Snow pit profile sensing with TDR


PEEP (Photo-Electronic Erosion Pin) sensors with mesh network radio


Ideas for bulding different NatSense platform enclosures using commonly available plastic and extruded aluminium boxes.

Semantic Versioning for hardware components

After some time using both the SemVer and GitFlow, I decided to try to apply similar rules to hardware development, mainly for system components and PCBs revision marking.


The NatWatch platform specification - A stackable and extensible board platform for nature observation and environmental monitoring
(OSHW, Status: multiple boards made and used in various projects)

This is an attempt to specify an extensible platform in the hope that it will be useful. A platform built by electronic engineers and enthusiasts for researchers in environmental sciences for nature observation and monitoring. A platform, where the actual user is not required to have soldering skills, does not have to download arduino.exe and handcraft some code, where the devices are able to withstand severe environmental conditions, be reconfigurable and extensible in the field and are made to be useful for the actual intended purpose and not playing. For now, I selected a simple name “NatWatch” for the platform.


An explanation why I decided to investigate wireless mesh networks deeper and initiate the uMesh and plumCore projects - pdf presentation


Boards for the NatWatch platform - ideas and roadmap

A list of ideas and components for various main boards and extension boards used for data acquisition (analog-to-digital, time-to-digital, capacitance-to-digital, etc.), sensor interfaces, radio interfaces and power management. Some of them are in the prototyping phase and their documentation can be found on this page.


The NatWatch-R platform - rack version

Over the time it became clear that the original NatWatch platform is not well suited for many intended applications and there are reasons to make some improvements.

RFM69(CW) sub-1GHz wireless radio module range testing - part 1 still missing, part 2, part 3


Multi-cell isolated battery voltage monitoring

I was considering multiple options for monitoring large stack of batteries/cells for an off-grid solar application. Recently i came across a very interesting approach described in the AN112 from Linear Technology by Jim Williams and Mark Thoren entitled “A Simple Solution to a Not So Simple Problem”.


  • index.txt
  • Last modified: 2019/12/07 00:02
  • by qyx