AEMB Threading

It is quite amazing how many times I discover myself to have a faulty or shallow understanding about the technology I am working on. Normally those discoveries occur as I go more in depth into the technology at hand. Those two lines are necessary to make up for any faulty explanation that I’ve given about AEMB which I am beginning to realize as I’m looking at the threading model. However, I won’t go on and list those mistakes, admitting them Read more

Learning to fly

The design of a quad-copter has been around for a very long time, but during the 20th Century, most development of quad-rotor devices were stalled due to the difficulty of controlling four independent rotors. Indeed it is impossible to do so without electronic assistance, therefore since the boom in popularity of micro controllers in particular, more and more hobbyists have found the design to be adequate and stable for RC control flying UAV’s. The structure and dynamics of a quad Read more

Upgrading Codelite

I use Codelite extensively, for software development. However, the version of Codelite available in the Ubuntu/Debian repositories are a bit old. Our recent upgrade to Trusty Tahr 14.04 LTS resulted in a buggy Codelite that keeps crashing. As a result, it was time to upgrade.
(more…)

ISA and Dependencies

In this post I’ll continue the in detailed overview of the ISA of AEMB where I’ll review memory access, GET/PUT, special purpose register and program flow instructions. Next I‘ll explain about the data dependencies and how they are currently handled in AEMB. First, there are 12 instructions responsible for memory access. Half of them are load instructions that read data from memory and write it back to the destination register. The data read can be a word, half a word Read more

Swarm Robotics: Methodology

This week, I was finally able to complete all the documentation from UCSI University, and it is official that I will be doing my project on the title I described so roughly last week. This week, I spent some time mulling over many possible ways to effectively tackle the demands of the project and try to tackle the questions I asked myself about the project so far. This week I will outline my plan for the duration of the time Read more

A new adventure

Ever since starting my degree in Mechatronic Engineering, the one thought that has kept me awake at nights was my Final Year Project. Unlike many of my peers, I always believed that your Final Year Project defines who you are as an engineer and your capabilities as well as ambition. I have been hoping not to be stuck with a topic that did not interest me and furthermore extinguish my willingness to go deep into the project itself and I Read more

AEMB ISA, in detail

Finally work on the AEMB is to be continued after a long unjustified break. In previous posts I have touched a bit on the Instruction Set Architecture (ISA) of AEMB and explained it’s relation with Microblaze ISA. In order to change the threading model of AEMB to coarse grained, I was warned that after doing the change, some data hazards will become unresolved. This is because in the current AEMB, data dependencies of back to back instructions are being resolved by changing Read more

Witty Sluggishness

While playing around with low-level Witty, I faced a serious issue of performance. For some reason, one of the operations that we were doing was taking a relatively long (1s) time to complete. This didn’t make sense as the operation itself was not particularly onerous.
(more…)

Low Level HTTP with Witty

Witty is great for creating complex web applications as it simplifies and automates a lot of the necessary back-end work. However, when all you need is simple HTTP request and response, things need to be modified slightly to have it work correctly. This is what happened when we needed some low-level access to the underlying web server.
(more…)

LZO Data Compression

While fooling around with the zram Linux kernel module, I learned about the existence of a fast compression/decompression algorithm called LZO. This is a very fast compression and decompression algorithm that does not consume a lot of resources and provides decent compression ratios as benchmarked against other popular algorithms. Looking at this, it is something that would be useful for us to use in the future for our product. As we are storing a lot of files in the database, Read more