An Arduino With A Floppy Drive

For many of us the passing of the floppy disk is unlamented, but there remains a corps of experimenters for whom the classic removable storage format still holds some fascination. The interface for a floppy drive might have required some complexity back in the days of 8-bit microcomputers, but even for today’s less accomplished microcontrollers it’s a surprisingly straightforward hardware prospect. [David Hansel] shows us this in style, with a floppy interface, software library, and even a rudimentary DOS, for the humble Arduino Uno.

The library provides functions to allow low level work with floppy disks, to read them sector by sector. In addition it incorporates the FatFS library for MS-DOS FAT file-level access, and finally the ArduDOS environment which allows browsing of files on a floppy. The pictures show a 3.5″ drive, but it also supports 5.25″ units and both DD and HD drives. We can see that it will be extremely useful to anyone working with retrocomputer software who is trying to retrieve old disks, and we look forward to seeing it incorporated in some retrocomputer projects.

Of course, Arduino owners needn’t have all the fun when it comes to floppy disks, the Raspberry Pi gets a look-in too.

Arduino MKR Makes Nespresso Monitoring Easy

Monitoring an appliance with a microcontroller usually follows a well-worn path of diving inside and finding somewhere in the electrical circuitry that can be connected through some kind of interface to a microcontroller. For his Nespresso pod coffee machine, [Steadman] eschewed tearing into the device, and instead chose to monitor the sound it makes. A commodity sound threshold sensor board is hooked up to an Arduino MKR Zero, and this set-up logs coffee consumption. It’s important to note how this generation of Arduino is no longer one of the simple boards of old, instead it sports an RTC and SD card alongside its SAMD21 Cortex-M0+ processor so it is perfect for just such a datalogging project. The coffee data can be saved into a CSV file viewable by a spreadsheet, for which code is provided.

We like this project for its non-invasive simplicity, and we can see that there could be plenty of other similar machines that could benefit from an analagous technique for non-invasive monitoring. While the pages of Hackaday are full of coffee machine projects we see surprisingly few pod coffeemakers, perhaps because our readers are a canny bunch who balk at paying a premium for their caffeine. If you do happen to have a Nespresso machine though, perhaps you’d like some help identifying the capsules.

Ooohhh, That Smell: Arduino Monitors Air Quality

According to [Dr. Tom Lehrer’s] song Pollution, “Wear a gas mask and a veil. Then you can breathe, long as you don’t inhale!” While the air quality in most of the world hasn’t gotten that bad, there is a lot of concern about long-term exposure to particulates in the air causing health problems. [Ashish Choudhary] married an Arduino with a display and a pollution sensor to give readings of the PM2.5 and PM10 levels in the air.

The sensor uses a laser diode and a photodiode to detect and count particles, while a fan moves air through the system. If you aren’t up on pollution metrics, PM2.5 is a count of very fine particles (under 2.5 microns) and PM10 is a count of particles for 10 microns. You can find a datasheet for the device online.

Continue reading “Ooohhh, That Smell: Arduino Monitors Air Quality”

Arduino Plots Your Portrait With Style

Around these parts, we see plenty of plotter builds. They’re a great way to learn about CNC machines and you get to have fun making pictures along the way. [Ben Lucy] was undertaking just such a build of his own, but wanted to do something standalone that served a purpose. The result is the impressive Portable Portrait Painter.

What sets [Ben]’s project apart is how complete it is. Unlike other plotters that simply follow G-code instructions or process external images, the Portable Portrait Painter is a completely standalone machine. Fitted out with an OV7670 camera, hooked up to an Arduino, it’s capable of taking its own photos and then drawing them out as well.

Through some clever code from [Indrek Luuk], the Arduino Mega2560 is able to display a 20fps video preview on a color LCD screen. When the user presses a button, the current frame is captured and sent to the pen plotter. The plotting algorithm is particularly impressive, with images first processed with histogram compensation to maximise contrast. The pen is then drawn across the page line by line, and pressed into the page by varying amounts depending on the color value of each pixel. The darker the pixel, the thicker the stroke made by the pen. This more analog approach produces a much more detailed image than more basic plotters which either leave a mark or don’t.

