Tools Used
1 Development Boards and Environments
2 Fritzing
3 UmLet
4 Git
5 PhpED
6 Snagit
7 Html Validator
8 MPLAB X
9 Mozilla Firebug
10 jQuery
11 Ubuntu under VirtualBox
12 PHP 7
13 CloudFlare
14 Visio
15 Python 2.7
16 Wiring Pi
17 Visual Studio Express 2013
18 Logic by Saleae
19 FitVids.js
20 Breadboards
21 Wires
22 Jumpers
23 Oscilloscope
24 Resistors
Below are some of the tools used to build OOSMOS and this website. We derive no monetary benefit from mentioning any of them.

1 Development Boards and Environments

We have purchased many small development boards to test the portability and viability of OOSMOS on as many platforms, environments and processors as is practical.
  • Arduino - We think that the name Arduino suggests an IDE and APIs more than it does any particular board. Additional Arduino-family boards that we have tested OOSMOS on include: Yún, MEGA 2560, Esplora, Due, Nano and the Duemilanove, ESP8266 and more.
    The code is very portable. If you have Arduino-flavored board that is not mentioned here, there is a very high probability that OOSMOS will compile and run on it. Let us know if it doesn't.
    Link to Arduino Website
  • PIC32 Starter Kit - We have two of Microchip's Starter Kits, the "regular" PIC32 Starter Kit and the Ethernet PIC32 Starter Kit.
    The good news about the PIC32 is that the MPLAB X IDE development environment is excellent for source level debugging, the value of which cannot be understated. It also loads the target very quickly which is quite nice.
    The not-so-good news about this environment is that the starter kits are small boards with effectively no pin breakouts. To gain access to the GPIO pins, you'll need to also purchase their Starter Kit I/O Expansion board and figure out which processor pin is mapped to which header pin on the expansion board, which is non-trivial.
    All of our hardware level examples were initially developed using the PIC32 Starter Kit because of the excellent free tools. We feel that the quality of the tools more than justify the added expense. Plus, if you pay attention to portability (e.g the pin class), your code can run on other boards and processors. Note all the platforms on which the blink example can run. (We have no special arrangement with Microchip.)
    Link to Starter Kit
    Link to Starter Kit I/O Expansion Board
  • ChipKit - Essentially ChipKit is a board with an Arduino form factor that has a Microchip PIC32 processor that can be developed using either an Arduino IDE (called MPIDE) or Microchip's MPLAB X IDE. Other ChipKit family boards that we have tested OOSMOS on include: Uno32, uC32, Max32 and WF32.
    Link to ChipKit Site
  • MSP430 - We have tested OOSMOS on the MSP430F5529 LaunchPad board mostly. Other processors/boards will work but many of them have very little RAM so select your processor carefully.
    Link to MSP430 Site
  • Intel Galileo - We have tested OOSMOS on the first generation Galileo board using the Blink example.
    Link to Intel Galileo
  • mbed - mbed is an ARM-based development board whose development IDE is online.
    Link to mbed Website
  • LightBlue Bean - This is a nifty little board that has Bluetooth LE built in. It can be programmed using a specialized version of the Arduino IDE.
    Link to LightBlue Bean
  • Trinket - A very small Arduino IDE compatible board.
    Link to Trinket Pro
  • Windows - Although OOSMOS excels at supporting memory-constrained environments, it works well under Windows as well.
    Link to OOSMOS under Windows Example
  • Linux - OOSMOS runs great on Raspberry Pi Linux (Raspbian), Red Hat Linux and Mac OS X's Darwin.

2 Fritzing

We use Fritzing, an open-source drawing tool, to draw the breadboard layouts of all our examples. The .fzz drawing files are included with each example to give you a starting point so you can document your new and clever projects.
http://fritzing.org/home/

3 UmLet

Umlet, which is an open-source UML diagramming tool, is used to draw all of our statecharts. We like it because it is relatively simple to learn and use and it can export statecharts as SVG files, which makes for crisp rendering on this website.
http://www.umlet.com/

4 Git

Git is a free, open source, distributed revision control system.
We use it to manage all source code. In fact this website is "pushed" to the web server via Git and is published immediately via a post-receive hook.
http://git-scm.com/

5 PhpED

We use a PHP IDE, called PhpED from NuSphere, to edit and debug this website. We particularly like the code expand/collapse feature so we can focus on the work at hand.
http://www.nusphere.com/products/phped.htm

6 Snagit

TechSmith's Snagit tool was used to capture and annotate images.
https://www.techsmith.com/snagit.html

7 Html Validator

