Embedded Rust Hack Chat

Join us on Wednesday, May 12 at noon Pacific for the Embedded Rust Hack Chat with James Munns!

Programming languages, like fashion, are very much a matter of personal taste. Professional developers often don’t have much say in which language they’ll use for a given project, either for legacy or team reasons, but if they did have a choice, they’d probably choose the language that works best with the way they think. Some languages just “fit” different brains better than others, and when everything is in sync between language and developer, code just seems to flow effortlessly through the keyboard and onto the screen.

One language that consistently scores at the top of developers’ “most loved” lists is Rust. For a language that started as a personal project and has only existed for a little more than a decade, that’s really saying something. The emphasis Rust puts on safety and performance probably has a lot to do with that. And thanks to its safe concurrency, its memory safety, and its interoperability with C and other languages, Rust has made considerable in-roads with the embedded development community.

To learn more about Rust in embedded systems, James Munns will stop by the Hack Chat. James is an embedded systems engineer, with a history of working on software for a wide range of systems, including safety-critical avionics, and rapidly prototyped IoT systems. He’s a founding member of the Rust Embedded Working Group, as well as a founder of Ferrous Systems, a consultancy focused on systems development in Rust, with a specialty in embedded systems development. James also used to write for Hackaday, so he must be a pretty cool guy. So swing by the Hack Chat and find out where Rust might be able to help you out with your next embedded project.

join-hack-chatOur Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, May 12 at 12:00 PM Pacific time. If time zones have you tied up, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.
Continue reading “Embedded Rust Hack Chat”

Homebrew Relay Computer Looks Like It Could Be A Commercial Product

You may not have noticed, but we here at Hackaday really love our clicky stuff. Clicky mechanical keyboards, unnecessarily noisy flip-dot displays, and pretty much anything made with a lot of relays — they all grab our attention, in more ways than one. So it’s with no small surprise that we appear to have entirely missed perhaps the clickiest build of all: a fully operational 8-bit computer using nothing but relays.

What’s even more amazing about our failure to find and feature [Paul Law]’s excellent work is that he has been at it for the better part of a decade now. The first post on his very detailed and very well-crafted blog describing the build dates from 2013, when he was just testing LEDs in the arithmetic-logic unit (ALU). Since then, [Paul] has made incredible progress, building module after module, each containing a small portion of the computer’s functionality. The modules plug into card cages with backplanes to connect them, and the whole thing lives in an enclosure made from aluminum extrusion and glossy black panels for a truly sleek look. The computer is incredibly compact for something that uses 400+ DPDT relays to do its thinking.

In addition to the blog, [Paul] has a criminally undersubscribed YouTube channel with a quite recent series going over the computer in depth. We included the overall tour below, but you should really check out the rest of the videos to appreciate how much work went into this build. We’ve seen relay computers ranging in size from single-board to just plain ludicrous, but this one really takes the prize for fit and finish as well as functionality.

Continue reading “Homebrew Relay Computer Looks Like It Could Be A Commercial Product”

Squeezing Every Bit From An ATMega

While the ATMega328 is “mega” for a microcontroller, it’s still a fairly limited platform. It has plenty of I/O and working memory for most tasks, but this Battleship game that [thorlancaster328] has put together really stretches the capabilities of this tiny chip. Normally a Battleship game wouldn’t be that complicated, but this one has audio, an LED display, and can also play a fine rendition of Nyan Cat to boot, which really puts the Atmel chip through its paces.

The audio is played through a 512-byte buffer and an interrupt triggers the microcontroller when to fill the buffer while it works on the other processes. The 12×12 LED display is also fed through a shift register triggered by the same interrupt as the audio, and since the build uses so many shift registers the microcontroller can actually output four separate displays (two players, each with a dispaly for shots and one for ships). It will also eventually support a player-vs-computer mode for the battleship game, and also has a mode where it plays Nyan cat just to demonstrate its own capabilities.

We’re pretty impressed with the amount of work this small microcontroller is doing, largely thanks to code optimization from its creator [thorlancaster328]. If there’s enough interest he also says he will provide the source code too. Until then, be sure to check out this other way of pushing a small microcontroller to its limits.

Thanks to [Thinkerer] for the tip!

Visualizing Magnetic Memory With Core 64

