Archive for the ‘Tips and tricks’ Category.

APA102C LED strip at 28 MHz clock

I recently received 1m of APA102C led strip with 144 leds per meter. I want to use the strip for rotary POV display so I cut the strip in half and tested the performance with a STM32L476RGT nucleo board. The results of the tests are surprising and very promising for my application.

Continue reading ‘APA102C LED strip at 28 MHz clock’ »

Soldering TQFN with a distance

The MCBs (Machined Circuit Boards – an alternative to DIY printed circuit boards) are now jumping out from the mini-CNC like in high volume production. This is new revision of RH/Temperature sensor with RS485 interface with Si7013:

New revision of Si7013 sensor module - machined boards

New revision of Si7013 sensor module – machined boards

The boards are solder “plated” and prepared for assembly process. However, there is one issue with Si7013. It comes in SMD housing without leads. This is no big trouble, but the thermal pad is, because there is trace routed under the Si7013, which is not GND:

The "problematic" trace is white hatched.

The “problematic” trace is white hatched.

That means it must not be soldered to thermal pad. The good thing is, the thermal pad can be left floating.

Continue reading ‘Soldering TQFN with a distance’ »

Source code generator for Command Line Interpreter (CLI)

Microcontroller with serial bus or USB CDC (virtual COM port) is usually connected to some terminal. User then type commands and firmware in the microcontroller interprets entered commands.

Developing simple interpreter is not very scientific task, more like PITA with repeating chunks of the code. After couple of successful projects with such interpreter I can say my code is somehow tested and proven in the practice. Now I prepared one application which can shorten development process and make my life easier when I start application in new device.

The source code generator generates only command line interpreter. It provides all identifiers for selected commands, provides function prototypes for each command and text template for help. Finally only the functions for executing specific commands should be then implemented.

The final application can be either multi-threaded with RTOS, or flat single thread. In both cases, there should be some function or ISR checking for new char and feeding this char to the command line editor. When new line “arrives”, the function cmd_proc() is called and then the magic happens.


General structure of the caller thread or application

Continue reading ‘Source code generator for Command Line Interpreter (CLI)’ »

Keyboard for a CNC – recycling a programmable keyboard

Final look

Final look

This keyboard is more than 10 years old. I got it for free but it had its problems. First one was a PS/2 interface. Not ideal for a keyboard used in 2016. Second problem was software for programming this keyboard. It came on not one, but two diskettes with DOS and Windows versions of the software.

That’s where I decided to take it apart and replace electronics inside. New controller is based on KeyWarrior IC which is capable of scanning 16×8 matrix.

This keyboard merges a standard keyboard with a jog controller for a CNC machine. Upper half are “normal” keys and bottom half is for controlling my CNC machine. The shortcut keys will save me a lot of time and trouble when working with the machine.

Continue reading ‘Keyboard for a CNC – recycling a programmable keyboard’ »

HDLC-Like data link via RS485

Communication between microcontrollers is always interesting topic. I was looking for simple, efficient and reliable protocol between several microcontrollers. First I have to choose the physical layer. One of the most commonly used multipoint buses is RS485. Due to simplicity I choose half-duplex RS485. Only two wires is all it needs to establish link between two devices:


Continue reading ‘HDLC-Like data link via RS485’ »

Electric ingiter for model rockets

Keep in mind that my device does NOT comply with any safety standards whatsoever and safety is based only on common sense. It should not be used for anything else but model rocket hobby.


I started of with a simple schematics as shown below. The idea was simple – to heat a thin wire with huge electrical current as quickly as possible. I used N-channel MOSFET with drain current rated at 80 A. Power source is 4S 5Ah LiPo battery rated at 20C which means that it’s capable of delivering 100A constantly.



Schematics of igniter

Continue reading ‘Electric ingiter for model rockets’ »

Raspberry Pi “folded” USB connector

The R.Pi is excellent module for many applications. Unfortunately it is not easy to stack USB modules connected to it. When USB module, e.g. RTL-SDR is attached to the R.Pi, the whole package become very long requiring larger box. One solution is to use USB extension cable, but it again require additional space. Here is another, more compact solution:

  1. remove the USB connector from your module
  2. place SIL header at the pins for USB connector
  3. connect the USB module back “folded around the corner”

usbvinkel1 usbvinkel2 usbvinkel3

Simple 5 minutes housing for Raspberry Pi with Camera

I took old cover from plastic sewer pipe (it was never used ha ha). Then I drilled four holes for M3 screws and one bigger hole for camera module lens. The housing was prepared from one litre PET bottle. I cut the bottle to proper size and inserted raspberry Pi with the camera inside the bottle. Next the LAN cable with passive 5V “PoE” was inserted.

Finally, I heated the bottle with hot air gun at the camera side to shrink a little bit and tightly close the gap between the plastic camera “holder” and the bottle .

Photos below will tell more than thousand words:

Continue reading ‘Simple 5 minutes housing for Raspberry Pi with Camera’ »

How to program blank STM32F1 with STLINK V2 firmware

Today I found out how to “flash” blank STM32F103xC to make STLINK V2 debugger interface.

So, instead of desoldering from Discovery board to make miniture STLINK debug interface:

a09 - stlink v2 brain desoldered                  a0a - stlink v2 finally assembled usb mini dongle

it’s possible to solder blank (or any) STM32F10x with USB and at least 64k flash + 20k RAM, program it with STLINK V2 Firmware and use your new USB dongle for debugging STM32 or STM8 devices.

Continue reading ‘How to program blank STM32F1 with STLINK V2 firmware’ »

Comparing two DIY PCB prototyping processes

Following this interesting heat-less, laminator-free process I decided to test it myself:

Continue reading ‘Comparing two DIY PCB prototyping processes’ »