Posts Tagged ‘embedded’

Melbits Pod surrounded by Melbits

One of the things I enjoy the most is embedded development. I always say that creating something with your own hands, which you can also program and watch as the gadget comes to life, is an incredible feeling. Eight years ago, I embarked on what was possibly my most ambitious project in this area.

It all started way back in 2016 as a business idea to create something fun that would also have a positive impact on society.

The motivation

In this screen-filled world where children are increasingly immersed at an early age, and where parents often use them as a sort of “digital pacifier” to give themselves a moment of respite, we who are still big kids perceive that the art and joy of playing with physical toys in the real world is being lost. Audiovisual media floods all our senses, leaving little to no room for imagination.

Little girl using her smartphone in bed

Designed by FreePik

But don’t get me wrong, I am a big advocate of technology because it enables us to do incredible things and allows for lifestyles never seen before. In recent decades, we’ve experienced a technological explosion unlike anything in human history. Robotics, telecommunications, electronics, artificial intelligence… New technologies arise and become obsolete in just a matter of months. It’s hard to stay up to date, but it’s even harder for society to absorb this new world of possibilities moving at breakneck speed. So, in many cases, something that could be highly beneficial if used well becomes the opposite because it’s misused. And it’s misused because development has been so fast that we haven’t had time as a society to build a culture and healthy habits around the digital world.

From a reflection like this, an idea emerges.

The idea

In short: an electronic toy with sensors that you have to play with in order to progress in a digital game.

Melbits are small digital pixies that start their lives as seeds. As they grow and develop, they turn into puppies or adult Melbits. But not everything is happiness in the world of Melbits, because viruses, representing everything bad in the digital world, are lurking and can infect Melbits, thus creating new viruses.

The user will obtain Melbit seeds in the digital game (smartphone or tablet), which must then be transferred to the real world by loading them into the toy, which acts as a sort of incubator. Next, they’ll receive an incubation recipe which might include moving the toy, letting it stand still, give it some sunshine or maybe keep it in a dark, cold place.

This is where the digital part ends and the physical part begins. From this moment on, the user must play with the toy as instructed if they want the Melbit to develop correctly inside. Otherwise, a virus will appear, and there will be consequences.

Little girl playing with the Melbits Pod

The incubation process can last from seconds to hours, helping to cultivate skills like patience and perseverance.

Once incubation is complete, the toy notifies the user, and they can transfer the results back to the tablet to see how well or poorly they did.

Girl lifting up the Melbits Pod revealing a new Melbit inside


Hardware specs

Right from the beginning, it was clear that the toy needed to have sensors, some way to provide feedback to the user, and, if possible, no buttons, as well as the ability to communicate with a smartphone or tablet. However, the specific requirements evolved throughout the development process as we shaped the user experience and experimented with different solutions to find the one that offered the best cost-benefit ratio.

Here’s how the final specifications turned out:

  • Bluetooth Low Energy
  • 4 high-brightness orange LEDs
  • RGB LED
  • ERM vibration motor
  • Temperature sensor
  • 2 photodiodes
  • Accelerometer
  • Amplified speaker
  • Rechargeable lithium battery
  • USB port
  • Hidden multifunction button (not typically used)
  • ARM Cortex M0 microcontroller at 64 MHz
  • 192 KB of Flash memory
  • 24 KB of RAM
  • Internal hard ABS casing with screws, enclosed in a soft vinyl outer casing

Firmware Specs

  • Encrypted bootloader with OTA capability
  • Game logic
  • Music player with sine wave, triangular wave, noise, and PCM channels
  • Extra channel to control the vibration motor
  • Extra channels to control the LEDs
  • Several embedded melodies and effects
  • Adjustable output volume
  • Battery charge via USB connection and SoC monitoring with feedback
  • Sensor reading and updating
  • Motion pattern recognition
  • Automatic sleep and wake-up mode without buttons
  • “Box mode”
  • Storage memory
  • Customizable settings (vibration, LED brightness, speaker volume)
  • Streaming sensor readings via BLE
  • Diagnostic functions for manufacturing
  • Magic Link! (more on this later)
  • Proprietary encrypted BLE protocol controlling all functions
  • All of this within 192 KB of Flash and 24 KB of RAM!

Software Specs

The Melbits Pod app was developed in parallel by another team. It’s a Unity3D project which I adapted to support Bluetooth LE and async communications with the POD.

  • Cross-platform iOS/Android app
  • 3D graphics with skeletal models
  • Multiple props, accessories, and costumes
  • 2D touch UI
  • User guide tutorial
  • Melbit family tree
  • Persistent user profile
  • UI for viewing and changing toy settings
  • Tutorial voiceovers
  • Music and sounds by Aries!
  • Analytics
  • Activities with Melbits (playing, feeding, etc.)
  • Flow for loading and unloading a Melbit to/from the POD
  • Bluetooth Low Energy with proprietary encrypted protocol
  • Automatic toy firmware updates via OTA
  • Front camera usage to take a selfie with your Melbit
  • Augmented reality using the rear camera

Pod Simulator

  • Desktop app created during development to parallelize app development before hardware was available

In addition to all of this, I studied European and international regulations, as they are very strict with toys.

In closing

It was undoubtedly a great and exciting project. Join me in the following articles where I explain how I developed it prototype after prototype to the final product as the technical director of Melbot Studios, how I traveled to China to resolve questions with the manufacturer, and how it was finally mass-produced and went on sale after a successful Kickstarter campaign!