industrial training at NETLABS! UGANDA

THIS BLOG IS ABOUT THE TRAINING ATTAINED AT NET-LABS! UG FOR THE PERIOD BETWEEN 26 JUNE 2017 TO 11 AUGUST 2017. NetLabs! Uganda (netLabs!UG) is a research Centre of Excellence (CoE) in telecommunications and networking technologies who had its origins in the Community Wireless Resource Centre (CWRC), Department of Electrical and Computer Engineering, College of Engineering, Design, Art and Technology (CEDAT) at Makerere University. netLabs!UG is an alternative Research and Development (R&D) model which will strive to achieve a balanced critical mass of basic research, applied research and commercialisation.

I as a telecommunication engineering student saw internship at Netlabs! UG as a great opportunity not only to acquire skills for modern telecommunication applications but also improve my presentation skills and professional work relation skills. The blog is going to highlight the work i will have done for each day of my training and i hope you the reader can pick interest and some how better your knowledge about some telecommunication skills.




We began with an introduction to VOIP (Voice over Internet Protocol) and looked at the differences between VOIP and ordinary PSTN. PSTN (Public Switched Telephone Network) systems are characterized to be analog and work using a circuit switched model that is there has to be dedicated channel for communication to happen. This is in contrast to VOIP that is packet switched that divides the data to be transmitted into small units called packets that are transmitted over the network independently. We them looked at the some different modes of operations in VOIP such PC to PC. We also looked at some VOIP concepts like what a hard phone or soft phone and the Analog Telephone Adapter (ATA). The ATA is an analog to digital convertor that helps convert analog voice from the analog hard phone into digital form that is used over the VOIP network.


We began the day with looking at some radio propagation concepts like path loss, shadowing, and penetration losses and looked at how these losses affect propagation. We then had our first VOIP assignment and we were to construct a VOIP network with two hard phones (digital and analog) and a softphone (either on a PC or on smartphone). We installed FREE PBX software on one laptop and this was to act as our server for the network. We accomplished this assignment successfully with all devices on the network communicating.

We were after that installed to ELASTIX which is another software that is a communications server and is also based on asterisks and brings many functionalities together. ELASTIX is easier to use as compared to FREE PBX.


We had our second radio mobile session and this time we created two radio links the first between CEDAT and ST Paul’s Namirembe church. We obtained the coordinates of each place from google maps and used radio mobile to create the link. The second link was between CEDAT and Ham towers wandegeya. From the software we noticed that it was impossible to have a direct link between these two places because of the terrain between. It would therefore require to have a repeater station between the two place sto have a viable communication link.

We aslo looked at the asterisk debian OS and with this one you can add extensions (users) to a VOIP network using commands. The software we had used before for example ELASTIX provided a web interface ffro adding users but this one requires to be programmed to be used. We installed the OS in virtual box and we were able to add three extensions that we registered on a smartphone and on a pc and would communicate with each other.


We looked at firewalls and queuing and started with a brief theory introduction about each. We looked at the different parts that makeup the inbuilt firewall in mikrotik router devices such as filters and IP address filters. We further looked at filter chains that included INPUT, FORWARD, and OUTPUT and saw the implication of each. We further looked at Network Address Translation (NAT) and saw the different types such as masquerading.

In the afternoon we had an introduction to MATLAB which is an environment that allows matrix manipulations and can be used for signal processing and robotics designing. We had a few examples of how to use MATLAB for example like solving simple mathematical functions and plotting a basic line and bar graph. We also had some examples of some matrix operations like finding the determinant and transpose of a matrix.


We were introduced to NTE network training emulator which is a GNU Linux network simulation tool. The tool is debian based and contains packages such bridge-utilis, Quagga and iproute that enable performing of networking concepts like routing. The tool can be installed in virtual box and can be used to build networks of one or more routers. We built two networks one for to demonstrate switching and the other to demonstrate VLANs and learnt how to configure the different devices for each exercise.

We then had our second mat lab session and this time we learnt scripting using mat lab. We had how label graphs using script. We were given an assignment to use mat lab and come up with plots of path loss and cdf plots for a base station in the center of a square cell with receivers at the different corners of the cell. We were also to use mat lab to determine the power received at each of the corners of the cell.



We had an introduction to wireless and the microwave spectrum. We began by looking at some antenna types for wireless transmission for example microwave antennas and the looked at the different antenna parameters such as frequency, gain, half power beam width, polarization, front to back ratio and many others. We looked at how each of these affects transmission of signal. This was a theoretical session and was for me was a recap because I had earlier on studied about some of this concepts in my previous classes.

We then had our first routing lab and we were to configure 3 mikrotik routers on a network with first static routes and the later OSPF (Open Shortest Path First). We were to ascertain that the network works properly and we were to connect three laptops to the network two as hosts and the other to monitor packet flow in the network. This we achieved successfully although it took as some amount of time to achieve it because we had not gotten well conversant with the command and some routers were messy and kept on powering on and off during configuration.


We continued the discussion about the Linux command line and began by looking at group of command called filters. These are commands created to be used with a pipe (|). Some of these commands make use of the operating system quite simple for example the grep command that can allow you filter out say desired works from a document of very many words of filter out names depending on the case of their first letter. We then looked at some basic UNIX command tools for example commands like find that helps you files in any directory, date that displays the current date and many others.

