loading

RetroBand is the second result of Arduino Wearable Project that is supported by open source. I think this shouldn’t be called a ‘smart band’ since it has only simple features. Actually, it’s rather to be called an “Activity Tracker”… But the term ‘smart band’ is more familiar to me, so I just call it a smart band. The important thing of smart bands is they are connected with mobile devices by Bluetooth and track the daily routine of users.

RetroBand that is implemented by Arduino has only one feature, which is collecting data by using accelerometer and sending them to a mobile device. Then the mobile device calculates the calories and steps by using the data. The feature is simple, and that means the structure of this device is way simpler than RetroWatch, so it’s very easy to make it in your own taste.

The android app check steps using collected data provided from RetroBand Arduino. The algorithm of the app is not that complicated. If you have much experience to this area, you can replace it with your own algorithm. The app saves the calorie data, so you can see the progress it in a monthly/daily/hourly graph form. FYI, RetroBand Arduino cannot save the data itself since the shortage of its memory capacity. That is, it only works when it’s connected with a mobile device, which means you cannot collect the data with RetroBand Arduino only. I think this problem will be fixed when Arduino gets improved.

Step 1: Mechanism

RetroBand consists of an Arduino part and an Android app.

The Arduino has 4 main parts – Arduino board, accelerometer(MPU-6050), Bluetooth module(HC-06), lithum-polymer battery(charge board is optional).

The Android app contains of 4 parts – Android UI, Bluetooth manager, Algorithm section, background service.

If Arduino powers on and the pairing process with RetroBand app is done, the board check the accelerometer data 20 times in every 1 second. And it transfer the data to the mobile device once a second. The accelerometer measures x axis / y axis / z axis values, so the band sends 60 values(20 times x 3 axis) of data to the device. The Android app receives the data during two seconds and finds out an interval that user’s movement increase dramatically. The number of user’s movement increase is user’s a step count. The app calculate burned calories based on user’s weight and steps, and accumulates data monthly, daily and hourly.

