Daily Driver Tools & Frameworks

Mechanical CAD

  • OpenSCAD
  • CADQuery
  • FreeCAD

EDA & Electronics

  • ngspice
  • LTSpice
  • KiCad
  • kikit
  • OpenEMS
  • Ansys
  • Skidl
  • Atopile

Visuals

  • Inkscape
  • Gimp
  • OpenSCAD
  • FreeCAD
  • LibreOffice Draw
  • mermaid

Documentation

  • Jupyter Notebook
  • Marker
  • TexStudio
  • LaTex
  • Pandoc
  • doxygen

Business Software

  • GnuCash
  • Zoho CRM

Web

  • Digital Ocean
  • Django
    • Django-Oscar
    • Cookiecutter-Django
  • Hugo
    • Docsy

Embedded

  • FreeRTOS
  • Zeyphr
  • Vivado / Vitis
  • Verilator

Tools / Assorted

  • Ranger
  • vim
  • Eclipse
  • pulseview / sigrok
  • docker
  • act
  • conda

Languages & Scripting

  • Python whenever I can
  • C++ when it’s serious
  • Verilog when it’s fast
  • Matlab/Octave when it’s needed
  • Go for my websites that aren’t Django
  • Ladder logic but only in times of distress
  • Latex to make nice pdfs
  • make for every build I can
  • cmake for whenever the makefile gets too complicated

Some Books

  • Pattern Language — Christopher Alexander
  • A Timeless Way of Building — Christopher Alexander
  • Design of Everyday Things — Don Norman
  • Making It — Chris Lefteri
  • Manufacturing Processes for Design Professionals — Rob Thompson
  • Art of Electronics — Horowitz & Hill
  • Building Electro-Optical Systems — Phil Hobbs
  • Printed Circuits Handbook — Clyde F. Coombs
  • Test-Driven Development for Embedded C - James Grenning
  • Hacking the Xbox — Andrew Huang
  • Refactoring — Martin Fowler
  • Clean Architecture — Robert C. Martin
  • Unix & Linux System Administrators Handbook — Evi Nemeth et al.
  • Machinery’s Handbook — Oberg et al.
  • Mechanisms and Mechanical Devices Sourcebook — Neil Sclater
  • Theory and Application of Digital Signal Processing — Lawrence R. Rabiner
  • Signals and Systems — Alan V. Oppenheim et al.
  • Physics: A Student Companion - Lowry Kirkby
  • The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors - Joseph Yiu (Not a page turner but an occasional life saver)
  • McMaster-Carr Magazine
  • NASA Systems Engineering Handbook: PDF Link

Hills I’ll Die On

  1. Math is the first design step
    • If you can’t math it, you can’t build it.
  2. Every design starts with a value proposition.
    • What does it do, and why is that worth building?
  3. Factor the system design early and often.
    • Don’t let coupling seep in without thinking about it
  4. Standardization enables network effects
    • Modular, standards-compliant designs scale well
  5. Using common standard components makes you more agile. This applies to electronic hardware, mechanics, and software.
  6. Reuse design elements
    • Form ecosystems where parts work together. You can start a project with work already completed.
  7. Design for reuse
    • Avoid over specializing a design where you can.
  8. Follow standards when possible.
    • It enables collaboration with people you’ve never met.
  9. Tooling should be done early and often.
    • Panic costs more time, schedule, and brain cells.
  10. Test jigs accelerate development.
    • You’re not going fast without them — you’re gambling.
  11. Test driven design is useful at every layer of a product
    • Software, hardware, interfaces — test-first thinking reveals design flaws early.
  12. Design for testability
    • If you can’t verify it, you can’t ship it — and you definitely can’t maintain it.
  13. Difficult & low value tasks should be off-loaded to move fast.
    • Hire, outsource, or automate.
  14. Tools with good ecosystems prevent stalls.
    • These are often open source. Invest time learning them — it pays back.
  15. Software should be composable
    • Favor systems you don’t have to write or maintain but don’t get hemmed in. Open-source is a win here.
  16. Everything is in version control
  17. Prototype the hard part first
  18. Cheap iterations make hardware easier
    • Thoughtful planning makes iterations cheaper and faster
  19. Measure important sections in at least two different ways.
    • If the design and two measurements agree then it’s probably right, one measurement is subject to confirmation bias.
  20. Cross-check Calculations
    • There should always be a way to check the results — always sanity check.
  21. Check every rail with an oscilloscope
    • Even 3.3
  22. The cheap component should blow up first.
    • Protect expensive parts by design.
  23. Tweaked high-end older instruments beat low-grade new ones.
  24. Every design needs an interface description.
    • Put it on the label, the silkscreen, or in the schematic — ideally all three.
  25. Plugging things in wrong should always be undoable
    • Mistakes will happen at the worst time
  26. Labels are better documentation then a manual
    • Put essential info where the user needs it most: on the product itself.
  27. Document from day one.
    • The design goals and value proposition should evolve into the user manual.
  28. One specialty part can make a product cutting edge.
    • More than three is usually a support nightmare (unless it’s a one-off proof of concept).
  29. Custom parts are always a trade-off
    • Consider total cost — not just price, but risk, lead time, and support complexity.
  30. Customization should be clustered on as few sections as possible
    • Customized pieces should remain easy to customize
  31. Order more than you need.
    • The unit cost is almost always lower than the time loss of reordering.
  32. Always have a second unit ready for when the primary device breaks
  33. There needs to be an acknowledged project manager.
    • Even if they’re not called that. Someone has to manage scope, time, and communication.
  34. Find ways to pay to reduce workload or gain schedule.
    • Have this as a contingency in the project plan
  35. Buy the book (if it’s a good one)
  36. 1 day of real research saves weeks of learning the hard way
  37. Teaching is the best way to learn.
    • Explaining it reveals what you don’t know — and what others do.

About Me

This is my personnel blog mostly focused on the various nonconfidential discoveries and tools made as a measurements system designer with ElectroOptical Innovations. We’re a small highly technical shop designing a wide breadth of challenging systems. Some of the products that we develop are available from Hobbs ElectroOptics. As part of my frustration

  • Electronic System Designer at ElectroOptical Innovations and Hobbs ElectroOptics. We specialize in designing high performance measurement systems that are manufacturable in the required schedule. If you have a project to discuss shoot me an email at [email protected].

    • Embedded development
    • Circuit design
    • Custom Photoreceivers, SiPMs, APDs, SPADs, PIN, etc.
    • Optical measurement test equipment
    • Sensitive measurement design
    • Low noise diode lasers
    • Cost effective, compact time domain refelectometers TDRs
    • Fire detection
    • CO2 Gas Sensing
    • Spectroscopy systems
    • Flow cytometry
    • Luminescence detection
    • Low noise amplfiers
    • Custom silicon PCB design
    • TOF and CWFM Lidar
  • Founder of TheJigsApp

    • Fast turn and simple design process bed of nails test jigs
    • Deliver your products faster by streamlining testing with the help of our mechanics and back-end electronics.
    • Fully custom bed of nails systems through a parameterized system.

Contact