Sudden Death Rainbow Sorting Game Reveals Your True Colors

When [marzsman]’s eight-year-old daughter thought up a game they could play together involving rainbows, he was all ears. She is a certified rainbow expert, after all. They had a few R&D sessions and came up with a rainbow sorting speed trial game that looks fun to play and fairly easy to build.

Press that blue button on the side, and the RGB LEDs along the top are put in randomized order. The object of this game is simple — just sort the rainbow before the other player by pressing each LED’s corresponding arcade button. Whoever sorts faster is rewarded with a rainbow animation behind their set of way-cool clear buttons.

Inside the laser-cut box is an Espruino, which is a handy little microcontroller that speaks JavaScript. All of the arcade buttons are wired up as a key matrix. The astute among you have noticed there is six of everything, and that’s because indigo light is too hard to distinguish from blue. Check out the intense gameplay after the break.

If [marzsman]’s daughter wants to learn computer science, rainbows are good for that, too.

Continue reading “Sudden Death Rainbow Sorting Game Reveals Your True Colors”

GridSound – An Audio Workstation In Your Browser

If you’re into creating music, you’ll have a surprisingly large variety of open source options at your disposal, ranging from Audacity as rather simple audio editor to Ardour as a full-blown, studio-worthy DAW — and LMMS, Rosegarden, MusE etc. for anything in between. With [Thomas Tortorini]’s GridSound project, you’ll have one additional choice on your list now, except this one runs in your browser. So if you find yourself in a sudden moment of inspiration, all you’ll need is a browser and off you go.

From the feature set’s point of view, GridSound leans towards LMMS and offers a drum kit, piano roll, and synthesizer. It appears that you won’t be able to record real world instruments at this point, but it’s also a work in progress, so who knows what the future will bring. The code is available on GitHub and you can explore GridSound itself here — no login required, unless you want to save your work. Running in a browser, GridSound is naturally written in JavaScript and uses the Web Audio API to perform the actual audio tasks.

What’s impressive is that [Thomas] opted against any UI framework-of-the-week, but instead implemented everything from scratch in pure vanilla JavaScript. In fact, the entire code base seems to be self-contained without any third party dependencies, and that alone deserves some respect. Sure, JavaScript isn’t everybody’s cup of tea — “real developers use assembly” — so if you prefer something more physical, how about some cardboard music?

Six New HackadayU Courses Announced For Fall 2020

The fall lineup of HackadayU courses was just announced, get your tickets now!

Each course is led by expert instructors who have refined their topics into a set of four live, interactive classes plus one Q&A session we like to call Office Hours. Topics range from leveling up your Linux skills and learning about serial buses to building interactive art and getting into first-person view (FPV) drone flight.

Checkout the course titles, instructors, and details listed below. If you’d like to hear about each class from the instructors themselves, their teaser videos are embedded after the break.

  • Interactive Media Art with Light and Sensors
    • Instructor: Mirabelle Jones
    • Course overview: This course will cover how to develop interactive artworks, installations, and experiences based on sensor input.
  • Introduction to FPV Drones
    • Instructor: Ayan Pahwa
    • Course overview: We’ll get familiar with the multi-rotor category of Unmanned Aerial Vehicles (UAVs) including physics, aerodynamics, electronics, digital signal processing (DSP), and writing software that is involved.
  • Intro to LEDs Using Arduino and FastLED
    • Instructors: Cathy Laughlin & Mirabelle Jones
    • Course overview: Students will learn all about how LEDs work as well as how to program LED patterns using the Arduino IDE.
  • Linux + Electronics: A Raspberry Pi Course
    • Instructor: Pablo Oyarzo
    • Course overview: This course is for those who had wanted to go from Arduino to a Linux computer small enough to fit the project but greatly more powerful to full fill the project’s needs and don’t know where to start.
  • Embedded Serial Buses (Part 1)
    • Instructor: Alexander Rowsell
    • Course overview: This course will cover the I2C and 1-Wire serial buses. We will look at the hardware layer, the protocol layer, and the software/application layer for both bus types.
  • Art + Code
    • Instructor: Casey Hunt
    • Course overview: Students will grow their technical skills through mastery of the P5.js JavaScript library, and will also learn about aesthetics and art history in the digital space.

HackadayU courses are “pay-as-you-wish”. To help ensure the live seats don’t go to waste, the minimum donation for each class is $1. Proceeds go to charity and we’re happy to report a donation of $4,200 going to Steam Coders from the summer session of HackadayU. A new charity will be chosen for the fall classes, details to follow.

Each class will be recorded and made available once they’ve been edited. You can take a look at the excellent Reverse Engineering with Ghidra series right now. Videos of the Quantum Computing and KiCad + FreeCAD courses are coming soon.

Continue reading “Six New HackadayU Courses Announced For Fall 2020”

Travel Globe Spins You Around Memory Lane

We all have our own preferences when it comes to travel souvenirs — that little something that brings back the memories and feelings of a past holiday every time we look at it, whether it’s the cliché fridge magnet, some local speciality, or just the collection of photos we took. But then there are those journeys that can’t be summarized into a single item and may require a bit more creativity. For [Jonathan], it was last year’s trip around the world that took him and [Maria] to locations all over Europe, Asia, and Oceania, and he found a great way to remember it: an interactive, laser-cut travel globe displaying all the places they went to.

Building a sphere is of course a bit tricky with a laser cutter, so [Jonathan] went for the icosahedron shaped Dymaxion map projection (think of a large d20 dice) and burnt the world onto it. Inside the globe is an ESP8266, an MPU-6050 IMU, and a bunch of LEDs to light up the travel locations using the WLED library. Taking the data from the IMU, he customized the WLED library to determine which way the globe is positioned, and highlights the top-facing location in a different color.

