The embedded codes of oblu is opensource. Did I get it right?

Yes. "oblu" is based on opensource OpenShoe platform. Its embedded code is released under the permissive open source Creative Commons Attribution 4.0 International Public License.


Our organization needs a formal Quotation / Proforma Invoice. What should I do?

Please send your request for quotation to sales@oblu.io


What is the lead time to ship and the shipping method?

We ship in-stock items within 2 working days after receiving order. It is fair to assume lead time of approximately 3 weeks for pre-stock orders. We ship international orders by Fedex International Priority. Deliveries within Inida are handled by DTDC, Professional or Speed Post.


I'd like to know the average shipping delays?

We ship the order within 2 working days from receiving the payment. Typically it takes nearly 1 week or even less for shipping transition to any country in North America, Europe, Australia etc. As per our experience, custom clearance process takes longer in China than any other country.

Orders within India take 3 to 4 days to transit time.


Who can place order online using PayPal payment gateway?

We accept international orders online using PayPal payment gateway. One can use international credit cards to make payment through PayPal.


Do you accept payment by Wire Transfer (TT)?

Yes. We do. Please write to sales@oblu.io


What are the payment options for purchase within India ?

We accept payment from India through the payment gateway PayU Money. PayU Money allows transactions using credit / debit cards and netbanking. Please visit https://in.oblu.io/collections/products to place order from within India. We also accept payment by NEFT. Write to us for NEFT details. We also accept Demand Draft or Cheque in favor of GT Silicon Private Limited, payable at Kanpur.


Can you ship the order on our shipping account ?

Why not. Please mail to sales@oblu.io


What is the shipping method and the tax?

For international orders, shipping method followed is CNF. We will take care of all the taxes levied in India. The import custom duty and import clearance process needs to handled by you (the buyer). You may or may not have to pay taxes in your respective country.


I want to know if the final price includes customs clearance fee and the custom duty? Basically I want to know if I need to pay any money extra over what I pay while placing the order?

We use CNF DestinationCity as a delivery option. What is means that our prices do not include shipping insurance, custom duty in destination country and the custom clearance fees. Please note that you have to take care of the import clearance process in your country.


Could you provide us the invoice and packing list for requirement of customs clearances?

We always email scan copy of invoice and packing list to the customer, as soon as we ship the order. We also share the shipment tracking details.


We are interested in placing bulk order. Do you offer any discount ?

For bulk ordering, please mail to sales@oblu.io for details.


We are an engineering college and are interested in introducing lab exercises based on oblu modules in our course on Embedded Systems Design. How to proceed?

We are interested in promoting the technology among students and research community. Please mail to hello@oblu.io for further discussion.


How frequent and when should the calibration be performed on oblu?

For foot-mounted pedestrian tracking with Zero Velocity Update (ZUPT) algorithm, we did not notice any performance degradation with a one week old calibration as compared to a calibration which was few hours old. We never had to calibrate the modules because of deterioration in performance. On the other hand, module calibrated couple of months ago does not give any performance degradation. In case of ZUPT, a step detection algorithm determines when the foot is static or in complete contact with ground. This method corrects any errors as a result of internal noises of the IMUs on the fly. But to get best out of oblu it is advisable to recalibrate it every month.


How do you take care of variations due to temperature ?

We have observed that core of the IMUs heat upto some extent (nearly 50 deg C) when those are operational. Therefore, we wait for couple of minutes to let temperature stabilize, before initiating calibration process. Similarly the devices are turned on couple of minutes before tracking. This way, we try to limit impact of temp variation on performance.


We have evaluated the platform. We are satisfied with its performance. However, we would like to have some minor modifications in the circuit and alter the form factor. Do you take up hardware customization?

We feel that the platforms are very flexible and can be adopted to a number of applications. If you still feel that customization is required to fit in your system, we'll be happy to do it for you for a fixed fee or free with purchase of platforms in production quantity. Please contact us.


We monitored individual IMU's acceleration data and observed that errors in z-axis acceleration is higher as compared to x and y axis accelerations. Do you have any idea why the Z-axis is worse than the others?

Typically z-axis accelerometer does not have performance at par with x and y. This reflects in our final tracking data of oblu as well. This is due to the orientation of moving mechanical structures inside the IC and the MEMS fabrication process for fabricating such structures. Typically fabrication equipments and processes are more stable horizontally (i.e. in x and y directions) than vertically (i.e. in z direction). In summary, fabrication of z-axis accelerometer is tedious.


How effective is your calibration compensation ?

