BJR_LOG_11 Reviving the project

A project log for BJR_01

The famous ball balancing platform reimagined

tamas-feherTamas Feher 05/09/2024 at 20:140 Comments


The last log has been a couple months ago, In the meantime I moved houses and now that I'm settled in, let's get this project off the ground again. In this log I'll introduce an alternative design that uses resistive touch sensing instead of capacitive or inductive sensing.

The reason for the change

In the earlier logs it looked like the inductive sensing would be a suitable candidate for this project, so why is it changing? you might ask. 

It's true, however it takes a fair amount of design, prototyping, coding to make it into a feature that can accurately detect the ball's location. There are many other subsystems that I need to prove out. If I spend so long to get this tech off the ground, the rest of the subsystems will stay at risk. 

In the industry the metric for how mature a technology is is called the Technology readiness level.

Resistive touchscreen technology

In BJR_LOG_03 I've introduced the resistive touchscreen, but just for a recap, here is how it operates:

In a resistive touch screen, there are 2 conductive films separated by a thin layer of air gap. Once something applies pressure to the top film, the contact is made by the 2 conductive surfaces. opposing edges of the films are connected to electrodes, so if a voltage is applied across them, with the contact point it forms a voltage divider. The voltage can be measured and from there the touch location can be interpreted.

The reason why I chose this over the other technologies is it's ease of use. Resistive touchscreens are available on Mouser, they are relatively cheap, and there is a wide support for controlling them. I chose the TSC2046 IC for control.

TSC2046 Rust driver

I chose rust as the main programming language for this project, simply because I enjoy writing firmware in this language. I published a driver for the TSC2046 chip on If you ever happen to need it.

Mechanical assembly

Now that the plate is not a single pcb, but rather a combination of multiple elements, I needed to redesign a little the top part of the robot. While I was at it, I thought I would give it a little personality as well.


The development continues with a resistive touchscreen as the ball detection device.