Digging into Computers — The other Approach
It has been a long time since my last post here on The Axamblis Blog. This is mostly due to the fact that I am in my last high school year preparing myself for the big end-of-term exams this summer. As high school ends this summer, I will suspend my “educational career” for one year in order to get away from the academic everyday life. Instead I will commit myself in writing software for Axamblis, writing blog posts, doing some podcasts, and everything else that comes to my mind.
The Frontal Approach
How do you approach a computer as a developer? Well the first thing you see when you buy one is the screen with all the windows popping up around it. You start to wonder how that all is organized and how it works, so you get in touch with some basic and general programming languages like BASIC to write your first programs. As soon as you realize you didn’t want the user to enter data through a command line or console, you start to bother with higher languages like C and Objective-C as well as the system’s APIs in order to get windows and UI on the screen. Your skills keep improving and your knowledge and understanding of the OS’s functionality and architecture increases. Soon you get in touch with very low level and basic system calls, you learn about the kernel architectures, the scheduler and threading, memory management and everything else that forms the “personality” of a 21st century operating system.
Well, that was the way I experienced the whole software engineering thing evolve in my case. But as soon as I got down to the kernel and system level (which I am not very expertise at) I realized that I was pretty much stuck there. Getting deeper and deeper insights into the system is not that difficult but is simply a matter of time and interest. But what if I wanted to learn how a computer is built, how it is made doing what it does, what the magic is behind the bits? That is where microelectronics comes into play…
The Hellenic Electrician
I have always been fascinated by electricity. Everything that could glow and emit light was the ultimate attention-catcher for me, not speaking of the automatic self-opening sliding doors at the malls…
. So when I was 12 I wired every single door in my parent’s apartment. I attached a sensor to the closing and locking mechanism laid wires back to my room. In there I built a huge black board showing the blueprint of our apartment with tiny lamps — LEDs, light emitting diodes — at every door’s location on the plan. This way I could see which doors were open.
So there it was, my first electronics project. But it was simple, a battery, a few resistors and the LEDs. One day I decided to update the sensor network, so I searched the web for a way of reducing the dozens of cables with just a few. On some homebrew electronics websites I came across something that was called an IC, short for integrated circuit. As I found out a few hours of research later, ICs are what you generally refer to as “chips”; these small black things that look like bugs with all their shiny legs attached to them. Inside these chips, there was a complex wiring of transistors, resistors, capacitors and other electronic components which fulfilled a certain purpose and function. So there was actually a small electronics circuit inside these things, hence the name IC.
So what is the big deal about these ICs, I mean they have been around for quite some years now? Well the big deal for me was that I started to realize and understand how these things worked together. Before that, I only knew that there are these strange black things inside electronic devices, but never had an idea what they did. Curious as I was, I started to experiment with different ICs and circuits…
Long story short, I never finished my new sensors network, as a matter of fact the cables are still there — out of use. Nevertheless I got better at these things. I started to deal with microcontrollers which are some sort of CPU, or actually a whole computer compressed into one chip. The thing about microcontrollers is that they are programmable. So you write your code in Xcode, compile it and download it into the controller’s flash memory, where it gets executed. I attached displays, keys, LEDs, and all sort of weird stuff and made up fancy devices that did exactly the stuff I told them to.
I became very skilled at this new area of electricity which I found out to be called microelectronics. I am sure old Plato or Hippocrate did not know their beloved mother tongue would even make it into the name of the 21st century’s most advanced technology areas. What I ended up with was me building a “pocket” calculator from scratch for my high school’s senior project, pocket between inverted commas since the device itself was too big to be called handy
. I taught the calculator all the basic stuff: adding, subtracting, multiplying, dividing, as well as raising powers, calculating roots, exponents, logarithms and more. But moreover, I built a small API that I could use in my programs that ran on the calculator in order to create UIs and handle user inputs.
The Other Approach
A few months ago a friend of mine and I decided to take this whole microelectronics thing a step further. Inspired by the iPhone, we decided to build our own device from scratch. What we are actually heading for is a device that has a processor, a color display with touch panel, a USB connector, a microSDHC card for data storage, as well as a Lithium-Polymer battery as well as a headphones output. As you can see from the feature lineup, we are trying to create a mobile device that strictly speaking consists of only a display for the user to interact with, having a battery for best flexibility and an SD card for up to 16 GB of storage.
Why this kind of device? Well, it is actually a playground for software developers and hardware engineers. And that exactly is the point: we want to build a mobile device from scratch up, get the hardware to work, and then write the appropriate software for it. For developers the most interesting part is of course the software. So what we will have to do is write a small firmware which gets stored in the processor’s flash memory. Being executed first, this piece of firmware loads a specific executable file from the SD card and runs it. This way we can store whatever executable we want on the SD and it gets run at device startup. Of course this will not be just some executable but actually an operating system which loads code into the RAM, provides standard built-in functions and system calls, a scheduler for multithreading, etc..
That is what I call the “Other Approach”: Not starting to write software for the computer and get to know the computer from top to bottom, user to electronics, but exactly vice versa. I want to get in touch with the computer from bottom to top, grass-grown so to say, from electronics to user. And the easiest way to do that is to build hardware by yourself, then writing all the layers of code necessary to synthesize an operating system based on which you can write your own “desktop” applications to run on. I know the computer from the users point of view down to the system, now I get to know it from the bottom electronics to the system.
And since we are creating a new device, it needs a name. And there fore, thou shalt be named…
EyeDisplay
Pathetic? Yes maybe, but we thought it was kind of cool since the device itself is inspired by the iPhone. And as it has no other purpose than having a display to draw on we call it EyeDisplay. We even made up a logo which I personally find kind of cool:
![]()
I mean what could be more exciting than firing up your own device and seeing your own logo shining across the sparkling display.
Since this project has been running for about three months now, I decided to post updates about it on the blog featuring the concepts, hardware, PCB layouts and source code it is made of in order to keep you up-to-date on it. Another thing is that there is quite few information out there concerning this kind of microelectronics. There are of course all the hobbyists that build their devices based on very simple chips. But as soon as it gets more complicated and especially faster, there are not many more people out there really documenting their work. So expect to hear about this project again.
So thank you very much for reading this very long article. Hopefully there is someone out there who finds the information to come useful, so feel free to drop a line of comment. See you next time.

1 Comment
I’m very proud to say, that I’m the friend you’re talking about
Nice thing to write our ideas down somewhere so I can remind you of not going too far
Greez Baer