288: You Got a Screen!

Christopher (@stoneymonster) and Elecia (@logicalelegance) discuss embedded systems education and project documentation.

Elecia wrote about her love of notebooks on the https://www.embedded.fm/blog-index.

yEd, for when you don’t have Visio. Asciiflow.com, for when you don’t have yEd (or you want to put diagrams in your comments)

We talked about many different documents and tried to note design vs implementation, product vs engineering vs user, and why we wanted them. We didn’t mention mechanical things because, ya know, software engineers. Some documentation we mentioned:

  • Product documentation

  • Schematics with block diagrams and comments. Also a GPIO to function spreadsheet.

  • UI flow when the system has a screens (Balsamiq for wireframe testing UIs)

  • SW spec and design doc: what do we plan to build and what are the tricky parts

  • SW configuration and SW developer docs: how to rebuild the computer that can build the code from scratch, also notes on debugging methodology

  • User manual: Usually not written by SW but may need SW’s patient input

  • Code comments: Functions and files get 5Ws: who, what, why, when, where, and how.

    • Who should call this?

    • What will its effect be? (“What will it do” but not in line by line detail!)

    • How does it work?

    • Why does it work this way?

    • When should it be called?

    • Where are its parameters? (“What” works here too but “where” is nice to remind you to check your memory assumptions.)

  • Repository checkin comments

  • Style guide (Such as Google’s or PEP)

  • Manufacturing docs and tests docs

Adafruit and Sparkfun both write good documentation, writing to users about how to use their code. Elecia likes Adafruit’s sensor library as a good set of code to review (including how much is in their docs vs their code).

187: Self-Driving Arm (Repeat)

Crossing machine intelligence, robotics, and medicine, Patrick Pilarski (@patrickpilarski) is working on smart prosthetic limbs.

Build your own learning robot references: Weka Data Mining Software in Java for getting to know your data, OpenIA Gym for understanding reinforcement learning algorithms, Robotis Servos for the robot (AX is the lower priced line), and five lines of code:

pred = numpy.dot(xt,w)                  
delta = r + gamma*numpy.dot(xtp1,w) - pred  
e = gamma*lamda*e + xt                  
w = w + alpha*delta*e                   
xt = xtp1                                   

Patrick even made us a file (with comments and everything!).

Once done, you can enter the Cybathlon. (Or check out a look at Cybathlon 2016 coverage.)

Machine Man by Max Barry

Snow Country by Bokushi Suzuki

Aimee Mullins and her many amazing legs (TED Talk)

Patrick is a professor at University of Alberta, though a lot more than that: he is the Canada Research Chair in Machine Intelligence for Rehabilitation at the University of Alberta, and Assistant Professor in the Division of Physical Medicine and Rehabilitation, and a principal investigator with both the Alberta Machine Intelligence Institute  (Amii) and the Reinforcement Learning and Artificial Intelligence Laboratory (RLAI). See his TED talk: Intelligent Artificial Limbs.

287: Joke With No Punchline

Kate Compton (@GalaxyKate) spoke with us about casual creators, Twitter bots done cheap and quick, and the creativity that is within each of us.

Kate’s website is galaxykate.com. Her Phd dissertation defense is interesting, see it on youtube.com. She is joining UCSC’s CROSS to do more work on casual creators and open source software. (We talked to Carlos Maltzan, the head of CROSS in 285: A Chicken Getting to the Other Side.)

Tracery is an open source story generator using a specific grammar. One example is at Kate’s BrightSpiral.com which creates a whole story every time you refresh.

You can use Tracery to make Twitter bots via CheapBotsDoneQuick.com. They are often text (@infinite_scream, @str_voyage, @DUNSONnDRAGGAN) or emoji based (@choochoobot, @infinitedeserts). However, Tracery and CBDQ  can be used to create SVG images (such as @softlandscapes).

Elecia’s text bot is @pajamaswithfeet. It tweets (usually) kind things you can (sometimes) say to other people (or yourself).


286: Twenty Cans of Gas

Colin O’Flynn (@colinoflynn) spoke with us about security research, power analysis, and hotdogs.

Colin’s company is NewAE and you can see his Introduction to Side-Channel Power Analysis video as an intro to his training course. Or you can buy your own ChipWhisperer and go through his extensive tutorials on the wiki pages.

ChipWhisperer on Hackaday

ColinOFlynn.com

Some FPGA resource mentioned:

285: A Chicken Getting to the Other Side

Carlos Maltzahn joined us to talk about graduate studies in open source software, research incubators, and how software development tools can be used to aid the reproduction of scientific results.

Carlos is the founder and director of the Center for Research in Open Source Software (CROSS). He is also an adjunct professor of computer science and engineering at UC Santa Cruz.

Some projects we spoke about:

  • Jeff LeFevre — Skyhook: using programmable storage in Ceph to make Postgres and other databases more scalable and elastic (skyhookdm.com)

  • Ivo Jimenez — Black Swan: using DevOps techniques and strategies to speed up the systems research delivery life cycle (falsifiable.us)

  • Kate Compton — Tracery2 and Chancery: using open source software to support artists and poets (tracery.io)

Carlos mentioned the wonderful notion of “being productively lost”.  He picked up the idea at a POSSE (Professors Open Source Software Experience).

284: Honking Big Asparagus

Ori Bernstein (@oribernstein) joined us to talk about the dielectric constants of foods, reflective energy steering, and smart microwaves. Elecia got a little silly.

Ori works at Level Hot Pantry for more about the smart microwave, check out his !!ConWest talk. Ori has a github and personal site.

283: Flippendo Is Kind of a Swirly

Jennifer Wang (@jenbuilds) spoke with us about machine learning, magic wands, and getting into hardware.

For more detail about her magic wand build, you can see Jen’s Hackaday SuperCon talk or her !!ConWest talk. The github repo is well documented with pointers to slides from her SuperCon talk and an HTML version of her Jupyter notebook.

Check out this good introduction to machine learning from scikit-learn. It was their choosing the right estimator infographic we were looking at. (Elecia has bookmarked this list of machine learning cheat sheets.)

Jennifer’s personal sites are jenbuilds.com and jewang.net. She recommends the Recurse Center and wrote a blog post on her experience there.

282: Tin Can Through a Wet Noodle

We spoke with Laughlin Barker of OpenROV (@OpenROV) about underwater drones, underwater navigation, underwater exploration of the Antarctic, and extraordinarily large (underwater) jellyfish.

Watch this video of a Trident ROV being eaten by a shark… yes, you get to see the inside of a shark.

S.E.E. Initiative: Science Exploration Education from National Geographic

Laughlin left us with a coupon code for the Trident ROV. Please remember to invite us along on your ROV’ing.

281: Tame Geek

Combining a love of engineering with a love of words, Jenny List (@Jenny_Alto) is a contributing editor at Hackaday (@Hackaday).

Jenny’s writing at Hackaday including Debunking the Drone Versus Plane Hysteria and Ooops, Did We Just Close An Airport Over a UFO Sighting?

Previously Jenny worked for Oxford English Press working on computational linguistics software. While there she wrote post about the word “hacker”.

Elecia has been secretly dreaming of being a lexicographer since reading Word by Word: The Secret Life of Dictionaries by Kory Stamper.

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.