Skip to content

Resources

Tools to Solve Complex Engineering Problem

  1. Clean Code / Gaphics
  2. Mob Programming
  3. Git / Github
  4. Modulization / Standard Connector

Software Engineering 🌐 🎬 💾 📚 📑

Mob Programming

mob

Mob Programming woodyzuill.com.

Mob Programming Example Youtube Video.

Agile Firmware and Hardware Design

Youtube Video

Embedded System

Design circuit boards with code

Design circuit boards with code! 
✨ Get software-like design reuse 🚀, 
validation, version control and 
collaboration in hardware; 
starting with electronics ⚡️

Design circuit boards with code!

No RTOS

ANTIRTOS

Yes RTOS

  1. FreeRTOS
  2. Zephyr
  3. RT-Thread

Raspberry Pi Documentation

Raspberry Pi Documentation

Bead Usage

errite-beads-common-applications-and-considerations

Fast Serial IO Serdes-LVDS

Fast Serial IO

High Speed PCB Design

High Speed PCB Design

FPGA 🌐 🎬 💾 📚 📑

FPGA DFX

📚Dynamic Function eXchange Licensing

FPGA Tandem

📚UltraScale+ Devices Integrated Block for PCI Express Product Guide (PG213)

Generates Makefiles for FPGA EDA

Generates Makefiles for FPGA EDA

Riffa

RIFFA_A_Reusable_Integration_Framework_for_FPGA_Accelerators

https://kastner.ucsd.edu/wp-content/uploads/2014/04/admin/fpl-riffa2.pdf

https://github.com/KastnerRG/riffa

Riffa AXI in OpenCore

Some Riffa User

Riffa as Vivado IP

XDMA

Xilinx XDMA

SYZYGY Interface

SYZYGY Interface md

HLS

https://www.acri.c.titech.ac.jp/wordpress/

https://github.com/acri-room/hls-challenge-labs

https://acri-vhls-challenge.web.app/

Manta: A Configurable and Approachable Tool for FPGA Debugging and Rapid Prototyping

https://fischermoseley.github.io/manta/

DDR3 Memory

7 Series Compare

7 Series Compare

Valid Ready Handshake use Verilog

Valid-Ready Handshake

Verilog Signal Naming Guide

Type of Signal Suffix Prefix (optional) Example
Clock signals clk or _ck sys_clk, clk
Reset signals _rst or _reset cpu_reset, rst
Active-low signals _n or _x reset_n, enable_x
Enable signals _en write_en
Input ports i or _in i or in_ data_in, i_valid
Output ports o or _out o or out_ data_out, o_ready
Registered signals _reg o _r count_reg, state_r
Next state signals n_ n_state

USB3 DAQ

USB3 FIFO Interface for DAQ use FT60X and Cypress FX3

USB3 FIFO Interface for DAQ

Korean Blog about FT601

Korean Blog about FT601

USB3.2 Interface for DAQ Cypress FX20

ONIX

Open Ephys: Onix

Onix Breakout Board Github

Github Source Code

DAQ

Intan

RHX Impedence Measure

Use hdmi video capture as data input

HDMI Output as Data to PC

A 2 GHz oscilloscope for everyone

https://www.crowdsupply.com/andy-haas/haasoscope-pro

https://github.com/drandyhaas/HaasoscopePro

DAQ Sync

data-acquisition-synchronisation

Sync Expander and Sync Hub

Sync Expander and Sync Hub

Harp on Pico

Harp Core Pico Github Source

Wireless Headstages

Wireless Headstage

AD5940 Collections

AD5940.md

RJ45 has No Ground without Transformer Coupling

Design Review

PCB Review

supply voltage
logic level
gpio fn
pull up , pull down
protection ckt
power budget
battery low condition
race condition
connectors 
unused pin check
termination
tx rx check
reset

Mistakes People Make When Designing Prototype PCBs

  1. Designing for Production: • Design the first PCB expecting it to fail, focusing on functionality testing. • Size and shape considerations can come later; prioritize testing various features.

  2. No Test Points: • Lack of test points hinders debugging and fixing mistakes. • Test pads for common functionalities reduce the risk of blocking progress.

  3. No Power or Diagnostic LEDs: • Diagnostic lights for voltage levels and operations save time in identifying simple mistakes.

  4. Overcrowding Components: • Avoid packing components tightly during prototyping; leave space for adjustments. • Keep passives relatively large for easier removal during testing.

  5. Underutilizing Silk Screen: • Clearly label components on the silk screen for easy assembly and orientation. • Ensure markings are readable on the smallest boards.

  6. Not Using Isolation Jumpers: • Incorporate zero-ohm resistors or cutable jumpers for easy isolation during testing. • Facilitates methodical bring-ups and simplifies troubleshooting.

  7. Not Breaking Out Unused GPIOs: • Break out additional GPIOs for testing and fixing mistakes without ordering a new PCB. • Adds flexibility for rewiring components or integrating external modules.

  8. UART Mixups: • Ensure correct pairing of transmit and receive pins in UART components. • Use jumpers or specific designs to easily correct mistakes.

  9. Locking Into I2C Addresses: • Provide options to change I2C addresses using resistors for flexibility. • Prevents the need for a new PCB revision due to address conflicts.

  10. Separate Power PCB: • Consider splitting the design into multiple boards, especially separating power. • Enables testing power solutions independently without scrapping the entire PCB.

  11. Choosing Labeled Surface Mount Resistors: • Opt for labeled surface mount resistors for easier visual inspection and testing.

  12. Verify Footprints: • Check dimensions on the data sheet against PCB footprints in your design software. • Prevents ordering the wrong footprint for components.

  13. Check Parts Availability: • Consider part availability before designing the circuit. • Speculatively order critical parts before PCB production to mitigate shortages.

Digilent Analog Discovery 2 Schematics

Digilent Analog Discovery 2 Schematics


Math

Probabilistic numerics

Probabilistic numerics

https://www.probabilistic-numerics.org/

JP Books Site

https://gihyo.jp/dp

https://honto.jp/

https://cc.cqpub.co.jp/lib/