Posts with «arduino hacks» label

A SuperCap UPS

If you treat your Pi as a wearable or a tablet, you will already have a battery. If you treat your Pi as a desktop you will already have a plug-in power supply, but how about if you live where mains power is unreliable? Like [jwhart1], you may consider building an uninterruptible power supply into a USB cable. UPSs became a staple of office workers when one-too-many IT headaches were traced back to power outages. The idea is that a battery will keep your computer running while the power gets its legs back. In the case of a commercial UPS, most generate an AC waveform which your computer’s power supply converts it back to DC, but if you can create the right DC voltage right to the board, you skip the inverting and converting steps.

Cheap batteries develop a memory if they’re drained often, but if you have enough space consider supercapacitors which can take that abuse. They have a lower energy density rating than lithium batteries, but that should not be an issue for short power losses. According to [jwhart1], this quick-and-dirty approach will power a full-sized Pi, keyboard, and mouse for over a minute. If power is restored, you get to keep on trucking. If your power doesn’t come back, you have time to save your work and shut down. Spending an afternoon on a power cable could save a weekend’s worth of work, not a bad time-gamble.

We see what a supercap UPS looks like, but what about one built into a lightbulb or a feature-rich programmable UPS?

A Look At The Basics of Building an Arduino Watch

Miniaturization has made smart watches possible, even for the DIY maker to tinker with. For those just getting to grips with basic digital electronics, it can be daunting, however. For those just starting out, [陳亮] put together a handy guide to building the core of an Arduino-based watch.

The writeup starts at the beginning, going over the basic hardware requirements for a smart watch. This involves considering size, packaging and power draw, as well as the user interface. The build settles on an Arduino Pro Micro, as it uses the ATmega32U4 which eliminates secondary USB-to-serial chips, helping cut down on power consumption. A square IPS LCD display is used to display an analog-style watch face, and time is kept by a DS3231 real-time clock. A pair of small vibration sensors are used to wake the watch when the user moves their wrist to check the time.

While it doesn’t cover the final assembly into a watch-like form factor, it’s a handy guide on what it takes to build a working watch for those who are still getting their feet wet with hardware. Once you’ve got that down, it’s time to contemplate how you’ll build the sleek exterior. Naturally, a good maker has that covered, too.

Hack a Day 01 Aug 16:00

HDMI From Your Arduino

Creating a video signal from a computer, a job that once required significant extra hardware, is now a done deal with a typical modern microcontroller. We’ve shown you more NTSC, PAL, and VGA projects than you can shake a stick at over the years. Creating an HDMI video signal however is not so straightforward. It’s not a loosely defined analogue standard but a tightly controlled digital one upon which the clever hacks that eke full colour composite video from a single digital I/O pin will have little effect. Surely creating them from a simple microcontroller will be impossible! Not according to [techtoys], who has created an Arduino shield that creates an HDMI output from an SPI control input.

At its heart are two interesting integrated circuits that give us a little bit of insight into creating graphics at this level. First up is an RA8876 MIPI TFT controller which is a full graphics engine that produces a digital RGB output, followed by a CH7035B HDMI encoder that produces an HDMI output from the RGB. This combination of chips is particularly interesting one, because the RA8876 supports a variety of different interfaces that between them should be able to talk to most microcontrollers. In the Arduino world the only other HDMI options come via the use of an FPGA.

This is a project that seems to have been around for a couple of years, but which is still an active one. The classic Arduino shield form factor may now seem a little past its zenith, but as this board shows it’s still capable of being used for interesting new applications.

Thanks [th_in_gs] for the tip.

Hack a Day 26 Jul 09:00

An Epic Tale of Thermistors: Tricks for Much Better Temperature Sensing

For years [Edward] has been building professional grade underwater sensing nodes at prices approachable for an interested individual without a government grant. An important component of these is temperature, and he has been on a quest to get the highest accuracy temperature readings from whatever parts hit that sweet optimum between cost and complexity. First there were traditional temperature sensor ICs, but after deploying numerous nodes [Edward] was running into the limit of their accuracy. Could he use clever code and circuitry to get better results? The short answer is yes, but the long answer is a many part series of posts starting in 2016 detailing [Edward]’s exploration to get there.

Orange is 12 bits, red is 24

The first step is a thermistor, a conceptually simple device: resistance varies with temperature (seriously, how much more simple can a sensor get?). You can measure them by tapping the center of a voltage divider the same way you’d measure any other resistance, but [Edward] had discarded this idea because the naive approach combined with his Arduino’s 10 bit ADC yielded resolution too poor to be worthwhile for his needs. But by using the right analog reference voltage and adjusting the voltage divider he could get a 20x improvement in resolution, down to 0.05°C in the relevant temperature range. This and more is the subject of the first post.

