Presentation on theme: "James Michener K9JM k9jm.com. This presentation will be available at"— Presentation transcript:
James Michener K9JM k9jm.com
This presentation will be available at
Landscape – (30,000 foot view) What is an Ardunio? Why Arduino? How do you program them? What have other hams done with Ardunios? What has the author done with Ardunios? What advice to newbies? What could I do with an Arduino?
BIG COMPUTERS: Super computers – eg IBM Watson Cluster computers – eg Server Farms Server computers Desktop computers – eg Win 7 / Mac Tablets / Smart phones NOT THE TOPIC OF THIS PAPER
We will frame the Arduino in the landscape of small computers Embedded Linux Micro controllers Arduino Nano controller Attributes: Dedicated function Limited extensive graphical user interface Often communications oriented
OPEN SOURCE HARDWARE Building block of fully disclosed hardware and enabling software that permits anyone from putting the blocks together in new forms and advanced functionality.
Small console based Linux devices Commercial Examples: Set-top boxes Cable/DSL Routers WiFi access units Technology: ARM Processor – 32 bit 500MHz – 1.5GHz Large Flash based storage DDR memory >64megs
Open Source Hardware Examples: Beagle Bone -- Beagle Board -- Raspberry Pi -- These are the Arduino big brother
750MHz ARM Micro SD Flash up to 16GB 256 Megs of memory 4 Serial Ports 100 base-T Ethernet 12bit A/D converter USB – host / client Runs most Linux distros Draws less than a watt at 5 volts Many GPIO lines $79 dollars on amazon
Ham shack applications: Complex web services Apache, NTP, sendmail … Expandable with capes Serial, VGA, Prototype, camera, weather, audio, wi-fi, radar, touch screen LCD, GPS Programmable in any language supported by Linux… which is any language on this planet. Fortran, C, C++, python, lisp, Java.....
Weak in: Slow in bit manipulation Requires proficiency in Linux to get to to get started Poor low level library support: eg GPIO I2C / SPI Interrupts Timers
Arduino smaller brother Small limited I/O Single special interface 1K or less program, 256 or less RAM Typical applications Remote keyless entry Smart keys / RF ID tags Timers Remote Control Small appliances Keyers -- K1EL
Technology 8 or 16 bit technology 8K to 256K flash 1K to 64K RAM Multiple interfaces 10 to 100 Million instructions per second Commercial examples Thermostats Major appliances – Microwave, washing machine, dish washer Intelligent remote controls
Sierra Radio - HamStack PIC processor based. 64MHz 64K Flash 3K RAM $60 Parallax / Basic Stamp
ARM base processors 32 bit processor / ~100MHz More RAM / More flash / more money Built in Ethernet MAC Examples Netduino - Arduino Due ( real soon now)
Designed as a teaching tool Masters thesis project (2005) Names after Massimo Banzi favorite college bar.. Bar di Re Arduino. Names after King Arduin, 1002 Goals: Get going FAST Students up and running after one class Low cost modern processor - $25 Open source hardware Standard expansion interface..shield
General purpose micro controller Large library to interface most anything Hundreds of open source shields Low cost of entry Free development tools on any platform Many development environments
Today: Dozens of Companies Making Arduino Products and compatible shields More than 200,000 boards per month More than 100,000 developers Available World Wide Used by thousands of colleges / universities Rapid growth Large library of routines Available everywhere… even Radio Shack
The ORIGINAL: I like to support the Ardunio guys, so they will continue to innovate.
There are two processors: Small = Arduino Uno = ATmega328 Large = Arduino Mega = ATmega2560 Common properties: 16MHz Clock – Single clock per instruction, no FPU 8 bit data / 16 bit ( 2 byte) instruction On chip Flash with protected boot sector 10 bit A/D – 15 KHz sampling rate 40ma I/O pins - 1.8v to 5.5v operation I2C and SPI interface Multiple Analog out using 8 bit PWM Watchdog Timer Low Power Modes Internal / External oscillator
32K of Program / Data Flash 2K of SRAM 1K of EEPROM 1 Hardware Serial Port 2 External Interrupts 14 GPIO Digital Lines 6 channel analog multiplexer 3 Timers 1 Analog comparator 14 Digital I/O Pins
256K of Program / Data Flash 8K of SRAM 4K of EEPROM 4 Hardware Serial Ports 5 SPI & 1 I2C 5 external interrupts 16 channel analog multiplexer 6 Timers 4 Analog compare 54 Digital I/O pins
USB to serial interface Automatic switching power supply switching between USB and external Regulator for external power Expansion connectors for a shield Power LED Program controlled LED
2.7 x 2.2 inches
4.0 x 2.2 inches
There are hundreds of variants of each Different power supplies Different serial interfaces (RS-232 etc) Adding other features to the CPU board Ethernet Ethernet + POE Motor controllers
The real power of Ardunio: 1. Libraries – all the common stuff is done 2. Shields – Add anything else – comes with libraries 3. Simplified Development System
Bootloader General Purpose I/O – Wires A/D converter Interrupts Interrupt driven hardware serial PWM – Analog output Time / Delay Timers
There are hundreds of different shields They all come with their own example code and library. A great starting point
Free VS IDE and use Visual Micro Not Arduino Free
WA5ZNUs Waterfall display Cascata Talks was Saturday at Pacificon
K3NG -- Goody Does Morse and Hellscreiber K1EL Emulation Keyboards, LCD … and much more Arduino Uno based
Mike Szczys Google arduino ham radio and get a million other examples.
CI-V Router – Web based ++++ NTP locked station clock General purpose Control Panel Keyer -- Very special - ARRL CP Runs Auto tune a Johnson KW Matchbox
There is a Gremlin in my ham shack! It is the Icom CI-V bus, a one wire serial protocol bus. Contest program ( eg N1MM ) + Icom PW-1 + Icom IC-756Pro2 = COLLISION = HAVOC
Do not do it!
Found that hundreds of people have the same problem Larry, K8UT had tore into the problem
Go to Dayton 2011, someone suggests, what about an Arduino. First time I heard the word. Found that the Arduino Mega256 has 4 serial ports and a library for buffered/interrupt hardware I/O All I have to do is write the message handler. Its just software… Bought the Mega and a proto shield. Programmed a CI-V sniffer in 10 minutes
As a first project, this is VERY aggressive. Code in a dozen modules, needed a better IDE. Discovered Visual Micro + Visual Studio. Posted the code and schematics on my web page. Four people build one. Many requests for finished solution.
More than 50 units sold world wide Another 50 who have rolled their own Growing list of features Word of mouth marketing Hundreds of pages of documentation
I was in love… what other things are out there?
Tricked out with added features Band decoding Antenna Selection Ham Shack Power Control Center Ethernet control / Ethernet Reporting Station battery monitoring and charge controller
Router knows the frequency. Map Frequency to Antenna Selection. Resolution = 1KHz Decode to drive an Array Solution Six Pak Software module available for the CI-V Router
Qty 10 switchable amp output to turn on and off accessories, or AC power relays.
Using either simple HTML commands, or by serving simple web pages… do the following: Observe and control of ham shack power Observe and control of radio
link available at
Simple serial like interface Supports a limited number of connections - four Easy to do simple clients Easy to do simple single connection servers Easy to simple HTML Get/Put exchanges Difficult to do complex things. Not Apache. Not easily multi-tasking Not much RAM available = slow or small
Using HTML protocol plus small GET/PUT commands, plus serving small web pages gives powerful simple control over a small device. Small web pages are great for mobile/tablet browsing. Architectural Concept: Use a Beaglebone / Linux host Apache server to route/present the Arduino based devices.
Arduino combo boards Wiznet W5100 controller
Arduino Ethernet Shield Both have built in Micro SD Flash interfaces for complex web pages
Microchip ENC28J60 https://github.com/turicas/Ethernet_ENC28J60/ Very low cost, simple 100 base T Ethernet interface Hint: Mdfly.com ( Richmond, CA ) has many low cost modules
Ethernet Four serial ports to communicate with other devices… eg antenna rotator, 160m inverted L antenna tuner Keyer Menu driven control, knob/push button interface When inactive it is an NTP synchronized station clock.
What should one use to communicate between pieces of equipment in your ham shack? 1.RS RS Ethernet 4.Wire per function Wish there was standard and protocol. In technology; never bet against Ethernet
External Arduino controller. Speaks I2C to motor driver / positional feedback.. Mounts on back of tuner 12V NEMA stepper motors. 1.8 degrees/step When power is removed, operator can turn knobs Frequency based tuning table Fine tweak with SWR measurement.
Prototype Arduino auto tuning controller Arduino Uno LCD Display with push button controls
K6YR / K6KPH / K9JM shares W6OWPs ARRL West Coast Code Proficiency Runs Keyer with crystal controlled speed accuracy Perfect control / synchronization with a computer Seamlessly speed changes – on the fly ARRL Official Farnsworth Spacing Solution – Arduino Uno using the hardware timer interrupt library.
Arduino Cookbook Collection of projects and examples, largely from the internet Arduino Internals Experts guide, hints and tricks
Head First C C programming 101 K & R THE reference manual for C Not a teaching text "A C program is like a fast dance on a newly waxed dance floor by people carrying razors. - Waldi Ravens.
Bjarne Stroustrup Reference manual Not a teaching text Warning C let's you easily shoot in your foot, C++ let's you reuse the bullet.