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
- 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.
https://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.
https://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
7. Html Validator
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.
https://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

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
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.
https://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