Giter Club home page Giter Club logo

pslab-hardware's Introduction

pslab-hardware

PSLab-Hardware Gitter Twitter Follow

This repository contains the PSLab hardware design files. PSLab is a tiny pocket science lab that provides an array of test and measurement instruments for doing science and engineering experiments. It can function like an oscilloscope, waveform generator, frequency counter, programmable voltage and current source and also as a data logger. The first version of hardware (v1) was developed by Jithin. Later versions were developed by Padmal and Rafael.

PCB Layout

Front Side Back Side

Pin-outs

  • Find the pin-out diagram of PSLab v6 here!

Applications and Firmware Source Repositories

The following software components are available:

Buy Device

Communication

Repository Structure

📦pslab-hardware
 ┣ 📂archives                                   # Source files for previous PSLab versions
 ┃ ┣ 📂Breakout_Boards
 ┃ ┣ 📂PSLab KiCAD
 ┃ ┣ 📂PSLab KiCAD v2
 ┃ ┗ 📂PSLab KiCAD v3
 ┣ 📂docs                                       # Supplementary material
 ┃ ┣ 📂components
 ┃ ┃ ┣ 📜BillOfMaterials.csv                    # Component list
 ┃ ┃ ┗ 📜InteractiveBoM.html                    # Interactive version of BoM
 ┃ ┣ 📂datasheets                               # PDF datasheets for components used in PSLab
 ┃ ┣ 📂drawings                                 # CAD dimension drawings
 ┃ ┣ 📂images
 ┃ ┃ ┣ 📂pslab_version_previews
 ┃ ┃ ┣ 📜 ...
 ┃ ┃ ┗ 📜PSLab_v6_top.png
 ┃ ┣ 📂pin_layouts                              # Pin labels and specifications
 ┃ ┃ ┣ 📜PSLab_Pin_Layout.pdf
 ┃ ┃ ┗ 📜PSLab_Pin_Layout.svg
 ┃ ┣ 📂position_files
 ┃ ┃ ┗ 📜PositionFile.csv                       # Pick and place information
 ┃ ┣ 📂reference                                # TeX documentation (stale)
 ┃ ┗ 📂schematics
 ┃ ┃ ┗ 📜PSLab.pdf                              # Board schematic in PDF
 ┣ 📂output
 ┃ ┣ 📂Gerber                                   # Gerber files for the current board design
 ┃ ┗ 📂Images                                   # Images of the four copper layers
 ┣ 📂print                                      # Silk screen images
 ┃ ┣ 📂Back-Side-Images
 ┃ ┗ 📜Readme.md
 ┗ 📂schematics                                 # KiCAD project files
   ┣ 📂3DModels                                 # STEP 3D models
   ┣ 📂PSLab.pretty                             # Custom library files
   ┣ 📜 ...
   ┗ 📜PSLab.pro                                # Main project file

Version Information

Version Content Preview
PSLab KiCAD v1 Original version with SEELABLET schematics and layout files
PSLab KiCAD v2 Developed version with new additions (Voltage regulator, Oscillator)
PSLab KiCAD v3 Device layout changed to Arduino Uno form factor
PSLab KiCAD v4 Assembly optimized version with Arduino Mega form factor having components mounted only on top side
PSLab KiCAD v5 Added socket for external bluetooth module and bottom silk screen with pin description
PSLab KiCAD v6 Added external power input, RTC module, SD Card slot, USB type C, ESP 01 and upgraded UART and power ICs

Platform

Parts list

Find the complete bill of materials from this link.

Optional Parts

Extension slots for an ESP is available.

Hardware Specs

  • 3-Channel up to 2MSPS Oscilloscope. Software selectable amplification stages
  • 12-bit Voltmeter with programmable gain. Input ranges from +/-10 mV to +/-16 V
  • 3x 12-bit Programmable voltage sources +/-3.3 V,+/-5V,0-3 V
  • 12-bit Programmable current source. 0-3.3 mA
  • Supports Advanced plugins/Add-on Modules
  • 4-Channel, 4 MHz Logic Analyzer
  • 2x Sine/Triangular wave generators. 5 Hz to 5 KHz. Manual amplitude control for SI1
  • 4x PWM generators. 15 nS resolution. Up to 8 MHz
  • Capacitance Measurement. pF to uF range
  • I2C, SPI and UART data buses for Accelerometer gyroscope humidity and temperature sensor modules etc

