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
- Math is the first design step
- If you can’t math it, you can’t build it.
- Every design starts with a value proposition.
- What does it do, and why is that worth building?
- Factor the system design early and often.
- Don’t let coupling seep in without thinking about it
- Standardization enables network effects
- Modular, standards-compliant designs scale well
- Using common standard components makes you more agile. This applies to electronic hardware, mechanics, and software.
- Reuse design elements
- Form ecosystems where parts work together. You can start a project with work already completed.
- Design for reuse
- Avoid over specializing a design where you can.
- Follow standards when possible.
- It enables collaboration with people you’ve never met.
- Tooling should be done early and often.
- Panic costs more time, schedule, and brain cells.
- Test jigs accelerate development.
- You’re not going fast without them — you’re gambling.
- Test driven design is useful at every layer of a product
- Software, hardware, interfaces — test-first thinking reveals design flaws early.
- Design for testability
- If you can’t verify it, you can’t ship it — and you definitely can’t maintain it.
- Difficult & low value tasks should be off-loaded to move fast.
- Hire, outsource, or automate.
- Tools with good ecosystems prevent stalls.
- These are often open source. Invest time learning them — it pays back.
- 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.
- Everything is in version control
- Prototype the hard part first
- Cheap iterations make hardware easier
- Thoughtful planning makes iterations cheaper and faster
- 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.
- Cross-check Calculations
- There should always be a way to check the results — always sanity check.
- Check every rail with an oscilloscope
- Even 3.3
- The cheap component should blow up first.
- Protect expensive parts by design.
- Tweaked high-end older instruments beat low-grade new ones.
- Every design needs an interface description.
- Put it on the label, the silkscreen, or in the schematic — ideally all three.
- Plugging things in wrong should always be undoable
- Mistakes will happen at the worst time
- Labels are better documentation then a manual
- Put essential info where the user needs it most: on the product itself.
- Document from day one.
- The design goals and value proposition should evolve into the user manual.
- 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).
- Custom parts are always a trade-off
- Consider total cost — not just price, but risk, lead time, and support complexity.
- Customization should be clustered on as few sections as possible
- Customized pieces should remain easy to customize
- Order more than you need.
- The unit cost is almost always lower than the time loss of reordering.
- Always have a second unit ready for when the primary device breaks
- There needs to be an acknowledged project manager.
- Even if they’re not called that. Someone has to manage scope, time, and communication.
- Find ways to pay to reduce workload or gain schedule.
- Have this as a contingency in the project plan
- Buy the book (if it’s a good one)
- 1 day of real research saves weeks of learning the hard way
- 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
- Shoot me an email: [email protected]
- If you’re in New York come to a Fat Cat Fab Lab open house! Meetup Link.