# Scope-O-Matic, an Arduino Nano based oscilloscope in Eurorack format

**URL:** <https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565>\
**Category:** DIY STUFF\
**Created:** [August 7, 2020, 4:25pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565 "2020-08-07T16:25:05Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Farabide](https://avatars.discourse-cdn.com/v4/letter/f/ecc23a/32.png) [@Farabide](https://lookmumnocomputer.discourse.group/u/Farabide)\
**Post date:** [August 7, 2020, 9:42pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/21 "2020-08-07T21:42:25Z")

</div>

As in double up as a tuner @analogoutput?

---

<div class="post-metadata">

**Author:** ![Jos](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/jos/32/151_2.png) [@Jos](https://lookmumnocomputer.discourse.group/u/Jos)\
**Post date:** [August 7, 2020, 9:45pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/22 "2020-08-07T21:45:05Z")

</div>

Yes it (still) has. Just a matter of switching it on again.

The code contains a block that lets you choose what you see. I added this because I anticipated that a question like this would occur. I use the code with the SIMPLIFIED define defined. [Edit] I added 2 lines initially for displaying the frequency. Given the change in layout that needs a different value for the y-coordinate as well. They are commented out here. The frequency values change very erratically so that is why I left displaying them out. This could be entirely due to the input signals I’ve used so far.

```auto

#define SIMPLIFIED

#ifdef SIMPLIFIED
  #define BEGIN_X 0 // Begin position of plot on x-axis
  #define DISPLAY_ZERO_LINE 1
// #define FREQ_Y 0
// #define DISPLAY_FREQUENCY 1
#else
  #define BEGIN_X 24 // Begin position of plot on x-axis
  #define DISPLAY_AVERAGE_TR 1
  #define DISPLAY_ZERO_LINE 1
  #define DISPLAY_VERTICAL_MARKS 1
  #define DISPLAY_VERTICAL_LINES 1
  #define DISPLAY_VERTICAL_LINE_LEFT 1
  #define DISPLAY_AVERAGE_TR 1
  #define DISPLAY_AVERAGE_TL 1
  #define DISPLAY_CENTER_VALUE 1
  #define DISPLAY_DUTY_CYCLE 1
  #define DISPLAY_FREQUENCY 1
  #define FREQ_Y 12
  // vertical position of plotted frequency in pixels
#endif

```

---

<div class="post-metadata">

**Author:** ![feralbeagle](https://avatars.discourse-cdn.com/v4/letter/f/c6cbf5/32.png) [@feralbeagle](https://lookmumnocomputer.discourse.group/u/feralbeagle)\
**Post date:** [August 7, 2020, 11:56pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/23 "2020-08-07T23:56:39Z")

</div>

Definitely want to build one. The trigger looks like it works well. Can the trigger be set to a different position on the screen, like far left instead of in the center of the screen?

---

<div class="post-metadata">

**Author:** ![Jos](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/jos/32/151_2.png) [@Jos](https://lookmumnocomputer.discourse.group/u/Jos)\
**Post date:** [August 8, 2020, 8:04am UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/24 "2020-08-08T08:04:41Z")

</div>

The short answer is: Yes, easy peazy. It is all done in software after all.

It is just a matter of reorganizing some coordinates. Have a look at the function dispInf():

```auto
void dispInf() { // Display of various information
  float voltage;
  // display vertical sensitivity
  oled.setCursor(2, 0); // around top left
  oled.print(vScale); // vertical sensitivity value
  if (scopeP == 0) { // if scoped
    oled.drawFastHLine(0, 7, 27, WHITE); // display scoped mark at the bottom
    oled.drawFastVLine(0, 5, 2, WHITE);
    oled.drawFastVLine(26, 5, 2, WHITE);
  }

  // horizontal sweep speed
  // Code left out for clarity

  // trigger polarity
  oled.setCursor(75, 0); // at top center
  if (trigD == 0) { // if positive
    oled.print(char(0x18)); // up mark
  } else {
    oled.print(char(0x19)); // down mark ↓
  }
  if (scopeP == 2) { // if scoped
    oled.drawFastHLine(71, 7, 13, WHITE); // display scoped mark at the bottom
    oled.drawFastVLine(71, 5, 2, WHITE);
    oled.drawFastVLine(83, 5, 2, WHITE);
  }

```

Note: the function is only shown partially.

If e.g. you swap the coordinates for displaying the vertical sensitivity with the ones used for showing the trigger polarity, you will effectively have moved the trigger to the left ( and the sensitivity to the right ). The draw commands follow this scheme: oled.drawFunction(x, y, length, color). The x-value varies from 0 to 127 and the y values vary from 0 to 63. Note however that if you change the positions like this, the visible sequence of walking through the menu items will change as well.

---

<div class="post-metadata">

**Author:** ![irregularshed](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/irregularshed/32/30374_2.png) [@irregularshed](https://lookmumnocomputer.discourse.group/u/irregularshed)\
**Post date:** [August 8, 2020, 12:11pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/25 "2020-08-08T12:11:15Z")

</div>

The funny thing is I was looking for a project like this two days ago! Looks like I can add this to the pile of things I’m trying to get finished 😃 excellent work!

---

<div class="post-metadata">

**Author:** ![THOGRE](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/thogre/32/5189_2.png) [@THOGRE](https://lookmumnocomputer.discourse.group/u/THOGRE)\
**Post date:** [August 8, 2020, 3:41pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/26 "2020-08-08T15:41:50Z")

</div>

This is extremely cool and helpful !!!

---

<div class="post-metadata">

**Author:** ![Kelaifu](https://avatars.discourse-cdn.com/v4/letter/k/46a35a/32.png) [@Kelaifu](https://lookmumnocomputer.discourse.group/u/Kelaifu)\
**Post date:** [August 11, 2020, 10:38am UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/27 "2020-08-11T10:38:10Z")

</div>

this looks cool, something I have been thinking of adding for a long time. Looking at Arduino compatible screens on taobao (China) I can see bigger ones (1.8 and 2.4") but they have more pins, is the project adaptable to those?

---

<div class="post-metadata">

**Author:** ![analogoutput](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/analogoutput/32/29663_2.png) [@analogoutput](https://lookmumnocomputer.discourse.group/u/analogoutput)\
**Post date:** [August 11, 2020, 11:20am UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/28 "2020-08-11T11:20:20Z")

</div>

The schematic shows pinout GND-VCC-SCL-SDA for the OLED. As pointed out [here](https://lookmumnocomputer.discourse.group/t/my-build-progress/345/1013), sometimes these OLEDs have that pinout and sometimes VCC-GND-SCL-SDA. For a build like Jos’s it’s just a matter of keeping track and doing the wiring accordingly. A hypothetical PCB implementation with the OLED going directly into a header on the PCB would have to be designed either for one pinout but not the other, or with jumpers to choose the pinout.

---

<div class="post-metadata">

**Author:** ![Bitnik](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/bitnik/32/274_2.png) [@Bitnik](https://lookmumnocomputer.discourse.group/u/Bitnik)\
**Post date:** [August 11, 2020, 11:28am UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/29 "2020-08-11T11:28:33Z")

</div>

> [@Kelaifu](#):
>
> but they have more pins

The I2C protocol uses only four pins including ground and VCC. The other two are SCL and SDA, clock and data respectively. If the display has more pins that means it uses a different protocol so it’s incompatible with this design.

---

<div class="post-metadata">

**Author:** ![analogoutput](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/analogoutput/32/29663_2.png) [@analogoutput](https://lookmumnocomputer.discourse.group/u/analogoutput)\
**Post date:** [August 11, 2020, 11:29am UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/30 "2020-08-11T11:29:40Z")

</div>

Which is not to say it’s not “adaptable”, just that there would be changes to the schematic and the code.

---

<div class="post-metadata">

**Author:** ![Bitnik](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/bitnik/32/274_2.png) [@Bitnik](https://lookmumnocomputer.discourse.group/u/Bitnik)\
**Post date:** [August 11, 2020, 11:30am UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/31 "2020-08-11T11:30:39Z")

</div>

Yeah, if not for the pinout, it would be completely compatible, except for the code.

---

<div class="post-metadata">

**Author:** ![Bitnik](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/bitnik/32/274_2.png) [@Bitnik](https://lookmumnocomputer.discourse.group/u/Bitnik)\
**Post date:** [August 11, 2020, 12:53pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/32 "2020-08-11T12:53:40Z")

</div>

Here’s a display with 128x128 pixels, supports I2C. On the face of it this may be a good candidate for a larger display on the module. You still may have to adapt the code though.

> **[MakerHawk I2C OLED Display Module 1.5inch OLED Module with 128x128 Pixels,...](https://www.amazon.co.uk/dp/B07BDMG2DK/ref=cm_sw_r_cp_apa_i_goPmFb3384JNN)**
>
> Buy

---

<div class="post-metadata">

**Author:** ![Kelaifu](https://avatars.discourse-cdn.com/v4/letter/k/46a35a/32.png) [@Kelaifu](https://lookmumnocomputer.discourse.group/u/Kelaifu)\
**Post date:** [August 11, 2020, 3:35pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/33 "2020-08-11T15:35:00Z")

</div>

Good info, I’ll check if there are other screens which are I2C compatible.

---

<div class="post-metadata">

**Author:** ![Farabide](https://avatars.discourse-cdn.com/v4/letter/f/ecc23a/32.png) [@Farabide](https://lookmumnocomputer.discourse.group/u/Farabide)\
**Post date:** [August 11, 2020, 3:37pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/34 "2020-08-11T15:37:40Z")

</div>

I found some on wish a short time ago.

---

<div class="post-metadata">

**Author:** ![Caustic](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/caustic/32/15588_2.png) [@Caustic](https://lookmumnocomputer.discourse.group/u/Caustic)\
**Post date:** [August 11, 2020, 3:59pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/35 "2020-08-11T15:59:52Z")

</div>

These are the ones i picked up.

4pcs for $18.99

> **[Amazon.com: 4pcs I2C OLED 0.96 Inch OLED Display Module IIC SSD1306 128 64 LCD...](https://www.amazon.com/gp/product/B07VDXYDVY/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1)**
>
> Amazon.com: 4pcs I2C OLED 0.96 Inch OLED Display Module IIC SSD1306 128 64 LCD White with Du-pont Wire 40-Pin Female to Female for Arduino UNO R3 STM: Computers & Accessories

---

<div class="post-metadata">

**Author:** ![Kelaifu](https://avatars.discourse-cdn.com/v4/letter/k/46a35a/32.png) [@Kelaifu](https://lookmumnocomputer.discourse.group/u/Kelaifu)\
**Post date:** [August 11, 2020, 4:35pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/36 "2020-08-11T16:35:17Z")

</div>

just bought a bunch to try with this project, ranging from about a dollar for a 0.96" to a whoipping 3 dollars for some of the bigger ones.

---

<div class="post-metadata">

**Author:** ![Jos](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/jos/32/151_2.png) [@Jos](https://lookmumnocomputer.discourse.group/u/Jos)\
**Post date:** [August 11, 2020, 7:29pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/37 "2020-08-11T19:29:51Z")

</div>

Jumpers would be a wise choice I think.

---

<div class="post-metadata">

**Author:** ![Jos](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/jos/32/151_2.png) [@Jos](https://lookmumnocomputer.discourse.group/u/Jos)\
**Post date:** [August 11, 2020, 7:32pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/38 "2020-08-11T19:32:26Z")

</div>

I’ve done a bit of searching but haven’t found any i2c displays with a resolution higher than 128 x 128. I wonder whether there is a technical reason for that. Any ideas?

---

<div class="post-metadata">

**Author:** ![Bitnik](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/bitnik/32/274_2.png) [@Bitnik](https://lookmumnocomputer.discourse.group/u/Bitnik)\
**Post date:** [August 11, 2020, 7:48pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/39 "2020-08-11T19:48:21Z")

</div>

At some point you reach the maximum practical refresh rate. The tighter the bottleneck the sooner that will be.

---

<div class="post-metadata">

**Author:** ![Bitnik](https://yyz2.discourse-cdn.com/free1/user_avatar/lookmumnocomputer.discourse.group/bitnik/32/274_2.png) [@Bitnik](https://lookmumnocomputer.discourse.group/u/Bitnik)\
**Post date:** [August 11, 2020, 8:04pm UTC](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565/40 "2020-08-11T20:04:10Z")

</div>

Here’s a link to a somewhat larger and higher resolution display I bought recently. It uses an 8 bit parallel interface with several control lines. You might get away with running that screen from an Arduino Uno or Nano, but to get the best out of it you need an Arduino Mega which has lots of data pins to spare.

> **[Kuman 3.5 inch Tft Touch Screen LCD Display with SD Card Socket Compatible with...](https://www.amazon.co.uk/dp/B075CXXL1M/ref=cm_sw_r_cp_apa_i_6HVmFb0F01JFC)**
>
> Buy

[Previous page](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565.md?page=1)

[Next page](https://lookmumnocomputer.discourse.group/t/scope-o-matic-an-arduino-nano-based-oscilloscope-in-eurorack-format/1565.md?page=3)
