You are on page 1of 71

Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.

com/id/Girino-Fast-Arduino-Oscilloscope/

(/) Circuits (/circuits/) Workshop (/workshop/) Craft (/craft/) Cooking (/cooking/) Login (/account/login/) | Sign

Living (/living/) Outside (/outside/) Teachers (/teachers/) Up (/account/register/)

Projects (/circuits/projects/) Community (/circuits/community/)

advertisement

Girino - Fast Arduino Oscilloscope


By Caffeinomane (/member/Caffeinomane/) in Circuits (/circuits/) > Arduino (/circuits/arduino/projects/)
853,919 990 104 Featured

Download Favorite

(https://cdn.instructables.com/F0R/RQZA/GZLW96FA
/F0RRQZAGZLW96FA.LARGE.jpg)

1 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(/member

By /Caffeinomane/)
More by
Caffeinomane the author:
Follow
(/member (/member
/Caffeinomane/) /Caffeinomane/)

advertisement

2 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

advertisement

3 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Girino.7z
nstructables.com/ORIG/FQ1/8HPC/GZV1CF98/FQ18HPCGZV1CF98.7z)
(https://cdn.instructables.com/ORIG/FQ1
/8HPC/GZV1CF98/FQ18HPCGZV1CF98.7z)

Add Tip Ask Question Comment

Download

Teacher Notes

Add Teacher Note

advertisement

Step 1: Disclaimer

4 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/FPO/2E1R/GZUAG6TZ
/FPO2E1RGZUAG6TZ.LARGE.jpg)

5 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 2: What You Need

/FNR4WCVGZPBLRPE.LARGE.jpg)
(https://cdn.instructables.com
/FNR/4WCV/GZPBLRPE /FGRDTDOGZKG39A7.LARGE.jpg)
(https://cdn.instructables.com
/FGR/DTDO/GZKG39A7

Add Tip Ask Question Comment

6 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Download

Step 3: Debug Output

(https://cdn.instructables.com/FLH/WJJU/GZUA8RZ8
/FLHWJJUGZUA8RZ8.LARGE.jpg)

7 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 4: Setting Register Bits

/F8TX9ESGZLW4ES1.LARGE.jpg)
(https://cdn.instructables.com
/F8T/X9ES/GZLW4ES1 /FBA3NQ9GZLW97EP.LARGE.jpg)
(https://cdn.instructables.com
/FBA/3NQ9/GZLW97EP

8 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 5: What Are the Interrupts

9 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

/FDF1QWHGZLW99GQ.LARGE.jpg)
(https://cdn.instructables.com
/FDF/1QWH/GZLW99GQ /FDQC2E2GZMIUKWM.LARGE.jpg)
(https://cdn.instructables.com
/FDQ/C2E2/GZMIUKWM

10 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 6: Continuously Acquire With a


Circular Buffer

11 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

/F6E95A1GZLW96FD.LARGE.jpg)
(https://cdn.instructables.com
/F6E/95A1/GZLW96FD

/F67V17TGZKG30IA.LARGE.jpg)
(https://cdn.instructables.com
/F67/V17T/GZKG30IA

/FO3JCIBGZKGLLQT.LARGE.jpg)
(https://cdn.instructables.com
/FO3/JCIB/GZKGLLQT /F2AX7MVGZLW96FE.LARGE.jpg)
(https://cdn.instructables.com
/F2A/X7MV/GZLW96FE

12 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 7: Oscilloscope Triggering

13 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/FYJ/6VUX/GZPZMFFH
/FYJ6VUXGZPZMFFH.LARGE.jpg)

14 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

15 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Download

Step 8: How the ADC Works

/FM20IGYGZPZME5W.LARGE.jpg)
(https://cdn.instructables.com
/FM2/0IGY/GZPZME5W

/FFU6Y34GZQR1BVN.LARGE.jpg)
(https://cdn.instructables.com
/FFU/6Y34/GZQR1BVN /FA2MS3SGZQ40KO6.LARGE.jpg)
(https://cdn.instructables.com
/FA2/MS3S/GZQ40KO6

16 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

17 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 9: Digital Input Buffers

18 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/FIU/SIJP/GZQ40L39
/FIUSIJPGZQ40L39.LARGE.jpg)