While that would already make a nice souvenir on its own, [Jonathan] didn’t stop here. Using Google’s My Maps service, which lets you create custom maps with own points of interest and have for example photos attached to them, the ESP8266 hosts the travel map also as a web page. Feeding the IMU data to the JavaScript code that’s handling the map API, the globe itself now doubles as an input device to control the virtual map. So whenever the globe is physically rotated to highlight a certain location, the web page’s map is focused to that same location and shows randomly the pictures they have taken there. Check out the video below to see it all in action.

This is a great way to reminisce about a memorable journey even years down the road, and while it may not be flexible to extend, it seems like the kind of trip that deserves a standalone device anyway. Plus, the Dymaxion map is definitely an interesting projection — so here’a a foldable one, just because. And If you like tracking things on a globe, here’s one that shows the location of the ISS.

Continue reading “Travel Globe Spins You Around Memory Lane”

PHONK – A Hacker’s Fun Shortcut To Android Programming

As the common myth goes, the average human utilizes only about 10% of the true potential their smartphone is capable of. Especially when it comes to electronics projects, it seems that we often overlook how we can integrate and take advantage of their functionality here. Maybe that’s not a big surprise though — while it isn’t rocket science, getting into mobile development certainly has its hurdles and requires a bit of commitment. [Victor Diaz] figured there had to be a better way, so he went on and created PHONK, the self-contained creative scripting toolbox for Android.

PHONK is installed like any other app, and allows rapid prototyping on your Android device via JavaScript by abstracting away and simplifying the heavily boilerplated, native Java parts. So instead of setting up an app from scratch with all the resources defining, UI design, activity and application lifecycle management — not to mention the Android development environment itself — PHONK takes care of all that behind the curtain and significantly reduces the amount of code required to achieve the task you’re actually interested in. In case you’re worrying now that you have to actually program on your phone, well, you can, which can definitely come in handy, but you don’t have to.

Once the app is opened, a web server is started, and connecting to it from any modern browser within the same WiFi network presents you the PHONK development environment with everything you need: editor, file browser, console, and API documentation. You can write your code in the browser, and pressing the run button will execute it straight on the device then. As everything is self-contained within the app itself, no additional software is required, and you can start right away by exploring the set of provided examples that showcase everything supported so far: sensor interaction, BLE server and client, communication protocols like MQTT or WebSockets, OpenStreetMap maps, and even integration with Pure Data and Processing. Attach a USB OTG cable and you can program your Arduino, have serial communication, or interface a IOIO board. You can even connect a MIDI controller.

This is really impressive work done by [Victor], and a lot of attention to detail went into the development. If you have an old Android phone collecting dust somewhere, this would be a great opportunity to revive it and build something with it. And as [Victor] writes on the project’s GitHub page, he’s always curious what people will come up with. If you’re thinking about building a mobile sensor lab, or want to learn more about the sensors inside your phone, have a look at the 36C3 talk about phyphox.

Does PHP Have A Future, Or Are Twenty Five Years Enough?

In June, 1995, Rasmus Lerdorf made an announcement on a Usenet group. You can still read it.

Today, twenty five years on, PHP is about as ubiquitous as it could possibly have become. I’d be willing to bet that for the majority of readers of this article, their first forays into web programming involved PHP.

Announcing the Personal Home Page Tools (PHP Tools) version 1.0.

These tools are a set of small tight cgi binaries written in C.

But no matter what rich history and wide userbase PHP holds, that’s no justification for its use in a landscape that is rapidly evolving. Whilst PHP will inevitably be around for years to come in existing applications, does it have a future in new sites?

Continue reading “Does PHP Have A Future, Or Are Twenty Five Years Enough?”

Get The Party Started With A Mesh WiFi Light Show

Wildly blinking LEDs may not be the ideal lighting for the average office environment, but they’ll surely spice up any party. And since a party without music is just a meeting, having both synced up is a great way to set the mood. Sure, you could simply roll out your standard LED strip instead, but that gets a bit boring, and also a bit tricky if you want to light up several places the same way. [Gerrit] might have built the perfect solution though, with his (mu)sic (R)eactive (Li)ghts, or muRLi, which are a set of individual lights that synchronize a programmable pattern over WiFi.

The system consists of muRLi itself as the base station that defines and sends the light pattern through WebSockets, and several muRLi Nodes that house a set of WS2812B LEDs to receive and display it. Both are built around a Wemos D1 Mini configured to set up a WiFi mesh network, and depending what’s in reach, the nodes connect either to the base station or other nodes, giving the system definitely enough reach for any location size. The music is picked up by a MAX4466-amplified microphone inside the base station — adding some more flexibility to positioning the system — and analyzed for volume and audio spectrum, which is also shown on an OLED.

The best part however is how the light patterns are programmed. Instead of hard-coding it into the firmware, [Gerrit] went for a modular approach with little ROM cartridges to plug into the muRLi base station. The cartridge itself contains just an I2C EEPROM, storing JavaScript code that is interpreted by the firmware using mJS. The scripts have access to the analyzed audio data and amount of LEDs within the network, and can dynamically generate the patterns as needed that way. Everything is neatly housed in 3D-printed enclosures, with all the design and source files available on the project’s GitHub page — but see for yourself in the video after the break.

If you don’t care about the wireless part but enjoy light synced up with music, have a look at a plain MIDI solution for that. As for [Gerrit], we’re definitely looking forward to seeing his next endeavor one day, since we also enjoyed his last one.

Continue reading “Get The Party Started With A Mesh WiFi Light Show”