What comes next? Oversampling. Apparently fueled by a project featured on Hackaday back in 2015 [Edward] embarked on a journey to applying it to his thermistor problem. To quote [Edward] directly, to get “n extra bits of resolution, you need to read the ADC four to the power of n times”. Three bits gives about an order of magnitude better resolution. This effectively lets you resolve signals smaller than a single sample but only if there is some jitter in the signal you’re measuring. Reading the same analog line with no perturbation gives no benefit. The rest of the post deals with the process of artificially perturbing the signal, which turns out to be significantly complex, but the result is roughly 16 bit accuracy from a 10 bit ADC!

What’s the upside? High quality sensor readings from a few passives and a cheap Arduino. If that’s your jam check out this excellent series when designing your next sensing project!

The Arduboy, Ported To Desktop and Back Again

A neat little hacker project that’s flying off the workbenches recently is the Arduboy. This tiny game console looks like a miniaturized version of the O.G. Game Boy, but it is explicitly designed to be hacked. It’s basically an Arduino board with a display and a few buttons, anyway.

[rv6502] got their hands on an Arduboy and realized that while there were some 3D games, there was nothing that had filled polygons, or really anything resembling a modern 3D engine. This had to be rectified, and the result is pretty close to Star Fox on a microcontroller.

This project began with a simple test on the Arduboy to see if it would be even possible to render 3D objects at any reasonable speed. This test was just a rotating cube, and everything looked good. Then began a long process of figuring out how fast the engine could go, what kind of display would suit the OLED best, and how to interact in a 3D world with limited controls.

Considering this is a fairly significant engineering project, the fastest way to produce code isn’t to debug code on a microcontroller. This project demanded a native PC port, so all the testing could happen on the PC without having to program the Flash every time. That allowed [rv] to throw out the Arduino IDE and USB library; if you’re writing everything on a PC and only uploading a hex file to a microcontroller at the end, you simply don’t need it.

One of the significant advances of the graphics capability of the Arduboy comes from exploring the addressing modes of the OLED. By default, the display is in a ‘horizontal mode’ which works for 2D blitting, but not for rasterizing polygons. The ‘vertical addressing mode’, on the other hand, allows for a block of memory, 8 x 128 bytes, that maps directly to the display. Shove those bytes over, and there’s no math necessary to display an image.

This is, simply, one of the best software development builds we’ve seen. It’s full of clever tricks (like simply not doing math if you’ll never need the result) and stuffing animations into far fewer bytes than you would expect. You can check out the demo video below.

Blisteringly Fast Machine Learning On An Arduino Uno

Even though machine learning AKA ‘deep learning’ / ‘artificial intelligence’ has been around for several decades now, it’s only recently that computing power has become fast enough to do anything useful with the science.

However, to fully understand how a neural network (NN) works, [Dimitris Tassopoulos] has stripped the concept down to pretty much the simplest example possible – a 3 input, 1 output network – and run inference on a number of MCUs, including the humble Arduino Uno. Miraculously, the Uno processed the network in an impressively fast prediction time of 114.4 μsec!

Whilst we did not test the code on an MCU, we just happened to have Jupyter Notebook installed so ran the same code on a Raspberry Pi directly from [Dimitris’s] bitbucket repo.

He explains in the project pages that now that the hype about AI has died down a bit that it’s the right time for engineers to get into the nitty-gritty of the theory and start using some of the ‘tools’ such as Keras, which have now matured into something fairly useful.

In part 2 of the project, we get to see the guts of a more complicated NN with 3-inputs, a hidden layer with 32 nodes and 1-output, which runs on an Uno at a much slower speed of 5600 μsec.

This exploration of ML in the embedded world is NOT ‘high level’ research stuff that tends to be inaccessible and hard to understand. We have covered Machine Learning On Tiny Platforms Like Raspberry Pi And Arduino before, but not with such an easy and thoroughly practical example.

Magnetic Attraction Of Microduino mCookie Modules

We’ve seen countless different robot kits promoted for STEM education, every one of which can perform the robotic “Hello World” task of line following. Many were in attendance at Maker Faire Bay Area 2019 toiling in their endless loops. Walking past one such display by Microduino, Inc. our attention was caught by a demonstration of their mCookie modules in action: installing a peripheral module took less than a second with a “click” of magnets finding each other.

