Posts with «arduino» label

Mechanical Keyboard Is Also a Mouse

The mechanical keyboard community is a vibrant, if not fanatical, group of enthusiasts determined to find as many possible ways of assembling, building, and using as many high-quality keyboards as possible. With so many dedicated participants, most things that can be done with a keyboard already have been done. So when something as unique as this split keyboard that also doubles as a mouse pops up, we take notice.

The keyboard is a custom build from [Taliyah Huang] which uses a pair of Arduinos, one in each half of the keyboard, to communicate key and mouse information to a third Arduino which is plugged in to her laptop. The right-hand half of the keyboard also includes the circuitry from an optical mouse, which gets powered up when the caps lock button is held down. When activated, this allows the keyboard to be used as a mouse directly. It also includes support for most Mac gestures as well, making it just as useful as a trackpad.

While there were some problems with the design, including being slightly too tall to be ergonomic and taking nearly 24 hours of soldering to complete, the prototype device is an interesting one especially since it allows for full control of a computer without needing a dedicated mouse. For other unique mechanical keyboard concepts, we recently featured this build which takes design and functionality cues from the Commodore 64.

An Atomic Pendulum Clock Accurate Enough for CERN

That big grandfather clock in the library might be an impressive piece of mechanical ingenuity, and an even better example of fine cabinetry, but we’d expect that the accuracy of a pendulum timepiece would be limited to a sizable fraction of a minute per day. Unless, of course, you work at CERN and built  “the most accurate pendulum clock on the planet.”

While we’re in no position to judge [Daniel Valuch]’s claim, we’re certainly inclined to believe him, mainly because the 1950s-era Czechoslovakian pendulum clock his project was based on, the Elektročas HH3, was built specifically as a master clock for labs, power plants, and broadcast use. The pendulum of this mid-century beauty is made of the alloy invar, selected for its exceptionally low coefficient of thermal expansion. This ensures the pendulum doesn’t change length with temperature, but it still only brings the clock into the 0.1 second/day range.

Clearly that’s not good enough for a clock at CERN, the European Laboratory for Nuclear Research, where [Daniel] works as an RF engineer. With access to a 10-MHz timebase from a cesium fountain atomic clock — no less a clock than the one that’s used to define the SI second, by the way — [Daniel] looked for ways to sync the clock up to it. Now, we know what you’re thinking — he must have used some kind of PLL to give an electromagnetic “kick” to the bob to trim the pendulum’s period. Good guess on the PLL, but the trimming method is a little cruder — [Daniel] uses a stepper motor attached to the clock’s frame to pay out or retract a length of fine chain into a cardboard dish attached to the pendulum’s rod. The change in mass changes the pendulum’s center of gravity, which changes its effective length, and allows the clock to be tuned a couple of seconds per day.

It seems like [Daniel] is claiming that his chain-corrected clock won’t drift more than a second from the cesium clock for 158 million years. Again, we’ll take his word for it, but it’s a wonderfully ad hoc approach to tuning the clock, and we appreciate its simplicity.

Hack a Day 28 Jan 21:00

Arduino is out to (Rocket) Launch

It looks like an ordinary toolbox, but when you open up the Arduino Launch Control System, you’ll find a safe method for triggering model rocket launches. The system uses two separate power supplies. Both must be on for a successful launch and one requires a key. To trigger a 10-second countdown, the operator must hold down two buttons. Releasing either button will stop the countdown.

Besides safety, the controller tracks mission elapsed time and can read weather information from a few sensors. A good-looking build and we like the idea of building inside a toolbox for this sort of thing.

Towards the end of the post, there are some ideas for improving the build, like using a consolidated weather sensor, using a larger screen, and a bigger, more capable controller. It seems like more I/O would be useful,

Model rocketry isn’t as rigorous as launching a crew, but there were a few things that could improve the overall system safety. For example, the launch buttons could provide both normally open and normally closed contacts to guard against switch failure. In other words, if you see both inputs from one switch on or off for more than a tiny moment during switching, you can assume the switch has failed and put the system in a fail-safe mode. Of course, a switch failure in the off position isn’t a hazard, just an inconvenience. But a switch failure in the active position could allow an inadvertent launch. Granted, it would require something jamming the remaining switch for the entire 10-second countdown, but still. Arduinos are pretty reliable, but for a real rocket system, you’d probably have redundancy, and the software would do periodic checks to guard against things like memory corruption.  For example, NASA has a relatively succinct list of requirements. But some of this is overkill for a model rocket launcher.

We’ve seen many takes on this kind of project. Of course, like everything else these days, you can just use your smartphone.

An Open Hardware Automatic Spinning Machine

