Adafruit Feather M4 Express Created by Lady Ada

Total Page:16

File Type:pdf, Size:1020Kb

Adafruit Feather M4 Express Created by Lady Ada Adafruit Feather M4 Express Created by lady ada Last updated on 2021-09-27 01:10:35 PM EDT Guide Contents Guide Contents 2 Overview 8 Update the UF2 Bootloader 12 Updating Your Bootloader 12 Pinouts 16 Power Pins 16 Logic pins 17 I2S Pins: 18 Parallel Capture Peripheral 18 QSPI Flash and NeoPixel 19 Other Pins! 20 Debugging Interface 20 Assembly 22 Header Options! 22 Soldering in Plain Headers 25 Prepare the header strip: 25 Add the breakout board: 26 And Solder! 26 Soldering on Female Header 28 Tape In Place 28 Flip & Tack Solder 29 And Solder! 30 Power Management 32 Battery + USB Power 32 Power supplies 33 Measuring Battery 33 ENable pin 34 Alternative Power Options 35 Arduino IDE Setup 36 https://adafruit.github.io/arduino-board-index/package_adafruit_index.json 37 Using with Arduino IDE 39 Install SAMD Support 39 Install Adafruit SAMD 40 Install Drivers (Windows 7 & 8 Only) 41 Blink 43 Successful Upload 44 Compilation Issues 45 Manually bootloading 45 Ubuntu & Linux Issue Fix 46 Adapting Sketches to M0 & M4 47 Analog References 47 Pin Outputs & Pullups 47 Serial vs SerialUSB 47 AnalogWrite / PWM on Feather/Metro M0 48 analogWrite() PWM range 49 © Adafruit Industries https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51 Page 2 of 228 analogWrite() DAC on A0 49 Missing header files 49 Bootloader Launching 50 Aligned Memory Access 50 Floating Point Conversion 50 How Much RAM Available? 51 Storing data in FLASH 51 Pretty-Printing out registers 51 M4 Performance Options 52 CPU Speed (overclocking) 52 Optimize 53 Cache 53 Max SPI and Max QSPI 53 Enabling the Buck Converter on some M4 Boards 54 What is CircuitPython? 55 CircuitPython is based on Python 55 Why would I use CircuitPython? 55 CircuitPython on Feather M4 Express 57 Set up CircuitPython Quick Start! 57 Further Information 58 Installing Mu Editor 59 Download and Install Mu 59 Using Mu 59 Creating and Editing Code 61 Creating Code 61 Editing Code 63 Your code changes are run as soon as the file is done saving. 64 1. Use an editor that writes out the file completely when you save it. 64 2. Eject or Sync the Drive After Writing 65 Oh No I Did Something Wrong and Now The CIRCUITPY Drive Doesn't Show Up!!! 65 Back to Editing Code... 66 Exploring Your First CircuitPython Program 67 Imports & Libraries 67 Setting Up The LED 67 Loop-de-loops 68 What Happens When My Code Finishes Running? 68 What if I don't have the loop? 69 More Changes 70 Naming Your Program File 70 Connecting to the Serial Console 71 Are you using Mu? 71 Setting Permissions on Linux 72 Using Something Else? 73 Interacting with the Serial Console 74 The REPL 78 Returning to the serial console 81 CircuitPython Libraries 82 Installing the CircuitPython Library Bundle 83 Example Files 84 © Adafruit Industries https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51 Page 3 of 228 Copying Libraries to Your Board 85 Example: ImportError Due to Missing Library 85 Library Install on Non-Express Boards 86 Updating CircuitPython Libraries/Examples 87 Frequently Asked Questions 88 I have to continue using an older version of CircuitPython; where can I find compatible libraries? 88 Is ESP8266 or ESP32 supported in CircuitPython? Why not? 88 How do I connect to the Internet with CircuitPython? 89 Is there asyncio support in CircuitPython? 90 My RGB NeoPixel/DotStar LED is blinking funny colors - what does it mean? 91 What is a MemoryError? 92 What do I do when I encounter a MemoryError? 92 Can the order of my import statements affect memory? 93 How can I create my own .mpy files? 93 How do I check how much memory I have free? 93 Does CircuitPython support interrupts? 93 Does Feather M0 support WINC1500? 94 Can AVRs such as ATmega328 or ATmega2560 run CircuitPython? 94 Commonly Used Acronyms 94 Welcome to the Community! 95 Adafruit Discord 95 Adafruit Forums 96 Adafruit Github 97 ReadTheDocs 98 Advanced Serial Console on Windows 100 Windows 7 Driver 100 What's the COM? 100 Install Putty 102 Advanced Serial Console on Mac and Linux 104 What's the Port? 104 Connect with screen 106 Permissions on Linux 107 Uninstalling CircuitPython 110 Backup Your Code 110 Moving Circuit Playground Express to MakeCode 110 Moving to Arduino 111 Troubleshooting 114 Always Run the Latest Version of CircuitPython and Libraries 114 I have to continue using CircuitPython 5.x, 4.x, 3.x or 2.x, where can I find compatible libraries? 114 CPLAYBOOT, TRINKETBOOT, FEATHERBOOT, or GEMMABOOT Drive Not Present 114 You may have a different board. 115 MakeCode 115 MacOS 115 Windows 10 115 Windows 7 or 8.1 115 Windows Explorer Locks Up When Accessing boardnameBOOT Drive 116 Copying UF2 to boardnameBOOT Drive Hangs at 0% Copied 117 CIRCUITPY Drive Does Not Appear 117 Device Errors or Problems on Windows 117 © Adafruit Industries https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51 Page 4 of 228 Serial Console in Mu Not Displaying Anything 118 CircuitPython RGB Status Light 118 ValueError: Incompatible .mpy file. 119 CIRCUITPY Drive Issues 120 Easiest Way: Use storage.erase_filesystem() 120 Old Way: For the Circuit Playground Express, Feather M0 Express, and Metro M0 Express: 120 Old Way: For Non-Express Boards with a UF2 bootloader (Gemma M0, Trinket M0): 122 Old Way: For non-Express Boards without a UF2 bootloader (Feather M0 Basic Proto, Feather Adalogger, Arduino Zero): 122 Running Out of File Space on Non-Express Boards 123 Delete something! 123 Use tabs 123 MacOS loves to add extra files. 123 Prevent & Remove MacOS Hidden Files 124 Copy Files on MacOS Without Creating Hidden Files 124 Other MacOS Space-Saving Tips 125 Device locked up or boot looping 126 CircuitPython Essentials 128 CircuitPython Pins and Modules 129 CircuitPython Pins 129 import board 129 I2C, SPI, and UART 130 What Are All the Available Names? 131 Microcontroller Pin Names 132 CircuitPython Built-In Modules 133 CircuitPython Built-Ins 134 Thing That Are Built In and Work 134 Flow Control 134 Math 134 Tuples, Lists, Arrays, and Dictionaries 134 Classes, Objects and Functions 134 Lambdas 134 Random Numbers 135 CircuitPython Digital In & Out 136 Find the pins! 137 Read the Docs 139 CircuitPython Analog In 140 Creating the analog input 140 get_voltage Helper 140 Main Loop 140 Changing It Up 141 Wire it up 141 Reading Analog Pin Values 144 CircuitPython Analog Out 145 Creating an analog output 145 Setting the analog output 145 Main Loop 145 Find the pin 146 CircuitPython PWM 150 PWM with Fixed Frequency 150 Create a PWM Output 151 Main Loop 151 © Adafruit Industries https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51 Page 5 of 228 PWM Output with Variable Frequency 152 Wire it up 153 Where's My PWM? 157 CircuitPython Servo 159 Servo Wiring 159 Standard Servo Code 162 Continuous Servo Code 162 CircuitPython Internal RGB LED 164 Create the LED 165 Brightness 165 Main Loop 165 Making Rainbows (Because Who Doesn't Love 'Em!) 166 Circuit Playground Express Rainbow 167 CircuitPython NeoPixel 169 Wiring It Up 169 The Code 170 Create the LED 171 NeoPixel Helpers 172 Main Loop 172 NeoPixel RGBW 172 Read the Docs 174 CircuitPython DotStar 175 Wire It Up 175 The Code 176 Create the LED 178 DotStar Helpers 179 Main Loop 179 Is it SPI? 180 Read the Docs 180 CircuitPython UART Serial 182 The Code 183 Wire It Up 184 Where's my UART? 187 Trinket M0: Create UART before I2C 188 CircuitPython I2C 190 Wire It Up 190 Find Your Sensor 193 I2C Sensor Data 194 Where's my I2C? 195 CircuitPython HID Keyboard and Mouse 197 CircuitPython Keyboard Emulator 197 Create the Objects and Variables 199 The Main Loop 199 CircuitPython Mouse Emulator 200 Create the Objects and Variables 202 CircuitPython HID Mouse Helpers 202 Main Loop 203 CircuitPython Storage 204 Logging the Temperature 206 CircuitPython CPU Temp 209 CircuitPython Expectations 210 Always Run the Latest Version of CircuitPython and Libraries 210 I have to continue using CircuitPython 3.x or 2.x, where can I find compatible libraries? 210 © Adafruit Industries https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51 Page 6 of 228 Switching Between CircuitPython and Arduino 210 The Difference Between Express And Non-Express Boards 211 Non-Express Boards: Gemma, Trinket, and QT Py 211 Small Disk Space 211 No Audio or NVM 211 Differences Between CircuitPython and MicroPython 211 Differences Between CircuitPython and Python 212 Python Libraries 212 Integers in CircuitPython 212 Floating Point Numbers and Digits of Precision for Floats in CircuitPython 212 Differences between MicroPython and Python 212 UF2 Bootloader Details 213 Entering Bootloader Mode 214 Using the Mass Storage Bootloader 216 Using the BOSSA Bootloader 217 Windows 7 Drivers 217 Verifying Serial Port in Device Manager 218 Running bossac on the command line 220 Using bossac Versions 1.7.0, 1.8 220 Using bossac Versions 1.9 or Later 220 Updating the bootloader 221 Getting Rid of Windows Pop-ups 222 Making your own UF2 223 Installing the bootloader on a fresh/bricked board 224 Downloads 225 Datasheets 225 Schematic & Fab Print 225 Pinout Diagram 226 © Adafruit Industries https://learn.adafruit.com/adafruit-feather-m4-express-atsamd51 Page 7 of 228 Overview It's what you've been waiting for, the Feather M4 Express featuring ATSAMD51. This Feather is fast like a swift, smart like an owl, strong like a ox-bird (it's half ox, half bird, OK?) This feather is powered by our new favorite chip, the ATSAMD51J19A - with its 120MHz Cortex M4 with floating point support and 512KB Flash and 192KB RAM.
Recommended publications
  • Application Program Interface Guide
    APPLICATION PROGRAM INTERFACE GUIDE VWS-2001, VWS-2002 V WS-2001 V WS-2002 API GUIDE 24/7 TECHNICAL SUPPORT AT 1.877.877.2269 OR VISIT BLACKBOX.COM RemoteRemote Command Command Line Line Status Configure Status Client connected Enabled Monitor Client authorized Settings… Client disconnected Client authorized “C:\Program Files (x86)\Wall Control\wallctl.exe”- Active Server Telnet Command Lin — — — OK Cancel Apply Help NEED HELP? LEAVE THE TECH TO US LIVE 24/7 TABLE OF CONTENTS TECHNICAL SUPPORT 1.877.877.2269 1. INTRODUCTION ............................................................................................................................................................................. 3 1.1 API Programs ................................................................................................................................................................................................................3 1.2 Nomenclature ...............................................................................................................................................................................................................3 2. LAYOUTS ........................................................................................................................................................................................ 4 2.1 Example Usage ............................................................................................................................................................................................................4
    [Show full text]
  • Types and Programming Languages by Benjamin C
    < Free Open Study > . .Types and Programming Languages by Benjamin C. Pierce ISBN:0262162091 The MIT Press © 2002 (623 pages) This thorough type-systems reference examines theory, pragmatics, implementation, and more Table of Contents Types and Programming Languages Preface Chapter 1 - Introduction Chapter 2 - Mathematical Preliminaries Part I - Untyped Systems Chapter 3 - Untyped Arithmetic Expressions Chapter 4 - An ML Implementation of Arithmetic Expressions Chapter 5 - The Untyped Lambda-Calculus Chapter 6 - Nameless Representation of Terms Chapter 7 - An ML Implementation of the Lambda-Calculus Part II - Simple Types Chapter 8 - Typed Arithmetic Expressions Chapter 9 - Simply Typed Lambda-Calculus Chapter 10 - An ML Implementation of Simple Types Chapter 11 - Simple Extensions Chapter 12 - Normalization Chapter 13 - References Chapter 14 - Exceptions Part III - Subtyping Chapter 15 - Subtyping Chapter 16 - Metatheory of Subtyping Chapter 17 - An ML Implementation of Subtyping Chapter 18 - Case Study: Imperative Objects Chapter 19 - Case Study: Featherweight Java Part IV - Recursive Types Chapter 20 - Recursive Types Chapter 21 - Metatheory of Recursive Types Part V - Polymorphism Chapter 22 - Type Reconstruction Chapter 23 - Universal Types Chapter 24 - Existential Types Chapter 25 - An ML Implementation of System F Chapter 26 - Bounded Quantification Chapter 27 - Case Study: Imperative Objects, Redux Chapter 28 - Metatheory of Bounded Quantification Part VI - Higher-Order Systems Chapter 29 - Type Operators and Kinding Chapter 30 - Higher-Order Polymorphism Chapter 31 - Higher-Order Subtyping Chapter 32 - Case Study: Purely Functional Objects Part VII - Appendices Appendix A - Solutions to Selected Exercises Appendix B - Notational Conventions References Index List of Figures < Free Open Study > < Free Open Study > Back Cover A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute.
    [Show full text]
  • 13-DUALOSS-MV Commercial Grade In-Wall Occupancy/Vacancy Sensor
    13-DUALOSS-MV Commercial Grade In-Wall Occupancy/Vacancy Sensor APPLICATIONS This Multi-Technology Wall Switch Sensor combine advanced passive infrared (PIR) and ultrasonic technologies into one unit. The combined technologies helps eliminate false triggering even in difficult applications. Selectable operating modes allow the sensor to turn a load on, and hold it on as long as either or both technologies detect occupancy . After no movement is detected for the selected time delay, the lights switch off. A "walk-through" mode can turn lights off after only 3 minutes, if no activity is detected after 30 seconds following an occupancy detection. This sensor also contains a light level sensor. If adequate daylight is present, the sensor holds the load OFF until light levels drop, even if the area is occupied. MODEL #: 13-DUALOSS-MV FEATURES • Integrated PIR and Ultrasonic sensor technology to detect very fine COVERAGE AREA motion and provide accurate motion sensing Top View • Allows to choose triggering when both technologies detect motion or when only PIR detects motion 20' • Less false trigger, fast ON/OFF; commercial grade sensor for closet, garage, hotels, meeting room, work places 10' • Adjustable timeout from 15 seconds to 30 minutes; Walk-Through mode: 3 minutes if no activity after first 30 seconds SPECIFICATIONS 10' • Voltage: 120/277VAC, 50/60Hz • Incandescent: 800W-120VAC, 50/60Hz • Fluorescent: 800VA-120VAC, 1600VA-277VAC, 50/60Hz 20' • Resistive: 800W-120VAC, 50/60Hz • Motor: 1/4 HP-120VAC, 50/60Hz • Adjustment Time Delay: 5 Sec to 30 Mins 5' • Walk-Through Mode: 3-minutes if no activity after 30 sec.
    [Show full text]
  • A High-Level Programming Language for Multimedia Streaming
    Liquidsoap: a High-Level Programming Language for Multimedia Streaming David Baelde1, Romain Beauxis2, and Samuel Mimram3 1 University of Minnesota, USA 2 Department of Mathematics, Tulane University, USA 3 CEA LIST – LMeASI, France Abstract. Generating multimedia streams, such as in a netradio, is a task which is complex and difficult to adapt to every users’ needs. We introduce a novel approach in order to achieve it, based on a dedi- cated high-level functional programming language, called Liquidsoap, for generating, manipulating and broadcasting multimedia streams. Unlike traditional approaches, which are based on configuration files or static graphical interfaces, it also allows the user to build complex and highly customized systems. This language is based on a model for streams and contains operators and constructions, which make it adapted to the gen- eration of streams. The interpreter of the language also ensures many properties concerning the good execution of the stream generation. The widespread adoption of broadband internet in the last decades has changed a lot our way of producing and consuming information. Classical devices from the analog era, such as television or radio broadcasting devices have been rapidly adapted to the digital world in order to benefit from the new technologies available. While analog devices were mostly based on hardware implementations, their digital counterparts often consist in software implementations, which po- tentially offers much more flexibility and modularity in their design. However, there is still much progress to be done to unleash this potential in many ar- eas where software implementations remain pretty much as hard-wired as their digital counterparts.
    [Show full text]
  • Managing Files with Sterling Connect:Direct File Agent 1.4.0.1
    Managing Files with Sterling Connect:Direct File Agent 1.4.0.1 IBM Contents Managing Files with Sterling Connect:Direct File Agent.......................................... 1 Sterling Connect:Direct File Agent Overview.............................................................................................. 1 How to Run Sterling Connect:Direct File Agent.......................................................................................... 2 Sterling Connect:Direct File Agent Logging.................................................................................................3 Sterling Connect:Direct File Agent Configuration Planning........................................................................ 3 Sterling Connect:Direct File Agent Worksheet ...........................................................................................4 Considerations for a Large Number of Watch Directories.......................................................................... 6 Modifying MaxFileSize............................................................................................................................ 6 Modifying MaxBackupIndex...................................................................................................................6 Considerations for a Large Number of Files in a Watch Directory..............................................................7 Sterling Connect:Direct File Agent Configuration Scenarios...................................................................... 7 Scenario:Detecting
    [Show full text]
  • The Sitcom | Arts & Entertainment in Spokane Valley, WA | Mainvest
    3/18/2021 Invest in Selling Seattle- The Sitcom | Arts & Entertainment in Spokane Valley, WA | Mainvest ls dashboard | Print to text | View investment opportunities on Mainvest Edit Profile Watch this investment opportunity Share Selling Seattle- The Sitcom Arts & Entertainment 17220 E Mansfield Ave Spokane Valley, WA 99016 Get directions Coming Soon View Website Profile Data Room Discussion This is a preview. It will become public when you start accepting investment. THE PITCH Selling Seattle- The Sitcom is seeking investment to produce one or two episodes. Generating Revenue This is a preview. It will become public when you start accepting investment. Early Investor Bonus: The investment multiple is increased to 20 for the next $200,000 invested. This is a preview. It will become public when you start accepting investment. SELLING SEATTLE IS? Play 0000 0107 Mute Settings Enter fullscreen Play Who or What is Michael? This is a preview. It will become public when you start accepting investment. OUR STORY "Selling Seattle" is a smart broad comedy in the vein of "Seinfeld" and "Arrested Development". We are working with the video production company North by Northwest to produce the pilot and the second episode in Spokane, Washington this spring. We plan to stream episodes on the internet with commercials in a thirty-minute format. With cash flow from the pilot and second episode we will produce four to six episodes this fall and at least twelve episodes next year. The money raised through Mainvest will be used to produce the first one or two episodes of Selling Seattle and for advertising costs, office expenses and an income for Jim McGuffin not to exceed $15,000 per episode.
    [Show full text]
  • Ugp-20G Of1 Classic Gas Range Installation and Owner's
    CLASSIC GAS RANGE (LPG & NG convertible) INSTALLATION UGP-20G OF1 AND OWNER’S MANUAL 20” (50.8 cm) SERIAL NUMBER: READ AND SAVE THESE INSTRUCTIONS AUG17V2 UNIQUE 20G CLASSIC MODEL OFF GRID GAS RANGE – LPG & NG CONVERTIBLE Installation and Owner’s Manual This manual contains information for: • Important Safeguards • Installation • Use and Care Certain ranges come equipped with special features. Determine from a study of your range which of the instructions given in this booklet pertain to your range. This booklet gives valuable instructions covering the installation, adjustment and use of your range. How to Obtain Service and/or Parts When your range does not operate in accordance with the instructions in the manual, you should contact the dealer in your immediate vicinity for service. Or, the purchaser may contact the service organization noted on the warranty. Important TO THE OWNER OF THE RANGE: Retain this owner’s manual for future reference. TO THE INSTALLER: Leave this owner’s manual with the range. Read and Save These Instructions The installation of the appliance must conform with local codes ANSI Z21.1b-2012, in the absence of local national Fuel Gas Code, ANSI Z233.1, and in Canada B149.2 Propane Storage and Handling Code MANUFACTURED AND CERTIFIED BY Unique Gas Products Ltd A child or adult can tip WARNING the range and be killed. Install the anti-tip device to the structure and/or the range. Verify the anti-tip device has been properly installed and engaged. Engage the range to the anti-tip device by ensuring the anti-tip device is re-engaged when the range is moved.
    [Show full text]
  • PS TEXT EDIT Reference Manual Is Designed to Give You a Complete Is About Overview of TEDIT
    Information Management Technology Library PS TEXT EDIT™ Reference Manual Abstract This manual describes PS TEXT EDIT, a multi-screen block mode text editor. It provides a complete overview of the product and instructions for using each command. Part Number 058059 Tandem Computers Incorporated Document History Edition Part Number Product Version OS Version Date First Edition 82550 A00 TEDIT B20 GUARDIAN 90 B20 October 1985 (Preliminary) Second Edition 82550 B00 TEDIT B30 GUARDIAN 90 B30 April 1986 Update 1 82242 TEDIT C00 GUARDIAN 90 C00 November 1987 Third Edition 058059 TEDIT C00 GUARDIAN 90 C00 July 1991 Note The second edition of this manual was reformatted in July 1991; no changes were made to the manual’s content at that time. New editions incorporate any updates issued since the previous edition. Copyright All rights reserved. No part of this document may be reproduced in any form, including photocopying or translation to another language, without the prior written consent of Tandem Computers Incorporated. Copyright 1991 Tandem Computers Incorporated. Contents What This Book Is About xvii Who Should Use This Book xvii How to Use This Book xvii Where to Go for More Information xix What’s New in This Update xx Section 1 Introduction to TEDIT What Is PS TEXT EDIT? 1-1 TEDIT Features 1-1 TEDIT Commands 1-2 Using TEDIT Commands 1-3 Terminals and TEDIT 1-3 Starting TEDIT 1-4 Section 2 TEDIT Topics Overview 2-1 Understanding Syntax 2-2 Note About the Examples in This Book 2-3 BALANCED-EXPRESSION 2-5 CHARACTER 2-9 058059 Tandem Computers
    [Show full text]
  • Unix for Newbies from Duane A
    Content borrowed and updated (with permission) Unix for Newbies from Duane A. Bailey’s guidelines from 2007. Getting help on unix: Some Tips To Make Your UNIX Life More Reasonable man <command-name>!!Get full description of command man -k <keyword>!! ! List command mentioning keyword in title 0. Walk away from the machine. If you’re not making progress, don’t waste time banging your head (literally or Logging in and out of a system: figuratively) against the machine. Save your files, print the buggy output, or logout!!!!Terminate session create a backup and walk away. Find someone to talk to about something else. Your exit!!!!Terminate current “shell” mind will work on the problem while you go get a snack and take a break. ssh <username>@<remote host>!Login securely as username to remote host 1. Read man pages. File Manipulation: Realize that you don’t know everything. Take the time to learn how man pages are emacs <file>!!!Edit a text file (See the emacs cheatsheet) structured and what they can teach you. You find answers to many questions on the mv <old> <new>!!!Move or rename <old> file as <new> file internet, but you learn even more by finding and reading the man pages. Better, rm <file(s)>!!!Delete file(s) from filesystem you learn elegant solutions to questions you didn’t think to ask. cp <orig> <duplicate>!!Copy <orig> to file named <duplicate> sftp <remote host>!!Secure batch file transfers between machines 2. Learn the emacs keystrokes. scp host:<orig> host:<dub>!Securely transfer files between machines It will save you time when you work on a machine whose mouse or arrow keys aren’t cat <file>!!!Display or catenate file contents to screen working, and the keystrokes often work in other editors.
    [Show full text]
  • Programming Language Features for Refinement
    Programming Language Features for Refinement Jason Koenig K. Rustan M. Leino Stanford University Microsoft Research [email protected] [email protected] Algorithmic and data refinement are well studied topics that provide a mathematically rigorous ap- proach to gradually introducing details in the implementation of software. Program refinements are performed in the context of some programming language, but mainstream languages lack features for recording the sequence of refinement steps in the program text. To experiment with the combination of refinement, automated verification, and language design, refinement features have been added to the verification-aware programming language Dafny. This paper describes those features and reflects on some initial usage thereof. 0. Introduction Two major problems faced by software engineers are the development of software and the maintenance of software. In addition to fixing bugs, maintenance involves adapting the software to new or previously underappreciated scenarios, for example, using new APIs, supporting new hardware, or improving the performance. Software version control systems track the history of software changes, but older versions typically do not play any significant role in understanding or evolving the software further. For exam- ple, when a simple but inefficient data structure is replaced by a more efficient one, the program edits are destructive. Consequently, understanding the new code may be significantly more difficult than un- derstanding the initial version, because the source code will only show how the more complicated data structure is used. The initial development of the software may proceed in a similar way, whereby a software engi- neer first implements the basic functionality and then extends it with additional functionality or more advanced behaviors.
    [Show full text]
  • Agenda Planning Commission Virtual/Electronic Regular Meeting
    AGENDA PLANNING COMMISSION VIRTUAL/ELECTRONIC REGULAR MEETING Thursday, June 3, 2021 Held Remotely on Zoom 7:00 p.m. https://us02web.zoom.us/j/81758727894?pwd=VkVXblhNYlIwOVdYOFRyNTRWSzNNUT09 Passcode: 685842 In an effort to curtail the spread of the COVID-19 virus, the Planning Commission meeting will take place online using the Zoom platform and the public will not be allowed to attend in-person. You may watch a live feed of the meeting online; join the meeting via Zoom Webinar; or listen to the meeting over the telephone. The Planning Commission is providing opportunities for public comment by submitting written comment or calling into the meeting to provide oral public comment. To provide oral public comment you must sign-up by 6:30 p.m. the night of the meeting. Please see the information listed below to access all of these options: Click here to watch live streaming video of the Meeting on shorelinewa.gov Attend the Meeting via Zoom Webinar: https://us02web.zoom.us/j/81758727894?pwd=VkVXblhNYlIwOVdYOFRyNTRWSzNNUT09 Passcode: 685842 Call into the Live Meeting: (253) 215-8782 - Webinar ID: 817 5872 7894 Click Here to Sign-Up to Provide Oral Testimony Pre-registration is required by 6:30 p.m. the night of the meeting. Click Here to Submit Written Public Comment Written comments will be presented to Council and posted to the website if received by 4:00 p.m. the night of the meeting; otherwise they will be sent and posted the next day. Estimated Time 1. CALL TO ORDER 7:00 2. ROLL CALL 7:01 3.
    [Show full text]
  • Command $Line; Done
    http://xkcd.com/208/ >0 TGCAGGTATATCTATTAGCAGGTTTAATTTTGCCTGCACTTGGTTGGGTACATTATTTTAAGTGTATTTGACAAG >1 TGCAGGTTGTTGTTACTCAGGTCCAGTTCTCTGAGACTGGAGGACTGGGAGCTGAGAACTGAGGACAGAGCTTCA >2 TGCAGGGCCGGTCCAAGGCTGCATGAGGCCTGGGGCAGAATCTGACCTAGGGGCCCCTCTTGCTGCTAAAACCAT >3 TGCAGGATCTGCTGCACCATTAACCAGACAGAAATGGCAGTTTTATACAAGTTATTATTCTAATTCAATAGCTGA >4 TGCAGGGGTCAAATACAGCTGTCAAAGCCAGACTTTGAGCACTGCTAGCTGGCTGCAACACCTGCACTTAACCTC cat seqs.fa PIPE grep ACGT TGCAGGTATATCTATTAGCAGGTTTAATTTTGCCTGCACTTGGTTGGGTACATTATTTTAAGTGTATTTGACAAG >1 TGCAGGTTGTTGTTACTCAGGTCCAGTTCTCTGAGACTGGAGGACTGGGAGCTGAGAACTGAGGACAGAGCTTCA >2 TGCAGGGCCGGTCCAAGGCTGCATGAGGCCTGGGGCAGAATCTGACCTAGGGGCCCCTCTTGCTGCTAAAACCAT >3 TGCAGGATCTGCTGCACCATTAACCAGACAGAAATGGCAGTTTTATACAAGTTATTATTCTAATTCAATAGCTGA >4 TGCAGGGGTCAAATACAGCTGTCAAAGCCAGACTTTGAGCACTGCTAGCTGGCTGCAACACCTGCACTTAACCTC cat seqs.fa Does PIPE “>0” grep ACGT contain “ACGT”? Yes? No? Output NULL >1 TGCAGGTTGTTGTTACTCAGGTCCAGTTCTCTGAGACTGGAGGACTGGGAGCTGAGAACTGAGGACAGAGCTTCA >2 TGCAGGGCCGGTCCAAGGCTGCATGAGGCCTGGGGCAGAATCTGACCTAGGGGCCCCTCTTGCTGCTAAAACCAT >3 TGCAGGATCTGCTGCACCATTAACCAGACAGAAATGGCAGTTTTATACAAGTTATTATTCTAATTCAATAGCTGA >4 TGCAGGGGTCAAATACAGCTGTCAAAGCCAGACTTTGAGCACTGCTAGCTGGCTGCAACACCTGCACTTAACCTC cat seqs.fa Does PIPE “TGCAGGTATATCTATTAGCAGGTTTAATTTTGCCTGCACTTG...G” grep ACGT contain “ACGT”? Yes? No? Output NULL TGCAGGTTGTTGTTACTCAGGTCCAGTTCTCTGAGACTGGAGGACTGGGAGCTGAGAACTGAGGACAGAGCTTCA >2 TGCAGGGCCGGTCCAAGGCTGCATGAGGCCTGGGGCAGAATCTGACCTAGGGGCCCCTCTTGCTGCTAAAACCAT >3 TGCAGGATCTGCTGCACCATTAACCAGACAGAAATGGCAGTTTTATACAAGTTATTATTCTAATTCAATAGCTGA
    [Show full text]