QHotkey logo

QHotkey is simple application for changing the MS Windows volume with your prefered keys. Also it will show nice popup with the current level of volume.

Basically, I had problems with my laptops hotkey application, it has a very long response time which renders the volume keys and all the other function keys unusable. So I decided to make QHotkey, so at least I can change volume as quick as possible. There were already some solutions available, but I found them either not looking as good as I want to or lacking key customization.


By raivis, (10-04-2014, 13:50:12)
Comments: 0
Continue reading...

Guide to Xmega USART aka. Serial communication

data brain

Most of my projects involves having some sort of communication between PC and my micro. Either useful data is being transmitted between those two, or just for the sake of debugging, since I don't have any of the high end AVR debugging tools. Whatever reason, serial communication is always useful and I view it as a must have and very important module of any micro. In this article I'll be describing how to set up serial communication with XMEGA, also how to use standard printf and scanf functions in your C and C++ code. I won't be explaining what is a USART, I expect you to already be comfortable with the theory behind it and I'll leave out interrupts.

By raivis, (09-03-2014, 16:43:09)
Comments: 0
Continue reading...

Configuring xmega system clock

quartz crystal

For me, one of the first things I wanted to test is how to setup the system clock. In this tutorial I'll be explaining how to set up external oscillator from 8-16Mhz and how to set up the xmega to use internal 32MHz clock. I think, by providing instructions for these two types of system clocks, anyone should be able to understand the logic behind the datasheet and set up whichever clock he/she wants.

By raivis, (08-03-2014, 20:29:32)
Comments: 0
Continue reading...

Playing with AtXmega16e5 breakout

xmega16e5 breakout board


For my final year project I ended up experimenting with ATxmega16e5 microcontroller, after major step backs with TI ARM microprocessors (don't get me wrong ARM is very powerful).
At the first glance these new xmega series uC are quite impressive. 32MHz internal clock, incredibly fast ADC (16e5 can have up to 300ksps), 12 bit adc, DAC, two or more USARTs and list goes on. Moreover you are able to use tools you're familiar with, when it comes to program AVR family micros, providing you have programmed AVR family before. I have yet to test full capabilites of the new xmega series, but I'll write posts about individual modules, like ADC, USART, DAC etc.

By raivis, (08-03-2014, 14:12:27)
Comments: 0
Continue reading...

Pigaso - SVG to gcode coverter

For about a month I've been working on a SVG parser, which translates the SVG primitves to gcode, for the use with 3d printer. I started developing the Pigaso so I can easly plot PCBs with my 3D printer. Unfortunately for me, there wasn't any application, which would easily enable me to generate gcode from SVG image, or any image in that matter. So I though of making my own application to do just that. My main goal, is to develop a converted which is easy to use, and specialized for generating gcode, no hacking required. Continue reading for a demonstration.

By raivis, (17-12-2013, 17:27:33)
Comments: 0
Continue reading...

DIY 3D printer, AKA RepRap


Parallel to my work, I always do some kind of project every summer. Last summer was a game, which I didn’t manage to finish (got lazy on designing the levels). However, this summer I took on to a journey in a field I have almost no experience. Basically, I built my own 3D printer. Without any kits, I wanted to take away from this journey as much as I could.  I’ll try to remember all I did, and write as detailed as possible about this journey.  In any case, I would advise anyone to try and do this project, it’s a very good learning experience, but be warned that it isn’t a walk in a park, like I thought. When I started this project, I though it wouldn’t take more than 2 weeks to finish it. Well if you know what you are doing, probably it would take less than one day to assemble it, but I didn’t.

By raivis, (27-10-2013, 17:20:35)
Comments: 0
Continue reading...

Passing methods as function parameters C++


This is more like a quick reference for myself, how to pass a method as a function argument. It turned out to be very useful for one of programming tasks. I had a lot of  "get" type methods with the same return value, and needed to construct a table of results. And passing method as argument, was a very neat solution.

By Raivis, (13-09-2013, 15:27:36)
Comments: 0
Continue reading...

Simple library for driving 20x4 LCD with 4bits

LCD final result 20x4

Out of boredom I figured out I'll write a library from scratch to interface the character LCD display which I got from ebay, quite cheap. Less than 7 pounds. However, I have written before a simple code to interface an LCD from scratch for 8051. So I have some experience and understanding how the character LCD works. The difference now will be, I' ll be using 4 bits, instead of 8 bits to communicate and read the busy flag. Essentially improving the previous code. I chose to write it for Arduino this time, because I have Sanguinololu bought for my 3D printer, and at some point I want to write a LCD user interface for it, from scratch. There won't be anything spectacular about this tutorial, there are already good articles about this stuff for all kinds of devices. Moreover, arduino has bunch of LCD libraries available for download for free. BUT... in this tutorial I'll describe problems I encountered and try to be as descriptive I can be so you can understand how the character LCD works, making you able to interface it with any micro-controller available, and even driving it by hand.

By raivis, (06-08-2013, 22:34:34)
Comments: 0
Continue reading...

Adding file attachments to SMTP client for Qt5

At the begining I thought I'll need to send text only through email. But the more I thought about it, I understood that I want to add three files to the mail as well. By altering previous code I managed to add simple Multipart MIME message support. In other words file attachments.

By raivis, (11-07-2013, 11:13:22)
Comments: 12
Continue reading...

Simple TLS/SSL SMTP client for Qt5

For one of my projects I wanted to develop a crash reporting dialog where user can enter the steps he did to crash the application and then by pressing send button the app automatically will send me user report and the log to my e-mail address. Unfortunatelly Qt doesn't have a Smtp library, and I don't want anything heavy just to send a simple string of characters through gmail smtp server.

By raivis, (09-07-2013, 16:42:54)
Comments: 7
Continue reading...


Favourite quote:

"We live in a society exquisitely dependent on science and technology, in which hardly anyone knows anything about science and technology."

Carl Sagan

Top 10 articles

© Raivis Strogonovs, 2009 - 2014