Arduinos in the Ham Shack

advertisement
James Michener K9JM
k9jm.com

This presentation will be available at

http://k9jm.com








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 -- http://beagleboard.org/bone/
◦ Beagle Board -- http://beagleboard.org/bone/
◦ Raspberry Pi -- http://www.raspberrypi.org/

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”
http://circuitco.com/support/index.php?title=BeagleBone_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
http://www.hamstack.com/hamstack.html
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 - http://netduino.com/
◦ 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














http://www.sainsmart.com/
http://robocraft.ru/blog/RoboCraft/97.html
http://www.dfrobot.com/index.php
http://store.nkcelectronics.com/
http://www.liquidware.com/shop/show/ILLI/Illuminato::Genesis
https://metalab.at/wiki/Metaboard
http://jt5.ru/arduino/cosmo-black-star/
http://seeedstudio.com/depot/seeeduino-v221-atmega-168p-p-690.html
http://shop.cqpub.co.jp/hanbai/books/12/12551.html
http://otonanokagaku.net/magazine/vol27/
http://www.freetronics.com/products/twentyten#.UDGe26PcCjs
http://appliedplatonics.com/volksduino/
http://timewitharduino.blogspot.com/
http://arduino-direct.com/sunshop/index.php?l=product_detail&p=225

http://www.logos-electro.com/zigduino/
http://www.droids.it/cmsvb4/content.php?279-990.023-Luigino328-User-Manual-EN
http://brasuino.holoscopio.com/
http://www.evilmadscientist.com/2010/diavolino/
http://avr.tavir.hu/
http://www.sunduino.neth.pl/
http://multiplo.org/make-diy/electronics/

The ORIGINAL:






◦ http://arduino.cc/
I like to support the Ardunio guys, so they will continue to
innovate.

There are two processors:

Common properties:
◦ Small = Arduino Uno = ATmega328
◦ Large = Arduino Mega = ATmega2560
◦
◦
◦
◦
◦
◦
◦
◦
◦
◦
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.
2.
3.
Libraries – all the common stuff is done
Shields – Add anything else – comes with
libraries
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
◦ http://shieldlist.org/

They all come with their own example
code and library. A great “starting
point”











Ethernet – Wired / WiFi
Text – LCD displays
Graphic LCD display
Touch screens
Weather shields
Motor/ stepper motor driver
LED / Light Controllers
Relay Interfaces
Compass
GPS
Prototype shields


Up and
running fast
Universal way
to show
examples


GNU GCC – C, C++, assembly
Currently avr gcc 4.3.2 (2008)
◦ Inline assembly
◦ Templates

GCC 4.7.0 full C++ 11 available
http://andybrown.me.uk/wk/2012/04/28/avr-gcc-4-7-0-and-avr-libc-1-8-0-compiled-for-windows/

Price = $0.00




Serious
IDE
Free add
on for
Visual
Studio
You can
get VS
IDE for
Free
Excellent


Free
Complex
Setup
http://andybrown.me.uk/wk/2010/10/24/y
our-first-avr-project-in-eclipse/



Free VS
IDE and
use Visual
Micro
Not
Arduino
Free
WA5ZNU’s
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
http://groups.yahoo.com/group/ic-PW1/
Larry, K8UT had tore into the problem
http://www.k8ut.com/tiki-index.php?page=Riding+the+CI-V+Bus


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. It’s 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.
http://k9jm.com/CIV_Router/CI-V%20Router.html
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 13.8 volt @ 10 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 http://k9jm.com/







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
◦ http://arduino.cc/en/Main/ArduinoBoardEthernet
◦ Wiznet W5100 controller

Arduino Ethernet Shield
◦ http://arduino.cc/en/Main/ArduinoEthernetShield
◦ Both have built in Micro SD Flash interfaces for
complex web pages

Microchip ENC28J60
◦
http://www.mdfly.com/index.php?main_page=product_info&cPath=9_41&products_id=109&zenid=fu6d934f20994ovv3jv9i9an77
◦
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.
2.
3.
4.


RS-232
RS-422
Ethernet
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.

http://www.youtube.com/watch?v=UJ3uADluTY4





Prototype Arduino
auto tuning
controller
Arduino Uno
LCD Display
with push button
controls

K6YR / K6KPH / K9JM shares W6OWP’s ARRL
West Coast Code Proficiency Runs
◦
◦
◦
◦
◦
http://www.arrl.org/qualifying-run-schedule
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.”
Download