19 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 10: Setting Up the ADC

(https://cdn.instructables.com/FRS/ZFMU/GZQ40L3J
/FRSZFMUGZQ40L3J.LARGE.jpg)

20 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

21 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

22 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

23 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

24 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

25 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 11: How the Analog Comparator


Works

26 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/FYW/ZVXN/GZPZO8Z8
/FYWZVXNGZPZO8Z8.LARGE.jpg)

27 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 12: Setting Up the Analog


Comparator

(https://cdn.instructables.com/FQN/WA3H/GZQR3IJP
/FQNWA3HGZQR3IJP.LARGE.jpg)

28 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

29 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 13: Threshold

30 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/F1Y/7HHJ/GZUA8XAV
/F1Y7HHJGZUA8XAV.LARGE.jpg)

31 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 14: How the Pulse Width


Modulation Works

/FOAVZS3GZQR3MLC.LARGE.jpg)
(https://cdn.instructables.com
/FOA/VZS3/GZQR3MLC /F1CJRSFGZPZMIJW.LARGE.jpg)
(https://cdn.instructables.com
/F1C/JRSF/GZPZMIJW

32 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

33 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 15: Setting Up the PWM

34 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/FIP/ALVA/GZPZODTC
/FIPALVAGZPZODTC.LARGE.jpg)

35 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

36 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

37 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

38 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 16: Volatile Variables

39 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/FQ7/DWXD/GZUAF99L
/FQ7DWXDGZUAF99L.LARGE.jpg)

40 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 17: Writing the Kernel of the


Sketch

/FZZNB2EGZSNYZN7.LARGE.jpg)
(https://cdn.instructables.com
/FZZ/NB2E/GZSNYZN7 /FDPAU3HGZQ40ZZ1.LARGE.jpg)
(https://cdn.instructables.com
/FDP/AU3H/GZQ40ZZ1

41 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

42 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 18: Forming Incoming Signal

43 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/FKH/AHV3/GZUASBSJ
/FKHAHV3GZUASBSJ.LARGE.jpg)

44 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 19: Bypass Capacitors

(https://cdn.instructables.com/FV6/5PF8/GZUAFB6B
/FV65PF8GZUAFB6B.LARGE.jpg)

45 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 20: Power Sources

/F3VA01WGZUAFVZM.LARGE.jpg)
(https://cdn.instructables.com
/F3V/A01W/GZUAFVZM /F1OQ00FGZUAFW0T.LARGE.jpg)
(https://cdn.instructables.com
/F1O/Q00F/GZUAFW0T

46 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 21: Preparing a Shield


Connector

47 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

/FMZJTSAGZUAFBJQ.LARGE.jpg)
(https://cdn.instructables.com
/FMZ/JTSA/GZUAFBJQ

/F7Y16GFGZUAFBJS.LARGE.jpg)
(https://cdn.instructables.com
/F7Y/16GF/GZUAFBJS

3 More Images
/FL6K3APGZUAFWQP.LARGE.jpg)
(https://cdn.instructables.com
/FL6/K3AP/GZUAFWQP /FTQVFABGZUB372S.LARGE.jpg)
(https://cdn.instructables.com
/FTQ/VFAB/GZUB372S

48 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 22: Soldering and Testing

/FNG10PYGZUAFWQX.LARGE.jpg)
(https://cdn.instructables.com
/FNG/10PY/GZUAFWQX

/FA0LP18GZV1CEFV.LARGE.jpg)
(https://cdn.instructables.com
/FA0/LP18/GZV1CEFV

6 More Images
/FZED8ZWGZUASC4D.LARGE.jpg)
(https://cdn.instructables.com
/FZE/D8ZW/GZUASC4D /F05E23JGZUB373A.LARGE.jpg)
(https://cdn.instructables.com
/F05/E23J/GZUB373A

49 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 23: Test Signals

/FYCZ81ZGZUASBVE.LARGE.jpg)
(https://cdn.instructables.com
/FYC/Z81Z/GZUASBVE /FPVCLJ1GZUASBW7.LARGE.jpg)
(https://cdn.instructables.com
/FPV/CLJ1/GZUASBW7

structables.com/ORIG/FXL/QYLL/GZUB36SW/FXLQYLLGZUB36SW.ino)

