This project is your introduction to Hexabitz, a new kind of modular prototyping platforms! Learn about the geeky hardware and software details behind the system and find your way to important links. Check our website: https://www.hexabitz.com/ and don't forget to browse all the demo projects we will post here as well! Hexabitz is the outcome of years of prototyping and research. The project is still experimental but we're excited to share details and updates with all hardware geeks out there! We'd love to hear your feedback, ideas and what cool stuff Hexabitz would enable you to do! Enjoy.
Concept in a Nutshell
Hexabitz is a novel modular electronic prototyping system. Each module or bit comes in a specific shape or size. Either hexagon (hence the name Hexabitz), pentagon, rectangle, square or triangle. Modules are soldered together horizontally to make larger electronic boards or arrays. You can easily combine modules in any shape or configuration you want. The resulting board will be close to custom-made ones in terms of size, weight and form-factor.
Each Hexabitz module has a specific functionality and a small MCU on the back side. MCUs are used to connect modules together in a wired-mesh network and to execute various programs in parallel. Think "smart PCBs" where the small increase in cost and power consumption is dwarfed by huge gains in flexibility, scalability and reusability.
Where to Start?
Read the following logs for a primer on Hexabitz hardware and software architecture. Check the gallery of photos and videos on Hackaday and on our website. Also check the FAQ section and learn about the inspiration behind Hexabitz and our future plans. Our modules are listed here and some alpha modules are available on Tindie. Don't forget to check the demo projects we post every now and then. Finally, please join our mailing list and follow us on Twitter to stay in the know!
One might think the hardware prototyping scene is quite saturated and does not accommodate new platforms. Yes and no. There's definitely a large number of platforms and options out there-which is a good thing because it enables people to innovate. However, if you look at available prototyping solutions from a different perspective, you will spot a good deal of clustering and a void in the market, which is where the need for systems like Hexabitz come from.
There has always been a trade-off between modularity and system's ability to support real life applications, i.e., being rigid, compact, lightweight and reliable. Although you can't combine both, current options are really limiting: you either have to settle for jungles of wires and stacked boards or build a one-time-use compact and rigid PCBA. At the two extremes, you also have a bunch of really nice modular plug-n-play solutions that are geared toward K12 and STEM education and there's the high performance, very expensive modular PLCs and industrial card-based systems. We found our sweet spot just in between! We think platforms such as Hexabitz can provide a great deal of modularity and at the same time be lightweight, rigid and compact enough to fit many in-field prototyping scenarios. It's why we focus in our platform on horizontal integration because that's how electronics and PCBAs are made in general and thus, the best form factor for many applications.
If you plot prototyping cost per unit there is another clear void. Custom-made PCBAs are usually expensive and time-consuming for small prototyping quantities. Since Hexabitz design is bare-bones, i.e., consisting of electronics and PCBs only, the cost per module can be driven down significantly at mass production enabling lower costs for prototypes and still better form-factor and rigidness than most other solutions.
But Does It Really Matter?
Why do we even need modular prototyping? Well, with 41.8 million tons of e-waste generated in 2014 and 50+ expected this year, there's enough electronics waste destroying our planet (less than 15% gets recycled)! One might say, this is mostly production waste and prototyping amounts to a minuscule part. This is true, however, makers, hobbyists and engineers consume much more PCBAs than the average consumer. We're all at fault to some degree-including myself. A typical maker might have dozens or even hundreds of custom-made PCBAs collecting dust from all sorts of projects and prototypes. With the impressive year-over-year growth of the maker movement, exemplified by the growth of Hackaday community itself and the following graph illustrating Maker Faire growth (re-purposed from here), this doesn't look sustainable!
We definitely do not call on people to abandon custom PCB design and prototyping. It's always an educational experience and lots of fun. Many times designing your own is really the only solution. However, there are definitely many occasions where you can settle down for a modular prototype.
With Hexabitz, you still get the fun of building something with your own hands when you design your own shape and solder the modules. After you're done with the project and when it starts collecting dust on your shelf, all you need is to dis-assemble the modules and reuse them again-re-cabbing your investment! If you don't have the skills or time to design professionally looking custom boards, you can still satisfy your inner-nerd and save the environment (and your pocket as well) ;-)
The Truth About Modular Electronics
You might say modular electronics projects had mixed results so far (a.k.a. failed), which is true to some extent. We personally believe many people are looking in the wrong direction. Electronics can be generally divided into two categories:
User-facing (front-end) Electronics: These gadgets must be extremely streamlined to the...
Hexabitz arrays are fully-distributed, multiprocessor systems. Each configurable module has its own MCU. Modules connect with each other to form an array, similar to the way computers connect to form a network. Having separate processors -instead of embedded multi-cores- in the same array gives you the flexibility of running them at different clock speeds or even mixing powerful, expensive processors with small and cheap ones.
This architecture dictates having a separate firmware uploaded to each module. You are required currently to write, debug and compile code for each module separately -while keeping in mind all the interactions between these modules- since there is no technology to support intuitive multi-processor software development. I’m looking forward to the day where we can write a single software -as if we were developing for a single target- and the intelligent compiler would then dissect this software into small pieces, figuring out all the required interactions between these modules on its own. Hopefully, it won’t be that long!
Until we get our hands on such a revolutionary tool, we have to figure out ways to design and develop code for complex arrays so that an array of 10 modules does not take 20x development efforts. Fortunately, there are lots of tricks and solutions to substantially reduce the amount of work needed. We will discuss some here and in future posts.
In order to support a wide array of users, Hexabitz is designed for three developer levels/personalities:
Advanced Developers (The Do-It-Yourself Folks): Users with critical needs and very high skills in embedded systems development can take Hexabitz hardware and write their own software from scratch using low-level, third-party hardware drivers available from chip manufacturers. Being an open-source hardware system gives these hardcore users the freedom of developing their own system without the hassle of hardware design and the nightmares of production lines and supply chains!
Experienced and Mid-level Developers (Mix-n-Match Heros): You do not have to start from scratch! We laid down the ground work for software development through our operating system (BOS), APIs and module drivers, all coupled with a set of optimized third-party middleware (e.g., real-time operating system, FAT system, etc.). Users can either use all of the above and focus on application-level development or pick the level of integration and design the components that they feel are important to differentiate their product (e.g., using only BOS or only module drivers).
Noobs (The I-Have-No-Idea Newbies): Newbies and beginners can still utilize Hexabitz through Command Line Interface (CLI). CLI is a set of plain-English commands that you can send to the modules to execute. These commands are very handy to perform quick tests and run simple applications. In fact, probably 80% of simple applications can be executed through a set of CLI commands. The CLI command set will be expanded regularly to offer more features while preserving simplicity and easy-access as much as possible.
Any Other Options?
We will focus, in the time being, on developing and supporting hardware and software tools and components mentioned above. We will do our best to offer more options in the future, especially in higher-level programming languages (e.g., visual programming, Python, MATLAB, etc.)
Hexabitz Software Components
Figure 6 illustrates the hierarchy of Hexabitz software components how they map to different users. We will discuss next these components and detail the important ones.
1. Low-level Hardware Drivers - Developed by ST & ARM
The Hardware Abstraction Layer (HAL) and the Cortex Microcontroller Software Interface Standard (CMSIS) developed by ST and ARM, respectively, are the core low-layer drivers for Hexabitz mainstream-implementation MCU hardware. They interface directly with MCU registers and perform the most basic tasks....
This primer walks you through the world of Hexabitz hardware. Keep in mind that physical realizations might change, but the core Hexabitz philosophy will always be governed by the following concepts.
1. Modularity is a Fundamental Concept
Hexabitz modules have basic modular geometric shapes (namely, hexagons, pentagons, squares and triangles) that wheb used with specific ratios, combine with each other to form contiguous surfaces. The modularity concept is found everywhere in nature from molecules and crystals to cellular and biological structures and even macro-structures (e.g., bee hives, insects). Why would you need a contiguous surface? Because it is more rigid, reliable and volume-efficient. It is also how most custom-made PCBAs are designed. And the ultimate goal of any prototyping/rapid-manufacturing platform is to mimic custom-made PCBAs as much as possible. Some geometric shapes even construct non-flat surfaces as shown below.
Modularity often translates into symmetricity, a very-tough design constraint. We strive to preserve modularity and symmetricity in all Hexabitz hardware and let these two characteristics guide design decisions. However, sometimes (not so often) we have to break the rules when it is near-impossible (or impractical) to follow them.
2. Form-factor is Important!
There is one basic shortcoming in many advanced electronics prototyping systems is that they are not optimized for form-factor, especially horizontal integration. This means they are not real-life-ready. Custom-made PCBs are horizontal by nature of PCB and semiconductor manufacturing techniques (traditional electroplating and lithography). By contrast, a configurable multi-module system that seeks access to same physical ports requires vertical integration. As a result, most prototyping solutions fail to produce a system that can replace custom-made PCBAs since they have a completely different form-factor.
Hexabitz emphasized horizontal integration from the beginning. This does not mean you can not do vertical integration. You can still mix both to create a complex form-factor. The only difference is that Hexabitz assembled boards (or arrays) are horizontal by nature. This makes them perfect substitute for custom-made PCBAs.
Form-factor has another dimensions to it, including volume and weight. Hexabitz mainstream implementation seeks to optimize weight and volume (and cost) as much as possible and thus eliminates connectors, wires and attachment mechanisms in favor of a simple and effective solder-based, exposed-PCB-edge connector system. Other implementations might optimize for different variables and offer different solutions.'
3. Dual-end System for Flexibility and Scalability
In order to build a truly scalable solution, one that works for virtually all types of functionality and for arbitrary number of modules, Hexabitz is based on dual-end module architecture. The front-end is the module part (hardware and software) responsible about its unique functionality. The back-end is the module part handling all background activities including communication, addressing and other array-related functionality. The back-end, often represented by the MCU on module bottom side and the Bitz Operating System (BOS), effectively virtualizes and standardizes the interface to any type of front-end, whether it is analog signals, high-power motor, high-speed FPGA or just plain bits and pixels, they all share same interface to the Hexabitz ecosystem. The back-end resembles infrastructure in computer and communication networks, necessary to scale and standardize but not beneficial on its own. The front-end is the useful part of the process providing the end application.