The micro:bit is talking to the VL53L0X ToF sensors!
![]() |
| This chip is no more :( |
The Arduino Uno runs at 5 volts, and the micro:bit works at 3v3, so I used a level shifter to connect the two.
My first attempt failed disastrously.
The level shifter I used was based on the TI TXB0108.
I managed to connect the 5v power and inputs to the 3v3 side, and I fear the magic smoke has left the chip.
It's a shame, as the board was my first attempt at soldering SMD devices. It's been sitting unused in my bits box for a few years, though, so it's not the end of the world.
Fortunately I had an Adafruit level shifter breakout based on the same IC. It's well laid out with very clear pin markings and I managed to connect it correctly.
The replacement worked perfectly and the micro:bit MicroPython code was very straightforward. I've listed it below, and it's with the other code on GitHub.
from microbit import *
import struct
from time import sleep
SENSORS = 2
def spi_read(sensor):
pin16.write_digital(0) # Chip select
ibuffer = struct.pack('<B', sensor)
spi.write(ibuffer)
result = spi.read(1)
pin16.write_digital(1) # Chip select off
return result
spi.init(baudrate=100000)
while True:
for i in [0, 1]:
print(i, ord(spi_read(i)))
sleep(0.1)
The technology is working. The next step is to build a compact version for Anastasia. I'll report on progress.


Comments
Post a Comment