The team at the Berlin-based Studio HILO has been working on ideas and tools around developing a more open approach to small-scale textile production environments. Leveraging open-source platforms and tools, the team has come up with a simple open hardware spinning machine that can be used for interactive yarn production, right on the desktop. The frame is built with 3030 profile aluminium extrusions, with a handful of 3D printed, and a smidge of laser cut parts. Motion is thanks to, you guessed it, NEMA 17 stepper motors and the once ubiquitous Arduino Mega 2560 plus RAMPS 1.4 combination that many people will be very familiar with.

The project really shines on the documentation side of things, with the project GitLab positively dripping with well-organised information. One minor niggle is that you’ll need access to a polyjet or very accurate multi-material 3D printer to run off the drive wheel and the associated trailing wheel. We’re sure there’s a simple enough way to do it without those tools, for those sufficiently motivated.

We liked the use of Arduino for the firmware, keeping things simple, and in the same vein, Processing for the user interface. That makes sending values from the on-screen slider controls over the USB a piece of cake. Processing doesn’t seem to pop up on these pages too often, which is a shame as it’s a great tool to have at one’s disposal. On the subject of the user interface, it looks like for now only basic parameters can be tweaked on the fly, with some more subtle parameters needing fixing at firmware compilation time. With a bit more time, we’re sure the project will flesh out a bit more, and that area will be improved.

Of course, if you only have raw fibers, that are not appropriately aligned, you need a carder, like this one maybe?

Thanks [Daniel] for the tip!

RP2040 DMA Hack Makes Another ‘CPU Core’

[Bruce Land] of Cornell University will be a familiar name to many Hackaday readers, searching the site for ‘ECE4760′ will bring up many interesting topics around embedded programming. Every year [Bruce] releases yet more of the students’ work out into the wild to our great delight. This RP2040-based project is a bit more abstract than some previous work and shows yet another implementation of an older hack to utilise the DMA hardware of the RP2040 as another CPU core. While the primary focus of the RP2040 DMA subsystem is moving data between memory spaces, with minimal CPU intervention, the DMA control blocks have some fairly complex behaviour. This allows for a Turing-complete CPU to be implemented purely with the DMA hardware and a sprinkling of memory.

The method ties up three of the twelve DMA channels, and is estimated to have a similar performance to ‘an Arduino’ but [Bruce] doesn’t specify which one of the varied models that could be. But who cares anyway? Programming the CPU is a matter of leveraging the behaviour of the hardware, which is all memory mapped and targetable by the DMA. For example, the CPU can waggle GPIO pins by using the DMA to write values to the peripheral address space. The basic flow can be seen in the image above. DMA0 is used as the program counter, which points DMA1 to an array of DMA control blocks, a sequence of which codes for some of the ‘opcodes’ of the CPU model. DMA0 chains to (hands over control to) DMA1 which reads the control blocks and configures itself accordingly. DMA1 performs whatever data move is programmed, chains to DMA2, which in turn reprograms the DMA0 program counter to point to the next block in the list to be executed by DMA1.

By also using DMA1 to modify subsequent DMA1 control blocks (that’s self-modifying code happening there!) the system can implement more useful operations such as addition, logical operations, and conditional branching. Transport-triggered operations in certain shadow registers enable atomic set, reset, and XOR operations. All clever stuff, and a wonderful student project to have been involved with. [Bruce] points out a paper (using the Pi2) from the WOOT 2015 workshop which might offer a better explanation of this whole process.

If you’re still wondering who [Bruce Land] is and want a bit of a primer on some of these topics, then check out our previous coverage. If this theoretical stuff is a bit heavy (i.e. boring) then some of the projects have a more practical bent, such as the critical task of colour-sorting skittles.

Thumbnail image: Thomas Glau, CC BY-SA 4.0.

Hack a Day 21 Jan 03:00

Arduino-Powered Info Display For Your Windows Computer

If you’ve been pining for a retro-chic 16×2 LCD display to enhance your Windows computing experience, then [mircemk] has got you covered with their neat Windows-based LCD Info Panel.

Your everyday garden variety Arduino is the hero here, sitting between the computer’s USB port and the display to make the magic happen. Using the ‘LCD Smartie‘ software, the display can serve up some of your typical PC stats such as CPU and network utilization, storage capacity etc. It can also display information from BBC World News, email clients, various computer games and a world of other sources using plugins.

It’s clear that the intention here was to include the display inside your typical PC drive bay, but as you can see in the video below, this display can just about fit anywhere. It’s not uncommon to see similar displays on expensive ‘gamer’ peripherals, so this might be an inexpensive way for someone to bring that same LED-lit charm to their next PC build. You probably have these parts sitting in your desk drawer right now.

