48
Motivation Programming contributions Clean start Summary A Little Personal History Group Structure & Website Development and Design of Firmware Programming Tools for the openHPSDR Hardware David R. Larsen 1 1 KV0S Columbia, Missouri, USA OpenHPSDR Development Group openhpsdr.org Digital Communication Conference, 2017 St Louis, Missouri David R. Larsen OpenHPSDR FPGA Programmers

Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

A Little Personal HistoryGroup Structure & Website

Development and Design of FirmwareProgramming Tools for the openHPSDR

Hardware

David R. Larsen1

1KV0SColumbia, Missouri, USA

OpenHPSDR Development Groupopenhpsdr.org

Digital Communication Conference, 2017St Louis, Missouri

David R. Larsen OpenHPSDR FPGA Programmers

Page 2: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

A Little Personal HistoryGroup Structure & Website

Profession

Professor of Forestry.Work on Forest Dynamics.Growth Modeling.Statistical Analysis.Code development for Forestry applications.Unix, Linux programmer.

David R. Larsen OpenHPSDR FPGA Programmers

Page 3: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

A Little Personal HistoryGroup Structure & Website

Amateur Radio

First licensed in 1975.Live happened!Relicensed in 2004.First Dayton Hamvention, 2007.First DCC, Chicago, 2008.

David R. Larsen OpenHPSDR FPGA Programmers

Page 4: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

A Little Personal HistoryGroup Structure & Website

openHPSDR.org

Scotty asked me to take it on in 2008.Also started and attend the Friday night openHPSDRteamspeak sessions.Role in organizing the repositories.

David R. Larsen OpenHPSDR FPGA Programmers

Page 5: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

A Little Personal HistoryGroup Structure & Website

openHPSDR.org

David R. Larsen OpenHPSDR FPGA Programmers

Page 6: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

A Little Personal HistoryGroup Structure & Website

openHPSDR.org

Maintain the legacy of old work completed and not.Help people to find what they need to get started.Archive teamspeak, listserver, code, papers and videos.The Wiki.

David R. Larsen OpenHPSDR FPGA Programmers

Page 7: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Early days

First Boards.Atlas back backplaneJanus sound interfaceOzymandias first board with

Cyclone II FPGA,USB interfaceLoaded firmware from PC through the USB line

David R. Larsen OpenHPSDR FPGA Programmers

Page 8: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

First radio

PenelopeDigital up converter(DUC) a 1/2-watt transmitter/exciterboard,Cyclone II FPGAInitially programmed with a USB Blaster, Quartusprogrammer, using JTAG or Flash memory.

MercuryA 0-65MHz Direct Sampling ReceiverCyclone III FPGAInitially programmed with a USB Blaster, Quartusprogrammer, JTAG or Flash memory.

David R. Larsen OpenHPSDR FPGA Programmers

Page 9: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

First radio

David R. Larsen OpenHPSDR FPGA Programmers

Page 10: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Search for Bandwith

Problems with USB2Limited bandwidth.USB Driver issues.

Windows CentricGeneral not open sourceNo Volunteers to write driversUSB3 a possibility but not widely in 2010

Ethernet as a alternativeVery stable drivers in all OS platforms.Sufficient bandwidth.

David R. Larsen OpenHPSDR FPGA Programmers

Page 11: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

A New Interface Board

MetisEthernet Interface module.This required writing Basic TCPIP interface code in FPGAfirmware.Introduction of the Bootloader Mode.Introduction of in Metis JTAG programmer.Introduction of simplified Programmer.Communication by raw PCAP or UDP protocols

David R. Larsen OpenHPSDR FPGA Programmers

Page 12: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Tools for programming firmware.

First Tool HPSDRBootloader by John, G0ORXUsed PCAPWritten in C++ with Qt GUI

Required Administrator login.Required setting jumpers on board.Work flow was confusing to ocaisional users.

David R. Larsen OpenHPSDR FPGA Programmers

Page 13: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Structuring Programs

In 2012, I started maintain and writing programmer code.Seperate functionality.Use PCAP for recovery.Use UDP for normal updates.

David R. Larsen OpenHPSDR FPGA Programmers

Page 14: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Structuring Programs

HPSDRBootloader is a program for recovery fromprogramming failure.HPSDRProgrammer is a program for normal updating.

David R. Larsen OpenHPSDR FPGA Programmers

Page 15: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

HPSDRBootloader

Design CriteriaUse PCAP protocol. (MAC Addressing)Require Adminstrator login on computer.Require jumpers being set on PCB board.Board Discovery uses bootloader firmwareAllow Metis to function as a JTAG programmer forPenelope and Mercury.

David R. Larsen OpenHPSDR FPGA Programmers

Page 16: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

HPSDRBootloader

David R. Larsen OpenHPSDR FPGA Programmers

Page 17: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

HPSDRBootloader

David R. Larsen OpenHPSDR FPGA Programmers

Page 18: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

HPSDRProgrammer

