280: Reginald P. Theodore Johnson

Chris (@stoneymonster) and Elecia (@logicalelegance) talk about design patterns, conferences, and Molotov cocktails.

Wrapper /  Decorator  / Facade

Observer aka subscriber/publisher (caveat)

Delegation and Dependency Injection

Model View Controller (very important if somewhat dated UI pattern)

PyFlakes is a static Python checker

KiCAD Conference is in Chicago on April 26-27, 2019

BangBangConWest 2019 is over but the videos will be up soon including the one Elecia noted about liking things (which was done by Lynn Cyrin).

Embedded.fm Patreon

162: I Am a Boomerang Enthusiast (Repeat)

Valve's Alan Yates (@vk2zay) spoke with us about the science and technology of virtual reality. 

Elecia looked at the iFixIt Teardown of the HTC Vive system as she was unwilling to take apart Christopher's system. 

Alan shared some of his other favorite reverse engineering efforts: Doc OK’s Lighthouse videos, documentation on github by nairol, and a blog by Trammell Hudson.

Alan's sensor circuit diagrams were on twitter: SparkleTree sensor circuit (think simplified) and the closer-to-production Lighthouse sensor.

Make Magazine talked about Valve's R&D Lab. This is important in case you want to work at Valve (they are currently hiring for EE but if that doesn't describe you and you want to work there, apply anyway).

Alan also has a website (vk2zay.net) though it doesn't see much updating right now.

 

279: Top Pedant

Patrick Yeon (@patyeon) spoke with us about nonprofit spaceships then asked our opinions about embedded software.

Pat is working for something something nonprofit space something something. To fill in some of the blanks, apply for a job on NonprofitSpaceship.org.

Pat was previously on episode 153: Space Nerf Gun when we talked about cost-optimized satellites.

We talked about several books:

Elecia’s command code is on github.


278: Bricks’ Batteries Last Forever

Matthew Liberty (@mliberty1) shared good advice for lowering power. We talk about different ways to measure current (Matt has a nice write-up) and things software can do to decrease power consumption.

Sleeping is critical, of course, as is choosing your clock speed and setting the GPIOs to good states. Everything is fine until you start getting into the microamps, then your multimeter measurements may start to fail you. (EEvblog explains why in his uCurrent intro.)

Eventually, you may want to measure nanoamp sleep states along with amp-consuming wake states. Matt’s Joulescope is a tool to do just that (Kickstarter goes live Feb 19, 2019!), automatically moving between 9 orders of magnitude of dynamic range and graphing the results on your computer.

Matthew’s consulting company is JetPerch.

We mentioned Colin O’Flynn’s ChipWhisperer which uses differential power analysis for security attacks. We also talked about Jacob Beningo’s post on protecting your tools.

Elecia is giving away a chapter of her O’Reilly book, Making Embedded Systems. It is Chapter 10: Reducing Power Consumption. Hit the contact link if you want a copy.


277: The Sport of Kings

Jie Qi (@qijie) spoke with us about making paper-based electronics (@Chibitronics) and learning about patent law (via @Patentpandas).

Jie Qi is the founder of Chibitronics, a crafting electronics platform that uses paper and stickers to create (and teach) circuits. Building the company and working on electronics-filled pop-up books led to the realization that patent law does apply to open source maker-type companies. She started PatentPandas.org to share what she’s learned.

Jie is not the only one who has had issues with big companies patenting their open source work. We mentioned Jarek Duda and his fight to keep his compression algorithm unburdened by patents.

If you are having or wondering about having an issue, Patent Pandas is intended to be an amusing and gentle introduction. If you are looking for prior art, you can look at the Prior Art Archive and Patents.StackExchange. (If you have some free time, there are often requests to find prior art.)

If you are a maker wanting to ensure that your work has dated prior art, submit it to the Wayback machine (Archive.org).

276: Playing a Song on a Potato

Jesse Rutherford (@BentTronics) gave us an in-depth look at the 555 timer IC (wiki).

Jesse runs Bent-tronics.com and wrote The Ultimate Beginner's Guide to the 555 Timer (Amazon).

Some great 555 projects:

Somehow, despite it being in the plan, we didn’t mention the Evil Mad Scientist The Three Fives Kit: A Discrete 555 Timer which builds a 555 Timer out of discrete parts. If only the creator would come on to talk about it and his other cool projects. Note that EMS also has a great description of how the 555 timer works.

The giveaway is Jesse’s book and the components to build the projects in his book.

275: Don’t Do What the Computer Tells You

Janelle Shane (@JanelleCShane) shared truly weird responses from AIs. Her website is AIWeirdness.com where you can find machine-learning-generated ideas for paint colors, ice cream, and cocktails (and many other things). We never said they were good ideas.

Janelle’s FAQ will help you get started trying out RNNs yourself. We recommend the Embedded show titles.

We talked about BigGAN which generates pictures based on input images.

Wikipedia list of animals by number of neurons

Janelle’s upcoming book is You Look Like a Thing and I Love You. Sign up for her newsletter to be the first to order it (as well as getting the PG-13 versions of her hilarious AI outputs).


274: Swiss Knife of Embedded Systems

