Code Monkey home page Code Monkey logo

pslab-firmware's Introduction

PSLab Firmware

Repository for the firmware of the Pocket Science Lab (PSLab) open hardware platform.

Build Status Gitter Mailing List Twitter Follow

PSLab is a tiny pocket science lab that provides an array of test and measurement instruments for doing science and engineering experiments. It comes with function or instruments like an oscilloscope, waveform generator, frequency counter, programmable voltage and current source and also as a data logger. Also available are the hardware schematics, the desktop application and an Android app. The website is at https://pslab.io.

Buy

Communication

Notes

Special function register(SFR) bit settings are done in separate lines of code for easily tweaking. The code can be shrunk if firmware efficiency becomes a concern at any point. The library and code for PSLab version 1 are located in directories 'PSLab_V1'. Please note that they must be located in the same directory during compilation via MPLABX because the former relatively imports the latter.

Requirements

Firmware Features

Feature Description Status
Byte Headers Byte Headers ✔️
I2C Sensors EStart, Stop, BulkTransfers, config ✔️
Flash R/W Read buffer, clear buffer ✔️
ADC Measures voltage, current, resistance and capacitance ✔️
Sine wave Wave tables ✔️

Branch Policy

  • The development branch holds is the standard branch of the project. PRs are merged to this branch and tested on an ongoing basis.
  • The master branch holds the stable version of the project and merges the development branch regularly after it is tested thouroughly.

Compilation and Installation of Firmware

  1. Download and install the MPLab IDE & XC16 compiler from the links given above
  2. From the IDE , navigate to the folder containing PSLab_Original & PSLab_Original_library , and open PSLab_Original .
  3. Connect the Pickit3 to the 5 pin programming header on the bottom side of the PSLab hardware (attach reference image here).
  4. Also ensure that the PSLab is powered on by connecting it via USB . The PICkit has a software controllable option to supply power (3.3V) to the uC while programming, but this may be avoided since many other peripherals also rely on the same power source
  5. Build and Download the code ( menu->run->build and program , or the Downward facing green arrow in the toolbar)

Preliminary Tests After Installation

  • Connect the device via USB , and issue an lsusb command via the terminal (On Linux)
  • The output should have an entry Bus 003 Device 003: ID 04d8:00df Microchip Technology, Inc. . This indicates that the USB-UART chip was detected
  • To locate its handler , check /dev for ttyACM devices. The desktop app automatically locates and connects to the handler.
  • In case either step failed , issue dmesg command. Output should resemble :
[128189.796088] usb 3-2: new full-speed USB device number 3 using xhci_hcd
[128189.928459] usb 3-2: New USB device found, idVendor=04d8, idProduct=00df
[128189.928469] usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[128189.928475] usb 3-2: Product: MCP2200 USB Serial Port Emulator
[128189.928479] usb 3-2: Manufacturer: Microchip Technology Inc.
[128189.928483] usb 3-2: SerialNumber: 0001463239
[128189.929873] cdc_acm 3-2:1.0: ttyACM0: USB ACM device
[128189.933262] hid-generic 0003:04D8:00DF.0032: hiddev0,hidraw0: USB HID v1.11 Device [Microchip Technology Inc. MCP2200 USB Serial Port Emulator] on usb-0000:00:14.0-2/input2

Available Software

Either use the hardware with the PSLab desktop app or the PSLab Android app.

License

The library is free and open source software licensed under the Apache License 2.0. The copyright is owned by FOSSASIA.

pslab-firmware's People

Contributors

cloudypadmal avatar jithinbp avatar mariobehling avatar wavicles avatar orangecms avatar dilu9218 avatar cweitat avatar

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.