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.

19 thoughts on “The Arduino Operating System

    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. 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. 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 to Remco Veldkamp (@remcoder)Cancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.