It’s always nice to see hackers pick up stuff headed for the landfill and put it back in action with a quick repair and upgrade. [Septillion] found a wireless remote controlled AC outlet in the junk bin and decided to do just that. A nice spin-off of such hacks is that we end up learning a lot about how things work.
His initial tests showed that the AC outlet and its remote could be revived, so he set about exploring its guts. These remote AC outlets consist of an encoder chip on the remote and a corresponding decoder chip on the outlet, working at 433MHz. Since the various brands in use have a slightly different logic, it needed some rework to make them compatible. The transmit remote was a quick fix – changing the DIP switch selected address bits from being pulled low to high and swapping the On and Off buttons to make it compatible with the other outlets.
Working on the AC outlet requires far more care and safety. The 230V AC is dropped down using a series capacitor, so the circuit is “hot” to touch. Working on it when it is powered up requires extreme caution. A quick fix would have been to make the changes to the address bits and the On/Off buttons to reflect the changes already made in the remote transmitter. Instead, he breadboarded a small circuit around the PIC12F629 microcontroller to take care of the data and address control. Besides, he wanted to be able to manually switch the AC outlet. The relay control from the decoder was routed via the microcontroller. This allowed either the decoder or the local manual switch from controlling the relay. Adding the PIC also allowed him to program in a few additional modes of operation, including one which doubled the number of outlets he could switch with one remote.
A while ago, [Paul Stoffregen], the creator of the Teensy family of microcontrollers dug into the most popular Arduino library for driving TFT LCDs. The Teensy isn’t an Arduino – it’s much faster – but [Paul]’s library does everything more efficiently.
Even when using a standard Arduino, there are still speed and efficiency gains to be made when driving a TFT. [Xark] recently released his re-mix of the Adafruit GFX library and LCD drivers. It’s several times faster than the Adafruit library, so just in case you haven’t moved on the Teensy platform yet, this is the way to use one of these repurposed cell phone displays.
After reading about [Paul]’s experience with improving the TFT library for the Teensy, [Xark] grabbed an Arduino, an LCD, and an Open Workbench Logic Sniffer to see where the inefficiencies in the Adafruit library were. These displays are driven via SPI, where the clock signal goes low for every byte shifted out over the data line. With the Adafruit library, there was a lot of wasted time in between each clock signal, and with the right code the performance could be improved dramatically.
The writeup on how [Xark] improved the code for these displays is fantastic, and the results are impressive; he can fill a screen with pixels at about 13FPS, making games that don’t redraw too much of the screen at any one time a real possibility.
There are many more things to know about a battery than its voltage and current output at any given moment, and most of them can’t be measured with a standard multimeter unless you also stand there for a long time with an Excel spreadsheet. The most useful information is battery capacity, which can tell you how much time is left until the battery is fully charged or fully discharged. [TJ] set out to create a battery data harvester, and used the ubiquitous ESP8266 to make a fully-featured battery monitor.
Measuring battery capacity is pretty straightforward but it does take time. A battery is first benchmarked to find its ideal capacity, and then future voltage and current readings can be taken and compared to the benchmark test to determine the present capacity of the battery. The ESP8266 is a relatively good choice for this kind of work. Its WiFi connection allows it to report its information to a server which will store the data and make it available for the user to see.
The first page of this project details building the actual module, and the second page outlines how to get that module to communicate with the server. Once you’ve built all of this, you can use it to monitor your whole-house UPS backup system or the battery in your solar-powered truck. There is quite a bit of information available on the project site for recreating the build yourself, and there’s also a video below which shows its operation.
Continue reading “ESP8266 Keeps An Eye On Your Batteries”
As smartphones continue to get bigger and bigger, the race to have the smallest chip running Unix (or Linux, as the case may be) is still on. A new contender in this arena is [Serge] who has crammed RetroBSD on a Fubarino microcontroller for a powerful breadboard-friendly device.
The device uses a PIC32MX795 processor to run version 2.11BSD Unix for microcontrollers. It uses only 128 kbytes of RAM which is great for the limited space available, but it doesn’t skimp on software. It has a C compiler, assembler, and a whole host of other utilities that you’d expect to find in something much more powerful. All of this comes in a package that has breadboard-compatible pins so you can interface your Unix with the real world.
There’s a video below that shows the device in action, and a whole host of instructions that’ll get you up and running in no time if you have the hardware available. [Serge] mentioned that this would run on other architectures but is looking for others to join the project to port it to those processors. This isn’t the first time we’ve seen *nix installed on a microcontroller, but it is one of the more useful ones!
Continue reading “Unix On Your Breadboard”
Back when he was about seven years old, [Ytai] learned to program on an Atari 800XL. Now he has a seven-year-old of his own and wants to spark his interest in programming, so he created these programmable LEGO bricks with tiny embedded microcontrollers. This is probably one of the few times that “bricking” a microcontroller is a good thing!
The core of the project is the Espruino Pico microcontroller which has the interesting feature of running a Java stack in a very tiny package. The Blocky IDE is very simple as well, and doesn’t bog users down in syntax (which can be discouraging to new programmers, especially when they’re not even a decade old). The bricks that [Ytai] made include a servo motor with bricks on the body and the arm, some LEDs integrated into Technic bricks, and a few pushbutton bricks.
We always like seeing projects that are geared at getting kids interested in creating, programming, and hacking, and this certainly does that! [Ytai] has plans for a few more LEGO-based projects to help keep his kid interested in programming as well, and we look forward to seeing those! If you’re looking for other ways to spark the curiosity of the youths, be sure to check out the Microbot, or if you know some teens that need some direction, perhaps these battlebots are more your style.
[Piotr] was working on a recent Arduino project when he ran into a problem. He was having trouble getting his Arduino Pro Mini to communicate with an ESP8266 module. He needed a way to snoop on the back and forth serial communications. Since he didn’t have a specialized tool for this task, [Piotr] ended up building his own.
The setup is pretty simple. You start with a standard serial cable containing the TX, RX, DTR, and GND wires. This cable connects the Arduino to the ESP8266 WiFi module. The TX and RX lines are then tapped into. Each wire is routed to the RX pin of two different serial to USB adapters. This way, the data being sent from the Arduino shows up on one COM port and the data being transmitted from the module shows up on the other.
The next piece of the puzzle was coming up with a way to see the data more clearly. [Piotr] could have opened two serial terminals simultaneously, but this wasn’t ideal because it would be difficult to compare the timing of the data. Instead, [Piotr] spent less than an hour writing his own simple serial terminal. This one connects to two COM ports at the same time and prints the data on the same screen. The data from each COM port is displayed in a separate color to make it easy to differentiate. The schematic and source code to this project can be found on [Piotr’s] website.
[Trapper] is an 80’s kid, and back in the day the Nintendo Entertainment System was his jam. One fateful night, he turned over his favorite gray box, removed a small plastic guard, and revealed the mythical expansion port. What was it for? What would Nintendo do with it?
The expansion port on the NES wasn’t really used for anything, at least in the US market. Even in the homebrew scene, there’s only one stalled project that allows the NES to connect to external devices. To fulfill [Trap]’s childhood dream, he would have to build something for the NES expansion port. Twitter seemed like a good application.
The first step towards creating an NES Expansion Port Twitter thing was to probe the depths of this connector. The entire data bus for the CPU is there, along with some cartridge pass-through pins and a single address line. The design of the system uses a microcontroller and a small bit of shared SRAM with the NES. This SRAM shares messages between the microcontroller and NES, telling the uC to Tweet something, or telling the NES to put something on the screen.
Only a single address pin – A15 – is available on the expansion port, but [Trapper] needed to read and write to a certain section of memory starting at $6000. This meant Addresses A13 and A14 needed to be accessed as well. Fortunately, these pins are available on the cartridge slot, and there are a number of cartridge pass-through pins on the expansion connector. Making a bridge between a few pins of an unused cartridge solved this problem.
From there, it’s just a series of message passing between a microcontroller and the NES. With the help of [Trap]’s brother [Jered] and a Twitter relay app running on a server, this NES can actually Tweet. You can see a video of that below.
Continue reading “Tweeting From The NES Expansion Port”