In our IMU array calibration method, the inter IMU misalignment is estimated w.r.t. the acceleration due to gravity vector under static conditions (stationary) only. Based on estimate the calibration gain and bias are calculated. Calibration is also not performed for a range of temperature and humidity. However our calibration compensation along with a suitable algorithm (ZUPT for foot-mounted pedestrian tracking) and error correction mechanism (EKF) gives tracking data with superior accuracy on our platforms. We have demonstrated this with oblu.


What is the command for calibrating oblu? Is it same as Stepwise Dead Reckoning command (0x34 0x00 0x34)?

For calibration we need data from individual IMUs. The starting command should be same as accessing raw IMU data of individual IMUs (0x28 0x00 0x00 0x00 0xf 0x41 0x00 0x78). One should remember that calibration is not a single command. But it involves a set of processes (commands) including collection of individual IMU data at different orientations, and post processing it. For calibration's Python scripts, please refer Resource under Support page/Github.



Should I worry about the local g value (acceleration due to gravity) for performing calibration?

Yes. For calibration, the oblu must be programmed for local g value. By default the factory programming is done taking into consideration of the local g value of the shipping address.
Latitude of the place of action and its height above sea level are required to find out the local gravity. Here is an online gravity calculator.


Can I load my own algorithm into oblu? If yes, what additional hardware and software tools are required for that? Which language is used for writing the embedded code?

Yes, user can program oblu with his/her own C code using Atmel Studio 7.0 (the software tool) and any generic USB data cable or JTAG programmer (the hardware tool). To know the programming steps, please follow the video titled "How to compile the firmware of "oblu"" and for JTAG programming watch the video “How to program "oblu" with JTAG” and for USB programming watch the video "How to program "oblu" via USB" in the Tutorials subsection under the Support page.


Do you recommend any JTAG programmer?

You may use any JTAG programmer which has pin compatibility with oblu. In our case, we use AVR Dragon for JTAG Programming.


We have never used AVR Dragon before. We read on the Internet that it must be prepared by assembling a given set of connectors to it. Is this true ?

The version of AVR Dragon which we use, does not require assembling before use. Connect the AVR Dragon JTAG pins with jumper wire. For connection, please refer “Detailed IO map” and “JTAG interface” documents available in the Resource section.


Do I need any special USB boot loading cable for programming oblu?

No. Any generic USB data cable will do .For details about programming by USB please refer “How to program "oblu" via USB” in the Tutorials subsection under the Support page.


Is oblu programmed with latest code available in openshoe.org project?

No the firmware of oblu is different from the latest code available on openshoe.org. Please go to Resources under Support section to download the firmware by which oblu is programmed. Please refer “Integration Document” from Resources under Support section for command protocol.


Is there a chance that the sensors might get damaged during the JTAG programming process?

There is no possibility of damage if you any generic USB data cable, or AVR Dragon and follow the process we recommend. Please make sure the connection for JTAG Programming is proper. Almost all of the users of oblu have done it successfully by just going through our online videos and manuals.


I am getting error message like "The drivers for this device are not installed" when I connect oblu boards first time with my laptop / desktop PC. Anything wrong with my procedure?

It is actually the USB driver for oblu which is missing. Please watch the video “How to update "oblu's" USB driver for Windows” in the Tutorials subsection under the Support page. Download and install the USB driver from the Resources subsection under the Support page.



Do you have firmware to make your modules work as AHRS?

No. We do not have firmware to make our modules work as AHRS.


For our experiments with oblu, we want to acquire selective IMUs data. Which means we want to acquire either any one or any two or any three at a time? Is it possible?

For collection of individual IMU data you can use MIMUscope. Select the IMU/IMUs you want output. For details refer the video “How to analyze data of "oblu's" onboard sensors” in the section Tutorials subsection under the Support page.


What is the need to use 4 IMUs? Will ZUPT algorithm not work for single IMU system?

Of course ZUPT algorithm will also work well for a single IMU system. 4 IMUs are used for reducing noises in the inertial data. This gives better accuracy of oblu, compared to single IMU system.


Would it be possible to provide just a raw data output (either quaternion or Yaw/Pitch/Roll or a position vector) from this hardware ??

Yes it is possible to get quaternion and position vector output from the device. You can also get the value of roll pitch and yaw but for that the firmware needs to be modify.


Oblu has 4 on-board IMUs. But is it possible to use only one, two or three for performing tracking? Will it any way deteriorate the performance?

You can select any combination of one, two and four IMUs only. You can refer the video “Explaining MIMUscope's features” in the Tutorials subsection under the Support page for selecting IMUs. The noise performance is better with more number of IMUs. So selecting four IMUs will result in a better tracking performance.