50 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

TaraturaTempi.ino
(https://cdn.instructables.com
/ORIG/FXL/QYLL/GZUB36SW/FXLQYLLGZUB36SW.ino)

readgirino.py
uctables.com/ORIG/FF3/BWMH/GZUASBWF/FF3BWMHGZUASBWF.py)
(https://cdn.instructables.com/ORIG/FF3
/BWMH/GZUASBWF/FF3BWMHGZUASBWF.py)

Add Tip Ask Question Comment

Download

Step 24: Time Calibration

/FXFD9A6GZUAFBPU.LARGE.jpg)
(https://cdn.instructables.com
/FXF/D9A6/GZUAFBPU

/F00DY87GZUASCCG.LARGE.jpg)
(https://cdn.instructables.com
/F00/DY87/GZUASCCG

9 More Images
/F6H7AS0GZUAFXD7.LARGE.jpg)
(https://cdn.instructables.com
/F6H/7AS0/GZUAFXD7 /F02EPV9GZUASCCF.LARGE.jpg)
(https://cdn.instructables.com
/F02/EPV9/GZUASCCF

51 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

52 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

Step 25: Done! (Almost)

53 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com/F5K/TEUE/GZXW89BQ
/F5KTEUEGZXW89BQ.LARGE.jpg)

Add Tip Ask Question Comment

Download

54 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Step 26: To Be Continued...

(https://cdn.instructables.com/FGI/ULA9/GZUB3J5A
/FGIULA9GZUB3J5A.LARGE.jpg)

55 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip Ask Question Comment

Download

advertisement

advertisement

56 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Participated in the
Arduino Challenge (/contest
/arduino2012/)

View Contest

57 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Participated in the
Education Contest (/contest/education/)

View Contest

Participated in the
EXTREME! Challenge (/contest/extreme/)

View Contest

3 People Made This Project!

marvin42 (/member Jimmus (/member/Jimmus/)


/marvin42/) made it! made it!

58 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

hitchcme (/member
/hitchcme/) made it!

I Made It!

Recommendations

(/id/DropArt-Precision-Two-Drop-Photographic-
Collider/)

DropArt - Precision Two Drop


