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).

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

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)

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

260: We Talked a Lot

Christopher (@stoneymonster) and Elecia (@logicalelegance) talks about vacations for learning and hobbies then answered listener questions.

Chris’ toys include the Prusa I3 Mk3 and the UAD Arrow.

Elecia likes Camille Fournier’s book, The Manager’s Path. She also got to plug her own book, Making Embedded Systems: Design Patterns for Great Software.

Pacific spiny lumpsucker ( Eumicrotremus orbis ) at the  Seymour Science Center

Pacific spiny lumpsucker (Eumicrotremus orbis) at the Seymour Science Center

256: Agglomeration

Chris (@stoneymonster) and Elecia (@logicalelegance) celebrate the 256th episode with a confusing lack of cupcakes.

IAmTheCalvary.org has an excellent Hippocratic Oath for Connected Medical Devices 

Make Magazine has some tips to tighten security on DIY IoT Projects.

Rockstar Language Specification (and FizzBuzz example) 

The C++ episode we discussed was #247 with Jason Turner.

Topics and Times:

00:00    Zero
00:27    Intro and cupcakes
03:09    Patreon and Slack
04:24    Transcripts, chapter markers?
07:48    Listener question:  ST HAL, Cube, SPL, Bare Metal?
14:22    Hippocratic Oath for Connected Medical Devices
19:32    Make magazine article on DIY IoT Security
22:36    NYC Embedded and Engineering Meetup?
23:42    C++: Expressiveness, optimization vs. good code
30:21    C++: Spec size vs. C#/Java
32:22    A question of parentheses leads to mild violence and ranting
35:43    Rockstar: The Language!
43:59    Wherein we "discuss" Rust for some reason, again.
46:45    Elecia's Projects in Python and JSON
50:18    Elecia's available for gigs!
50:50    Elecia's ML overview blog post
51:38    The end of Embedded
52:42    Wrap up
54:04    Winnie the Pooh continues...

 

 

 

248: I’m Not in Charge!

Chris (@stoneymonster) and Elecia (@logicalelegance) answer listener emails.

We did a show with Dennis Jackson about transitioning from software to embedded: 211: 4 Weeks, 3 Days

Chibios RTOS: MyNewt or Zephyr may be more worth your time.

Software tool: Beyond Compare for excellent differencing, including folder level

Other people answer STEAM vs STEM (in about the same way we did).

C++ standards for safety: NASA, ESA, JSF-AV rules, and Jason Turner’s C++ best practices.

Elecia played with Javascript to make a watchface for her Fitbit Versa

Chris got a Blackaddr Guitar Teensy Shield which uses the Teensy Audio Library to do amazing guitar effects via code.

Elecia’s Twitter bot is @pajamaswithfeet (Tracery code on cheapbotsdonequick.com)

Making Embedded Systems book

Embedded Patreon

 

238: My Brain Is My Toolbelt

Chris and Elecia answered some listener questions about dynamic memory and shared code. Then Elecia gave a presentation about ShotSpotter, the gunshot location system she worked on.

Elecia enjoyed The Woman Who Smashed Codes: A True Story of Love, Spies, and the Unlikely Heroine Who Outwitted America's Enemies by Jason Fagone.

Ben is the editor of HackSpace, a new magazine about making (and hacking). It's produced by Raspberry Pi, but it's technologically agnostic. The first issue is free online.

The ShotSpotter presentation was originally given with Sarah Newman at the 2008 Grace Hopper Celebration of women in computing.

233: Always the Wrong Way

Chris and Elecia chatted about listener emails, and other stuff and things.

Elecia wrote a book called Making Embedded Systems, if you want to see the chapter about interrupts and timers, hit the contact link on embedded.fm.

We also recommend our blog, Chris Svec wrote about the MSP430 from a microprocessor point of view (ESE101) and Andrei Chichak wrote about an ST processor with a more pragmatic and C focused view (Embedded Wednesdays).

You can support the podcast through Patreon.

Kalman filter explanation video with Pokemon

Ben Krasnow's Applied Science YouTube channel

Usbourne's books for teaching kids electronics and programming (the free '80s ones are near the bottom)

Formally verified microkernel: seL4 Microkernel

The first Pokemon games used every programming trick there is for optimization

STM bought Atollic and released TrueStudio Pro for free for STM parts

223: Gregorian Chants and Things

Christopher (@stoneymonster) and Elecia (@logicalelegance) chat about listener questions and things they’ve been up to.

A listener turned Chris on to Ray Wilson and his Music From Outer Space website on DIY analog synths and book Make: Analog Synthesizers. After collecting parts for a total DIY, he found and built a neat kit: Kastle Synth (as heard on the show) and has connected it to his Roland SE-02 Analog Synthesizer (on Amazon). BTW, his ham radio WSPR kit is the Ultimate 3 in case you are behind on hobbies. You can hear more about it in 197: Smell the Transistor.

Elecia has been working through Udacity’s Self-Driving Engineer nanodegree. She completed term 1 with its computer vision and machine learning and is on to term 2 with sensor fusion, localization, and control. She blissfully is unaware of the cost because she got to be an industry expert for the Intro to Self-Driving Cars course.

Listener Simon asked about non-fiction books. Elecia gets many of hers by looking at what is on discount at BookBub’s science section which lead to two books she highly recommends Spirals in Time (snail facts) and Tristan Gooley’s How to Read Water (beach explainer).

