Arduino Sketch: The Next Generation

What was your first Arduino program? Probably an LED blinker — that seems to be the “hello world” of microcontrolllers. You probably moved on to things a little more complicated pretty quickly. At some point, things get harder because the Arduino lacks an operating system.

There are operating systems that will run on the Arduino. They aren’t full-featured like Windows or Linux, but they allow you to run multiple tasks that are both isolated from each other (to some degree) and have a way to cooperate (that is, synchronize, share data and resources, and so on). One such operating system is ChibiOS. It will run on AVR- and ARM-based devices. You can find documentation about the entire project on the home page along with other ports.

The problem with adopting a new operating system is always getting started. [ItKindaWorks] has started a video series on using ChibiOS and has posted three installments so far (see below; one is about getting started, the other two cover messaging, mutexes, and priorities).

Continue reading “Arduino Sketch: The Next Generation”

LiteBSD Brings 4.4BSD to PIC32

A few years ago [Serge Vakulenko] started the RetroBSD project–a 16-bit port of the old 2.11BSD operating system to the Microchip PIC32 microcontroller. This was impressive, but version 2 of BSD is, to most people, old news and somewhat difficult to use compared to modern BSD and Linux operating systems.

[Serge] has been at it again, however, and now has a port of 4.4BSD–LiteBSD–running on the PIC32MZ. According to [Alexandru Voica] there is about 200K of user space memory in the basic build, and by removing some OS features, you could double or triple that figure.

Continue reading “LiteBSD Brings 4.4BSD to PIC32”

Open Source… Windows?

There’s a lot to be said for open source software. The ability to change code to suit one’s needs, the fact that security vulnerabilities can be easier to find, and the overall transparency are just the tip of the iceberg when it comes to the strengths of using open source software. And, while Microsoft is no Apple when it comes to locking down their source code, their operating system is still, unfortunately, closed.

Don’t despair, though! There is a project out there that aims to change this. No, they’re not stealing anything or breaking into any computers to obtain Microsoft’s code. They’re writing their own version of Windows called ReactOS that aims to be binary-compatible with Windows. The software has been in development for over a decade, but they’re ready to release version 0.4 which will bring USB, sound, networking, wireless, SATA, and many more features to the operating system.

While ReactOS isn’t yet complete for everyday use, the developers have made great strides in understanding how Windows itself works. There is a lot of documentation coming from the project regarding many previously unknown or undocumented parts of Windows, and with more developers there could be a drop-in replacement for Windows within a few years. It’s definitely worth a shot if you fondly remember the frontier days of Linux where doing things like reading information on a CD required extensive experience using the terminal. If this is a little too much, though, there are other unique operating systems out there to investigate.

Thanks for the tip, [Matt]!

Old LISP Language Used for New Raspberry Pi OS

On the scale of awesomeness, writing an operating system ranks near the top for software hackers and ranks just below writing a whole new language. [Lukas F. Hartmann] is reaching for the epic status with the Raspberry Pi operating system dubbed Interim. In an interesting mixture of old and new, it’s written in LISP!

LISP (LISt Processing) is the second oldest high-level programming language that received wide-spread usage. The only one older is FORTRAN (FORMula TRANslation), and that is just by one year. LISP is generally associated with artificial intelligence research but it also surfaced as a utilitarian scripting language in various applications like AutoCad. You may have also heard of a more recent dialect, Clojure, which has been receiving a lot of attention.

lisp-raspberry-pi-2-thumbThe source code, an image for the Pi 2, and directions for making it all work are available. [Lukas] also describes how to get a new OS up and running on a Pi.

[Lukas] isn’t the first to create this type of system. Back in the ’70s MIT worked on a Lisp machine that led to commercially available systems. If you have an old Apple IIe around you can make it into a Lisp Machine. You can also find LISP in the Internet of Things. And then there is [kremlint] who actually scored an original LISP Machine. We’ll have to keep an eye on his progress in restoring it to working condition.

Thanks for the tip, [krs013].

Hackaday Links: Sept 15, 2012

Very tiny keyboard

The idea behind the iControlPad2 is pretty simple – just take the slide-out keyboard from a phone, discard the phone part, add two analog sticks and a D-pad, and put Bluetooth in it. It makes for a very small keyboard perfect for controlling a Raspi, a home media server, or even a phone or tablet. I think it’s cool, anyway.

I mustache you a question. Where’s the Hawaiian Shirt?

At her local hackerspace, [Akki] heard someone pronouncing Raspberry Pi as, “Raspberry pee eye.” Of course this joke needed to be taken to its fullest absurdity, so [Akki] gave her Raspi a [Tom Selleck] mustache. Slightly better than the Googly Eyes Arduino shield.

Not giving a Flip about proprietary batteries

When powering a Flip video camera, [Dan] had two choices: regular AA batteries, or a proprietary battery rechargeable through the USB port. When the rechargeable battery is inserted, it closes a small switch telling the Flip it can recharge these batteries. Wanting to put his own rechargeable batteries in his camera, [Dan] closed the switch with a little bit of cardboard, thus allowing him to use his own NiMH rechargeable batteries.

Building operating systems from scratch

A while ago we posting something about a Cambridge professor putting up a tutorial for developing an operating system from scratch on the Raspberry Pi. [Joey] decided to follow these tutorials and has a blog dedicated to his adventures in OS development. It’s not a custom UNIX-inspired OS yet….

Put a quarter in, get a goldfish

[Yooder] over on Reddit spent a week turning a gumball machine into a fish tank. A very nice build that is now home to a few neon tetras. Check out the imgur album for a full build walkthrough.

Zzstructure emulator

[John Ohno] has been working on a zzstructure operating system written C since January. [John] realizes not many people know what a zzstructure is, so he posted a demo of his project. [John] has also put all the code online.

A zzstructure is both a hypertext and operating system unlike anything we have today. You could say that when it was first conceived in 1960 it was 100 years ahead of its time. [John]’s implementation of zzstructures operates on a 256-dimension grid and functions a lot like a multidimensional forum thread. Although that’s a lot to wrap your head around, it can probably best be explained by [Ted Nelson], the creator of zzstructures.

Continue reading “Zzstructure emulator”

64-bit OS written entirely in assembly

The folks at Return Infinity just released a new version of their BareMetal OS, a 64-bit operating system written entirely in assembly.

The goal of the BareMetal project, which includes a stripped-down bootloader and a cluster computing platform is to get away from the inefficient obfuscated machine code generated by higher level languages like C/C++ and Java. By writing the OS in assembly, runtime speeds are increased, and there’s very little overhead for when every clock cycle counts.

Return Infinity says the ideal application is for high performance and embedded computing. We can see why this would be great for really fast embedded computing – there are system calls for networking, sound, disk access, and everything else a project might need. There’s also ridiculously small system requirements – the entire OS is only 16384 bytes – lend itself to very small, very powerful computers.

With projects that are computationally intensive, we think this could be a great bridge between an insufficient AVR, PIC or Propeller and a full-blown linux distro. There’s just some questions about the implementation – we feel like we’ve just been given a tool we don’t even know when to use. Any hackaday readers have an idea on how to use an OS stripped down to the ‘bare metal?’ What, exactly, would need 64 bits, and what hardware would it run on?

Check out the Return Infinity team calculating prime numbers on their BareMetal Node OS after the jump.

Continue reading “64-bit OS written entirely in assembly”