Photographic Collider (/id/DropArt-
Precision-Two-Drop-Photographic-

7 679

(/contest/LEDstrip/) (/contest/sculpt2020/)

59 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Add Tip

Ask Question

Post Comment

We have a be nice policy.


Please be positive and constructive.

104 Discussions

RobertoF43 (/member
(/member/RobertoF43/)
/RobertoF43/) 5 days ago
Reply Upvote

I just read your tutorial. It is very useful with your timer's


section.
In other hand, maybe you have worked with transistors
for a long time but when we are talking about operational
amplifiers we talk about voltage followers, emitter
followers are transistors' circuits.

JonasA34 (/member
(/member/JonasA34/)
/JonasA34/) 2 months ago
Reply Upvote

thanks, awesome tutorial

dionebigode (/member
(/member/dionebigode/) /dionebigode/)
9 months ago
Reply Upvote

Just beautiful. Thank you so much.

60 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

ag88 (/member/ag88/)
(/member/ag88/)
1 year ago on Step 26
Reply Upvote

i made a port of the Girinoscope Arduino implementation


to the stm32f103 maple mini ( https://www.ebay.com
/sch/i.html?_nkw=maple+mini&_sacat=0
(https://www.ebay.com/sch/i.html?_nkw=maple+mini&
_sacat=0) ) or 'blue pill' ( https://www.ebay.com
/sch/i.html?_nkw=stm32f103c8t6&_sacat=0
(https://www.ebay.com/sch/i.html?_nkw=stm32f103c8t6&
_sacat=0) ) boards
https://github.com/ag88/GirinoSTM32F103duino
(https://github.com/ag88/GirinoSTM32F103duino)
i discussed some of the details here
http://www.stm32duino.com/viewtopic.php?f=19&
p=539... (http://www.stm32duino.com
/viewtopic.php?f=19&p=53911)
https://mcu.selfip.com/viewtopic.php?f=10&t=26
(https://mcu.selfip.com/viewtopic.php?f=10&t=26)
the implementation is far from perfect it is a very draft
effort but so far it basically works
for now i made the implementation 'Girinoscope
compatible' so that it'd work with the java frontend.
however, there are limitations and differences as
atmega328 and stm32 are different platforms. e.g. on
stm32 the adc outputs ranges from 0 - 4096 for 0 to 3.3v
respectively (only 8 bits used to maintain compatibility).
while the arduino implementation on atmega 328p has a
range from 0 - 255 for -2.5v to 2.5v. hence, the voltage
ranges would look 'incorrect', i.e. -2.5v on the graph is
really 0v on stm32f103 and 2.5v is 3.3v on the
stm32f103. more details are discussed on the github
readme and the forum threads.

(/member/hy9/) hy9 (/member/hy9/) 1 year ago

Reply Upvote

Inspired by your project i've bought an NUCLEO-


F446RE with 3* 2,4 Msa/s and 128 kB SRAM for less
than 16 €.
Currently I'm just using 2* 2,4 Msa/s 12 bit (approx. 11
bit effective), using DMA. Each sample is stored in 2
bytes, so only about 25k sampling depth. Perhaps I
61 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/
could do better with a small circular (DMA) buffer and
fetching values by using
HAL_ADCEx_MultiModeGetValue(?) to store in a more
compact manner.
Front end is an OPA2340 (approx. 3,55 €, vdd direct
from NUCLEO-Board; no further input protection
required). Offset is done by PWM (10 kHz) R/C-filtered
(2,7 kOhm +22µF --> -72 dB @ 10kHz). Because I know
the selected offset voltage, I am able to calculate
absolute input voltages.
Currently fed via a 1:4 voltage divider (optimized for +-13
V) (750 kOhm+249 kOhm) into the op amp ("11 bit ought
to be enough"). The voltage divider pin which usually
goes to the ground is connected to the R/C capacitor
(--> Offset). Parallel to 750k there should be a capacitor
because of the input capacitor (9 pF) of the OPA2340
parallel to the 249k. Theory suggests 9pF/4, but the
Miller Effect and TINA-TI simulation suggest somewhat
around 0,1x pF. So I used an old 2-wire cable soldered
on the 750 kOhm, open end and cut till pulses are
looking correct.
Developed using STM32CubeMX and Ac6. Could deliver
source code.

PS: HAL needs __HAL_ADC_ENABLE(&hadc2) before


and __HAL_ADC_DISABLE(&hadc2) after
HAL_ADCEx_MultiModeStart_DMA().

(For those with sharp eyes: yes, in the picture the


second channel of the OPA2340 currently unused; little
chaotic, but I assume everything will fit on a small
stripboard using the arduino connectors... those
connectors without wrong spacing, of course...)

PS2: sampling rate is dividable to about 1 ksa/s using 72


MHz HCLK.
PS3: serial speed is 2 Mbaud.

62 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

(https://cdn.instructables.com
/FQL/R2NZ/JR0YOKA8
/FQLR2NZJR0YOKA8.LARGE.jpg?auto=webp&&
frame=1&fit=bounds)

MariuszW6 (/member
(/member/MariuszW6/) /MariuszW6/)
1 year ago on Step 1
Reply Upvote

Arduino:1.9.0-beta (Windows 7),


Płytka:"Arduino/Genuino
Uno"

In file included from


C:\Users\home\Documents\Arduino\sketch_oct21a
\sketch_oct21a.ino:25:0:

C:\Program Files
(x86)\arduino-PR-beta1.9-BUILD-78\libraries
\girino/Girino.h:84:18: error:
'HardwareSerial::HardwareSerial' is not a type

HardwareSerial::HardwareSerial* serial = &Serial );

63 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/
C:\Program Files (x86)\arduino-PR-beta1.9-BUILD-
78\libraries\girino/Girino.h:84:51:

error: could not convert '& Serial' from


'HardwareSerial*' to 'int*'

HardwareSerial::HardwareSerial* serial =
&Serial );

C:\Users\home\Documents\Arduino\sketch_oct21a
\sketch_oct21a.ino:
In function 'void loop()':

sketch_oct21a:152:79: error: cannot convert


'HardwareSerial*' to 'int*' for argument '3' to 'void
fillBuffer(char*, byte,
int*)'

sketch_oct21a:171:79: error: cannot convert


'HardwareSerial*' to 'int*' for argument '3' to 'void
fillBuffer(char*, byte,
int*)'

sketch_oct21a:189:79: error: cannot convert


'HardwareSerial*' to 'int*' for argument '3' to 'void

64 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/
fillBuffer(char*, byte,
int*)'

sketch_oct21a:208:79: error: cannot convert


'HardwareSerial*' to 'int*' for argument '3' to 'void
fillBuffer(char*, byte,
int*)'

sketch_oct21a:226:79: error: cannot convert


'HardwareSerial*' to 'int*' for argument '3' to 'void
fillBuffer(char*, byte,
int*)'

exit status 1

cannot convert 'HardwareSerial*' to 'int*' for argument '3'


to 'void fillBuffer(char*, byte, int*)'

Peter Balch (/member


(/member/Peter+Balch/) /Peter+Balch/)
Question 1 year ago
Answer Upvote

Hi, thanks for a great Instructable.

I'm building the 'scope and have hit a couple of


problems. The "HardwareSerial" compiler error is
straightforward to overcome. As is working out which pin
is which (the ADC is A0, the comparator is D6 and D7).

65 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/
My main problem is speed.

It works reliably with a prescaler of 128, 64 or 32. After I


added womai's changes, it worked at prescaler=16 but it
is unreliable at 8 - I get a couple of scans and then it
freezes. It freezes immediately at prescaler=4 or 2. I'm
using a 328p at 16MHz.

What speed did you get it to run at? You were doing it 6
years ago; could the ISR overhead be bigger with newer
libraries?

Two minor problems:

Only the Toggle trigger mode seems to work. If I choose


Rising or Falling, it still triggers on "change". Any
thoughts? (I've checked that ACSR gets the right value)

There's a small bug if you set e.g.


waitDuration=ADCBUFFERSIZE-100 so you can see
before the trigger event. The region before the trigger is
often mostly zeros. I guess what's wrong is: the circular
buffer is initialised to zero; start recording; the trigger
happens after 20 samples; so there are 80 un-filled slots.
The answer is probably to not allow the trigger until at
least 100 samples have been recorded.

ZoranK3 (/member/ZoranK3/)
(/member/ZoranK3/) Question 1 year ago on
Introduction
Answer Upvote

Please I want to know are this project work on SAM3X


Arduino Due and what changes in program I must
correct. Thanks

zanahade (/member
(/member/zanahade/)
/zanahade/) 1 year ago
Reply Upvote

YES! Finally! Thank you!

kerahari (/member/kerahari/)
(/member/kerahari/)
4 years ago

66 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Reply Upvote

It is an awesome project.
Iam working on similar kind of projects,actually i am not
that much good in Analog Electronics. I have some
doubts,please help me
1) what is triggering?
2)why do we need to to give threshold voltage?arduino
itself does the conversion right? Just like AnalogRead.
2 replies