Feature list for the acquisition and control

Oscilloscopes

One of the main features of PSLab is the 3-channel Oscilloscope which can monitor analog inputs at maximum of 2 million samples per second. It includes controls such as triggering, and gain selection. Uses Python-Scipy for curve fitting.

Waveform Generators

  • SI1 : 5 Hz – 5 KHz arbitrary waveform generator. Manual amplitude control up to +/-3 Volts
  • SI2 : 5 Hz – 5 KHz arbitrary waveform generator. Amplitude of +/-3 Volts. Attenuable via software
  • SQx : There are four phase correlated PWM outputs with maximum frequency 32 MHz, 15 nano second duty cycle, and phase difference control.

Measurement Functions

  • Frequency counter tested up to 16 MHz.
  • Capacitance Measurement. pF to uF range
  • PSLab has several 12-bit analog inputs (function as voltmeters) with programmable gains, and maximum ranges varying from +/-5 mV to +/-16 V.

Voltage and Current Sources

  • 12-bit Constant Current source. Maximum current 3.3 mA (subject to load resistance).
  • PSLab has three 12-bit Programmable voltage sources +/-3.3 V,+/-5 V,0-3 V. (PV1, PV2, PV3) controls

Other useful tools

  • 4MHz, 4-channel Logic analyzer with 15 nS resolution. Voltage and current sources
  • SPI, I2C and UART outputs
  • Graphical Interfaces for Oscilloscope, Logic Analyser, streaming data and several experiments developed that use a common framework which drastically reduces code required to incorporate control and plotting widgets.
  • PSLab also has space for an ESP-01 module for WiFi access with access point/station mode.

pslab-hardware's People

Contributors

cloudypadmal avatar cweitat avatar hpdang avatar jithinbp avatar jonathanrjpereira avatar mariobehling avatar rafaelleeimg avatar wavicles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pslab-hardware's Issues

Oscilloscope - Signals distorted;

Actual Behaviour

Waveforms above 50 kHz appear distorted.

Expected Behaviour