Ivan Kravets (@ikravets)  spoke with us about PlatformIO (@PlatformIO_Org), IDEs, embedded libraries, and RISC-V.

PlatformIO is an editor, an integrated development environment with debugging and unit testing, and/or a library index. Its goal is to make embedded development easier and more consistent across host operating systems and development hardware. It is also a .org because the goal is to make all of this open source and free to engineers.

Ivan Kravets is the founder of PlatformIO.org. Personal site, Github, LinkedIn, and a neat interview. He recommends seeing the Dnieper River if you are in his area.

Ivan recently attended the RISC-V Summit. RISC-V is an open source processor core (like ARM but open source). SiFive was mentioned as one of the RISC-V processor vendors. RISC-V is being used extensively in research. Western Digital is planning to develop RISC-V based controllers. And MIPS recently joined RISC-V.


273: Off the Topic of My Jammies

Chris and Elecia chat with each other about the new year. All is fine until she starts quizzing him about some language details of his new project.

Many object-oriented resources suggest using composition (has-a) over inheritance (is-a-type-of) (wiki). Where do swift extensions fit in? It seems to me (Elecia here) that extension is invisible composition that allows adding of functions.

For example, say you want a TiltSensor and you already have an ImuSensor object so  you need to add a function for TiltComputation.

You could make the TiltSensor contain an ImuSensor (composition). You call the ImuSensor functions to check the readings when running TiltComputation function. You don’t need to know what is in ImuSensor, only what the API is.

You could have TiltSensor be a child class of ImuSensor (inheritance) so that TiltSensor responds to all ImuSensor functions as well as its new TiltComputation function. You could use the variables in ImuSensor directly for TiltCompulation but you will need to know what is in ImuSensor for that to work.

Or, in Swift, you could have TiltSensor be an extension of ImuSensor. Except it wouldn’t be called TiltSensor, it would be part of ImuSensor: any file that had access to your extensions would be able to create an ImuSensor instance and call TiltComputation as if it was part of the original ImuSensor API. The TiltComputation function would only have access to its extension’s variables and ImuSensor’s API. You get to add new functionality without breaking backward compatibility.

Some more resources on this topic:

Swift Programming: The Big Nerd Ranch Guide by Matthew Mathias and John Gallagher

iOS Programming: The Big Nerd Ranch Guide by Christian Keur and Aaron Hillegass

LinkedIn Learning Courses

Blender Beta with EEVEE renderer

The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin

Code Complete: A Practical Handbook of Software Construction by Steve McConnell

Gelly Roll Glitter Pens (by Sakura)

Google Podcast Link (or see the Subscribe page)

272: Stick ‘Em on Whales

Chris Gammell (@Chris_Gammell) of The Amp Hour (@TheAmpHour) joined us to talk about the state of the industry, listeners, guests, and life in general.

Embedded’s accounting episode (150: Sad Country Song)

Contextual Electronics Consulting forum (requires you to apply)

Remote work

250: Yolo Snarf

Excellent video on how prototype PCBs have improved over the years

Quickly falling cost of dev boards

Elecia worked on learning and building robots and happily got a related job

Chris W is building IOS apps

Object oriented

Prototype to Product: A Practical Guide for Getting to Market by Alan Cohen (Emebdded.fm interview)

CircuitPython

Visual Basic as a prototyping language

ESP32 and EXP8266 longevity and use in products

WiFi provisioning

Electric Imp, Particle.io

Azure IoT Hub, AWS IoT, Google Cloud Iot, Ubidots, and IoT App Story (the one Chris G remembered later)

Wallet.fail

Anki Vector robot

