We’ve all been there. When debugging a microcontroller project, we just want to put in a print statement to figure out what’s going on with the microcontroller in real time. However, advanced embedded programmers know that printf statements are verboten: they’re just too SLOW. While not fixing this plight entirely, [Atakan Sarioglu] has come up with a clever way to create readable debug messages with minimal runtime overhead.
[Atakan Sarioglu]’s innovation, called BigBug (Github), is a dynamically-generated codebook. The codebook translates abbreviated messages sent over serial (UART here) to longer-form human-readable messages. To generate the codebook, BigBug automatically parses your comments to create a lookup between an abbreviation and the long-form message. When you are running your program on the microcontroller, BigBug will translate the short codes to long messages in real-time as you send log/debug data over serial. Continue reading ““DB” = Abbreviated Microcontroller Debugging”→
Modern display and solar cell technologies are built with a material called Indium Tin Oxide (ITO). ITO has excellent optical transparency and electrical conductivity, and the material properties needed for integration in large-scale manufacturing. However, we’re not content with just merely “good enough” nowadays, and need better materials to build ever better devices. Graphene and carbon nanotubes have been considered as suitable replacements, but new research has identified a different possibility: nanowires.
Researchers from the Indian Association for the Cultivation of Science (IACS) and the Centre for Research on Adaptive Nanostructures and Nanodevices (CRANN) in Ireland have demonstrated a seamless silicon nanowire junction that can be used for photodetector and display technology.
Before you get lost in the jargon, let’s take a step back. A nanowire is just a very narrow length of wire, on the order of 1 nanometer across. When silicon is used at this scale, electrical charges can become stuck (called “charge trapping”), which means that the holes and electrons are separated, allowing for transistors and photovoltaics. By controlling where these holes form in the nanowire, you can create a “seamless” junction without using any dopant materials to create impurities, as is done in modern CMOS transistors
These material properties allow the functionality of a junction, but it still needs to be easily and repeatably manufactured. To solve this problem, the team put the nanowire transistors on a flexible polymer, which should enable flexible nanowire applications, such as a roll-up screen.
The first step towards a display is a simple photodetector, just consisting of a basic P-N junction, but they hope this technology will eventually be useful in “smart windows” due to the junctions’ applicability to photodetectors and cameras. Moving to emitting light for displays or creating a solar cell using this technology will probably take some time.
Readers of a certain vintage will remember the glee of building your own levels for DOOM. There was something magical about carefully crafting a level and then dialing up your friends for a death match session on the new map. Now computers scientists are getting in on that fun in a new way. Researchers from Politecnico di Milano are using artificial intelligence to create new levels for the classic DOOM shooter (PDF whitepaper).
While procedural level generation has been around for decades, recent advances in machine learning to generate game content (usually levels) are different because they don’t use a human-defined algorithm. Instead, they generate new content by using existing, human-generated levels as a model. In effect they learn from what great game designers have already done and apply those lesson to new level generation. The screenshot shown above is an example of an AI generated level and the gameplay can be seen in the video below.
The idea of an AI generating levels is simple in concept but difficult in execution. The researchers used Generative Adversarial Networks (GANs) to analyze existing DOOM maps and then generate new maps similar to the originals. GANs are a type of neural network which learns from training data and then generates similar data. They considered two types of GANs when generating new levels: one that just used the appearance of the training maps, and another that used both the appearance and metrics such as the number of rooms, perimeter length, etc. If you’d like a better understanding of GANs, [Steven Dufresne] covered it in his guide to the evolving world of neural networks.
While both networks used in this project produce good levels, the one that included other metrics resulted in higher quality levels. However, while the AI-generated levels appeared similar at a high level to human-generated levels, many of the little details that humans tend to include were omitted. This is partially due to a lack of good metrics to describe levels and AI-generated data.
We can only guess that these researcher’s next step is to use similar techniques to create an entire game (levels, characters, and music) via AI. After all, how hard can it be?? Joking aside, we would love to see you take this concept and run with it. We’re dying to play through some gnarly levels whipped up by the AI from Hackaday readers!
Calling it the ESPecter, [ACROBOTIC Industries] wanted to make this a simple project for anyone, regardless of skill with a soldering iron or Arduino toolkit. So they decided to base the guts on common components that can be put together easily, specifically a Wemos Mini D1 with an OLED shield as a bright display. They also designed a cool tiltable 3D-printed enclosure for this small device so that you can orient it to your eye level.
Last year, Google released an artificial intelligence kit aimed at makers, with two different flavors: Vision to recognize people and objections, and Voice to create a smart speaker. Now, Google is back with a new version to make it even easier to get started.
The main difference in this year’s (v1.1) kits is that they include some basic hardware, such as a Raspberry Pi and an SD card. While this might not be very useful to most Hackaday readers, who probably have a spare Pi (or 5) lying around, this is invaluable for novice makers or the educational market. These audiences now have access to an all-in-one solution to build projects and learn more about artificial intelligence.
Frustrated by the glut of unsecured IoT devices? So are Microsoft. And they’re using custom Linux and hardware to do something about it.
Microsoft have announced a new ecosystem for secure IoT devices called “Azure Sphere.” This system is threefold: Hardware, Software, and Cloud. The hardware component is a Microsoft-certified microcontroller which contains Microsoft Pluton, a hardware security subsystem. The first Microsoft-certified Azure Sphere chip will be the MediaTek MT3620, launching this year. The software layer is a custom Linux-based Operating System (OS) that is more capable than the average Real-Time OS (RTOS) common to low-powered IoT devices. Yes, that’s right. Microsoft is shipping a product with Linux built-in by default (as opposed to Windows Subsystem for Linux). Finally, the cloud layer is billed as a “turnkey” solution, which makes cloud-based functions such as updating, failure reporting, and authentication simpler.
Low-voltage DC power electronics are an exciting field right now. Easy access to 18650 battery cells and an abundance of used Li-Ion cells from laptops, phones, etc. has opened the door for hackers building their own battery packs from these cheap cells. A big issue has been the actual construction of a pack that can handle your individual power needs. If you’re just assembling a pack to drive a small LED, you can probably get by with spring contacts. When you need to power an e-bike or other high power application, you need a different solution. A spot welder that costs $1000 is probably the best tool, but out of most hackers’ budget. A better solution is needed.
Enter [Micah Toll] and his Vruzend battery connectors, whose Kickstarter campaign has exceded its goal several times over. These connectors snap onto the ends of standard 18650 cells, and slot together to form a custom-sized battery pack. Threaded rods extend from each plastic cap to enable connection to a bus bar with just a single nut. The way that you connect each 18650 cell determines the battery pack’s voltage and current capability. There are a couple of versions of the connector available through the campaign, and the latest version 2.0 should allow some tremendously powerful battery pack designs. The key upgrade is that it now features corrosion-resistant, high-power nickel-plated copper busbars allowing current up to 20A continuous. A side benefit of these caps instead of welded tabs is that you can easily swap out battery cells if one fails or degrades over time. Continue reading “Assemble Your Own Modular Li-Ion Batteries”→