Bare-Metal STM32: Using The I2C Bus In Master-Transceiver Mode

As one of the most popular buses today for on- and inter-board communication within systems, there’s a good chance you’ll end up using it with an embedded system. I2C offers a variety of speeds while requiring only two wires (clock and data), which makes it significantly easier to handle than alternatives, such as SPI. Within the STM32 family of MCUs, you will find at least one I2C peripheral on each device.

As a shared, half-duplex medium, I2C uses a rather straightforward call-and-response design, where one device controls the clock, and other devices simply wait and listen until their fixed address is sent on the I2C bus. While configuring an STM32 I2C peripheral entails a few steps, it is quite painless to use afterwards, as we will see in this article. Continue reading “Bare-Metal STM32: Using The I2C Bus In Master-Transceiver Mode”

Modifying Old Fonts In The Name Of Baseball

Baseball is in full swing again, and having recently accepted a position with Major League Baseball, [Ty Porter] is warming up with a big contribution to the MLB LED Scoreboard project — modifying 20-some old fonts to support baseball’s ‘ꓘ’ character that indicates a special strikeout with a called third strike (meaning the batter didn’t take a swing).

The problem is that Major League Baseball-the-entity recently deprecated the original data source for the scoreboard project. This called for a huge refactor of the codebase, including previously-patched fonts which were now showing either the font’s default no-character character, or nothing at all.

Fortunately, BDF font files are fairly human-readable and make reference to bitmap, which is an actual bitmap in hex. [Ty] settled on Unicode A4D8 (ꓘ), a character from the Tibeto-Burman language Lisu that certainly looks good enough to this baseball fan. Then it became a matter of mirroring the bitmap for ‘K’. [Ty] tried a few things like reversing the nibbles and looking up each one in a table, but that also mirrors the padding, which is bad news.

Then he tried not reversing the nibbles and just looked them up in a table, but this approach dropped and added bits unintentionally. Finally, he tried reversing the order, looking up the reversed nibble, and shifting each byte until there was no padding. This worked for most of the 20 fonts [Ty] patched. The others fell in line with some manual work.

Not much of a baseball fan? You’re almost guaranteed to like this one, especially if you hate mayo.

Summer’s Coming – Let Mowerino Cut Your Grass

In the Northern hemisphere, summer is about to hit us full bore. While we love the season, we do dislike lawn maintenance. Apparently, so does [salmec] who developed the Mowerino around an Arduino Mega 2560 board.

As you might expect, the robot uses sharp blades so, you probably want to be careful. There are sensors that allow the machine to self-navigate or you can control it via Bluetooth. This is one of those things that seems easy until you try to actually do it. Nylon trimmer string is probably safer, but it breaks and it is hard to keep it cutting. Blades are more robust but also riskier to things like rocks, fingers, and pets.

Moving around in the yard is also an issue. The Mowerino has some ordinary-looking caster wheels in the front. That might be a place for improvement since most yards are not friendly to that kind of wheel. The other thing we worried about is what happens to the grass clippings. Around here, a week of rain means your mower will choke on grass clippings. On the other hand, the Mowerino has a smaller blade so maybe that helps mitigate clipping clogging.

Overall, though, it looks like it might be a good place to start if you dream of robot groundskeepers patrolling your estate. Most of the mowers we see like this have big wheels. But, of course, not all of them.

Continue reading “Summer’s Coming – Let Mowerino Cut Your Grass”