mmb3 (/member/mmb3/)
(/member/mmb3/)
2 years ago
Reply Upvote

A test with different analog signals (I am missing an


analog signal generator
I made such a generator using look up tables for dds
with arduino nano.
Frequencies up to 3kHz are possible see
https://youtu.be/QaM8W4JAR4k

stanleyella (/member
(/member/stanleyella/)
/stanleyella/) 2 years ago
Reply Upvote

I want to use your method. I have uno scope running


using GCBasic. https://www.youtube.com
/watch?v=zTWHTgf9fw0&t=142s

TheNoviceResearcher
(/member
(/member/TheNoviceResearcher/) /TheNoviceResearcher/)
5 years ago on
Introduction
Reply Upvote

Hello! My professor and I are doing research that


requires us to make an inexpensive Multi-channel
analyzer. A component of the MCA is the Arduino Uno,
which we want to turn into an ADC. The Uno, however,
is too slow so we turned to the instructable here for the
Sketch that's supposed to increase the frequency at
which the Uno reads analog signals. However, when we
try to run the code (with minor changes) the serial

67 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/
monitor outputs data that makes no sense. We used
Girino.7z. Here are the changes we made;
* When we download the Girino code and turn on
debugging (by setting DEBUG=1 in Girino.h), we get the
expected output:
___________________________________________
# setup()
Girino ready
# ADCCounter: 0
# stopIndex: 65535
# wait: 0
# freeze: 0
101111
0
# ADCCounter: 0
# stopIndex: 65535
# wait: 0
# freeze: 0
101111
0
// repeats
___________________________________________
* However if I add a single print statement in the setup()
function, then that print statement is repeatedly executed
(strange) and the output is garbled.
___________________________________________
void setup ()
{
.....
Serial.println("Girino ready");
Serial.println(" X1 We're outside the loop!! XD"); //This is
the line we added.
//printStatus();
}
___________________________________________
Here is our output;
___________________________________________
Girino ready
X# setup()
Girino# setup()
Girino : etup(# setup()
Girino read# setup()
Girino# setup()
...
Girino #######....//pounds forever.
___________________________________________
So as you can see the setup is printed repeatedly which

68 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/
should only happen once.
Any help is appreciated.
here are my system & software specs:
MacBook Pro, 12-inch, Early 2011
Processor 2.3 GHz Intel Core i5
Memory 4 GB 1333 MHz DDR3
Graphics Intel HD Graphics 3000 384 MB
We are using Arduino Uno SMD edition, software
version 1.0.5
Software OS X 10.9.3 (13D65)
Thanks!
1 reply

womai (/member/womai/)
(/member/womai/)
8 years ago on Step 17
Reply Upvote

Two ideas to make the code more efficient (run faster):

The calculation

ADCCounter = ( ADCCounter + 1 ) %
ADCBUFFERSIZE;

involves an integer division which tends to be time


consuming (at least on a Microchip PIC - I do not know
Atmel as well). Instead, try

if (++ADCCounter >= ADCBUFFERSIZE) ADCCounter =


0;

Second, you can completely avoid the time required to


evaluate

if(wait)

and live without the wait variable if you simply set


stopIndex to a value that the counter never reaches, as
long as you aren't yet in the post-trigger phase. I.e.
during initialization (when starting a new sweep) set

stopIndex = ADCBUFFERSIZE + 1;

and when the trigger event happens then just do as you


did so far, but without the boolean wait variable:

69 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/
ISR(ANALOG_COMP_vect)
{
// Disable Analog Comparator interrupt
cbi( ACSR,ACIE );

// Turn on errorPin
//digitalWrite( errorPin, HIGH );
sbi( PORTB, PORTB5 );

stopIndex = ( ADCCounter + waitDuration ) %


ADCBUFFERSIZE;
}

and the ADC ISR routine becomes

ISR(ADC_vect)
{
if (++ADCCounter >= ADCBUFFERSIZE) ADCCounter =
0;

if ( stopIndex == ADCCounter )
{
cbi( ADCSRA, ADEN );
freeze = true;
}
}
3 replies

More Comments Post Comment

70 of 71 4/20/2020, 2:32 PM
Girino - Fast Arduino Oscilloscope : 26 Steps (with Pictures) - Instruct... https://www.instructables.com/id/Girino-Fast-Arduino-Oscilloscope/

Categories About Us Resources


Circuits Living (/living/) Who We Are Sitemap (/sitemap/)
(/circuits/) Outside (/about/) Help (/id/how-to-
Workshop (/outside/) Why Publish? write-a-great-
(/workshop/) Teachers (/create/) instructable/)
Craft (/craft/) (/teachers/) Jobs (/jobs/) Contact (/contact/)
Cooking
(/cooking/)
Find Us

(https://www.instagram.com (https://www.pinterest.com (https://www.facebook.com (https://www.twitter.com


/instructables/) /instructables) /instructables) /instructables)

© 2020 Autodesk, Inc.

Terms of Service Privacy Statement Privacy Legal Notices & Trademarks


(http://usa.autodesk.com (http://usa.autodesk.com/adsk/servlet settings(http://usa.autodesk.com/legal-
/adsk/servlet/item?siteID=123112& /item?siteID=123112&id=21292079) | notices-trademarks/)
id=21959721) |
|
(http://www.autodesk.com)

71 of 71 4/20/2020, 2:32 PM

You might also like