The portraits produced by the plotter are impressive, and we like the edge-of-page artifacts, which add a little style to the final results. The Portrait Painter would make a great conversation piece at any Maker Faire or hackerspace night.

It’s a project that reminds us of some of the painting robots we’ve seen over the years. Video after the break.

Continue reading “Arduino Plots Your Portrait With Style”

Honey, I Shrunk The Arduino Core

High-level programming languages do a great job of making a programmer’s job easier, but these languages often leave a lot of efficiency on the table as a compromise. While a common thought is to move into a lower-level language like assembly to improve on a program’s speed or memory use, there’s often a lot that can be done at the high level before resorting to such extremes. This, of course, is true of the Arduino platform as well, as [NerdRalph] demonstrates by shrinking the size of the Arduino core itself.

[NerdRalph] had noticed that the “blink” example program actually includes over 1 kB of extraneous code, and that more complicated programs include even more cruft. To combat this issue, he created ArduinoShrink, which seeks to make included libraries more modular and self-contained. It modifies some of the default registers and counters to use less memory and improve speed, and is also designed to improve interrupt latency as well by changing when the Arduino would otherwise disable interrupts.

While there are some limits to ArduinoShrink, such as needing to know specifics about the pins at compile time, for anyone writing programs for Arduinos that are memory-intensive or need improvements in timing, this could be a powerful new tool. If you’d prefer to go in the opposite direction to avoid ever having to learn C or assembly, though, you can always stick with running Python on your embedded devices.

A Magnetic Field Strength Meter Using An Arduino

We’re used to Hall effect devices as proximity sensors in mechanical systems, used to provide detection of something that has a magnet attached to it. However it’s easy to forget that the devices that provide a magnet-or-not digital output are only part of the story, and linear Hall effect devices provide a handy way to measure a static magnetic field. It’s something [mircemk] demonstrates, with an Arduino-powered magnetic field strength meter that uses a UGN 3503U Hall effect device.

The circuit is extremely simple, comprising the sensor, an Arduino Nano, and an OLED display. This device is handy because its voltage output has a known relationship to the gauss level the sensor is experiencing, so while the accuracy of its calibration isn’t verified it can at least give a believable reading derived from the Arduino’s ADC.

The whole is wrapped up in an attractive case that looks as though it has been made from PCB material, with the sensor protruding on what seems to be the shell of a plastic ballpoint pen. It makes a handy instrument that provides a useful function for not a lot of money, so what’s not to like! Take a look at the video below the break for the full story.

Surprisingly such projects are few and far between here at Hackaday, however it’s not the first magnetic field measurement we’ve seen.

Continue reading “A Magnetic Field Strength Meter Using An Arduino”

Arduino CLI For I/O Pin Testing

Need to quickly toggle or read some logic signals without the hassle of writing a quick program? [Thor_x86], aka [Eric], built an Arduino sketch that does just that — and he threw in the ability to send (or receive) serial messages, too. This is a neat idea — kind of a simplified Bus Pirate.

We should warn you that this is an early release, and there are a few minor issues which we are sure [Eric] will iron out soon. We discovered the function strtol() was misspelled in cmd_send.cpp, and there are some configuration #defines which need to be sorted out in file parsePin.cpp, depending on which Arduino module you are running. We got it running on an Arduino Leonardo the quickest, because it has support for Serial1().

Don’t be discouraged by these glitches in this rev 0 deployment — [Eric] has really made quite a nice tool here. Check his GitHub repository for updates (or submit corrections yourself). All in all, it’s a good addition to your digital tool box. On a completely unrelated note, we really like [Eric]’s USB cable with the right-angle micro connector, grungy though it may be.

Besides the standard tools like Bus Pirate, GreatFET, FTDI modules, etc., are there any similar tools you like to use for bit banging and serial testing? Let us know in the comments below.