Skip to the content
4 layers73 × 32 mmIm converter, the printed circuit board in 3D

Raster oscilloscope images generator from an arbitrary bitmap file.

Size
73 × 32 mm
Copper layers
4
Thickness
1.6 mm
Parts
56
Nets
107
Pads
263
Tracks, vias
530, 88
Pours
5
Routed
Yes
KiCad
KiCad 6 (file 20211014)
Created
22 Jan 2023
Updated
13 Sep 2025

Overview

Im converter is an open-source printed circuit board by Kononenko-K, from the Kononenko-K/Image-To-Scope-Converter repository on GitHub. It is a 4-layer board of 73 × 32 mm with 56 parts on 107 nets, routed with 530 tracks and 88 vias.

It is built around the CP2102N-EK, ICL7660N and LM358, with the LM1117-3.3 among its other parts. Its parts include 22 capacitors, 15 resistors, 10 connectors, 6 ICs and 1 diode. It belongs with the STM32 boards of this library.

Main components

4

README

README.md

Image-To-Scope-Converter

Raster oscilloscope image generator from an arbitrary bitmap file.

Overview

The idea behind this project is based on the fact that rapid signal transitions are almost imperceptible on a CRT. Thus, if we make a signal jump with a very short rise/fall time from point A to point B, there will be no visible trace of movement on the display. Here, I use the MCU's DAC to generate horizontal and vertical scan signals, and an open-drain GPIO output to create the sharpest possible edge by shorting the DAC output to ground (which is not ideal, but the DAC's output impedance is relatively high anyway). This allows to return the dot on the screen to the zero position when the pixel is white, enabling the display of a raster image on any 2-channel CRT oscilloscope in XY mode without modifying its circuitry for brightness modulation.

Hardware

The board features an STM32F405 series MCU, USB-UART converter, USB Type-C connector, negative voltage generator, and a wideband 2-channel operational amplifier. KiCad project files and PDF documentation are avaliable. For correct operation, DACx and PWMx outputs should both be connected to the corresponding Ax pins.

Firmware

The firmware is configured to work with a 1 MBd USART speed, 256×256 image resolution, and adjustable frame rate. The MCU receives an 8192-byte array representing XBM-format images with 1 bit per pixel encoding. The frame rate can be adjusted using the button connected to the PB1 pin. A test image is included in the firmware and can be found in test_im.h. It is displayed immediately after power-on until another image is loaded via UART. The project is developed using STM32CubeIDE with HAL.

Software

I developed a Python PyQt6 script for the project GUI that generates properly formatted data from arbitrary images. Here are the source code and requirements.

Enclosure

STL files for the case and its cover for 3D printing.

License

  • The Software and Firmware in this project are licensed under the MIT License, with the exception of portions of the firmware code that are copyrighted by STMicroelectronics; such portions are subject to the original licensing terms provided by STMicroelectronics.
  • The Hardware in this project is licensed under the CERN Open Hardware Licence Permissive (CERN OHL-P).

Parts

56
QtyValueFootprintReferences
11100nCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC7, C8, C10, C11, C12, C13, C14, C15, C20, C21, C22
81kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R2, R3, R4, R5, R6, R7, R8
510uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC2, C4, C9, C16, C17
20RResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR14, R15
210kResistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR9, R10
21uCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC3, C5
222pCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1, C6
25k1Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR12, R13
2Conn_01x02_Femalecustom:PinSocket_1x03_P2.54mm_VerticalJ3, J4
2Conn_01x02_MaleConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1, J2
2Conn_01x04_MaleConnector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_VerticalJ5, J6
2NCCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC18, C19
110kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR11
18MHzCrystal:Crystal_SMD_HC49-SDY1
1AD826Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1CP2102NPackage_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mmU5
1Conn_01x03_MaleConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ10
1Conn_01x04_MaleConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ8
1Conn_01x06_MaleConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ7
1ICL7660Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1LM1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1LM358Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU6
1R_POTPotentiometer_THT:Potentiometer_Bourns_3296W_VerticalRV1
1SP0502Package_TO_SOT_SMD:SOT-23D1
1STM32F405RGTxPackage_QFP:LQFP-64_10x10mm_P0.5mmU4
1USB_C_Receptacle_USB2.0Connector_USB:USB_C_Receptacle_Palconn_UTC16-GJ9

Similar boards

  • 2 layers63.5 × 31.8 mmLucid, the printed circuit board in 3D

    Lucid

    breadboardbasics/Lucid

    Everything that deals with my Lucid Dreaming project

    41 parts2MIT
  • 2 layers56.8 × 68.6 mmEmg, the printed circuit board in 3D

    Emg

    leikoilja/muscle-imbalance-detection

    A device to assist patients with the rehabilitation of the knee joint after a knee surgery using EMG biofeedback. The device can reliably detect muscle activity and display it in an easy-to-use mobile application.

    84 parts6MIT
  • 2 layers69.9 × 63.5 mmSeniorDesign, the printed circuit board in 3D

    SeniorDesign

    SDP-DT04/KiCad-Design

    KiCad files for circuit board design

    35 parts
  • 2 layersPsu v2, the printed circuit board in 3D

    Psu v2

    prosper00/Circuits

    38 parts4
  • 2 layers263.3 × 150.4 mmArduBooster 4x2, the printed circuit board in 3D

    ArduBooster 4x2

    ddo02/ArduBooster

    Throttle pedal booster based on Arduino. To improve throttle response.

    216 parts3
  • 2 layers90 × 55 mmPowerBox, the printed circuit board in 3D

    PowerBox

    frep/kicad

    workspace for kicad projects

    112 parts2

Questions

How big is the Im converter PCB?

It measures 73 × 32 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Im converter use?

56 parts, built around the CP2102N-EK, ICL7660N, LM358 and LM1117-3.3. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Im converter KiCad files?

From the Kononenko-K/Image-To-Scope-Converter repository on GitHub, at the commit this page was made from: the board is Hardware/PCB/im_converter.kicad_pcb and its schematic Hardware/PCB/im_converter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Im converter design in my own project?

Its repository states no licence, so its author keeps all rights: ask Kononenko-K before reusing the design.