Hexadock: Building an IA

Hexadocks Connecting

The Hexadock is a community project oriented meaning that individuals and groups can participate. Each hexadock holds a circuit board with a microprocessor, connectors are available in all sides of the hexadock, and each hexadock is a representation of a single neuron. The idea is to interconnect devices and hexadocks to create an equivalent of a brain.

The project will allow individuals and groups to create an artificial intelligent indirectly. Each individual or group is allowed to control a single hexadock knowing only the hardware in the hexadock and any devices that may be connected it. Each individual and/or group is responsible to discover what they can do with the devices connected to it and to interact with their neighbors hexadocks.

Hexadock Diagram

Espruino Board
Espruino Board
Tessel Boardq
Tessel Board

There are two circuit boards that have caught my attention which are the Espruino and the Tessel.
Both boards are programmable in JavaScript which opens the doors to a large community of people. JavaScript is mostly used on websites and it is a very flexible script language. Alasdair Allan did an article in Make magazine which compare both micro-controllers. I recommend to read the article.

While the Tessel provide a lot of modules to allow interaction, the side is rather bigger than I was expecting. I am inclined to use the Espruino due the size; however, at the moment of writing this article, they are not yet in sale. I sent an email to them requesting them to inform me when such circuit board will be available. The other issue is the price of the Tessel. A Tessel plus a module cost around 89 dollars. This project will required a bunch of circuit boards, one for each hexadock. This would mean that funds will be required which at the moment I don’t have any available.

One important part to have in consideration is the communication and processing of information in the hexadocks. Both must be fast. There is no room for overcomplicated processing and/or communication. Also, how to process the information coming from different sides. Perhaps, all communication should go to a buffer to be processed. That is something that should be open for discussion.

The second part of the project will required the creation of an online interface which will allow  programming of each hexadock plus receiving information such as a video feedback to show the behavior of any device such as servos, etc.


Notes: Operative Systems – Part 1

(Operative Systems – Part 2) Next >

NOTIFICATION: These notes are published for educational purposes. Using these notes is under your own responsibility and risk. These notes are given ‘as is’. I do not take responsibilities for how you use them.

PDF Content:

  • Software and Hardware structure
  • Application Binary Interface (ABI)
  • Application Programming Interface (API)
  • Memory hierarchy
  • Hard drives
  • Interrupt processing
  • What is an Operating System (OS)
  • CPU privilege levels
  • Process
  • Memory layout of a typical process
  • Multiple processes sharing main memory
  • Process creation
  • Process hierarchy tree
  • Exec(), wait(), fork(), waitpid(), sleep(), and exit() functions
  • Orphan process
  • Zombie process
  • Possible process states
  • Kernel-level data structure
  • Process management
  • Memory management
  • File management
  • System call
  • Inter-process Communication (IPC)
  • Semaphores, signals, shared memory, sockets, pipes
  • Parent-child communication using pipes
  • read() and write() functions
  • Error handling
  • Handling signals
  • SigChild
  • CPU scheduling
  • Process life-cycle
  • CPU-bound process
  • I/O-bound process



(Operative Systems – Part 2) Next >