

Im converter
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
4CP2102N-EK
-- USB Conversion Modules ROHSSilicon LabsUSB Conversion ModulesICL7660N
DIP-83V~9.5V DIP-8 Charge Pumps ROHSHGSEMIDC-DC ConvertersLM358
SOP-8-18V~18V 0℃~+70℃ 1.2MHz 10nA 2 24mA 3V~36V 500uA 50nA 5mV 80dB Built-in compensation SOP-8 Operational Amplifier ROHSMSKSEMIOperational AmplifierLM1117-3.3
SOT-2231 1.3V@(1000mA) 15V 1A 2mA 3.3V Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHShongjiachengUncategorised
README
README.mdImage-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| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 100n | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C7, C8, C10, C11, C12, C13, C14, C15, C20, C21, C22 |
| 8 | 1k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R1, R2, R3, R4, R5, R6, R7, R8 |
| 5 | 10u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C2, C4, C9, C16, C17 |
| 2 | 0R | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R14, R15 |
| 2 | 10k | Resistor_SMD:R_1206_3216Metric_Pad1.30x1.75mm_HandSolder | R9, R10 |
| 2 | 1u | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C3, C5 |
| 2 | 22p | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C1, C6 |
| 2 | 5k1 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R12, R13 |
| 2 | Conn_01x02_Female | custom:PinSocket_1x03_P2.54mm_Vertical | J3, J4 |
| 2 | Conn_01x02_Male | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | J1, J2 |
| 2 | Conn_01x04_Male | Connector_PinHeader_2.54mm:PinHeader_2x02_P2.54mm_Vertical | J5, J6 |
| 2 | NC | Capacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolder | C18, C19 |
| 1 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R11 |
| 1 | 8MHz | Crystal:Crystal_SMD_HC49-SD | Y1 |
| 1 | AD826 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2 |
| 1 | CP2102N | Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm | U5 |
| 1 | Conn_01x03_Male | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J10 |
| 1 | Conn_01x04_Male | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J8 |
| 1 | Conn_01x06_Male | Connector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_Vertical | J7 |
| 1 | ICL7660 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U1 |
| 1 | LM1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U3 |
| 1 | LM358 | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U6 |
| 1 | R_POT | Potentiometer_THT:Potentiometer_Bourns_3296W_Vertical | RV1 |
| 1 | SP0502 | Package_TO_SOT_SMD:SOT-23 | D1 |
| 1 | STM32F405RGTx | Package_QFP:LQFP-64_10x10mm_P0.5mm | U4 |
| 1 | USB_C_Receptacle_USB2.0 | Connector_USB:USB_C_Receptacle_Palconn_UTC16-G | J9 |
Similar boards
- 2 layers63.5 × 31.8 mm

- 2 layers56.8 × 68.6 mm

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 - 4 layers58.7 × 27 mm

- 2 layers69.9 × 63.5 mm

- 2 layers

- 2 layers99.4 × 99.6 mm

GR Subscriber Line Interface Module
GadgetReboot/Phone_SLIM
POTS Telephone Subscriber Line Interface Module
112 parts62CC-BY-SA-4.0 - 2 layers263.3 × 150.4 mm

ArduBooster 4x2
ddo02/ArduBooster
Throttle pedal booster based on Arduino. To improve throttle response.
216 parts3 - 2 layers90 × 55 mm

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.