Chris has been reading Scott Wolley’s The Network: The Battle for the Airwaves and the Birth of the Communications Age and How Music Works by David Byrne.

Some show-related recommendations include Gretchen Bakke’s The Grid (hear Gretchen on episode 213: Electricity Doesn’t Behave Like an Apple) and Jimmy Soni’s Mind at Play (hear Jimmy on episode 221: Hiding in Plain Sight). She’s reading Tim O’Reilly’s WTF book about the future in anticipation of an upcoming episode. That's a good reminder: we, of course, also recommend Making Embedded Systems.

Zach asked about Michael Barr’s Embedded Software Training in a Box. Apologies if we weren’t specific enough, it would likely make a better blog post.

Also: $1 Microcontrollers! Joby Aviation! And Embedded.fm Patreon!

IMG_0050.JPG

 

 

199: Petri Dishes of Doom

Chris and Elecia answer listener questions about contracting (and consulting).

Reminders: T-shirts! Hat contest! Digilent contest announced in #197! It all ends around May 18th so get your entries in now!

The original discussion was on episode 4: Are We Not Lawyers?

Elecia's salary to rate conversion can be found as a Google spreadsheet

197: Smell the Transistor

Chris and Elecia talk with each other about science fiction, advertising, ham radios, debugging tools, and programming languages.

You can buy Embedded.fm t-shirts (US, also in Europe!) until May 18, 2017. You can always buy Elecia’s book: Making Embedded Systems. And don’t forget we have a Patreon if you’d like to support the show directly.

Some science fiction we mentioned: Seveneves by Neal Stephenson, Nightfall and Last Question by Isaac Asimov, and the All This Time video from Jonathan Coulton.

Digilent sent us goodies to review: one Analog Discovery 2 and two Digital Discovery units. So we did, though we didn't cover the high speed adapters and other nifty goodies. Check out Alvaro Prieto’s Troubleshooting tools HDDG talk for some additional information on the devices. For the giveaways, rules are in the show, hit the contact link to enter. Contest ends May 19th.

Chris has been doing low-power ham radio contacts (WSPR) using an Ultimate 3S kit from QRP Labs. We talked about WSPR some with Ron Sparks in episode 76: Entropy Is For Wimps

Make with Ada competition is back! It start May 15, 2017. We talked the 2016 competition with Fabien Chouteau in episode 158: Programming Is Too Difficult For Humans.

Elecia is still fighting with Ubuntu before she can build her robot typist with her NVidia Jetson TX2 board.

Philip Freidin sent in Stanford CS department’s reply to the lightning round question of “what language should you learn in the first college course?” Even better, he sent a link to a google spreadsheet showing how many schools answer the question.

Elecia was on the Jennylyn Show. (I’ll update with a link to the specific episode on YouTube when it is available.)

March Madness ended with PyBoard as the champion, more info on getting your winner’s hat soon.

191: What, Yogurt!?!

Chris (@stoneymonster) and Elecia (@logicalelegance) answer listener emails.

Get your entries in for March Micro Madness, the matches start very soon.

The short story Elecia finds most memorable is All Summer in a Day by Ray Bradbury.

We mentioned Procopio who teaches microcontrollers at the Monterrey Institute of Technology and Higher Education ITESM (site, wiki)

Hector sent up the IEEE Code of Ethics, a good high-level set of rules.

167: All Aliens Are Shiny

Chris and Elecia chat about Bayes Rule, aliens, bit-banging, VGA, and unit testing.

Elecia is working on A Narwhal's Guide to Bayes' Rule

ACM has a code of software engineering ethics

Toads have trackers (NPR story)

An introduction to bit-banging SPI (Arduino, WS2812)

We talked to James Grenning extensively about testing on 30: Eventually Lightning Strikes (and about his excellent book Test Driven Development for Embedded C). We spoke with James again on 109: Resurrection of Extreme Programming. We also talked about unit testing with Mark Vandervoord on 103: Tentacles of the Kraken.

A neat TED Talk involving octo-copters, still four short of dodecahedracopter.

Neat Z80 based very minimal computer kit

159: Flying Rainbow Children

Chris and Elecia talk to each other about compiler optimizations, bit banging I2C, listener emails, and small-town parades.

Games to learn/play with assembly languages include The Human Resource Machine by Tomorrow Corporation and TIS-100 by Zachtronics.

We've been enjoying the Embedded Thoughts blog. And Chris is reading Practical Electronics for Inventors and liking it. 

We talked a little about Interview.io's adventure in voice changing.

Shirts are gone for awhile. New logo stickers are available at StickerMule if you'd like to support and share the show. 

152: Dodecahedrocopter.com

Chris and Elecia chat about hobbies and respond to listener feedback and questions.

Chris was on an episode of Let's Drone Out, you can listen to it here or search in your favorite podcast platform. It is recorded and broadcast live every Thursday at 8 P.M. (UTC+1) on Powering On.

Chris' new quadcopter is a Vortex 285. It runs Clean Flight, an open source flight controller software package.

While we had various opinions about RTOSs, we were both interested in the one Alvaro suggested to us: Zephyr Project.

As for other embedded podcasts, of course you know about The Amp Hour. And we had Saron of CodeNewbie podcast on, that show is mostly software and people. How about Macrofab Engineering? Or O'Reilly's HW podcast?