laurb9 / tiny_scope Goto Github PK
View Code? Open in Web Editor NEWTiny Scope for Arduino
License: MIT License
Tiny Scope for Arduino
License: MIT License
Add a "portable" mode that doesn't use any low-level calls, so it can be used with any Arduino with whatever default ADC settings it has.
Enter CPU sleep modes instead of busy waiting or delay(), to reduce power usage.
Use ADC Noise Canceler mode on AVR.
From the Atmega328P docs:
24.6 ADC Noise Canceler
The ADC features a noise canceler that enables conversion during sleep mode to reduce noise induced from the CPU core and other I/O peripherals. The noise canceler can be used with ADC Noise Reduction and Idle mode. To make use of this feature, the following procedure should be used:
a. Make sure that the ADC is enabled and is not busy converting. Single Conversion mode must be selected and the ADC conversion complete interrupt must be enabled.
b. Enter ADC Noise Reduction mode (or Idle mode). The ADC will start a conversion once the CPU has been halted.
c. If no other interrupts occur before the ADC conversion completes, the ADC interrupt will wake up the CPU and execute the ADC Conversion Complete interrupt routine. If another interrupt wakes up the CPU before the ADC conversion is complete, that interrupt will be executed, and an ADC Conversion Complete interrupt request will be generated when the ADC conversion completes. The CPU will remain in active mode until a new sleep command is executed.
Note that the ADC will not be automatically turned off when entering other sleep modes than Idle mode and ADC Noise Reduction mode. The user is advised to write zero to ADEN before entering such sleep modes to avoid excessive power consumption.
See if u8glib might work better since it supports more displays.
I came across this so called 'LXARDOSCOPE', which uses an arduino uno to input signals to the software for Linux and I think this is a really nice enhancement for this project.
sometimes, the oled screen isn't enough and there are so many cheap 3,5" tft/lcd displays which can fit a arduino nano or pro mini inside and can be used as a small portable oscilloscope in the field (kwad testing, service, etc). Just a little thought!
Try to use this library for better ADC control and dual scope mode.
https://forum.pjrc.com/threads/25532-ADC-library-update-now-with-support-for-Teensy-3-1
Should have a button that is used to cycle through the available ADC speeds and thus change the timebase. Probably a single button is sufficient since we only have half a dozen options.
The 328P has an internal voltage reference of 1.2V. We can use that to autodetect the Vcc (3.3 or 5V).
This would not work with an external voltage divisor though, so support for that should also be added (VDIV=1, VDIV=10 etc).
I'm hoping you can point me in the right direction - I'm trying to get this working on a 328P based atmega (to some extent, they're all the same for my purposes), but having issues. When the main module tries to run success= to fetch the analog values, I'm always getting a 0 returned, and an 'out of memory' error. I suspect the ADC reading is what's failing, but I'm not yet familiar enough with this to be able to debug it myself. Is this really capable of running on an Uno/Micro, or has it evolved to where you're doing things only the Teensy can handle?
Integrate an FFT library to display frequency spectrum (or dominant frequency at least).
I'm using an Arduino Nano to drive the I2C OLED display. The code works fine when I select 128x32 in the Adafruit_SSD1306 library, but then I get incorrectly scaled text. When I have the 128x64 line enabled, the display remains black. Other projects work fine when using the Arduino Nano and the 128x64 resolution. Does this have anything to do with the memory size of the Arduino?
Add support for Intel Edison on Arduino breakout board.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.