Design CriteriaUse UDP protocol. (TCPIP Addressing)No jumpers being set on PCB board.Board Discovery uses past Radio firmwareCan only program boards with an ethernet connector

David R. Larsen OpenHPSDR FPGA Programmers

Page 19: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

HPSDRProgrammer

David R. Larsen OpenHPSDR FPGA Programmers

Page 20: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

HPSDRProgrammer

David R. Larsen OpenHPSDR FPGA Programmers

Page 21: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

All is well but time Marches On

Maintainence issuesStable and working.Changes in the Code (Easy to fix)Changes in installers (Easy if you use all the time, Hard ifyou use once every 3 years).Code detritus (Unused left over bits and pieces).

David R. Larsen OpenHPSDR FPGA Programmers

Page 22: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

This is my Hobby!

Why start over?This is my hobby! I want to learn something new.Learning a new computer language.Want to clean up the structure and process.

David R. Larsen OpenHPSDR FPGA Programmers

Page 23: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Go Language

David R. Larsen OpenHPSDR FPGA Programmers

Page 24: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Go Language

Go Language (golang.org)Has the flavor of C.First developed at Google but has been open sourcedOriginal Three designers.

Ken ThompsonRob PikeRobert Greismer

David R. Larsen OpenHPSDR FPGA Programmers

Page 25: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Go Language

Ken ThompsonFormerly Bell Labs.Wrote the B programming language.Wrote Plan 9.

David R. Larsen OpenHPSDR FPGA Programmers

Page 26: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Go Language

Rob PikeFormerly Bell Labs.Author on The Practice of Programming and The UnixProgramming Environment, and UNIXAuthor on Plan 9.Author of UTF-8

David R. Larsen OpenHPSDR FPGA Programmers

Page 27: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Go Language

Robert GreismerFormerly Bell Labs.Wrote SawsallLittle C background

David R. Larsen OpenHPSDR FPGA Programmers

Page 28: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Go Language

C. A. R. Hoare. 1978. Communcating Sequential Processes.Communications of the ACM. 21(8):666-677.

The group was influenced by Hoare

David R. Larsen OpenHPSDR FPGA Programmers

Page 29: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Go Language

Feature of Go that I found helpful in this project.Function testing.Cross platform compiling. Linux, Windows, MacOS, Arm,BSD.Good packages for networking including PCAP, UDP,HTTP.Static binaries.

David R. Larsen OpenHPSDR FPGA Programmers

Page 30: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Go Language

The disadvantages of GoNo GUI package, either Command line or HTTP

David R. Larsen OpenHPSDR FPGA Programmers

Page 31: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

First Programmer in Go

Started the process before Protocol 2 was available fortesting.So Started with Protocol 1Built and test each component functions.Use the command line interface.

David R. Larsen OpenHPSDR FPGA Programmers

Page 32: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

First Programmer in Go

David R. Larsen OpenHPSDR FPGA Programmers

Page 33: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Second Programmer in Go

Started the process Protocol 2 building to the Protocol.Built and test each component functions.Use the command line interface.Very few corrections to make the functions work onceProtocol 2 was available.

David R. Larsen OpenHPSDR FPGA Programmers

Page 34: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Second Programmer in Go

David R. Larsen OpenHPSDR FPGA Programmers

Page 35: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Programmers in Go

At this point I have two fast and clean packages to programHPSDR boards.Shared these with others for testing.Most users we uncomfortable withteh command lineinterface.

David R. Larsen OpenHPSDR FPGA Programmers

Page 36: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

The next step

Go have the package to allow the creation of small localhttpserversThe next step is to make a HTTP interface for thepackages.Program can be contained in a single executable file.The server cannot be access outside of the excutingcomputer, unless you configure that access.

David R. Larsen OpenHPSDR FPGA Programmers

Page 37: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

In this process, I just had to work on the user interface.The packages from could be resued without modification.In general the extra code is mostly html.I need a small it of javascript to improve user feedback.

David R. Larsen OpenHPSDR FPGA Programmers

Page 38: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 39: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 40: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 41: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 42: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 43: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 44: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 45: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 46: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Local Web Programmer

David R. Larsen OpenHPSDR FPGA Programmers

Page 47: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

MotivationProgramming contributions

Clean startSummary

Summary

openhpsdr.org has a large number of new and old projects.Projects are both harware and software.Many people ask for changes. The bottle neck is thenumber of people to work on each item.Join us, Have fun making your favorite feature or part.

OutlookThe HPSDR project is over 12 years old at this point.I beleive that together we have made an impact on AmateurRadio.

David R. Larsen OpenHPSDR FPGA Programmers

Page 48: Development and Design of Firmware Programming Tools for the openHPSDR Hardware · 2020-03-24 · Development and Design of Firmware Programming Tools for the openHPSDR Hardware David

Appendix For Further Reading

For Further Reading I

Open High Performance Software Defined Radio.http://openHPSDR.org

Open High Performance Software Defined Radio.http://openHPSDR.org/beta/

David R. Larsen OpenHPSDR FPGA Programmers