The Arduino Operating System

WGPIOhile Arduino and its libraries are the quickest way to interface with a sensor and blink an LED, sometimes you shouldn’t have to write and compile code to do something exceptionally simple. [Oliver] realized most of the overly simple functions of a microcontroller could be done from a command line running on that microcontroller and came up with the MiniPirate, the Arduino command line tool.

The MiniPirate is just a sketch compiled on the Arduino that allows pins to be set high or low, set a PWM value, or reading and writing I2C bytes. It’s basically an extremely slimmed down version of the Bus Pirate meant for extremely simple modifications of circuits and peripherals.

[Oliver] demos his MiniPirate by taking a DS1307 real-time clock, wiring up the I2C bus, and writing values to set the time. It’s a very simple implementation meaning he needs to write everything in hex, but it’s still easy enough to find a use in many other projects.

18 thoughts on “The Arduino Operating System

  1. Cool… nice project. It’s not really an operating system though is it? It’s a “monitor” in true 70’s hacker parlance.

    1. A monitor usually allows for uploading to memory, assembling into memory, single step execution etc. This is just a command line interface and the instrucables page says exactly that.

          1. “is software that allows a user to enter commands to view and change memory locations on a computer”
            i.e. change the value of peripheral registers.
            Anyway, enough feeding the trolls.

          2. Misunderstands what a monitor is, ducks out while making a comment about trolls.

            Stay Classy, EccentricElectron.

          3. Err, no. I’ve written several, and have first hand experience. Do you? What you seem to be missing is that the most basic form of monitor only needs to support memory/register manipulation – exactly what this code does – in the same way a switch based front panel boot loader might. The other stuff – breakpoints, assembly, disassembly and single stepping is all icing on the cake.

    1. AVRs are harvard architecture, so a real OS is impossible. A port of bash or even BASIC with lots of additional builtin functions for I/O would be awesome, though.

  2. Would be useful to take this idea and add a select few functions to the bootloader, turning it into a monitor. Manual entry of EEPROM values would be #1 on my list for cal constants and lookup tables. Perhaps also baud rate control and passing a startup value to a sketch.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s