Showing results for 
Search instead for 
Did you mean: 

How to work with the VL53L5CX if you don't have enough memory?

JVan .7


My name is Joran, and I'm a student in Belgium. My school tasked me with a project that involves the use of the VL53L5CX sensor.

Aside a few other guidelines, I have to follow this rule: no use of high-level programming languages (e.g. Python) or no use of the Arduino IDE, only assembly languages and C.

As I already had another subject that used a XC888 processor from Infineon, I thought it would be easier to use this one again in this project, especially because I already knew the instruction set architecture.

At the start I was unaware of the flash memory needed for the ultra-light driver for the sensor. I find myself with the hurdle of solving this problem: how can I still use the XC888 to do this project even though it contains 32 kbytes of flash memory. I am aware of other processors with more flash memory but I want to avoid the learning curve for this new processor and its instruction set.

I have seen that the biggest portion of this ULD is the firmware that has to be 'uploaded' to the sensor. My first question is: is this firmware stored in non-volatile memory and thus can I prime the sensor with a processor with enough memory? Afterwards I would then use it in the setup with the XC888.

If not, I thought about maybe having extra external memory to install the firmware on, so I can read the firmware from it and write it to the sensor. This would mean that the driver would be small enough to fit in the memory of the XC888. I'm not really sure how to implement this yet.

Do you have any other guidance on how to combine the XC888 and the VL53L5CX sensor in a project? I've searched the internet but found only limited resources.

I would really appreciate any help you can give.


Joran Van Nieuwenhoven

ST Employee

Joran - you have analyzed the problem perfectly. There is no code in the L5 Sensor, and it must be downloaded at boot. So it cannot be 'primed'. An external memory would be fine. Just find an eeprom with 128 K. Move the data from the eeprom to the senor at boot and you will be fine.

An 8-bit micro is really small for what this sensor can do. I fear that you will be spending all your time doing I2C, and will not have enough time for anything else. 64 zones of distance data and signal strength and some status makes for some large I2C transfers. It's going to be an issue.

I'm thinking you'd be better off learning a larger MCU. ST makes some nice ones. Although the competition does as well. But stay away from the 8-bit ones for this sensor.

If you want to use a 8-bit MCU, try the VL53L1X. It's a good sensor, although only 1 zone, and it doesn't take much to run.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question. It helps the next guy.