HTML Validator is used to assure we pass validation and that our links aren't broken.
https://www.htmlvalidator.com/

8 MPLAB X

Although there is a learning curve, MPLAB X is an excellent tool for editing and source level debugging on the PIC32 platform. Much of the embedded code we write is portable across MCU platforms, so we can pick and choose which platform to do core development work on. We use the PIC32 Starter Kit and MPLAB X because it is stable, mature, and supports source level debugging and hardware breakpoints.
Incidentally, if our debugging is not hardware or timing dependent, we develop and debug on Window using Microsoft's free Visual Studio Express - compiling with the command line tools and debugging with the IDE.
Link to MPLAB X Website

9 Mozilla Firebug

Mozilla Firebug is used to debug the jQuery based Javascript.
Link to Mozilla Website

10 jQuery

jQuery is used to handle the code collapse/expand feature as well as some minor responsive housekeeping.
http://jquery.com

11 Ubuntu under VirtualBox

If you don't have access to a Linux machine, you can create one for free by installing Ubuntu under VirtualBox on your Windows machine. (This is how we tested OOSMOS on Ubuntu.) It's also a great way to learn Linux.

12 PHP 7

We use PHP version 7 for maximum speed.
Link to PHP

13 CloudFlare

We use the CloudFlare content delivery network to push content closer to your location for faster page loads.
Link to CloudFlare CDN

14 Visio

Visio is used to create some of the more complex graphics, mostly because it can export SVG files which makes for a nice crisp look on a multi-sized responsive website such as this.
Link to Visio Home Page

15 Python 2.7

We use ActiveState Python 2.7 for all scripting. The ActiveState version includes win32com, which allows us to interact with Visio to automate exporting of SVG files.
Incidentally, we tried Python 3 and were faced with only differences, not improvements, so we deleted Python 3 and standardized on Python 2.7.
Link to ActiveState Python

16 Wiring Pi

We use Wiring Pi for Arduino-like pin descriptions on Raspberry Pi.
http://WiringPi.com/

17 Visual Studio Express 2013

We use the free, express edition of Visual Studio to compile and debug our Windows examples.
Link to Visual Studio Express

18 Logic by Saleae

Logic, by Saleae, is a very affordable and portable logic analyzer that is protocol aware. Excellent for debugging serial, I2C or SPI interactions.
http://www.saleae.com/
Saleae's Logic

19 FitVids.js

It's hard to get embedded video to look nice on a responsive website. We use a jQuery plugin called FitVids that seems to work quite well to perfectly resize any video on all devices that we've tested it on.
https://github.com/davatron5000

20 Breadboards

We like this style of breadboard because it's a good size for most projects and it has two power rails. We like to connect the power rails with red and green jumper wires for maximum flexibility when laying out parts on the board.
Alternatively, if you don't connect the rails you can use one rail for power and ground and the other rail as an I2C bus — using the SDA and SCL signals along that rail instead of power.
You can buy these inexpensively on eBay. Search for "Mini Breadboard Solderless Protoboard PCB Test Board 400 Contacts Tie Points". Some of this style of breadboard comes in clear plastic. We prefer the ones that have off-white plastic because they photograph better.
Double Rail Breadboard

21 Wires

We use DuPont jumper cables.
The description to search for on eBay is "10cm 2.54mm 1pin Male to Male jumper wire DuPont cable". We buy a lot of them in order to have enough to use green for ground and red for power.
We recommend that you *not* use the cheap round ones that typically come with some breadboards. Those pins are too thin and are often coated with manufacturing residue that, if you don't scrape it off, will not make a good connection.
DuPont Wires

22 Jumpers

For a cleaner breadboard layout we try to use jumpers from point to point rather than the 10cm DuPont wires. On eBay, search for "ELENCO JW-350 350 pc. pre-formed Jumper Wire Kit".
Also, we use red and green jumpers for +V and ground, respectively. If you want to follow this convention, you'll have to cut, bend and strip red and green wires to your specific hole-to-hole length.
Point-to-point Jumpers

23 Oscilloscope

Visibility is key. We use this low cost oscilloscope to help debug our device-level projects.
Link to review.
OWON 6062 Oscilloscope

24 Resistors

It's nice to have an assortment of resistor values handy as you build. We found that Amazon carries them at a reasonable price. Search for "Joe Knows Electronics 1/4W 86 Value 860 Piece Resistor Kit".
You can find them cheaper in bulk packs but those don't have each resistor value in a separate bag. The separate bag allows you to re-store resistors in the correct bag if you do a lot of experimenting.
Resistor Pack
Copyright © 2014-2016  OOSMOS, LLC