<p>I made it , but not working </p><p>I am getting same values in Serial Monitor , No changes when moving accelerometer.</p><p>I am using ADXL 345 Accelerometer , and connection like this</p><p>(VCC-&gt;3.3v, GND-&gt;GND, SDA-&gt;A4, SCL-&gt;A5)</p><p>Any suggestions? </p><p>---------- Send 20 accel data to remote <br>accel x,y,z: 25856, 259, 2, at 110 <br>Read accel, temp and gyro, error = 2 <br>accel x,y,z: 101, 769, 512, at 116 <br>------------- Send 20 accel data to remote <br>Read accel, temp and gyro, error = 2 <br>accel x,y,z: 25856, 259, 2, at 2 <br>Read accel, temp and gyro, error = 2 <br>accel x,y,z: 101, 769, 512, at 8 <br>Read accel, temp and gyro, error = 2 <br>accel x,y,z: 25856, 259, 2, at 14 <br>Read accel, temp and gyro, error = 2 <br></p><br><p><br>------------- Send 20 accel data to remote </p>
<p>it's a great project!! but something is wrong.<br>such graphics get in a static position. when moving nothing changes.<br>MPU 6050 may be faulty. can you help me with this?</p>
<p>Hi i tried your code but the bluetooth doesnt seem to work :( helpppp. it says not responding. is there anyone with the same problem?</p>
Thank you very much Godstale for the instructables, I was wondering of a way to tweak the device and the app so that it can make the phone alert whenever something else happens let's say like you don't have ur phone with you ,
<p>Hi @GodsTale,</p><p>Nice instructable. Thanks. Very useful. I have a concern. What if I have to store some data in tracker itself temporarily (May be for a day if user don't want to keep smartphone connected). So, that he can sync up tracker with his phone once in a day. How can we achieve this? Any extra hardware component or will it be just a extra code piece? Thanks.</p><p>/perrygarg</p>
<p>You need SD card module because there is only 3KB(2KB RAM + 1KB EEPROM) memory in Arduino. And you have to change all of Arduino code and much of Android code. It's totally different job.</p>
<p>Thanks GodsTale, Yes, EEPROM is all storage Arduino has. (As RAM can't store data even if power switches off). Do professional health bands use SD card module or just another EEPROM chip? For example say Mi band uses which stuff for storage of data bits temporarily? </p>
<p>Based on your Retro-Watch project I wish to integrate it with this project, where shall i connect the MPU-6050 module, its place has been taken by the oled display on the Retro-Watch.</p>
<p>Hi GodsTale, </p><p>Thanks for your efford. I made one it works fine but in order to put it in a shape I need the case. I have my own 3d printer that is not a problem. Would you mind if you send me the drawing files?</p><p>Best wishes.</p>
<p>Unfortunately I dont have 3D modeling files for this. Case in picture above is not mine. :(</p>
<p>Okey, thanks.</p>
<p>Interesting!!</p><p>If you are looking for a nice activity tracker for wholesale business,you can check this website and contact me:www.taiwan-smart-watch-factory.com</p>
<p>Just ordered the Bean. It has the same Arduino chip, and its own accelerometer and BT built it. Will need to add a flash chip though. Will see what happens.</p>
<p>Great stuff GodsTale,</p><p>Would your code work on the LightBlue Bean platform? </p><p>https://punchthrough.com/bean/ I am working on a simple inactivity tracker, where instead of steps and calories, the tracker tracks period of long sitting, or inactivity. </p>
<p>I have no idea about LightBlue. Maybe this project doesn't work with LightBlue.</p>
<p>hi GodsTale,</p><p>great job !..!!!!</p><p>i was jus tryin this DIY fr fun ...i used an UNO instead of the PROMINI....so after i gt this set up ...and paired to app ...i twisted and turned my accelero on my bread board ...bt noticed that im nt getting any real time data ....even the graphs seemed like to take forever to respond to the changes in YPR ....so is this app real time and im making a mistake in my motion of accelero ...................or does this gives steps and calories after a given period of time ? </p><p>eager fr ur reply !</p><p>thankss !!</p>
<p>Firstly check the accelerometer value using serial monitor. And check bt module with below app.</p><p><a href="https://play.google.com/store/apps/details?id=com.hardcopy.btchat" rel="nofollow">https://play.google.com/store/apps/details?id=com....</a></p><p>This app shows bt data sent from remote. Pair with your bt and check accel value is fine.</p>
<p>Instead of the Arduino board pairing with an android app is it possible to pair it with another Arduino? </p>
<p>Yes, but you should use bluetooth master module and bluetooth slave module. And pair each other before sending data.</p>
<p>Hi, looks very good. I also use activity detection for animal trackers.</p><p>1. MCU + Accelerometer + BT to initial reseach</p><p>2. MCU + Acc + GPS + GSM + RF for real application</p><p>3. nRF51822 + Acc for newest research</p><p>You can use ODBA for initial analyzist but better use more complex algo. And activate BT (or BLE) only if need. It increase battery time dramatically.</p><p>Good luck for your project</p>
<p>Hey there, would you be willing to chat about your project work and activity detection for animal tracking? I'd like to work with you on something.</p>
Hi,<br>you can contact via skype (see on top-left corner) http://akb77.com/g<br><br>Mitek
<p>Jeremy, love the project and documentation. Did your project have any on-chip memory to store the data when away from the Bluetooth connection? How much more difficult to store the data on the chip and sync with a Bluetooth device? I'm not an electrical engineer, more of a business guy. Trying to understand all the components and component cost options. I want to make one for a specific activity tracking market. Thanks!</p>
<p>so I just check your code. The arduino does not do anything smart. It fills a buffer then send that to the phone. Then the algorithm in the phone process that data. You have <a href="https://github.com/godstale/retroband/blob/master/Android/RetroBand/src/com/hardcopy/retroband/logic/Analyzer.java" rel="nofollow">Analyzer.java</a> and <a href="https://github.com/godstale/retroband/blob/master/Android/RetroBand/src/com/hardcopy/retroband/logic/PeakDetector.java" rel="nofollow">PeakDetector.java</a> that do the hard work. Analyzer.java get the data from PeakDetector.java and then send the step count to mShakeActionCount that is use by the rest of the app. (ar.mShakeActionCount=nStepCount;)</p><p>I like it! thanks for sharing!</p>
<p>Yes, you're right. It's not smart :) I'm looking for ideas to make it more &quot;smart&quot;</p>
<p>Have you ever considered using WEKA with C4.5 DT (J48) instead of counting steps?</p>
<p>you do that those statistical classification algorithm on the arduino and let us know! HAHA! :)</p>
<p>I wasn't think about doing on the arduino, just sending the files to smart phone as ARFF and then java would handle the rest of them :)</p>
<p>Great Ible! Just wondering what battery life you get out of it :?</p>
<p>thank you for this project, I am going to give it a try :)</p>
<p>When I get time, and my 3d printer working, I will try this out! However, I would probably make it just as a stand alone so you can run then upload the data at the end through bluetooth to the phone. Also why not integrate the accel data to distance instead of doing a step count? </p>
<p>Because I'm a rookie in signal processing, I did it in easy way using open source.</p><p>https://github.com/godstale/retroband/blob/master/Android/RetroBand/src/com/hardcopy/retroband/logic/PeakDetector.java</p>
<p>Interesting.</p>

About This Instructable