Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!

Modular-Things Turns Individual Components Into "Virtualized Hardware" for Plug-and-Play Projects

Putting a microcontroller onto each component of a system proves a powerful method of building complex creations.

Gareth Halfacree
2 years ago β€’ HW101 / Productivity

Researchers from the Massachusetts Institute of Technology (MIT)'s Center for Bits and Atoms, working with Hack Club, have come up with a toolset aimed at making it easier to put together physical computing systems using single-purpose building blocks: Modular-Things.

"We present a collection of tools for building plug-and-play modular physical computing systems that we call Modular-Things," the team explains of its work. "Our tools consist of a set of single purpose embedded devices, a link layer agnostic message passing system for communication between devices, and a web-based programming environment. The devices are dynamically discovered and virtualized into software objects that can be programmed in the web IDE."

An interesting approach to building machines, Modular-Things takes the UNIX philosophy into hardware. (πŸ“Ή: Read et al)

The idea is simple, and very much akin to the UNIX philosophy of chaining together small single-purpose tools to achieve complex goals. Rather than software, though, the Modular-Things are hardware β€” plug-and-play single-purpose gadgets ranging from stepper motors and LEDs to buttons, accelerometers, and touch sensors.

The framework behind these plug-and-play modules is split into two layers. The first is an Arduino library, which discovers modules and handles passing messages between them; the second is a web-based development environment which lets the user program the modules in JavaScript β€” but running within the user's browser, rather than on the Modular-Things themselves. "Rather than 'embedding' a high-level language into hardware," the team explains, "we are 'lifting' hardware modules into a high-level language."

Each component appears to the web-based development environment and can be chained with other components. (πŸ“Ή: Read et al)

To test the project out, the team set up a five-day workshop with 60 students working in teams to build machines from Modular-Things components β€” including a sand art drawing machine, a pancake plotter, a pen plotter, and β€” unusually but impressively β€” a toilet-paper throwing machine which used computer vision libraries to detect faces and automatically aim at them.

"Some students found Modular-Things intuitive to use and elected to reuse it for their final projects in the class," the researchers say. "We observed users were able to easily replicate the work of others by copying code, plugging in the required modules, and renaming devices to match the naming scheme of their example snippets. Users did this to rapidly recreate motion systems which would have been difficult to recreate at a firmware level."

The framework does come with some limitations in its current form, though. The researchers admit that a reliance on USB for communication between the hardware and the communications environment and the need for each module to have its own microcontroller bumps up the cost, while hardware created using Modular-Things is useless without a desktop or laptop computer running the development software β€” problems the team is already working to resolve.

The team's work has been published in the Extended Abstracts of the 2023 CHI Conference on Human Factors in Computing Systems (CHI EA '23) under open-access terms.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles