One Big Roller Coaster

A Whole New World; Virtual Reality

VR is an abbreviation for Virtual Reality. As the name implies, it completely replaces reality with a computer-generated environment by taking over our vision. VR is a self-contained system in which users can create and experience a simulated (fictional) environment using advanced devices such as VR headsets and, in most cases, a pair of controllers. The VR goggles you put on play animations all around you in 360 degrees, as if you were standing in the scenario, allowing you to explore without limits! It is especially useful because users can customize it to simulate a specific environment for a specific purpose. VR does not necessitate a great deal of specialized knowledge; basic programming knowledge and a forward-thinking mindset are sufficient to capitalize on this field of technology.

My first experience with virtual reality was about three months ago when I went to the Guzo Technologies studio in Addis Ababa with my younger brother and his friend. It was a hilarious experience. I was terrified when I first put on the headset and found myself in the middle of nowhere, surrounded by purple and white walls! Then came the train ride game in the dark caves beneath massive mountains. I fought to stay balanced and avoid falling down as I traveled through the ups and downs of the destroyed railroads. I jumped around a lot, hunched over, and screamed a lot. How miserable I must have looked to those watching me from outside!

It wasn’t until I was introduced to the other applications of VR that I realized it wasn’t just for video games. I was completely wrong. I quickly discovered the wonders that this emerging technology is capable of delivering when I found myself in the middle of an unforgettable historical event, the Adwa battle, which is the reason I am able to exercise my own culture and speak my language today. I lived through history. I lived in liberty. All through the VR goggles’ screen.
VR, as a fully immersive and interactive technology, enables almost everything to be done virtually, from entertainment and shopping to healthcare, education, and even business. With all of these smart and connective features, Virtual Reality is ahead in the future.
Fun fact: There are an estimated 171 million VR users worldwide. As of 2022, the VR gaming industry has a market size of $12.13 billion.
I believe that in a few decades, VR will be an essential part of our lives, and everyone will become accustomed to using it out of necessity, if not desire.
What do you think virtual reality will bring to our future?

One Big Roller Coaster

Our World’s Future – Artificial Intelligence

We can all agree that the digital world is mysterious. It twists and turns unpredictably.
Imagine a world where all kinds of work are automated by artificial intelligence. Machines mimic human deeds to complete any task and robots become digital collaborators to the human race. It indeed sounds captivating, but at the same time, very dangerous. Not because AI will develop their own consciousness, start demanding freedom or scheme world domination like in the terminator movies, AIs today are not that advanced. They have the approximate computing power of an earthworm or even less! Yes, that’s right. The system doesn’t reflect the slightest human intelligence.

It sure can observe, identify, and make decisions though. The issue is, an AI does EXACTLY what we ask it to do. Hence, it is usually unable to function flexibly in different situations. Suppose you command a robot to move from your kitchen to the living room. The command you issued is now the goal, which is to get to the living room. It has no data on how to move or what to use to get there. It could crawl, use its arms to walk, or even build a tower and fall over to arrive at its destination! Technically, it is doing what it was ordered to do. Just not the right way. The same applies to other fields in which AI is used. This makes it easy to accidentally give it the wrong problem to solve. So, it is up to us to avoid complications and things going wrong. We have to set up the system to solve problems so that the AI performs what we requested.

Despite this, Artificial Intelligence is quite a vast field with fascinating applications. It is designed to imitate human intelligence in machines and robots. As the main driver of emerging technologies, AI is now used in healthcare, construction, factory work, and even police investigations. Its efficiency in several significant fields could benefit the global community to a great extent. We shall reduce human errors, welcome new inventions, ease workloads, create job opportunities, and reap all the other countless advantages of this technology. Only if we precisely understand its capabilities and the right way to communicate with it, of course.

Let me shoot a quick question for you to answer in the comments:
What kind of practical progress can we produce in OUR country with the power of advanced AI?

 

One Big Roller Coaster

What My Brief Journey in the STEM World Has Taught Me So Far

A computer is a crucial daily tool for the majority of the youth. however, this technology is yet alien to a good part of our community. Growing up in a country with one of the least digitally literate people in the world, pursuing technology has always been a daunting dream for most students in Ethiopia. This dream of ours, however, is a necessity. An ambition that we could never give up on, knowing what transformative impact it can put forward.

So much potential and ability, yet so little technology to bring it all out.  So many enthusiastic learners to change this bitter truth of our country, yet so few resources and opportunities to help them make it happen. So much fresh energy and motive, yet so little access. The need to invest in the forthcoming generation’s potential, especially in the STEM sector, is prominent. Being fortunate enough to find myself in this fascinating world of endless innovations has drastically improved my outlook on the sector and my community. I now believe that STEM has the power to change and empower communities like mine. Technology has the potential to illuminate the darkness of illiteracy residing in our country. Ethiopia has 60% of people under the age of 25 that could benefit from the ample education opportunities of STEM whilst contributing to the development of our nation, and beyond, continent. Observing how eager the youth community is to transform the country’s unfortunate reality into prosperity, I understand that I should also be responsible for the overhaul of Ethiopia’s technological sector and not just the government I continually blame. Besides, to have my contribution in this area of advancement brings pleasure like no other. My country’s promising future that I caught a glimpse through the vast window of STEM is worth struggling for.

A Brief Dive into Programming

To New Beginnings

Admittedly, computer skill is indeed the new norm of literacy. Needless to mention, almost every profession nowadays needs a basic grasp of computers. Automation, social media marketing, e-commerce, GIS and remote sensing, big data, and many more are IT-based that are administered by professionals with intermediate to advanced IT skills. Among these, programming or coding is the element that allows users to communicate with machines and computers. It blends logical thinking with creativity to develop something that makes life easier and much more pleasurable. 

Programming can be easy to get the basics while being quite challenging to master it.  Coding might be puzzling at the beginning due to the different learning styles and techniques taken by others. The best way to tackle this problem is by crafting one’s own curriculum based on the type of learner one is. Following that, they may begin fishing in the enormous sea of resources. Not to add, remaining focused on developing one skill before moving on to the next is critical in learning how to code. Having far too many ideas simultaneously can be distracting and demotivating. 

There is a common perception that somewhere out there exists an ideal language for beginners in programming; this is in fact not true. A programming language is basically a tool that IT people use to code instructions for computers to operate. A web developer believes that JavaScript is the best-suited language for a newbie to learn. A data scientist favors Python over any other language. A game developer can be a big fan of C++. But, at the end of the day, what matters is what you’re attempting to do with your instrument. Loops, conditionals, functions, and other fundamental programming principles are all the same. The distinction is primarily syntactical. 

Although there are a lot of perks to becoming a qualified programmer, one must always update his or her competencies to keep up with the fast-changing competing world. In fact, there is a huge demand for programmers worldwide, which has resulted in an exponentially expanding number of people entering the industry. Because the competition is fierce, one must develop a cheerful attitude, task management skills, rapid learning capacity, and the ability to work well in a team to succeed.  

One Big Roller Coaster

An Introduction

Writing, to me, is simply thinking through my fingers.
-Issac Asimov

I am Amrot, a passionate learner and tech enthusiast. I am the co-founder of a youth tech platform, Technoelpis. Currently, in the process of assisting technophile youth get one step closer to their ultimate careers, I am also molding myself into an incredibly industrious computer operator. I believe that my small journey in the STEM world as a high schooler who is incredibly enthralled by the overall functioning of the digital world is worth sharing. My unanticipated transformation from not being familiar with a single concept about computers to discovering the joy of exploring the vast digital world in just a year. It was like unfolding a whole new chapter of adventures to thrive through. And, indeed, One big roller coaster.

In my bi-weekly blogs, I will be discussing affairs regarding the tech world, mainly focusing on the digital industries of Africa and Ethiopia. In addition to that, I will be sharing some of my personal experiences and reflecting on my perspectives on different issues concerning STEM. My ultimate goal is to inspire my audience whilst proposing positive ideas and solutions to our current quandaries in regard to scientific Africa. I profoundly believe that this will be a space where I can bring my candid outlooks on various areas in relation to STEM and interact with my audience well to come up with tangible conclusions and better content every time.

Should you have any questions, suggestions, or specific topics you would like me to write about, do not hesitate to let me know in the comments.

Would you like to know more about me?

