Category Archives: i2c

From SPIDriver to I2CDriver

Communicating with microcontrollers and other embedded systems requires a communications standard. SPI is a great one, and is commonly used, but it’s not the only one available. There’s also I2C which has some advantages and disadvantages compared to SPI. The problem with both standards, however, is that modern computers don’t come with either built-in. To solve that problem and allow easier access to debugging in SPI, [James Bowman] built the SPIDriver a few months ago, and is now back by popular demand with a similar device for I2C, the I2CDriver.

Much like the SPIDriver, the I2C driver is a debugging …read more

Continue reading

Posted in communications, i2c, i2cdriver, microcontroller, Microcontrollers, screen, spi, tool, usb | Leave a comment

Arduino Gets a Command Line Interface

When using an Arduino, at least once you’ve made it past blinking LEDs, you might start making use of the serial connection to send and receive information from the microcontroller. Communicating with the board while it’s interacting with its environment is a crucial way to get information in real-time. Usually, that’s as far as it goes, but [Pieter] wanted to take it a step farther than that with his command line interpreter (CLI) for the Arduino.

The CLI allows the user to run Unix-like commands directly on the Arduino. This means control of GPIO and the rest of the features …read more

Continue reading

Posted in arduino, cli, command line, gpio, i2c, Microcontrollers, serial, shell, unix, uno | Leave a comment

Drawing On an OLED with an ATtiny85, No RAM Buffers Allowed

Small I2C OLED displays are common nowadays, and thanks to the work of helpful developers, there are also a variety of graphics libraries for using them. Most of them work by using a RAM buffer, which means that anything one wants to draw gets written to a buffer representing the screen, and the contents of that buffer are copied out to the display whenever it is updated. The drawback is that for some microcontrollers, there simply isn’t enough RAM for this approach to work. For example, a 128×64 monochrome OLED requires a 1024 byte buffer, but that’s bad news if …read more

Continue reading

Posted in attiny, ATtiny Hacks, attiny85, i2c, Microcontrollers, oled, ram buffer, sh1106, software library, ssd1306 | Leave a comment

Adding Bluetooth to Original SNES Controllers

There’s a bunch of companies selling wireless Super Nintendo style controllers out there. You can go on Amazon and get any number of modern pads that at least kinda-sorta look like what came with Nintendo’s legendary 1990’s game console. They’ve got all kinds of bells and whistles, Bluetooth, USB-C, analog sticks, etc. But none of them are legitimate SNES controllers, and for some people that’s just not good enough.

[sjm4306] is one of those people. He wanted to add Bluetooth and some other modern niceties to a legitimate first-party SNES controller, so he picked up a broken one off of …read more

Continue reading

Posted in atmega328p, bluetooth, classic hacks, controller, Games, hc-05, i2c, light pipe, nintendo hacks, snes | Leave a comment

Dual Brushed Motor Controller Doesn’t Care How It Receives Commands

The simple DC brushed motor is at the heart of many a robotics project. For making little toy bots that zip around the house, you can’t beat the price and simplicity of a pair of brushed motors. They’re also easy to control; you could roll your own H-bridge out of discrete transistors, or pick up one of the commonly used ICs like the L298N or L9110S.

But what if you want an all-in-one solution? Something that will deliver enough current for most applications, drive dual motors, and deal with a wide range of input voltages. Most importantly, something that will …read more

Continue reading

Posted in brushed, dc, driver, i2c, lyra-5a, motor, robots hacks, The Hackaday Prize | Leave a comment

General Purpose I/O: How to get more

The first program anyone writes for a microcontroller is the blinking LED which involves toggling a general-purpose input/output (GPIO) on and off. Consequently, the same GPIO can be used to read digital bits as well. A traditional microcontroller like the 8051 is available in DIP packages ranging from 20 pins to 40 pins. Some trade the number of GPIOs for compactness while other devices offer a larger number of GPIOs at the cost of complexity in fitting the part into your design. In this article, we take a quick look at applications that require a larger number of GPIOs and …read more

Continue reading

Posted in how-to, i2c, led, microcontroller, spi | Leave a comment

Eavesdropping on a VGA Monitor’s Conversations

Did you ever wonder what your monitor and your computer are talking about behind your back? As it turns out, there’s quite a conversation going on while the monitor and the computer decide how to get along, and sniffing out VGA communications can reveal some pretty fascinating stuff about the I²C protocol.

To reverse engineer the configuration information exchanged between a VGA monitor and a video card, [Ken Shirriff] began by lopping a VGA cable in two. The inside of such cables is surprisingly complex, with separate shielding wires for each color and sync channel and a host of control …read more

Continue reading

Posted in i2c, linux, monitor, PocketBeagle, reverse engineering, serial, vga | Leave a comment

Tiny Function Generator on the ATtiny85, Complete with OLED

It’s easy to have a soft spot for “mini” yet perfectly functional versions of electronic workbench tools, like [David Johnson-Davies]’s Tiny Function Generator which uses an ATtiny85 to generate different waveforms at up to 5 kHz. It’s complete with a small OLED display to show the waveform and frequency selected. One of the reasons projects like this are great is not only because they tend to show off some software, but because they are great examples of the kind of fantastic possibilities that are open to anyone who wants to develop an idea. For example, it wasn’t all that long …read more

Continue reading

Posted in i2c, microcontroller, Microcontrollers, oled, rotary encoder | Leave a comment

Ultrasonic Array Gets Range Data Fast and Cheap

How’s your parallel parking? It’s a scenario that many drivers dread to the point of avoidance. But this 360° ultrasonic sensor will put even the most skilled driver to shame, at least those who pilot tiny remote-controlled cars.

Watch the video below a few times and you’ll see that within the limits of the test system, [Dimitris Platis]’ “SonicDisc” sensor does a pretty good job of nailing the parallel parking problem, a driving skill so rare that car companies have spent millions developing vehicles that do it for you. The essential task is good spatial relations, and that’s where SonicDisc …read more

Continue reading

Posted in i2c, parallel parking, ranging, robots hacks, self-driving, sonar, transportation hacks, ultrasonic | Leave a comment

Hackaday Prize Entry: MakerNet

One of the biggest trends in whatever market ‘Maker’ stuff belongs to is the Legofication of electronics. Building electronics is hard, if you haven’t noticed. Anything that turns transmission lines, current loops, and RF wizardry into something a five-year-old can use has obvious applications to education. For his Hackaday Prize entry, [Jeremy Gilbert] is building a fast, intuitive, modular way to explore electronics. It’s easier to use than the 100-in-1 Radio Shack spring clip kits, and you can actually make useful projects with this system.

MakerNet is [Jeremy]’s solution to the problem of complicated electronics, Arduinos connected to breadboards …read more

Continue reading

Posted in i2c, SAM11, The Hackaday Prize | Leave a comment