I’ve always been an Adafruit fan, gladly supporting their open source contributions by buying their products. But recently, I was very disappointed by the bad performance of their TCA9548A 1-to-8 I2C Expander.
I had bought it to be able to drive two identical SH1106 OLED displays without having to solder on one of the displays in order to give it a different I2C address.
First I ran an I2C scanner, and the result looked promising: all connected I2C devices were detected with their correct I2C address. But then, driving a single display only worked if it was connected to channel 0 of the expander. And even then, the display would often show errors.
Then I tried a DS3231 Real Time Clock, because there’s very little I2C traffic involved in reading the time from this simple and reliable chip. Even when connected to channel 0, setting the clock didn’t work well and readings of a correctly set clock were mostly messed up. Since this expander seemed unable to reliably drive a single device, there was no sense in trying to connect multiple devices.
I’ve tried several sketches on 5V Arduinos and 3.3V ESPs, using different sets of wires and with delays added after the channel select function. Nothing really worked, so either my copy of the expander is broken, or this board is not Lady Ada’s best fruit in the basket.
Since my earlier posts on the Adafruit forum never got answered, I will not even bother to ask them this time. Guess I’ll have to solder that 0 Ohm bridge on one of the SH1106 displays after all.
Turning an Arduino into an invincible Tic-Tac-Toe master is hardly a challenge, but I wrote a sketch for it anyway because I need it for a more ambitious project. For that project, I also had to design a couple of flawed Tic-Tac-Toe strategies with different levels of ‘vincibility’.
Next, I’ll have two Arduinos play matches against each other and analyse the outcome for all combinations of competing strategies. Now the strategies can be ordered based on their success rate.
The final goal is to make the Arduino act as a Tic-Tac-Toe trainer for beginners. While guiding their learning process by letting them play against increasingly better strategies, I can monitor their progression and compare it with the learning process of an Artificial Neural Network (ANN), for which I’m currently writing a sketch. Will 2,000 bytes be able to keep up with 100,000,000,000 human neurons?
This is a work in progress. For now, the video shows the Arduino in invincible mode, with me playing at the level of a befriended nation’s president. I even managed to put myself in a lost position after my very first move. It definitely takes some skills to loose this game…
Just a thought that crossed my mind: in today’s Virtual Reality, computers are used to simulate reality in a virtual setting, but when the first computers became available in the 1940’s, they were used by mathematicians for exactly the opposite.
For centuries, they had been creating all kinds of virtual worlds inside their minds, supported by little more than paper or a blackboard. Mind games, where everything was allowed, as long as you could prove it from self-postulated axioms. The principle of fractals or the concept behind cellular automata, for instance, had already been developed long before their fascinating complexity could be visualized.
[Kurt Gödel*, wearing 2D glasses]
The arrival of computers offered previously unthinkable possibilities to visualize these virtual worlds ‘for real’ (Real Virtuality…?). By studying the results, scientists developed many new insights and ideas. Nevertheless, true geniuses obviously don’t need VR or RV. Kurt didn’t even use his blackboard…
* Kurt Gödel was an Austrian mathematician, most famous for his Incompleteness Theorem.
It was only after 37 (!) years of service that my vintage Texas Instruments TI-58 programmable pocket calculator stopped working. Actually, the calculator was still fine but one of its original NiCd batteries had finally passed away.
My TI-58 has always been ‘my precious’. Its (by modern standards) limited memory size inspired me to design smart algorithms and to write efficient programs.
This was, however, a very powerful calculator in his days. A special version was built into the famous Harrier aircraft to perform all calculations needed for stabilizing the airplane during vertical takeoff and landing!
Although the NiCd batteries were standard AA type, they turned out to be sealed inside the battery cover and had spot welded contact strips. So some minor surgery was needed in order to replace them with a set of fresh 1900 mAh NiCds.
This shows the battery module before and after the operation. The tape was just a helping hand during surgery that I forgot to remove (happens in hospitals too).
And there she is, my reborn baby, proudly showing her purchase date.
And finally she got reunited with the rest of the package.