BlueShoe #2: Tools and Editor

BlueShoe #2: Tools and Editor

In the previous article, we talk about the issue of the inaccuracy of modern pedometers and we defined a DIY project, a pedometer that will be placed on the user’s shoe and would sync its data with the user’s phone via Bluetooth. In the following article, we’re gonna chose the tools we need to build the device and develop the software to process the synced data.


In most portable projects, hardware plays an important role among other components. In our project hardware contain the processor, ram, flash memory, RTC, Bluetooth antenna, battery and etc. As we talk about in part #1 of the log, we’re gonna use a microcontroller to speed up our process, this helps us not to worry about choosing a processor, flash memory, ram, and other computing components.

Different types of microcontrollers

After researching a little bit and looking through different kinds of microcontrollers in the market, I came to the conclusion that the best choice would be ESP32 by Esperrif. A dual-core 32-bit small low consumption microcontroller with 4MBs flash memory, 512 KBs of RAM, I2C protocol, and integrated WIFI and Bluetooth modules antenna inside the board. It’s also Arduino compatible.

We also need an accelerometer sensor to detect the body’s motion. for that matter, we would use an ADXL345 module, a 3-axis accelerometer sensor with adjustable resolution.

We would also use a 9V battery to power our hardware.


Software is the most important part. I believe bad software on the best hardware can still lead to disaster.

Buggy software can lead to time and money disasters.

In this project, the software will divide into two parts, microcontroller, and mobile phone software. We’re gonna use Arduino with C++ language to code our processor. On another hand, we’re gonna use the Flutter framework, to develop an app for mobile platforms. You can learn more about Flutter on their website Flutter uses Dart language to create a single code base app that can compile and run on multiple platforms such as iOS, Android, Web, Windows and etc.

Flutter is developed and launched by Google.


There are different kinds of editors with different features and choosing the right one can be a hard debate.

As we know, we’re going to work on our project with different programming languages and different frameworks, we may use two different editors, Android Studio for the flutter app, and Arduino compiler for the microcontroller software.

But, to make things easier I recommend you not to use different editors and try to work on both projects in one workspace. Opensource editors like VSCode help us to do so. We can define multiple projects with multiple frameworks just in one workspace and they’re also easy to manage.

To set up our VSCode to work on both ends of our software, we need to install a few extensions, one of which is PlatformIO. It’s an extension for IoT devices development and it also supports Arduino development, making our job a lot easier! To continue, we also need to set up flutter platform integration to do so it’s better that you check out their documentation on their website, it’s easy to set up and easy to understand, if you had any questions please don’t hesitate to comment below this post.

In the next log post, we’re gonna talk about the design process of the application and hardware. Stay tuned.

Related Posts
Leave a Reply

Your email address will not be published.Required fields are marked *