What is the accuracy of oblu?

Please refer to the Datasheet of oblu for details.


Is it compatible with any other boards like Arduino, Raspberry Pi etc?

Yes. Oblu is compatible with Arduino, Raspberry Pi and any other generic development board as long as it is pin compatible with oblu.


Is SPI communication pin available in oblu? What kind of communication pins is accessible in oblu?

Please refer to Detailed IO map” documents available in the Resource section for communication pins.


Is it possible to get continuous footstep instead of discrete points?

Yes it is possible. You have to change the algorithm for that.


What do I need? oblu, demokit, leaners kit or DIY kit?

It depends on your application. If you only want to use as a development platform and build a system around it then oblu board is ideal for you. If you want to use oblu as a shoe mounted pedestrian tracking device then demokit is best suited for you application. Learner’s kit would be useful if one wants to play around with oblu's f/w also. DIY kit is suggested for diy enthusiast and hobbyist who want to extract full potential of oblu.


I would not like to mount on a foot (of course that will help us a lot to compensate drift of Inertial sensors). How about carrying oblu in a hand, just like a mobile phone, in hand/pocket?

Our firmware programs oblu as a ZUPT based tracking sensor. This means that the pre-programmed oblu, would operate as a foot mounted tracking device. In order to use oblu differently, appropriate code/algorithm is required. Carrying oblu (programmed with our code as is) in hand or pocket will not give desired tracking result.


We can get the stepwise dead reckoning data packet from oblu by BT - "AA 00 01 3A 38 B0 24 C9 B9 85 03 9F B9 88 CA EF BA 74 5B F0 37 01 78 A7 29 6F 92 83 2D 80 5C D5 B0 44 D1 B3 37 01 78 AA AE 81 1C 4F AF 96 AA 63 37 01 36 AE 2A D0 B2 3E 36 5A D4 46 00 01 1B 5E". Could you tell me if this is correct?

The hex data from the module seems to be correct. This is the first (packet number = 0x0001) data packet (0xAA = 170) with payload size (0x3A) 58 bytes. Displacement in x, y and z are x38B024C9 (+8.399E-5m), xB985039F(-2.537E-4m) and xB988CAEF(-2.609E-4m) respectively. Change in orientation of x-y plane about z-axis is xBA745BF0 (-9.322E-4 radians). As per the given data, the module is (almost) stationary. Note that x, y and z and heading are type float (IEEE754 Single precision 32-bit).


I get the correct tracking data from oblu in HEX. But don't know why I always get only the first data packet repeatedly and not the subsequent data packet even when I walk a long way?

Oblu expects ACK data from the application platform in acknowledgement to each data packet it sends. It keeps sending the data packet for which it does not receive ACK. If you are getting the first data packet repetitively, then this means that oblu has not received ACK.


What is the significance of each of the 64 bytes for Stepwise Dead Reckoning Data (0x34 0x00 0x34)?

Please refer to “Application Note” available in the Resource subsection under Support section


I need a PDR device whose heading output has to be accurate also in presence of magnetic field disturbances. Can oblu meet my requirement?

Our sensors are absolutely isolated from any presence of magnetic field or any kind of magnetic disturbances. Oblu does not make use of magnetic data for navigation. Therefore there is no question of any magnetic interference. It only uses gyroscope data for heading calculation.


Could you explain how heading is calculated? How is it possible to correct the gyro errors without a magnetometer? Do you calculate heading change at every step only? I suppose that at the starting point you need the absolute heading value; how do you calculate it?