We also looked at something called the VI editor (visual editor). This is the default editor that comes with the Linux operating system and allows one edit the contents of a given file. The editor has two modes of operation that is the command mode and the insert mode. The command mode is where each character typed is a command and the insert mode is one that allows you add or remove contents of a given file.


This was our last Linux session and we looked at some file system commands for example adduser that allows you add any number of different users to the system, userdel that allows you delete any user and usermod that allows you modify the properties of any given user. We also looked at configuring passwords for the given users and how to disable passwords for any user account. We finally at some file security commands like chown and this concluded our Linux sessions.

We had an introduction to LEGO EV3 robotics by Mr. Gerald budigiri and looked at some of the components in the EV3 kit for example the color, ultrasonic, touch sensors. We looked at the motors and how they work and learnt how to each of these equipment work. We then had a simple example of how to program the robot move and rotate.


We were given an assignment about the LEGO EV3 robotics and we were to program the robot to move along a zigzag line and be able to sense the end of the line and return back to its initial position. We to use dark tape for the black line. This was a very difficult task for us considered that we had just gotten one encounter with the robots and we didn’t accomplish this in the required time. But after we were added some time and we able to accomplish it.


In the afternoon session we were introduced to the radio mobile software by Mr. alexander muhangi. We first had a brief theory about some radio propagation concepts like Fresnel zones, line of sight and propagation. We were able to design our first radio link and this was to help us understand some parameters used by the software. The software requires updated maps especially for the area in question in order to give a correct estimate of the required radio link. We the given an assignment to design a link between marystuart hall in makerere university and nsibirwa hall also in makerere university. You can read my report from here.(huzaifah radio assigment)


We got our first session about project management by Mr. diarmuid obrain. We looked at many things like the different phases of project management (the initial phase, intermediate and final phase) and looked at how a project looks like in each of the phases. We also looked at the different project management models like PRINCE and PMI. This session was a long one but helped me understand how to handle projects in order to have a desired output in the required time.

We also had our second LEGO EV3 ROBOTICS assignment and this time we were to program the robot move in a given direction and pick up an item and take it to its initial position. We were to do this in groups of ten and I was head of my group. Our group was able to achieve this successfully at the end of the day.


Week 1


This was introduction day. We got to meet some of NETLABS! UG researchers for example Mr. Gerald Budigiri and Dr Dorothy Okello and we were given a review about the company. This was a long but rather an interesting session because i had to actually interact with one of my inspirations Dr Dorothy Okello face to face.

We then had a session with Dr Jonathan Serugunda that was about human resource policies of the company, what was expected of us during the training period and lastly had a question answer session with him to close up the day.


We had our first GNU/Linux session with Mr. Gerald Budigiri. I got to learn about the history of the UNIX operating system and some of its derivatives for example AIX and Linux. I was able to complete my first C program in the LINUX system and this was a really cool thing. More of the important things I learnt include:

  • Making directories and working around with them.
  • Using the Man pages of the different commands.
  • Working with files for example creating, removing, renaming files in any directory and and also modifying contents of the different files.

The session was somehow a hard one because I had to grasp and learn how to use many of the commands for the first time but at the end of the day I learnt something at least.


We started our mikrotik networking training with Mr. Ambrose ahurra. He began with some theory about networking and this was for me a recap of some of the concepts I had already learnt in my semester program. We looked at the OSI networking model, the DOD model each in detail and their differences. We looked at some protocols in each of the layers of each of these models and Ambrose tried to relate the models to a practical network. This personally helped me understand the models more.

We then looked at switching in theory, bridging, and some switching concepts like broadcast storms, VLANS and VLAN tagging but all in theory. The reason for first going through theory first was to not only make a recap for some who had covered this these concepts but also to give an idea to some others who had never heard of these concepts.

I had my first mikrotik Lab and it was about creating a bridge and configuring dhcp on the mikrotok router. This I accomplished and it was a new skill attained that day.


We started the discussion about the file system hierarchy and looked at some file system directories for example /bin, /sbin, /lib, /opt, /boot, /etc and many others. We had to open each of these directories to try make sense of some of their contents though many of them didn’t make sense in the first place but at the end of the day some did for example the /etc directory that contains the system specific configuration files and scripts to start and stop daemons.

We aslo looked at things like in memory directories, arguments and aliasing, control operators and shell variables and this was really hectic because we were introduced to these very many new commands at once but we kept on doing numerous exercises during the session and i understood some of the commands.


We began the day with a live TV NITA (National Information Technology Association) event from Serena hotel Kampala and this was a discussion amongst many big company representatives about how information can be made available and reliable to everyone online. This will aid sectors like health and also ease processes like obtaining passports since people will no longer have to wait in queues providing their information to the relevant offices but have this information online for the relevant people to access, the discussion was to also suggest ways of how peoples information could be kept safe online and this is one of the major objectives of NITA. The session was an interesting one and we were able to share our thoughts about it on twitter.

We ended the day with a theory introduction to routing by Ambrose and looked at some routing concepts like OSPF, DHCP, Static routes and OSPF timers. We also looked at the various ways to connect two routers for example using dhclient and creating a point to point link.