Char Pointers in C

The Code:

I decided to write a quick bit of code to reinforce my understanding of char pointers in C; especially Char** as I recently confused myself. Firstly lets get straight to the code as it is the best way to learn. The code comments should explain what each line is doing however additional explanation of the steps is provided further down the page.

Read more…

VCentre 6.5 higher memory requirements

I have started working heavily with VMWare at work and have setup my own HP DL380 G7 with VCentre 6.0 which needed 8GB of RAM. This was the smallest configuration available from VMWare however it was overkill for my home lab. This could be changed down to 4GB after it was shutdown and then reduced via ESXi web interface.

I decided to try VCentre 6.5 but unfortunately Vcentre 6.5 has higher memory requirements than version 6. I use Linux at home and VCentre 6.5 removes the need for the integration plugin and provides a faster HTML interface. The tiny instance has increased the RAM from 8GB to 10GB, I have plenty of RAM on my server however I didn’t want to waste it unnecessarily. Unfortunately modifying it via VCentre is not possible as it refuses anything less than 10GB; shutting down the VC and modifying it via ESXi web host is also not possible as it fails with an error.

The only way I managed it was to use the Windows Vsphere Client connected to the ESXi host, this had no problem changing the memory; I guess that is because VMWare hasn’t updated the client since the web interfaces came out.

This seems to work fine like it did before, the only thing to note is the hardware status is unavailable for the host with a message “No host data is available”.

Hope this helps people.

Arch AUR Unknown Public Key

While trying to install an update for network-manager strongswan from AUR I got the following error:

The public key needs to be downloaded using the following command:


Michal Zuber

Weather Station using Raspberry Pi & Arduino


This post will be extensive so will be separated into 3 parts to make it easier to write and read. I have spent the last couple of months developing a weather station; both for the fun of it and to improve my understanding of the C programming language. The weather station will perform quite a few tasks. It comes in 3 separate bits; several remote sensors that transmit their temperature, location and battery status over an RF link, a receiver module that receives the data over the RF link and the raspberry pi main station which talks over I2C to the receiver unit to get the data. The raspberry pi then processes this information to display on an LCD screen. It has five buttons; one switches between all remote sensors and it’s self, 2nd switches between the data&time, IP address and WiFi signal strength, 3rd switches between Celsius and Fahrenheit, 4th turns the display backlight on/off and 5th safely turns the raspberry pi off. All of the code is written in C, both the raspberry pi and arduino.

Read more…

Arduino: Using C to write 7 Segment 4 Bit Display Driver

I have started re-learning C using the “C Head First Book” after doing it at university a number of years ago and decided to purchase an Ardunio (Well Genunio as I am not in the USA). The first lab in the book was to create a moisture sensor for detecting if a plant needed watering and write the output to the serial port to display on the PC. I purchased quite a few components from Banggood including this 4 bit 7 segment display. I found some driver code via the bang good forums which worked but decided to write my own as I wasn’t a fan of how it was written. It is also far better to write it from scratch if you want to learn exactly how it works and not just pass variables into a pre-defined function.

How the 7 segment display works

The banggood display module has two 74HC595 shift registers on the back which controls the individual led segments on the display. A shift register is simply put a way of expanding the pins of a micro-controller, this means the display only needs 3 input PINS. The display is a 4 bit display because it has four blocks of 7 segments (excluding the dot). The schematic diagram I found for the display shows which pins of shift registers control which segments on the display. The display segments are labelled using letters A-G and DP. The below image shows which letters correspond to which segment.

Read more…