If you want to get started building your own, there’s more info over on the Hackaday.io page. And if PC notifications aren’t your jam, it’s worth remembering that these 16×2 displays are good for just about anything, like playing Space Invaders.

Get Pumped for This Miniature Gym

[Duncan McIntyre] lives in the UK but participated in a secret Santa gift exchange for his Dutch friends’ Sinterklaas celebration. In traditional maker fashion, [Duncan] went overboard and created a miniature gym gift box, complete with flashing lights, music and a motorized lid.

[Duncan] used [TanyaAkinora]’s 3D printed tiny gym to outfit the box with tiny equipment, with a tiny mirror added to round out the tiny room. An ATmega328P was used as the main microcontroller to drive the MP3 player module and A4988 stepper motor controller. The stepper motor was attached to a drawer slide via a GT2 timing belt and pulley to actuate the lid. Power is provided through an 18V, 2A power supply with an LM7805 providing power to the ATmega328P and supporting logical elements. As an extra flourish, [Duncan] added some hardware audio signal peak detection, fed from the speaker output, which was then sampled by the ATmega328P to be able to flash the lights in time with the playing music. A micro switch detects when the front miniature door is opened to begin the sequence of lights, song and lid opening.

[Duncan] provides source on GitHub for those curious about the Arduino code and schematics. We’re fans of miniature pieces of ephemera and we’ve featured projects ranging from tiny 3D printed tiny escalators to tiny arcade cabinets.

Video after the break!

Arduino Synthesizer Uses Modified Slide Pots

There comes a point in every Arduino’s life where, if it’s lucky, it becomes a permanent fixture in a project. We can’t think of too many better forever homes for an Arduino than inside of a 3D-printed synthesizer such as this 17-key number by [ignargomez] et al.

While there are myriad ways to synthesizer, this one uses the tried-and-true method of FM synthesis courtesy of an Arduino Nano R3. In addition to the 17 keys, there are eight potentiometers here — four are used for FM synthesis control, and the other four are dedicated to attack/delay/sustain/release (ADSR) control of the sound envelope.

One of the interesting things here is that [ignargomez] and their team were short a few regular pots and modified a couple of slide pots for circular use — we wish there was more information on that. As a result, the 3D printed enclosure underwent several iterations. Be sure to check out the brief demo after the break.

Don’t have any spare Arduinos? The BBC Micro:bit likes to make noise, too.

Mouse Enjoys Its Freedom

Although it took a little while to standardize on the two-button-with-scroll-wheel setup, most computers have used a mouse or mouse-like device to point at objects on the screen since the 80s. But beyond the standard “point and click” features of the mouse, there have been very few ground-breaking innovations beyond creature comforts. At least, until the “Space Mushroom” mouse from [Shinsaku Hiura] hit our tips line.

This mouse throws away most of the features a typical mouse might have in favor of a joystick-like interface that gives it six degrees of freedom instead of the usual two — while still being about mouse-sized and held in the hand. It doesn’t even have a way of mapping motion directly to movements on the screen. Instead, it maps each degree of freedom to a similar movement of the mouse itself using these three joystick sensors physically linked together, with some underlying programming to translate each movement into the expected movement on the screen.

While this might not replace a standard mouse for every use case anytime soon, it does seem to have tremendous benefit in 3D modeling software, CAD, or anything where orienting a virtual object is the primary goal. Plus, since there’s no limit to the number of mice that can be attached to a computer (beyond USB limitations) this mouse could easily be used in conjunction with a normal mouse much like macro keyboards being used alongside traditional ones.

Thanks to [Rez] for the tip!

Kids’ Jukebox Based on Arduino with RFID

Consumer electronics aimed at young children tend to be quite janky and cheap-looking, and they often have to be to survive the extreme stress-testing normal use in this situation. You could buy a higher quality item intended for normal use, but this carries the risk of burning a hole in the pockets of the parents. To thread the needle on this dilemma for a child’s audiobook player, [Turi] built the Grimmboy for a relative of his.

Taking its name from the Brothers Grimm, the player is able of playing a number of children’s stories and fables in multiple languages, with each physically represented by a small cassette tape likeness with an RFID tag hidden in each one. A tape can be selected and placed in the player, and the Arduino at the center of it will recognize the tag and play the corresponding MP3 file stored locally on an SD card. There are simple controls and all the circuitry to support its lithium battery as well. All of the source code that [Turi] used to build this is available on the project’s GitHub page.

This was also featured at the Arudino blog as well, and we actually featured a similar project a while ago with a slightly different spin. Both are based on ideas from Tonuino, an open source project aimed at turning Arduinos into MP3 players. If you’re looking to build something with a few more features, though, take a look at this custom build based on the RP2040 microcontroller instead.

Hack a Day 17 Dec 06:00