Genuine People Personality (from Hitchhiker's Guide to the Galaxy)

Genuine people personalities are coming to our gadgets (ArsTechnica)

LoRA and chuckable sensors

LoRaWAN and ARM Mbed OS

Telepresence and mirroring others

The Amp Hour ToorCamp episodes

Sourdough (a novel about robotics and AI) and Embedded’s interview with the author

Energy and Civilization: A History by Vaclav Smil

Jeri Ellsworth spoke about the demise of CarstAR in The Amp Hour 394

The Stone Monsters music products

Llama and the IoT zines

Related Oatmeal comic


Supporting Embedded Patreon leads to a link to their slack channel, mentioned in this show. Supporting The Amp Hour Patreon is also a great idea.

271: Shell Scripts for the Soul

Alex Glow (@glowascii) filled our heads with project ideas.

Alex is the Resident Hardware Nerd at Hackster.io. Her page is glowascii and you might want to see Archimedes the AI robot owl and the Hardware 101 channel. They have many sponsored contests including BadgeLove.

Lightning round led us to many possibles:

There were more software and hardware kits to explore:

For your amusement Floppotron plays Bohemian Rhapsody

Alex gave a shout out to her first hackerspace All Hands Active

Ableton is audio workstation and sequencer software. Alex recommends Women’s Audio Mission as a good way to learn audio production and recording if you are in the San Francisco area.

There is an Interplanetary File System and Alex worked on a portable printer console for it.

Elecia is always willing to talk about Ty the typing robot and/or narwhals teaching Bayes Rule. She recommended the book There Are No Electrons: Electronics for Earthlings by Kenn Amdahl.


270: Broccoli Is Good Too

James Grenning (@jwgrenning) joined us to talk about Test Driven Development, dealing with legacy code, and cleaning out very large pipes.

James is the author of Test Driven Development for Embedded C. If you want to take his live online course, check out the remote delivered TDD classes on Wingman Software. His blog has many great articles including TDD How-to: Get Your Legacy C into a Test Harness and TDD Guided by ZOMBIES.

Book: Working Effectively with Legacy Code by Michael Feathers

James mentioned Given-When-Then, a testing design pattern (brief intro). Kent Beck also wrote about test && commit || revert style testing.

James and Bob Martin present IoT implementation strategies in a series of videos on Clean Coders. James mentioned working with a Synapse Wireless radio.

269: Ultra-Precise Death Ray

Alan Cohen (@proto2product) wrote a great book about taking an idea and making it into a product. We spoke with him about the development process and the eleven deadly sins of product development. We did not talk about ultra-precise death rays.

Books we discussed:

Alan mentioned writing software graphically with Enterprise Architect


164: Heatsink in a Shoebox (Repeat)

Christopher White resurrects an Apple ][+ with his brother Matthew White. This is a show about the software Christopher and Matthew wrote when they were kids and the hardware they wrote it on.

Matthew's favorite fictional robot (we should have asked): Venus Probe from Six Million Dollar Man. We did ask about his favorite fictional computer and there is a video for that too.

Apple ][+ Wiki

Timex Sinclair Z81 Wiki

 Eric Schlaepfer's Monster 6502

Grant's 6502 Computer

Kerbal Space Program for the Apple ][

Elecia got to $42 in Lemonade Stand by the end of the show

Matthew's Nebula Wars and Eye of Eternal Death BASIC games circa 1982 and 1981 respectively.

If you feel like it, you can try out an Apple ][ in your web browser, with tons of disks available at the Internet Archive or in a Javascript Emulator.

Elecia's book is Making Embedded Systems.

268: Cakepan Interferometry

After many bouts of lightning round, we finally got our lightning questions answered by Eric Brunning (@deeplycloudy). Eric is a Professor of Atmospheric Sciences at Texas Tech University specializing in storm electrification and lightning .

You can hear some of Eric’s field adventures by listening to his episode of the Don’t Panic Geocast show.

The Wikipedia page for lightning will lead you down many strange pathways. Though the Wikipedia Lightning Energy Harvesting page may convince you that it isn’t feasible (though some math might as well, as discussed on this show).

For more about lightning interferometry, check out Michael Stock’s in-depth site.

You can hear lightning on Jupiter if you listen to the right bands.

Neat video of the Milky Way in radio waves reflecting off the moon

Elecia really enjoyed The Cloudspotter’s Guide by Gavin Pretor-Pinney.

267: Cute and Squishy

Lindsey Kuper (@lindsey) spoke with us about !!Con West, being a new professor, and reading technical journals.

The call for speakers for !!Con West is open until November 30, 2018. The conference will be in Santa Cruz, CA on February 23-24.

Lindsey’s blog is Composition.al and it has advice for !!Con proposals, advice for potential grad students, and updates on Lindsay’s work.

The Banana Slug is the UCSC mascot.

Time, Clocks, and the Ordering of Events in a Distributed System by Leslie Lamport, 1978

266: Drive off the End of the Universe

Chris (@stoneymonster) and Elecia (@logicalelegance) talk about conferences, simulations, and future episodes.

Simulation/Emulation: QEMU and Renode. Chris also noted there were QEMU for STM32 instances such as this one from beckus.

For conferences, we named several but had no particularly useful advice. We did recommend classes such as James Grenning’s training on TDD in Embedded Systems and Jack Ganssle’s Better Firmware Faster.

There are several (free) machine learning courses available from Udacity including Intro to Machine Learning which was part of the Self-Driving Car series that Elecia took.

The future basics episodes were grouped into:

  • Flow of program control (pre-RTOS)

  • Design patterns

  • RTOS information

264: Do It for the Herd

Chris Svec (@christophersvec) returns to chat about recruiting for embedded jobs and to help us answer listener questions. Also, he’s looking for engineers to join him at iRobot.

Want to get into embedded and don’t know how? We did a show about that: 211: 4 Weeks, 3 Days. Also, there is an EdX class that is popular and a Coursera course that may be useful.

You can meet up with Chris at Hackaday Supercon in Pasadena, CA on Nov 2-4.

Fulgurites are cooled lightning.

109: Resurrection of Extreme Programming (Repeat)

James Grenning (@jwgrenning) returns to discuss TDD, Agile, and web courses. 

James was on Embedded.fm episode 30: Eventually Lighting Strikes.

James' new company is Wingman Software.

His excellent book is TDD for Embedded C

James suggested Training From the Back of the Room! as resource to people looking to put together a class. He uses and recommends CyberDojo as a coding instruction tool.

Before Agile was Agile-for-business, it was Extreme Programming. James recommends Extreme Programming Explained.

James will be the keynote speaker at AgileDC in October.