lloydrichards.dev

DESIGN

DEVELOP

GARDEN

February 29, 2020

mimirOpen

Development history of the open hardware project based on the mimirHome sensor. How the project evolved from a breadboard to a fully integrated PCB.

For many years I had fumbled my way through creating and IoT device from the hardware, firmware, backend, frontend and data visualization. These included the mimir visualization and mimirHome projects. In this project I wanted to show the development process of the hardware that would eventually become the mimirOpen sensor.

Prototypes

VersionDescriptionLink
mimirPrototype2First working breadboard that was able to record and save data
mimirPrototype3Shield designed to fit on an ESP32 development boardgithub
mimirPrototype4Second shield with more sensorsgithub
mimirPrototype5Custom development board for ESP32github
mimirPrototype6Fully functional PCB designed from scratch
mimirOpenOpen Hardware Project based on the mimirHome sensorgithub
mimirCUBEMultiple interconnected PCBs with various functions
mimirCUBEv2Self assembled cube of boards

mimirPrototype2

At the very beginning I was just buying off the shelf components and trying to get them to work together. This was a very simple breadboard that was able to record and save data. For a time, this was running without issue sending data to a firebase backend and visualizing using the mimir visualization.

This version include:

Breakout board under plants

mimirPrototype3

Next version was my first go at designing a shield to fit on an ESP32 development board. Taking what I learnt from the sensors, I learnt to design PCBs in a weekend and had them manufactured in China. This was a big step up from the breadboard and allowed me to add more sensors and functionality.

This version include:

First PCB delivered from manufacturer

mimirPrototype4

With the success of the first shield, I designed a second shield with more consistent sensors, as well as an air quality sensor. Also learnt more about PCB design and manufacturing, taking advantage of multiple layers and more complex designs.

This design was also where I got much better ad firmware development and understanding how to write programs in C++ for the ESP32. This allowed me to add more states to the application to power the various LEDs for indicating the state of the device.

This version include:

Multiple working devices Fresh PDBs from manufacturer

mimirPrototype5

After designing two shields it was time to test out creating an full development board for a ESP32 module. This was a big step up in complexity and required a lot more planning and testing. Here I learnt how to make power circuits, USB-C connectors and how to layout a board for manufacturing, testing and assembly.

CAD design for PDB

mimirPrototype6

Combining all the knowledge from the previous prototypes, I designed a fully integrated sensor board that could be used for the mimirOpen project. This was where I started to get serious about sourcing components and designing for manufacturing. At the time I was scaling up the number of devices I could build with at once point receiving data from over 20 devices, all hand build.

This version include:

Side by side of multiple boards

This was also the first time designing 3D printed cases for the devices. This allowed me to test out different configurations and how the devices would be mounted in the final product.

Render of casing for 3D printing

Device in 3D printed case

mimirOpen

After much prototyping and an attempt to create a startup around the device, I eventually started putting all my learnings into a more formal repository of content in an effort to open source the project.

Final version include:

Schematic diagram of board

This was where I swapped from EasyEDA to KiCAD for designing the PCBs. This allowed me to have a proper git version control system for the hardware and firmware changes so I could track the progress over time. This repository is still alive, but not active at all.

CAD design of PCB board

Was also a time where I was experimenting more with the vision of a product for this device so for time designed some shiny renders of the device.

Render of product in case Render of multiple color options

Future Prototypes

Since creating the mimirOpen project I have been working on a new version of the device that is more modular and can be used in a variety of different configurations. This is the mimirCUBE project. There is a private repository of all the hardware, firmware and software for this project, but I'm still unsure If I will make it public.

Mini prototypes for different cub forms

This project was a lot of fun to design and learn from. I got to apply a real example of the problems with IoT development and learn how to overcome them. I also got to learn a lot about PCB design and manufacturing, as well as how to design for a product that could be used by others. I also got to learn a lot about PCB design and manufacturing, as well as how to design for a product that could be used by others.

While I'm sure there will never be a commercial version of this device, I'm happy to have learnt so much from the process and understand the complexities of creating a product from scratch.

Render of PCB assembly