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
Version | Description | Link |
---|---|---|
mimirPrototype2 | First working breadboard that was able to record and save data | |
mimirPrototype3 | Shield designed to fit on an ESP32 development board | github |
mimirPrototype4 | Second shield with more sensors | github |
mimirPrototype5 | Custom development board for ESP32 | github |
mimirPrototype6 | Fully functional PCB designed from scratch | |
mimirOpen | Open Hardware Project based on the mimirHome sensor | github |
mimirCUBE | Multiple interconnected PCBs with various functions | |
mimirCUBEv2 | Self 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:
SHT31
temperature and humidity sensorTSL2561
light sensorESP8266
microcontroller- OLED display
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:
- 2x
SHT31
temperature and humidity sensor TEMT600
ambient light sensorVEML6030
UV sensorBME280
temperature, humidity and pressure sensor
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:
- 2x
SHT31
temperature and humidity sensor - 2x
BH1715
light sensor TEMT600
ambient light sensorVEML6030
UV sensorCCS811
air quality sensorBME280
temperature, humidity and pressure sensor- OLED display
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.
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:
SHT31
temperature and humidity sensorBME360
temperature, humidity and pressure sensorHSCDT008A
compassVEML6030
UV sensorBME280
temperature, humidity and pressure sensorESP32-WROOM
microcontroller
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.
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:
SHT31
temperature and humidity sensorBME360
temperature, humidity and pressure sensorLSM303
compassVEML6030
UV sensorBME280
temperature, humidity and pressure sensorESP32-WROOM
microcontroller
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.
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.
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.
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.