For the vast majority of us, computer memory is a somewhat abstract idea. Whether you’re declaring a variable in Python or setting a register in Verilog, the data goes — somewhere — and the rest really isn’t your problem. You may have deliberately chosen the exact address to write to, but its not like you can glance at a stick of RAM and see the data. And you almost certainly can’t rewrite it by hand. (If you can do either of those things, let us know.)

These limitations must have bothered [Andy Geppert], because he set out to bring computer memory into the tangible (or at least, visible) world with his interactive memory badge Core 64. [Andy] has gone through a few different iterations, but essentially Core 64 is an 8×8 grid of woven core memory, which stores each bit via magnetic polarization, with a field of LEDs behind it that allow you to visualize what’s stored. The real beauty of this setup is that it it can be used to display 64 pixel graphics. Better yet — a bit can be rewritten by introducing a magnetic field at the wire junction. In other words, throw a magnet on a stick into the mix and you have yourself a tiny drawing tablet!

This isn’t the first time we’ve seen cool experiments with core memory, and not even the first time we’ve seen [Andy] use it to make something awesome, but it really illuminates how the technology works. Being able to not only see memory being written but to manually write to it makes it all so much realer, somehow.

Continue reading “Visualizing Magnetic Memory With Core 64”

“Brain In A Vat” 6502

The 6502 was a revolutionary processor for its time. Offered at a small fraction of the cost of other processors available when it was released, it became adopted in such iconic computers at the Atari 2600, the Apple II, the NES, and the Commodore 64. For that reason it’s still extremely popular among retrocomputing enthusiasts who will often go to great lengths to restore these computers or build them from scratch. [jamesbowman] had an idea to build a 6502-based computer with the processor only, leaving the rest of the computer up to an FPGA.

He describes the system as a “brain in a vat” since a real 6502 is used as the “brain” and all other functions are passed off to the FPGA. In his build he uses an FPGA board with built-in graphics abilities, but the truly interesting part of this build is how the FPGA handles memory. If a particular value is placed on the data bus of the 6502, it loops forever through the entire memory and executes all of the instructions it finds. This saved a lot of time getting this system up and running, and he is able to demonstrate it by showing a waveform on the video output of the device.

Of course you can take an FPGA and emulate an entire computer based on a 6502, but using the actual silicon in a build like this really ensures that the user can learn and understand the hardware involved without some of the other tedium of doing things such as converting old video signals to HDMI for example. It’s a great take on retrocomputing that we expect to see more of in the future.

Correlated Electron Memory… Coming Soon?

We often see press releases and announcements about the next big technology in batteries, memory, displays, capacitors, or any of a number of other things. Usually we are suspicious since we typically don’t see any of this new technology in the marketplace over any reasonable timescale. So when we read about correlated-electron memory Cerfe Labs, we had to wonder if it would be more of the same. IOur suspicions may be justified of course, but it is telling that the company is a spin-off from ARM, so that gives them some real-world credibility.

Correlated-electron RAM or CeRAM is the usual press release material. Nonvolatile, smaller than SRAM, and fast. It sounds as though it could replace the SRAM in PC caches, for example, and take up less die space on the CPU chip. The principle is a bit odd. When electrons are forced together in certain materials, the properties of the material can change. This Mott transition (named after the inventor [Neville Mott]) can take carbon-doped nickel oxide and switch it from its natural electrical insulating state to a conducting state and back again.

Continue reading “Correlated Electron Memory… Coming Soon?”

Arduino Plays NES Games

Watching the advancement of technology is interesting enough by looking at improved specifications for various components as the years go by. But clock speeds, memory size, and power consumption are all fairly intangible compared to actual implementation of modern technology when compared to days of yore. For example, this $40 microcontroller can do what a video game console was able to do in the 80s for a tenth of the (inflation adjusted) price.

The NESDUE is an emulator for NES games which runs completely on an Arduino Due. The Arduino does have some limitations that have to be worked around to get the Nintendo to work, though. For one, it needs to be overclocked to be playable and it also needs a workaround to get past the memory limit of 96 kB of RAM. From there, a small screen is wired up along with a controller (from a Super Nintendo) and the gaming can begin.

This is an impressive feat for an Arduino platform to accomplish, especially with the amount of memory tweaking that has to happen. This might be the most advanced gaming system available that runs everything on an Arduino, right up there with the Arduinocade which can provide an arcade-like experience straight from the Arduino as well.

Continue reading “Arduino Plays NES Games”