Posts with «arduino hacks» label

The Custom Clicky Shortcut Keypad

You’re not cool unless you have a mechanical keyboard. Case in point: if you were to somehow acquire an identical keyboard to the one I used to type this, it would set you back at least seven hundred dollars. Yes, it’s mechanical (Topre), and yes, I’m cooler than you. Of course, you can’t be as cool as me, but you can build your own mechanical keyboard. [Robin] is, I presume, a pretty cool dude so he built his own keyboard. It’s the amazing shortcut keyboard, and it can be programmed graphically.

The idea for this keyboard came when [Robin] was studying as an engineer. We assume this is code for wearing out the Escape key on AutoCAD, but many other software packages have the same problem. The solution to [Robin]’s problem was a shortcut keypad, a 3 by 4 matrix of Cherry switches that could be programmed for any task.

The design of this keyboard started out as an Adafruit Trellis matrix keypad. This was combined with some software written in Processing that assigned macros to each button. This was a sufficient solution, but the switches in the Adafruit trellis look squishy. These are not the right switches for someone who craves a soft snap under every fingertip. It’s not the keyboard of someone who desires the subtle thickness of laser etched PBT keycaps. The Adafruit keypad doesn’t have the graceful lines of a fully sculpted set of keycaps. Oh my god, it’s doubleshot.

[Robin]’s completed keyboard has gone through a few revisions, but in the end, he settled on PCB-mounted switches and a very clever 3D printed standoff system to hold an Arduino Pro Micro in place. The enclosure, too, is 3D printed, and the end result is a completely custom keyboard that’s perfect for mashing key combos.

You can check out a video of this keyboard in action below.


Filed under: Arduino Hacks, peripherals hacks

The Altair Shield

From PDPs to Connection Machines, the Hackaday crowd are big fans of blinkenlights. While this project isn’t an old CPU, RAM, ROM, and an S-100 bus wrapped up in a fancy enclosure, it is a great recreation of the Altair 8800, the historic kit computer that supposedly launched the microcomputer revolution.

[Justin] says his project is just another Altair 8800 clone, but this one is cut down to the size of an Arduino shield. This is in stark contrast to other Altair recreations, whether they are modern PCs stuffed in an old case, modern replicas, or a board that has the same functionality using chunky toggle switches.

On board [Justin]’s pocket-sized Altair are a few LEDs, some DIP switches, and an octet of spring-loaded dual throw switches that wouldn’t look out of place in a 40-year old computer.

This shield targets the Arduino Due rather than the Mega, but only because the Due performs better running an Altair simulation. Everything is there, and a serial terminal is available ready to run BASIC or any other ancient OS.


Filed under: Arduino Hacks

Pulse Oximeter is a Lot of Work

These days we are a little spoiled. There are many sensors you can grab, hook up to your favorite microcontroller, load up some simple library code, and you are in business. When [Raivis] got a MAX30100 pulse oximeter breakout board, he thought it would go like that. It didn’t. He found it takes a lot of processing to get useful results out of the device. Lucky for us he wrote it all down with Arduino code to match.

A pulse oximeter measures both your pulse and the oxygen saturation in your blood. You’ve probably had one of these on your finger or earlobe at the doctor’s office or a hospital. Traditionally, they consist of a red LED and an IR LED. A detector measures how much of each light makes it through and the ratio of those two quantities relates to the amount of oxygen in your blood. We can’t imagine how [Karl Matthes] came up with using red and green light back in 1935, and how [Takuo Aoyagi] (who, along with [Michio Kishi]) figured out the IR and red light part.

The MAX30100 manages to alternate the two LEDs, regulate their brightness, filter line noise out of the readings, and some other tasks. It stores the data in a buffer. The trick is: how do you interpret that buffer?

[Raivis] shows the code to take the output from the buffer, remove the DC component, pass it through a couple of software filters, and detect the heart rate. To read the oxygen reading, you have even more work to do. You can find the code for the device on GitHub.

If you want to build your own without a dedicated IC, grab a clothespin. Or try this more polished build.


Filed under: Arduino Hacks, Medical hacks

Save ESP8266 RAM with PROGMEM

When [sticilface] started using the Arduino IDE to program an ESP8266, he found he was running out of RAM quickly. The culprit? Strings. That’s not surprising. Strings can be long and many strings like prompts and the like don’t ever change. There is a way to tell the compiler you’d like to store data that won’t change in program storage instead of RAM. They still eat up memory, of course, but you have a lot more program storage than you do RAM on a typical device. He posted his results on a Gist.

On the face of it, it is simple enough to define a memory allocation with the PROGMEM keyword. There’s also macros that make things easier and a host of functions for dealing with strings in program space (basically, the standard C library calls with a _P suffix).

However, there’s also a helper class that lets you use a string object that resides in program memory. That makes it even easier to use these strings, especially if you are passing them to functions. As an example [sticilface] writes a string concatenation function that handles PROGMEM strings.

You can use the same techniques for other data, as well, and at the end of the post, there are some very clear examples of different use cases. Under the hood, the ESP8266 doesn’t store data in bytes in program memory. The library routines hide this from you, but it can be important if you are trying to calculate space or do certain kinds of manipulation.

You can also check out the official documentation. If you want to see the technique in action, maybe you’ll be interested in your coworker’s mood. Or, try putting a Jolly Wrencher on your oscilloscope. Both projects use PROGMEM.

[Editor’s note: PROGMEM is in the ESP8266 Arduino codebase from AVR-GCC, and originally wrote (counterinutitively) into RAM.  Some clever hacking fixed that early last year, so now you can use the same AVR-style abstraction with the ESP. It still doesn’t work on the ARM Arduinos.]

Image by [connorgoodwolf] (CC BY-SA 4.0)


Filed under: Arduino Hacks

Arduino into NAND Reader

[James Tate] is starting up a project to make a “Super Reverse-Engineering Tool”. First on his list? A simple NAND flash reader, for exactly the same reason that Willie Sutton robbed banks: because that’s where the binaries are.

As it stands, [James]’s first version of this tool is probably not what you want to use if you’re dumping a lot of NAND flash modules. His Arduino code reads the NAND using the notoriously slow digital_read() and digital_write() commands and then dumps it over the serial port at 115,200 baud. We’re not sure which is the binding constraint, but neither of these methods are built for speed.

Instead, the code is built for hackability. It’s pretty modular, and if you’ve got a NAND flash that needs other low-level bit twiddling to give up its data, you should be able to get something up and working quickly, start it running, and then go have a coffee for a few days. When you come back, the data will be dumped and you will have only invested a few minutes of human time in the project.

With TSOP breakout boards selling for cheap, all that prevents you from reading out the sweet memory contents of a random device is a few bucks and some patience. If you haven’t ever done so, pull something out of your junk bin and give it a shot! If you’re feeling DIY, or need to read a flash in place, check out this crazy solder-on hack. Or if you can spring for an FTDI FT2233H breakout board, you can read a NAND flash fast using essentially the same techniques as those presented here.


Filed under: Arduino Hacks, hardware

Arduino + Geometry + Bicycle = Speedometer

It is pretty easy to go to a big box store and get a digital speedometer for your bike. Not only is that no fun, but the little digital display isn’t going to win you any hacker cred. [AlexGyver] has the answer. Using an Arduino and a servo he built a classic needle speedometer for his bike. It also has a digital display and uses a hall effect sensor to pick up the wheel speed. You can see a video of the project below.

[Alex] talks about the geometry involved, in case your high school math is well into your rear view mirror. The circumference of the wheel is the distance you’ll travel in one revolution. If you know the distance and you know the time, you know the speed and the rest is just conversions to get a numerical speed into an angle on the servo motor. The code is out on GitHub.

Granted, reading a magnet, keeping time, and driving a servo isn’t exactly cutting edge. On the other hand, it made us think about what other kinds of outputs you could drive. We haven’t seen a nixie tube speedometer (well, not on a bicycle, anyway), for example. Or maybe one built with mechanical flip numbers like an old clock.

We have seen some with Arduinos and lots of LEDs (although, again, not really for a bicycle). This speedometer might still be our favorite, though.

 


Filed under: Arduino Hacks, transportation hacks

See the Weather at a Glance with this WiFi Wall Mounted Display

Whether you’re lodged in an apartment with a poor view of the sky like [Becky Stern] or are looking for an at-a-glance report of the current weather, you might consider this minimalist weather display instead of checking your computer or your phone every time you’re headed out the door.

The first order of business was to set up her Feather Huzzah ESP8266 module. [Becky] started with a blink test to ensure it was working properly. Once that was out of the way, she moved on to installing a few libraries. Temperature data fetched by an IFTTT feed is displayed on a seven-segment display, while additional feeds separately retrieve information for each basic weather type: sunny, overcast, rain, snow.

All it took to create the sleek display effect was a few pieces of cardboard inside a shadow box frame, a sheet of paper as a diffuser, and twelve Neopixel RGB LEDs hidden inside. Trimming and securing everything in place as well as notching out the back of the frame for the power cable finished the assembly. Check out the build video after the break.

Pair this weather frame with a shoe rack that spotlights the appropriate footwear depending on the weather to really streamline your exit.


Filed under: Arduino Hacks, misc hacks

The Best of Both Worlds: Arduino + 555 Should Confuse Commenters

Hardly a week goes by that some Hackaday post doesn’t elicit one of the following comments:

That’s stupid! Why use an Arduino when you could do the same thing with a 555?

And:

That’s stupid! Why use a bunch of parts when you can use an Arduino?

However, we rarely see those two comments on the same post. Until now. [ZHut] managed to bring these two worlds together by presenting how to make an Arduino blink an LED in conjunction with a 555 timer. We know, we know. It is hard to decide how to comment about this. You can consider it while you watch the video, below.

On the plus side, there probably is a use case for this. The LED will blink with absolutely no intervention from the Arduino. You could put the Arduino in deep sleep, if you wanted to and that LED will still blink. With a little work, you could probably adapt this idea to any number of circuits out of the 555 playbook, like a PWM generator, for example.

There’s almost nothing a 555 can’t do. If you want to see what’s under its expressionless face, this teardown is an interesting read. We just hope the comment section doesn’t overload like a Star Trek computer being asked by Captain Kirk to compute every digit of pi.


Filed under: Arduino Hacks
Hack a Day 03 Mar 03:00

Smaller Cheaper Arduino

Well, honestly, [Michael Mayer’s] STM8 Arduino (called Sduino) isn’t actually much to do with the Arduino, except in spirit. The STM8 is an 8-bit processor. It is dirt cheap and has some special motor control features that are handy. There’s a significant library available for it. However, it can be a pain to use the library and set up the build.

Just like how the Arduino IDE provides libraries and a build system for gcc, Sduino provides similar libraries and a build system for the sdcc compiler that can target the STM8. However, if you are expecting the Arduino’s GUI or a complete knock off of the Arduino library, you won’t get that.

That being said, you do get a lot of compatible libraries. The command line Makefile is simple to set up and use. Why not use a “normal” Arduino? The STM8 is not only inexpensive, but you can make use of the specialized hardware for things like quadrature decoding. In addition, the low power modes are super low.

Don’t let the Makefile put you off. The standard Blink sketch looks identical to an Arduino version. Here’s the required Makefile:

BOARD_TAG = stm8sblue
include ../../sduino/sduino.mk

That’s it. Not too hard.

There’s support for a simple breakout board that is inexpensive, as well as the ESP-14 pictured at the top of this article which has an ESP8266 and an STM8 controller onboard. For about $3 you get an STM8003 CPU and the WiFi capability. Hard to beat that. [Elliot Williams] just gave that board a try and found the ESP-14 to be “weird”. He may be right, but this gives you an easy way to use it.

Support for the STM8 version of the Discovery board is supposedly forthcoming.


Filed under: Arduino Hacks, Microcontrollers
Hack a Day 21 Feb 16:31

Nespresso Capsule Detector

Nespresso fans rejoice! If you like coffee (of course you do) and are a Nespresso fan, chances are you are one of two types of persons: the ones that chosen one type of capsule and stick to it or the ones that have a jar full of mixed capsules and lost track which coffee is which. Of course, there is a third, rarer, OCDish, kind. The ones that have every capsule organized neatly by color in a proper holder, full of style. In any case, if you forgot which color is which coffee because you threw the case away and forgot about it here’s an interesting weekend project for you: the Nespresso Capsule Detector.

[circuit.io team] made a neat Arduino-based project that can detect which capsule is which using an RGB color detector and display information about it on an LCD display. It’s a pretty simple project to make. If you have a 3D printer you can print the case, if not it’s fairly easy to come up with a working casing for the electronics and capsule.

The operation is simple, just drop the capsule in the hole and the Nespresso Capsule Detector will tell you which type it is, its intensity, its flavor tones and the optimal cup size for the coffee in question. We are just not sure if it can detect the Nespresso weddingbots correctly, but who knows?

Have a look:


Filed under: Arduino Hacks