https://gmt.tzg.mybluehost.me/.website_4544bb84/women-in-stem-spotlight-amrot-abiyu/

Women in STEM Spotlight: Ruth Asmamaw

As a kid, I’ve always found myself specifically drawn to studying natural science. For someone who loves solving problems, and being surrounded by stories of humanity, being a doctor seemed to be the only career path I could take. I never thought of studying software engineering because I have always imagined it as a man’s job and never thought I would fit in.  That was a couple of years ago but I am very positive that there are many girls out there who still have this stereotypical image of a software engineer.   It is not until I got introduced to Women in Tech, that I completely changed my perception. Although it’s clearly visible that there is a strong gender bias in the tech industry, I saw that there is space for people like me with values of solving problems and impacting humanity aligns.

 

In my first few weeks of school, things weren’t going my way. Being a girl with no prior programming knowledge surrounded by computer whizzes was tough. Frustration was taking me all in. But on the bright side, it was an eye-opening moment. Anxious to cope with my peers, I started devouring every piece of information that comes my way. I spent hours googling and asking the internet about programming and software tutorials. Since there isn’t a wrong way of learning things, I kept on exploring new methods that suit my learning style best. I was attending online courses and taking lessons via videos.  Thanks to the internet almost everything I needed was only a fingertip away.

Throughout my exploration, I have come across various subfields of software engineering. Digging into this diverse area has made me realize the ample opportunities it comes with and how one can choose a field to specialize in based on his/her interests, skills, and strengths.  I personally found myself leaning towards the web development area. The process of creating something tangible out of an abstract idea was so fascinating to learn. Web development gave me the ability to see the world from another perspective and has helped me solve problems that I face in my day-to-day life. Learning this new skill was constantly giving me the feeling of accomplishment, which in my case happened to be my number one motivator. Throughout the process, I also worked on bettering my communication and other soft skills.

 

I aspire to become a very significant figure in the tech industry. Living in a country that is still new to the technology era, I believe that there is a lot to be done. I also wish to give back to what the world has given to me. I am among the privileged ones, living in a city and having access to quality education, but I know that most of the girls out there have a handful of these opportunities. My dream is to help these bright girls free themselves from the meshed society had put them in and conquer their dreams.

Digital Hardware Implementation: Let’s Make an Ethiopian Drone

By: Eyosias Yoseph Imana, PhD.

I was a middle-schooler when mobile phones were first introduced to Ethiopia, my home country. Besides feeling excited from seeing a mobile phone for the first time, I remember wondering if I will ever be able to understand how the thing works. I also wondered if I would be able to make one “when I grow up.”

If you are reading this blog, I bet you have had such kinds of thoughts at some point. You are not satisfied in being a mere consumer of technology, you want to join the makers club. Well, I hope this blog series will inspire and equip you to convert your ideas into prototypes – and possibly into a viable commercial product. My vision is to see many makers come out of sub-Saharan Africa – and hence, the target audience of this blog series are all the aspiring and current makers/entrepreneurs from the region.

A little about myself; my name is Eyosias Yoseph. I have been with the semiconductor industry in USA for almost 7 years. Before joining the industry, I was first a PhD student, and later a postdoc at Virginia Tech. I completed my MSc from Florida Tech, and BSc from Bahir Dar University. All my degrees are in electrical engineering, and my focus areas include wireless communications, signal processing, and digital system implementation.

In this blog series, I plan to chronicle the journey I am now starting to make a quadruple drone from scratch and teach what I know about digital implementation along the way. I note that making a drone from scratch is not new – folks have successfully built drones from scratch using Arduino (see here and here). The uniqueness of my effort will be in part because instead of Arduino I will be using a custom RISC-V processor implemented on a custom FPGA board. In fact, my goal (at least for now) is to learn and teach how to make things, not to contribute anything novel.

I am not sure if my drone will successfully fly, but I am sure that I will be learning quite a bit along the way and will be sharing those learnings in the upcoming blogs. Besides sharing my updates, I will include a video along with each blog where I cover important concepts/techniques/tools I use to do this project. Stay tuned!!

Block Diagram

The block diagram of the envisioned system is as follows. I plan to custom design and implement much of the yellow block in the middle of the diagram – that is, I will be making a PCB board for the FPGA, a RISC-V processor inside the FPGA, and a flight controller software to run on the processor.