Many Arduino projects draw from an ecosystem of Arduino shields. Following that established path, Microduino had offered tiny Arduino-compatible boards and peripherals which connected with pins and headers just like their full-sized counterparts. Unfortunately their tiny size also meant their risk of pin misalignment and corresponding damage would be higher as well. mCookie addresses this challenge by using pogo pins for electrical contacts, and magnets to ensure proper alignment. Now even children with not-quite-there-yet dexterity can assemble these modules, opening up a market to a younger audience.

Spring loaded electric connections are a popular choice for programming jigs, and we’ve seen them combined with magnets for ideas like modular keyboards, and there are also LittleBits for building simple circuits. When packaged with bright colorful LEGO-compatible plastic mounts, we have the foundation of an interesting option for introductory electronics and programming. Microduino’s focus at Maker Faire was promoting their Itty Bitty Buggy, which at $60 USD is a significantly more affordable entry point to intelligent LEGO creations than LEGO’s own $300 USD Mindstorm EV3. It’ll be interesting to see if these nifty mCookie modules will help Microduino differentiate themselves from other LEGO compatible electronic kits following a similar playbook.

Plasma Globe Reveals Your Next Clue

If you like solving puzzles out in the real world, you’ve probably been to an escape room before, or are at least familiar with its concept of getting (voluntarily) locked inside a place and searching for clues that will eventually lead to a key or door lock combination that gets you out again. And while there are plenty of analog options available to implement this, the chances are you will come across more and more electronics-infused puzzles nowadays, especially if it fits the escape room’s theme itself. [Alastair Aitchison] likes to create such puzzles and recently discovered how he can utilize a USB powered plasma globe as a momentary switch in one of his installations.

The concept is pretty straightforward, [Alastair] noticed the plasma globe will draw significantly more current when it’s being touched compared to its idle state, which he measures using an INA219 current shunt connected to an Arduino. As a demo setup in his video, he uses two globes that will trigger a linear actuator when touched at the same time, making it an ideal multiplayer installation. Whether the amount of fingers, their position on the globe, or movement make enough of a reliable difference in the current consumption to implement a more-dimensional switch is unfortunately not clear, but definitely something worth experimenting with.

In case you’re planning to build your own escape room and are going for the Mad Scientist Laboratory theme, you’ll obviously need at least one of those plasma globes sparking in a corner anyway, so this will definitely come in handy — maybe even accompanied by something slightly larger? And for all other themes, you can always resort to an RFID-based solution instead.

Dead Bug Arduino Is Lively And Shield-Compatible

Microcontroller demo boards such as the Arduino UNO are ubiquitous on Hackaday as the brains of many a project which inevitably does something impressive or unusual. Sometime someone builds a particularly tiny demo board, or an impressively large one. In the case of the board featured here, the Arduino is a gorgeous labor of love which can’t really be called a board since there is no PCB. Instead of the traditional fiberglass, [Jiří Praus] formed brass bars into the circuitry and held it together with solder.

This kind of dedication to a project leaves an impression. His notes show he saw the barest way to operate an ATMega328, built it, tested, and moved on to the power supply to make it self-sustaining, then onto the communication circuit, and finally the lights. The video below shows a fully-functional Arduino happily running the blink program. He plans to encase the brass portion in resin to toughen it up and presumably keep every bump from causing a short circuit. The components are in the same position due to a custom jig which means a standard shield will fit right into place.

The Arduino started far less flashy yet nearly as fragile, and it has grown. And shrunk.

Hack a Day 09 Jun 21:00

Drag And Drop Files On Select Arduino Boards

Historically, getting files on to a microcontroller device was a fraught process. You might have found yourself placing image data manually into arrays in code, or perhaps repeatedly swapping SD cards in and out. For select Arduino boards, that’s no longer a problem – thanks to the new TinyUSB library from Adafruit (Youtube link, embedded below).

The library is available on Github, and is compatible with SAMD21 and SAMD51 boards, as well as Nordic’s NRF52840. It allows the Arduino board to appear as a USB drive, and files can simply be dragged and dropped into place. The library can set up to use SPI flash, SD cards, or even internal chip memory as the storage medium.

Potential applications include images, audio files, fonts, or even configuration files. Future plans include porting the TinyUSB library to the ESP32-S2 as well. Being able to drag a settings file straight on to a board could make getting WiFi boards online much less of a hassle.

We’ve seen other nifty USB libraries before, VUSB is a great option if you need USB on your AVR microcontroller. Video after the break.

Hack a Day 30 May 03:00