Hexabitz Modular Electronics

← View All Updates
Jun 07, 2018

Array Exploration

Array exploration is a nice feature that lets you automatically configure your Hexabitz arrays and easily generate their topology. It is particularly useful for large and complex arrays, where manually generating the topology is usually cumbersome and error-prone. All you need to do is to assemble the array and let it auto-configure itself!

Once you assemble your array and program all modules with native firmware, You can invoke the array exploration algorithm via the Explore() API or explore CLI command. The algorithm finds out the number of connected modules, the topology routing table, and which ports are swapped (since you need to swap TX and RX to connect two UART ports). All of this information is stored either in the emulated EEPROM or on a special Flash page so that you don’t have to explore again every time you reboot the array. Note that the module you’re connected to when invoking the exploration algorithm will be assigned ID #1. Other modules will be assigned sequential IDs based on their relative distance to the master (module #1).

The screenshot below shows a terminal output of explore command. The routing table shows module part number (H09R0) and the connected neighbor module and its port (in the form ID:port) which connects to a particular port P1 to P6 in this module.

Exploration Algorithm

Here’s a detailed step-by-step description of what happens in the exploration algorithm:

  1. The master module (ID #1) swaps all its ports and explores adjacent neighbors by sending them an inquiry message. Neighbors send back a response mentioning which port they heard the inquiry from.

  2. The master then starts assigning IDs to new modules and updating its topology array:

    a. Assign sequential IDs to neighboring modules (according to master ports they’re connected to).

    b. Update the master topology array with IDs and ports of neighboring modules.

    c. Ask neighbors to update their own topology array.

  3. The master asks each new module to explore its neighbors, basically repeating steps 1 & 2. This continues level by level until all modules are explored:

    a. Master asks a given module to swap its ports

    b. Master asks the module to explore its adjacent neighbors.

    c. Master assigns IDs to this module adjacent neighbors.

    d. Master updates its topology array.

    e. Master asks all discovered modules to update their topology array as well. Then the master repeats steps 1 to e asking next module down the list to explore.

  4. The master ensures all connected modules have been already discovered by reissuing exploration commands to all modules and watching out for any new un-IDed modules.

  5. If there are no un-IDed modules, the master generates and distributes appropriate port directions:

    a. Virtually reset the state of master ports to Normal.

    b. Update other modules ports starting from the last one and going backwards to ensure the communication chain is not broken.

    c. The master asks each module to update its port direction.

    d. The master officially updates its ports back to normal.

  6. The master tests new port directions by pinging all modules and recording their responses. It’s also displayed on the terminal if the CLI explore command was invoked.

  7. The master asks all modules to save the topology and port directions in specific Flash page (for topology) and emulated EEPROM (for number of modules and port directions).

The following video shows exploration of different arrays with various shapes and complexities. There are generous delays currently in the algorithm making it a bit lengthy (2 minutes for the sphere) but they can be optimized later.

$1,822 raised

of $10,000 goal

10

days left

18%

funded

119

pledges

Pledge Now

$5

Support Hexabitz!

Thanks for believing in modular, open source electronics!


$35

Intro Kit

Get hands-on and discover the awesomeness of modular electronics with this intro kit: 1 x RGB LED module (H01R00) + 1 x Micro SD memory card module (H05R00) + 1 x IR lidar module (H23R00) + 1 x Dual CR2032 coin-cell *battery module* (H13R00 or H13R10). (Note: coin-cell *batteries* are not included.)


$80

USB Kit

Use this kit to build a variety of fun and useful projects. Kit includes 2 x USB-B-to-UART module (H11R10) + 2 x Mini USB-B-to-UART module (H11R20) + 2 x Micro USB-B-to-UART module (H11R30).


$80

Blinky Kit

Use this kit to build a variety of fun and useful projects. Kit includes 6 x Hexagon RGB LED module (H01R00) + 1 x Pentagon RGB LED module (P01R00) + 1 x IR lidar module (H23R00).


$159

Home Automation Kit

Get your home automation game in shape with this awesome kit! We sampled a variety of power, wireless and sensor modules to give you a taste of the future: 3 x AC solid state relay module (H09R00) + 1 x Audio speaker module (H04R00) + 1 x Micro SD memory card module (H05R00) + 1 x 3.3V / 1A DC-DC power supply modules + 1 x BL/BLE 4.0 module (H02R10) + 1 x Sensor hub module (temperature, humidity, ambient light, color, microphone, IR motion detector) + 3 x SPDT limit switch.


$239

Mix-n-Match!

You know your needs better! That's why we're giving you the opportunity to choose any 12 modules from the ones available in this campaign. Mix-n-match the functionality you want with max of 2 modules per type. Plus, you will receive the following gifts: Our awesome t-shirt, our modified Kelvin clamp, our E-Z-Hook kit (4x e-z-hook grip connectors + 4x e-z-hook 6" cables + 20x smd probe pads), and a printed version of all our Factsheets! Please list the modules you want in your order comments.

Ask a Question

Have a question not answered in the description above or in the Updates?

Ask Hexabitz a Question or Browse the Crowd Supply Guide

Credits

Hexabitz

We're on a quest to redefine prototyping and electronics experience through innovation, biomimicry, and cross-pollination of ideas. Our modular prototyping system takes modularity to the next level, supporting both bench-top and real-life applications. We are a global team of researchers, designers, coders, and hardware tinkerers and we believe everyone should have equal access to the building blocks of the digital age.


Asaad Kaadan

Founder & CEO

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects: