The Smartest Smart Watch is the One You Make Yourself

If you’re building a smart watch these days (yawn!), you’ve got to have some special sauce to impress the jaded Hackaday community. [Dominic]’s NeoPixel SmartWatch delivers, with his own take on what’s important to have on your wrist, and just as importantly, what isn’t.

There’s no fancy screen. Instead, the watch gets by with a ring of NeoPixels for all its notification needs. But notification is what it does right. It tells [Dominic] when he’s got an incoming call of course, but also has different flashing color modes for SMS, Snapchat, and e-mail. Oh yeah, and it tells time and even has a flashlight mode. Great functionality for a minimalistic display.

But that’s not all! It’s also got a light sensor that works from the UV all the way down to IR. At the moment, it’s being used to automatically adjust the LED brightness and to display current UV levels. (We imagine turning this into a sunburn alarm mode.) Also planned is a TV-B-Gone style IR transmitter.

The hardware is the tough part of this build, and [Dominic] ended up using a custom PCB to help in cramming so many off-the-shelf modules into a tiny space. Making it look good is icing on the cake.

Thanks [Marcello] for the tip!

Continue reading “The Smartest Smart Watch is the One You Make Yourself”

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? Continue reading “Pulse Oximeter is a Lot of Work”

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).

Continue reading “Save ESP8266 RAM with PROGMEM”

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.

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.

Continue reading “Arduino + Geometry + Bicycle = Speedometer”

Hull Pixel Bot, A Mobile Pixel

There are many designs for little two-wheeled robots available to download for constructors with an interest in simple robotics. You might even think there are so many that there could not possibly be room for another, but that has not deterred [Rob Miles]. He’s created HullPixelBot, a platform for a mobile pixel as well as for simple robotic experimentation.

So what makes HullPixelBot more than just Yet Another Arduino Powered Robot? For a start, it’s extremely well designed, and has a budget of less than £10 ($12.50). But the real reason to take notice lies in the comprehensive software, which packs in a language interpreter and MQTT endpoint for talking to an Azure IoT hub. This is much more than a simple Arduino bot on which you must craft your own sketches, instead, it is a platform for which the Arduino bot is merely the carrier.

The project has had quite a while to mature since its initial release, and now has the option of a single pixel or a ring of pixels. The eventual aim is to use swarms of networked HullPixelBots to create large autonomous moving pixel displays, containing more than a hundred individual pixels.

There is an early video of some PixelBots in action which we’ve placed below the break, but it serves more as eye candy than anything else. If you have a spare ten quid, download and print yourself a chassis, install Arduino and motors, and have a go yourself!

Continue reading “Hull Pixel Bot, A Mobile Pixel”

A Command-Line Stepper Library with All the Frills

When you already know exactly where and how you’d like your motor to behave, a code-compile-flash-run-debug cycle can work just fine. But if you want to play around with a stepper motor, there’s nothing like a live interface. [BrendaEM]’s RDL is a generic stepper motor driver environment that you can flash into an Arduino. RDL talks to your computer or cell phone over serial, and can command a stepper-driver IC to move the motor in three modes: rotary, divisions of a circle, and linear. (Hence the acronumical name.) Best of all, the entire system is interactive. Have a peek at the video below.

The software has quite a range of capabilities. Typing “?” gets you a list of commands, typing “@” tells you where the motor thinks it is, and “h” moves the motor back to its home position. Rotating by turns, degrees, or to a particular position are simple. It can also read from an analog joystick, which will control the rotation speed forward and backward in real time.

Division mode carves the pie up into a number of slices, and the motor spins to these particular locations. Twelve, or sixty, divisions gives you a clock, for instance. Acceleration and deceleration profiles are built in, but tweakable. You can change microstepping on the fly, and tweak many parameters of the drive, and then save all of the results to EEPROM. If you’re playing around with a new motor, and don’t know how quickly it can accelerate, or what speeds it’s capable of, nothing beats playing around with it interactively.

Continue reading “A Command-Line Stepper Library with All the Frills”