Object Oriented State Machine Operating System Goes Open Source

On a desktop computer, you think of an operating system as a big piece of complex software. For small systems (like an Arduino) you might want something a lot simpler. Object Oriented State Machine Operating System (OOSMOS) is a single-file and highly portable operating system, and it recently went open source.

OOSMOS has a unique approach because it is threadless, which makes it easy to use in memory constrained systems because there is no stack required for threads that don’t exist. The unit of execution is a C++ object (although you can use C) that contains a state machine.

You can read the API documentation online. Just remember that this is not an end user OS like Windows or Linux, but an operating environment for managing multiple tasks. You can, though, use OOSMOS under Windows or Linux as well as many other host systems.

Continue reading “Object Oriented State Machine Operating System Goes Open Source”

Self Folding Graphene Paper

Origami, the art of folding paper into shapes, is the latest craft to fall to automation. Researchers in China have published a paper in Science Advances describing how they created graphene-based paper that can fold itself. According to their paper (that is, the paper they wrote, not their graphene paper), the new material can adopt a predefined shape, walk, or even turn a corner.

Active materials like shape memory polymers, aren’t new. But there are many practical problems with using such materials. Using MGMs (Macroscopic Graphene Materials), the researchers created paper that can change shape based on light. temperature, or humidity.

The video below shows a few uses including a self-folding box, a worm-like motion device, and a hand-like piece of paper making a grasping motion. The creators mention that there are a wide range of applications including robotics, artificial muscles, and sensing devices. After watching the video, we couldn’t help but wonder how cool a paper flower that opened in the sunlight would be.

We’ve covered how to make your own graphene in a home lab and even inside a DVD burner. We’ll be interested to see who is the first to hack some graphene paper and what you’ll use it for.

Continue reading “Self Folding Graphene Paper”

Retrotechtacular: A Mechanical UART

We’ve heard it said that no one invented the old mechanical Teletype. One fell from the sky near Skokie, Illinois and people just duplicated them. It is true these old machines were similar to a modern terminal. They sent and received serial data using a printer instead of a screen. But inside, they were mechanical Rube Goldbergs, not full of the electronic circuits you’d think of today.

Teletype was the best-known name, but there were other mechanical monster terminals out there. [Carsten] recently took some pictures of his 99 pound Olivetti mechanical terminal. According to him, there’s only one electronic component within: a bistable solenoid that reads the data. Everything else is mechanical and driven with a motor that keeps everything at the right baud rate (110 baud).

Like the Teletype, it is a miracle these things were able to work as well as they did. Lacking a microcontroller, the terminals could respond to an identity request by spinning a little wheel that had teeth removed to indicate which letters to send (TeleType used a similar scheme). Things that are simple using today’s electronics (like preventing two keys pressed at once from being a problem) turned out to be massive design challenges for these old metal monsters.

Turns out that when [Carsten] last fired the terminal up, a capacitor finally gave up its magic smoke. He plans to fix it, though, and as long as it isn’t a mechanical problem, we bet he will.

We’ve talked about Teletypes a few times in the past, including using them for text messaging and even Twitter.

Avoid Procrastination With This Phone Lock Box

Smart phones are great. So great that you may find yourself distracted from working, eating, conversing with other human beings in person, or even sleeping. [Digitaljunky] has this problem (not surprising, really, considering his name) so he built an anti-procrastination box. The box is big enough to hold a smart phone and has an Arduino-based time lock.

The real trick is making the box so that the Arduino can lock and unlock it with a solenoid. [Digitaljunky] doesn’t have a 3D printer, so he used Fimo clay to mold a custom latch piece. A digital display, a FET to drive the solenoid, and a handful of common components round out the design.

Continue reading “Avoid Procrastination With This Phone Lock Box”

Your First GNU Radio Receiver With SDRPlay

Although GRC (the GNU Radio Companion) uses the word radio, it is really a graphical tool for building DSP applications. In the last post, I showed you how you could experiment with it just by using a sound card (or even less). However, who can resist the lure of building an actual radio by dragging blocks around on a computer screen?

For this post and the accompanying video, I used an SDRPlay. This little black box has an antenna jack on one end and a USB port on the other. You can ask it to give you data about a certain area of the RF spectrum and it will send complex (IQ) data out in a form that GRC (or other DSP tools) can process.

The SDRPlay is a great deal (about $150) but if you don’t want to invest in one there are other options. Some are about the same price (like the HackRF or AirSpy) and have different features. However, you can also use cheap TV dongles, with some limitations. The repurposed dongles are not as sensitive and won’t work at lower frequencies without some external help. On the other hand, they are dirt cheap, so you can overlook a few little wrinkles. You just can’t expect the performance you’ll get out of a more expensive SDR box. Some people add amplifiers and converters to overcome these problems, but at some point it would be more cost effective to just spring for a more expensive converter.

Continue reading “Your First GNU Radio Receiver With SDRPlay”

Improving WiFi Throughput With FM Radio

WiFi networking is one of those things that is reasonably simple to use, but has a lot of complex hidden features (dare we say, hacks) that make it work, or work better. For example, consider the Distributed Coordination Function (DCF) specified in the standard. Before a station can send, it has to listen for a certain time period. If the channel is clear, the station sends. If not, it has to delay a random amount of time before trying again. This is a form of Carrier Sense Multiple Access (CSMA) channel management.

Unfortunately, listening time is dead time when–at least potentially–there is no data transmitted on the network. DCF allows you to use various handshaking packets to do virtual carrier detection and ready/clear to send, but these are also less efficient use of bandwidth. There are other optional coordination functions available in the WiFi standard, but they all have their drawbacks.

[Aleksandar Kuzmanovic] at Northwestern University and two of his students have recently published a paper with a new way to coordinate multiple unrelated wireless networks using ubiquitous FM broadcast radio signals called WiFM. Instead of trying to synchronize to the WiFi data channel, this new scheme selects a strong FM radio station that broadcasts Radio Data Service (RDS) data (the data that populates the song titles and other information on modern radios).

Continue reading “Improving WiFi Throughput With FM Radio”

Getting Started With GNU Radio

Software Defined Radio (SDR)–the ability to process radio signals using software instead of electronics–is undeniably fascinating. However, there is a big gap from being able to use off-the-shelf SDR software and writing your own. After all, SDRs require lots of digital signal processing (DSP) at high speeds.

Not many people could build a modern PC from scratch, but nearly anyone can get a motherboard, some I/O cards, a power supply, and a case and put together a custom system. That’s the idea behind GNU Radio and SDR. GNU Radio provides a wealth of Python functions that you can use to create sophisticated SDR application (or, indeed, any DSP application).

If Python is still not up your alley (or even if it is), there’s an even easier way to use GNU Radio: The GNU Radio Companion (GRC). This is a mostly graphical approach, allowing you to thread together modules graphically and build simple GUIs to control you new radio.

Even though you usually think of GRC as being about radios, it is actually a good framework for building any kind of DSP application, and that’s what I’ll show you in the video below. GRC has a signal generator block and interfaces to your sound card. It even has the ability to read and write data to the file system, so you can use it to do many DSP applications or simulations with no additional hardware.

UPDATE: Don’t miss the follow-up post that uses SDRPlay to build a GNU Radio based receiver.

Continue reading “Getting Started With GNU Radio”