This project involves hardware, software, and mechanical developments. A high-level roadmap of this project is as follows:

1. Hardware development
  • Processor design and implementation: I first plan to paper-design a RISC-V based processor and then implement its RTL using Vivado webpack from Xilinx (it is free). The RTL will be written using System Verilog.
  • RTL verification: I then plan to write unit and integrated testbenches (again using System Verilog) and test the processor design extensively using simulations. I will be using the simulator built in Vivado. To create randomized testing, and automation, I plan to use python scripts which call Vivado’s internal commands (called TCL).
  • Validation using real C program: Once the processor RTL is ready (passes most verification tests), I will make a simple C program and compile it with GNU RISC-V cross-compiler (download here). I will then load the executable binary generated by the compiler into the RTL simulator and run to see if the processor produces the expected results.
  • PCB design and fabrication: I will then make a PCB board containing an FPGA where the processor can be implemented. The PCB board is likely to contain a Xilinx’s Spartan-6 FPGA and will be designed using KiCad (download here).
  • PCB bring-up: Once the board is fabricated it needs to be brought up (may need two or three iterations to get a usable board)
2. Software development
  • Hardware model development: bare-metal programming is bug-prone because the programmer must deal with the hardware details which can be slipped up easily. To facilitate debug during flight controller software development, we will be first developing a C based model for the hardware. This model will be verified against RTL. Once verified, it will be used to bring up the final software.
  • Flight controller software development: The flight controller program will be developed in C on top of the hardware model first, and then on the actual hardware. As mentioned earlier I will be using GNU RISC-V cross-compiler.
  • Bring-up
  • Fly the drone!!!

It can be noted all the tools I plan to use in this project are open-source and/or free. Anyone can follow along and contribute to this project. I will be hosting the project in GitLab with public access. The only monetary expense in this project will be coming from PCB board fabrication, and the purchase of mechanical and electrical parts for the drone.

GitLab Repository

I named this project DESTINY, it is hosted at this GitLab.

Why RISC-V?

Say an Ethiopian company plans to make and sell a portable electronic device that can translate between the local languages in real-time (example, from Afan Oromo to Amharic and vice versa). Such device inevitably has a built-in processor – almost all electronic devices (ranging from a simple digital watch to a space shuttle are build with at least one processor).

The said company can choose one of the following routes to obtain a processor technology to put into its new device:

  1. Using another company’s processor chip: The company can choose to use a third-party processor chip (for example, from Intel, or Texas Instruments, or etc) which may be a good starting place but obviously expensive.
  2. Using another company’s processor IP: The company may license a processor design from a third party (for example, from ARM as every major companies including Apple and Qualcomm are doing) and customize and fabricate the processor chip. But this also comes with a hefty licensing fee.
  3. Making its own processor from scratch: Besides the riskiness of this route, it is not guaranteed to be cheaper than the first two. Making a new processor from scratch would also mean making a new build/compile toolbox which cannot be achieved without a significant Non-Recurring Expense (NRE).

Hence, all the above three options are expensive. The first two routes also indicate a perpetual technological dependence on western companies which may not be a wise choice in the current geopolitical environment. For example, what if a trade war makes it impossible for western companies to supply chip or IP to Ethiopia? Well, that is not an impossibility anymore.

RISC-V is a 4th alternative – and the most optimal choice in my opinion. RISC-V is an open processor instruction set standard. It is an open standard, which means, anyone can make a processor based on this instruction set without paying licensing fees to a third party. Furthermore, there exists GNU compiler toolbox for RISC-V already. It is also new and has the potential to grow and dethrone ARM from its prevalence in the embedded processor world in the coming years. If we are early players in RISC-V, not only we can use it to make our own products, but we may also become key RISC-V chip and IP suppliers for the global market (why not?). For these reasons, I think the nascent Ethiopian computer/software engineering community should take the RISC-V opportunity seriously.

Getting Started with RISC-V

Are you interested to know more about RISC-V? Below are important links to learn further about RISC-V.

Today’s Lesson: Building a Bare-metal C Program

Before I close today’s blog, I invite you to watch the following this video where I teach about bare-metal programming using GNU’s RISC-V toolbox.