Waveforms should appear as they are, as per specifications (there's no specification listed on the maximum frequency of the oscilloscope channels)

Steps to reproduce it

  1. Apply signal using external function generator to oscilloscope channel of PSLab; verify with external oscilloscope
  2. View signal in oscilloscope app; signal is distorted.
  3. Measure output of buffer amplifier at signal conditioning stage.

LogCat for the issue

Not applicable

Screenshots of the issue

Refer to attached video @ https://gofile.io/?c=FZKiRT

PSLab App Screenshot:
image

Op-amp output:

image

Would you like to work on the issue?

Am willing to help.

Review the tolerance levels for capacitors and resistors

Currently the tolerance levels of the capacitors and resistors are of lowest tolerance level.

Ideal to specify the maximum tolerance level for the capacitors and resistors for production ease without affecting the function of PSLab.

Pinhole size for microusb

Current pinhole size doesn't accounts for the +- difference as stated in the blueprint.

Need to account for the difference and also to take SMD machine into consideration rather than pick & place machine.

Wave generator ouput protection

As noticed by some people, wave generators are directly connected to chip

(unsure if the chip provides protection itself)

Pinhole size for the female headers

Current pinhole size for the female headers is too big, causing the pin headers to be not straight as well.

Will get the blueprint and attach the blueprint for the female headers later on.

Footprint WS2182 (RGB LED) is discontinued

The used RGB LED is discontinued from production. Hence the component will not be available for manufacturing.
In the current implementation, there is a separate LED used alongside this LED. So it can be removed from the schematics.

RGB LED

two layer version for reduced costs

Is it possible to make pslab available in a two-layer version? having 4 layers makes PCB fabrication pretty expensive.

Maybe you can increase the area for it to be like a tablet if needed, in my opinion, it's more important that the circuit becomes cheap and easy to fabricate than to keep it small in size

Thanks

Create BoM for PSLab

Assembly process requires BoM file which lists out all the components we want to get soldered onto the board.

Add pin headers to BoM

In production, different types of pin headers will be assembled (4pins, 6pins etc). The exact pin count and number of instances should be updated in BoM

Change PCB layout to Arduino Uno board

Arduino Uno enclosures can be purchased at a cheap cost saving the trouble going through designing and building a custom enclosure. To facilitate that, the PCB needs to be changed to fix in to an Arduino Uno form factor.

Add SPI connector

In the next version upgrade, add a socket to support SPI connections externally. (Currently it is supported internally).

Possible space to place the pin headers is next to I2C connectors.

Edges not closed in PCB

There are some overlapping edges in PCB which is not visible. They need to be removed as there are warnings thrown off by 3D model generating tools because of that

ESP8266 shift in

ESP8266 module can't fit any casing because of external antenna

Replace 64kB PIC microcontroller with 256kB microcontroller

In the schematics, PIC24EP64GP204 micro-controller is used. But in firmware PIC24EP256GP204 micro-controller is used. Since the program memory usage and other functionalities are not fascilitated by the 64kB version, it needs to be changed to a higher 256kB version which is currently used in the PSLab devices.

Add PSLab PCB step file

To view 3D view of the PCB with components, step files is an easy more practice way for anyone who doesn't have KiCAD installed.

Modify schematic library proto1.lib to comply with KiCAD's library testing utility

PSLab KiCAD/proto1.lib does not currently pass the automatic schematic library testing utility provided by KiCAD.
The following procedure can be followed to check the errors

git clone https://github.com/KiCad/kicad-library-utils 
sudo kicad-library-utils/schlib/checklib.py <path to PSLab\ KiCAD>/proto1.lib 

at present, violations of the following nature are shown by the checklib.py utility

Checking symbol 'myUSBMB':
  Violating Rule 4.10 - Part metadata
  Violating Rule 4.12 - Footprint filters
  Violating Rule 4.2 - Symbol visual style
  Violating Rule 4.5 - Pin orientation
  Violating Rule 4.9 - Default fields
Checking symbol 'tp':
  Violating Rule 4.1 - Pin placement
  Violating Rule 4.10 - Part metadata
  Violating Rule 4.12 - Footprint filters
  Violating Rule 4.8 - Field text size
  Violating Rule 4.9 - Default fields

issue #11 will need this to be addressed first

Archive older PSLab versions

Older project files need to be archived so the main and final PCB files will be available when the repo is open. Following directories need to be moved to an archive;

  • PSLab KiCAD
  • PSLab KiCAD V2
  • PSLab KiCAD V3

New instrument; Power meter

Actual Behaviour
Currently there is no instrument that is able to measure watts.

Expected Behaviour
There should be an instrument to measure the watts
Can also integrate watts to multimeter, oscilloscope , etc

Would you like to work on the issue?

Anyone.

Driver for sigrok

Sigrok (https;//sigrok.org/) is useful FOSS to observe signals (analog or digital).
It can be used to decode signal of UART communication, and/or I2C communication.
Using PSLab hardware is good for education.

PSLab Hardware V2 - new chip

There are better chips available for future versions of PSLab. One recommendation is LPC43S70FET256: 32-bit ARM Cortex-M4 + 2 x M0 MCU; 282 kB SRAM; Ethernet; two HS USBs; 80 Msps 12-bit ADC; configurable peripherals, AES engine

https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/lpc-cortex-m-mcus/lpc4300-cortex-m4-m0/32-bit-arm-cortex-m4-plus-2-x-m0-mcu-282-kb-sram-ethernet-two-hs-usbs-80-msps-12-bit-adc-configurable-peripherals-aes-engine:LPC43S70FET256

Because of the on board 80 MSPS ADC, 6 channel and so the oscilloscope function would be able to capture faster signals and 12 bit accuracy should be sufficient enough for most uses. It will still be available for at least 8 years, according to NXPs roadmap. The price is comparable to the STM32L4.

Sell ready-made PCBs?

Hello,

I'm interested in having PSLab hardware. But I don't know the steps to fabricate one, since SMT assembly isn't available in my country.

Are you willing to sell ready-made PSLab kits through your website?

If no,
I've found PCB cart to make some copies. I don't know which format they accept.

It would be nice if you package the files in an amateur-friendly zip file with the instructions and your preferred PCB manufacturer if possible

Thank you

Considerations for Hardware Production Version 2019

Below are considerations for hardware production from email exchanges with our partner at the Fraunhofer Institute and PCB manufacturer.

The BOM allows to extract these information as well in manual fashion, however, most CAD tools will provide this info alongside the above mentioned pick and place information in one machine-readable file. So, if you verify the capabilities of KiCAD on the former, please check also on the latter requriements.
If KiCad is not able to do so, well, then back to manual :), same goes with the keep-out areas underneath the PCB for positioning of support pins during the printing process. With a "nest" (see below), this will not be needed.

As to the PCB itself - could you check with your PCB supplier whether he could put the PCBs in a manufacturing panel ready for singulation either by milling, rolling blade separator (e.g. https://www.cab.de/de/elektronik/nutzentrenner/maestro-2-2m/) or hook knife (e.g. https://www.cab.de/de/elektronik/nutzentrenner/stegtrenner-hektor-2/). Milling will get the best contour precision (this is what you have now, but with separation prior assembly), the others will leave some minor jagged edges.
If the vendor is happy to panelize this for you, I would suggest a minimum 2x2, but for the sake for flexibility and speed preferrably a 3x6 (or any other option up to 460x460mm, suitable for print, assembly and soldering).
Here now the additional request - for the panels, we would need alignment marks, circles with min. 1mm/max 3mm diameter, exposed from any solder resist, to have the cameras identify the "copper pad positions" and then place the components into their final position. Without any alignment marks, the assembly system is "blind". This -in consequence- means if say we need to work on the singulated PCB, not only the total assembly time will go up, but also a dedicated nest with alignment marks would need to be built, the singulated PCB positioned relatively precisely into that nest, thus making the PCB ready for full-auto assembly. Can also be done, but is less elegant and "manufacturing like", compared to a panelization service by the PCB vendor :)

For panelization, please note in the discussion with the vendor these additional needs

  • free area on the two "long" sides to allow for PCB-panel clamping: min3, preferred 5mm each side
  • preferred surface finish is NiPdAu ("enepig"), NiAu, tin (Sn) or Ag (most expensive!!). Also OSP can be used BUT note that any lower side population or repair will then be more critical due to the oxidation.
    Please ask you vendor for a sample PCB to assess the solderability with the paste/reflow combination.

Now to an additional (future adressing) aspects.
It seems that the core elements could be "squeezed" into modules, which can be modified if a new generation of µC or DAC appears. This will forego the need to design the whole PCB anew for the new generation, as it all can be handled on the module. Also, these modules can be significantly shrunk, if miniaturization needs arises in the future. You may want to consider this thought in a design revision of the future.

Update BOM for tolerance

BOM does not reflect the change of tolerance in components.

To do:
Update part number and description

Update schematics PDF

Current PCB has changed to proceed into production. The PDF files and the images in the readme files need to be updated.

Label groups

Grouping labels with long brackets and only identify pin numbers inside that group,
instead of duplicating text,
offers the opportunity to have simple board translation in another or 2 other languages

New instrument; Ammeter

Actual Behaviour
Currently there is no instrument that is able to measure ampere.

Expected Behaviour
There should be an instrument to measure the ampere

Would you like to work on the issue?

Anyone.

Can the system be powered with batteries?

What is the voltage needed to power the operational amplifiers?
Can they be powered by batteries?
Is there any step up converter, to power the opamps to a high voltage using USB?

PSLab V6

Parts to add

  • SPI Connector (External displays etc..)
  • Micro SD Card slot
  • CP2102 IC replacing MCP2200 and supporting crystal (Small size, less components. Need to review on this)
  • Connectors to support easy programming for ESP chips
  • Replace LM1117MPX-3.3/NOPB regulator with LDFM33PVR by STMicroelectronics which gives better performance, reduced space and (about half the price?)
  • Test points to validate voltages received at oscilloscope OpAmps
  • Reset option while using ESP and UART simultaneously
  • RTC Module

Add travis CI integration

An example can be found here :

sudo: required
before_install:
- git clone https://github.com/KiCad/kicad-library-utils /home/travis/build/kicad-library-utils

script:
- sudo bash /home/travis/build/kicad-library-utils/pcb/travis/check_all.sh $TRAVIS_BUILD_DIR

It uses tools provided by KiCAD for verifying schematics

Create a pinout for using external power source

Users might want to use something that requires more power than what the current USB (5V) can output such as a pump. Idea is to have a power source input pin for user to plug in external power source such as a battery and use PSLab to regulate and manage the power flowing.

Create hardware version number for every production batch

Current board does not has anything to state which production batch with which version of the firmware within.

We should include the firmware version number and the hardware version number to be printed on the silkscreen. This also future proof issues such as understanding BOM list of that particular batch and also to track if there is any faulty production batch.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.