In Module 1, we take you through the design flow we use here at Freaklabs to take devices from idea to prototype to deployment. We also introduce the basic hardware and software blocks common to most devices, their terminology, what they do, and how they all interact.
- 1.1: Understand the Design Flow
- 1.2.1: Understand the full design stack: Hardware
- 1.2.2: Understand the full design stack: Memory power
- 1.3: Understand the full design stack: Software
Click here for supporting materials – video slides, terminology sheet, downloads and reference links
1.1 The Design Flow
In this video we cover:
- basic overview of the hardware design process
- the idea and requirements gathering
- proof of concept
- core requirements and functionality
- assembling and testing hardware
- writing core functionality code
- prototype
- adding additional functionality and optimisations
- enclosures and mounting
- pilot
- test environments
- deployment
- streamlining procurement and assembly process
- establishing test process
- repair kits
- training
- ongoing development and maintenance
- troubleshooting
- feature wish list for next iteration
1.1 – Hardware Design Flow slides (PDF)
1.2.1 Full Design Stack – Hardware
In this video we cover:
- a basic overview of the layers that make up an embedded device:
- physical hardware + embedded software + application software
- hardware peripherals and accessories
- circuit boards – CPU, memory, power
- ports and interfaces
- input / output (I/O) pins, and analogue versus digital pins
- Block diagrams
- Microcontrollers versus microprocessors
- Central Processing Unit
1.2.1 – Full Design Stack – Hardware slides (PDF)
1.2.2 Full Design Stack – Memory & Power
In this video we cover:
- different types of memory
- RAM
- Flash
- Memory considerations when deploying devices
- determining power consumption
- what current is
- measuring current
- power saving tips
- what battery voltage is
1.2.2 – Full Design Stack – Memory & Power slides (PDF)
1.3 Full Design Stack – Software
In this video we cover
- embedded software
- what a driver is
- what a library is
- how they interact with the hardware and our application
- our application software
- how it interacts with the libraries, drivers and hardware
- why we’re using the command line to start programming
1.3 – Full Design Stack – Software slides (PDF)
Supporting Materials
Terminology Sheet
Module 1 Terminology Cheatsheet (PDF)
Video Slides
1.1 – Hardware Design Flow slides (PDF)
1.2.1 – Full Design Stack – Hardware slides (PDF)
1.2.2 – Full Design Stack – Memory & Power slides (PDF)
1.3 – Full Design Stack – Software slides (PDF)
Conversations & Troubleshooting
Module 1 Discussion (forum)
Live Event: Office Hours (video)