Heading is calculated based on the acceleration components acting in the x and y direction.
Gyro error is calculated based on ZARU (Zero Angular Rate Update) Algorithm. At each step when the foot is standstill the angular velocity should be zero. This human gait behaviour is taken in consideration to calculate and correct the gyro error.
Heading change is calculated at each and every step as soon as oblu detect a step. Watch this PDR video for reference.
Our sensors do not use initial absolute heading. One may give initial external input on heading (and also on the coordinates). Look at this video on how initial coordinates (from GPS) and heading (from phone's compass) are given to the system. Watch the video


Can the user do some secondary development with oblu's microcontroller?

Yes. User can program oblu's controller with their own modified firmware.


Can oblu detect position of any wheel based vehicle like bicycle/car etc?

Theoretically yes. The contact point of wheel and ground experiences zero velocity (or standstill) in case of rolling. So, if the sensor is attached to circumference, it'll experience zero velocity moment at regular interval. Ideally, the sensor will be little away from the circumference. That should be modeled in the code. Also, one needs to see the frequency of occurrence of zero-velocity instance. If that is close to ~1 Hz, which is typical human stride frequency, then oblu's existing code should work. The zero-velocity frequency for the sensor in that case would depend upon wheel's size and its speed (RPM). Typical RPM of 60 is good for detection.


Can we add more sensors / IMUs / GPS / Wifi / UWB / zigbee with oblu?

Yes you can add sensors / IMUs / GPS / Wifi / UWB / zigbee with oblu. Please refer to Detailed IO map” documents available in the Resource section for pin configuration.


I see that there is step miss, once we walk quickly. Does oblu has a certain limit on walking speed?

It is best optimized for normal walking speed. It misses few points if the person walks fast. What we assume that the speed of a person for any walk would be mixed and the average would be ~5 kmph (which is the normal walking speed). Moreover, when we walk fast, we mostly walk in straight paths. Hence missing point may NOT have big impact on overall tracking. Typically sportsmen move fast and in zig-zag fashion. So we do not recommend it for sports.


Is the accelerometer range adjustable? I know it has a maximum of +/-16g but we are looking into adjusting for 6g, 8g or 10g depending on our application.

Possible accelerometers' ranges are +/-2g, +/-4g, +/-8g and +/-16g. And gyroscope's ranges are +/-250 deg/sec, +/-500 deg/sec, +/-1000 deg/sec and +/-2000 deg/sec. The default ranges for accelerometers and gyroscopes are +/-16g and +/-2000 deg/sec respectively. You can change accelerometer's and gyroscope's ranges by sending appropriate command from the application platform MIMUscope or reprogram the oblu with modified accelerometer and gyroscope ranges. Please refer to the video “Explaining MIMUscope's features” in the Tutorials subsection under the Support page.


Each IMU on oblu board has a designated number - 0, 1, 2 and 3. Can you please let us know how does this numbering correspond to the IMUs on board?

Please refer “Detailed IO map” documents available in the Resource subsection under Support section.


Do I need a specific Bluetooth dongle to connect oblu to my computer (running Win7/8/8.1/10) as it has no embedded Bluetooth card?

There is no specific requirement. We too use a dongle with one of our PC. Just keep in mind that the dongle is compatible with BLE 4.1 which is implemented in oblu.


We believe that fused data from IMU array would be of greater precision. Is it possible to use your modules as a "wireless" IMU, i.e. the fused data from sensors is available over Bluetooth?

Yes oblu can be used as a normal wireless IMU. The modules are capable of giving calibration compensated and fused data from the IMU array. This means the module can be used as a normal IMU which outputs 3-axis acceleration and 3-axis gyroscope data. This data is accessible reliably @125Hz over Bluetooth interface. Note: Wired transmission of data, i.e. via USB, is possible @1KHz rate. It is also possible to change the data rate by using appropriate command. The maximum data supported is 1 KHz.


Would it be possible to record the sensors' (accelero's and gyros') individual IMU data wirelessly with foot mounted arrangement?

We have BLE module in oblu with the maximum allowed baud rate of 115.2K. Therefore transmitting sensors' data at maximum sample frequency with Bluetooth is not possible. It can be done with reduced (lower) sampling rate. However, we dont recommend collecting individual IMUs' data wirelessly. One can collect such realtime raw data using USB cable with laptop for foot mounted arrangement.
Collecting raw data with cellphone/tab would require a different Android application with suitable USB driver. Xoblu does not support data collection with USB cable.
We've successfully tested collecting fused data (resultant of all the four onboard IMUs) @125KHz with an Android smartphone, wirelessly.


What is the maximum sampling frequency for collecting individual IMUs and precision IMU data over BLE?

At a baud rate 115.2 K the maximum output frequency should be 62.5 Hz or lower for collecting data of all the four IMUs over BLE. For precision IMU (normal IMU) data, it is advisable to keep the output data rate at 125 Hz or lower.


Is it possible to collect the raw data (3 linear accels, 3 angular rates) from the 4 IMUs over bluetooth, on a PC, using MIMUscope ?

We have not done it so far but it is possible. For that the user has to write proper driver for PC. Also one has to take the BLE 4.1 protocol, baud rate of the BLE and the output rate divider into consideration.


What programmer is used for BLE programming?

We have used Cypress PSoc Miniprog 3 for programming the Bluetooth.


What is the range of the BLE used in oblu?

We have tested that oblu can communicate reliably via BLE for a range of 2 meters.


How to power on/off oblu?

Open the casing and connect/remove the battery from the socket. Please be careful while removing the battery connecting wires otherwise the the joint between the connecting wire and battery may break.


How many hours of backup will the 500 mAh battery provide?

When in full use the battery backup will be around 5 hours 30 minutes.


Red LED is on when the USB is plugged in. What does it mean?

The USB power is used for (i) battery charging (ii) powering up the module.
Red LED indicates battery charging in progress. Once the battery is fully charged, red LED is switched off.


Can I connect any type of external battery to oblu? What is the recommended capacity? Does the battery capacity affect its charging time?

Only Li-on battery is recommended for oblu. Don’t chose battery of capacity less than 150mAh. There is no upper limit on the capacity. Charging time depends upon battery's capacity. Battery charging current is fixed at 250 mA approximately. Battery of 500 mA takes two hours for complete charging.


Can we charge battery without USB?

Yes. You have to connect 5 V supply along with Vdd and ground.


Is source code of Xoblu available?

A truncated source code of Xoblu known as OpenXoblu available in Github. The link is available in the Resource subsection under the Support section


Does your Android application Xoblu support dual foot mounted tracking? If not, can you tell us how to implement dual-foot mounted scheme? Any special instruction to follow?

No. Xoblu supports data communication with single Bluetooth device only. Hence only single foot mounted tracking is supported. One can implement dual foot mounted scheme with two oblu, one attached to each foot. Both the units must have same or similar orientation. Data fusion is performed on the application platform. In order to develop suitable application platform, following documents may be referred.
(i) Algorithm to fuse data from both the feet: Dave Zachariah, Isaac Skog, Magnus Jansson, Peter Händel, "Bayesian Estimation With Distance Bounds", IEEE Signal Processing Letters, Vol. 19, No. 12, December 2012.
(ii) Overall system architecture: John-Olof Nilsson, Dave Zachariah, Isaac Skog, Peter Händel, “Cooperative localization by dual foot-mounted inertial sensors and inter-agent ranging” EURASIP Journal on Advances in Signal Processing 2013, 2013:164.


What is command sent as soon as we press “GO” button Xoblu?

The application platform sends Stepwise Dead Reckoning command (0x34 0x00 0x34) as soon as we press “GO(>)” in Xoblu.


What is the function of the indoor/outdoor button on Xoblu?

User indicates its location by pressing Indoor/outdoor button. This information is saved in the logfile for any possible post processing. Any input by the user, by pressing this button, is not used by Xoblu for tracking.


Can I save the readings from Xoblu in a text file?

The log file of each session on Xoblu is saved in .txt format. One can use data from the text file for further computation / analysis etc.


What are the features and Android version of the phone needed for installing Xoblu?

For best performance, please use smartphone with magnetometer. Xoblu should work for any version above Android Lollypop (5.1).


Is Xoblu also available on iTunes?

No. At present Xoblu is for Android smartphone only, available on Google play only.



Data from MIMUscope is saved in which file format?

MIMUscope stores log file data in .txt format.


Does MIMUscope work on Python 3.3 also?

MIMUscope works only Python 2.7. For details about MIMUscope please refer to the video “Explaining MIMUscope's features” in the Tutorials subsection under the Support page.


Can you give some instructions on recommended mounting scheme of oblu. Do you think that with those instructions we will be able to track wearer walking fast?

Please refer to the video titled “How to mount "oblu" on shoe” in the Tutorials subsection under the Support page. The device performance is sensitive to its mounting. Overall data quality improves significantly with mounting. It is recommended to mount oblu tightly and firmly over the toe end of the shoe. If mounted properly, device gives good quality data up to 4.5kmph. Though there will be deterioration in step detection beyond that, it should be fine for tracking, say up to 5.5 to 6kmph.


I've some questions regarding the projects shared on the website. Where to ask?

Some of the projects are implemented by users of oblu. So we may not know in details about each and every issue. But we would like to solve your query as much as we can. Please write to us.


During installation of USB driver for oblu I get a “third party digital signature error” in Windows 10. How to resolve?

Windows 10 enforces driver signatures by default. This can be disabled to install drivers that are not digitally signed. Use the following steps to disable driver signature enforcement.
1. Click the Start menu and select Settings.
2. Click Update and Security.
3. Click on Recovery.
4. Click Restart now under Advanced Startup.
5. Click Troubleshoot.
6. Click Advanced options.
7. Click Startup Settings.
8. Click on Restart.
9. On the Startup Settings screen press 7 or F7 to disable driver signature enforcement.
After that again install the USB driver.


© 2016-17 GT Silicon Pvt Ltd. All rights reserved.