UPG-812
A Python-Native Hardware Interface for Embedded Development


The UPG-812 connects your PC directly to electronic hardware. Power sensors, ICs and prototype PCBs, configure their logic voltage, and communicate over I²C, SPI, UART and GPIO using Python. Instead of reaching for a development board and writing single-use firmware just to evaluate hardware, connect the UPG-812 and start interacting with devices immediately from Python. Whether you’re bringing up a new PCB, evaluating a sensor or building a quick proof of concept, the UPG-812 removes the firmware overhead between your PC and your hardware.
Typical Use Cases
Evaluate Electronic Hardware
Sensor evaluation
Peripheral communication
Low-level IC register access
Module evaluation and characterisation
PCB Bring-up
Toggle reset / enable pins
Exercise digital inputs
Bus scanning
Verify hardware behaviour
Characterise power consumption
Build and Experiment
Rapid proof of concept
Hardware experimentation
Prototype development
Interface exploration
Technical Specification
Frequently Asked Questions
What are the typical use cases of the UPG-812?
The UPG-812 is designed primarily for embedded hardware development, providing an easy-to-use python native hardware interface. Typical applications include:
PCB bring-up and peripheral validation
Sensor and module evaluation
I²C, SPI, UART, GPIO, and PWM communication testing
Programmable power delivery and real-time power monitoring
Arbitrary digital waveform generation and scoping
Automated hardware testing and validation
Battery emulation and power characterisation
Rapid prototyping and hardware experimentation
Why would I use the UPG-812 instead of a development board?
By using the UPG-812, you have immediate python access of the hardware interface, without having to write any embedded firmware. By skipping this step, you also automatically skip having to install toolchains and flashing any MCU. The adjustable IO voltage ensures you can talk to the target device. By keeping the control on python, you can also ensure re-usability of high level python scripts.
Who is the UPG-812 designed for?
The UPG-812 is designed for anyone who needs to interface with electronic hardware. Typical users include Embedded Hardware & Electronic Engineers, R&D and Product Development Teams, as well as Research Labs and Educators.
By providing a Python Native hardware interface, users can intuitively and quickly set voltage logic levels, set/read pin states and communicate with various peripherals. By also providing an integrated PSU, it is also possible to power up devices and monitor power consumption.
Do I need to learn a new programming language?
No, if you already use Python, you’re ready to use the UPG-812.
Where does the UPG-812 add value?
The UPG-812 removes friction from early-stage hardware development by replacing temporary firmware, bespoke development boards, protocol adapters, and multiple bench instruments with a single Python-Native Hardware Interface.
Instead of writing low-level Microcontroller code, configuring communication peripherals, managing logic-level compatibility, and stitching together separate tools, engineers can immediately power, control, test, and validate hardware directly from Python.
This accelerates board bring-up, sensor validation, prototyping, and automated testing while reducing development complexity and setup time.
What problem does the UPG-812 solve?
Modern embedded development often starts by writing temporary firmware simply to communicate with new hardware. The UPG-812 removes that step by allowing Python to communicate directly with embedded devices through programmable power, configurable logic levels and standard digital interfaces.
What voltages do the GPIOs support?
The GPIOs are referenced to VDDIO, which can be programmed between 1.2V to 5V. This flexibility allows interfacing at non-standard VDDIO voltages, which could be required when testing operating limits. The UPG-812 can also be configured to not generate a VDDIO voltage, where the voltage can then be provided externally, providing further flexibility.
Modern electronics operate at many different logic voltages. Being able to match the target hardware avoids external level shifters and allows direct communication with a wider range of devices.
Why is adjustable VDDIO important?
Does the UPG-812 replace an oscilloscope or logic analyser?
No. The UPG-812 is designed to interact with hardware rather than observe electrical signals. It complements traditional measurement instruments by simplifying communication, power control and hardware bring-up. However, the UPG-812 can be configured to timestamp detected changes in digital logic levels, allowing logging events in bursts of 250ksps.
Isn’t this just another USB I²C/SPI/UART bridge?
The UPG-812 can certainly replace dedicated protocol bridges, but it goes further by integrating programmable power, adjustable logic levels, all controlled via a single Python API.
Can I use the UPG-812 without a Host PC?
No, the UPG-812 is designed to be used alongside its python API, and is therefore required to be used alongside a host machine.
Does the UPG-812 need to be plugged in to its wall wart adapter?
The UPG-812 takes power exclusively from the wall wart, and therefore is required for usage. The USB port is only used for controlling the device.
The UPG-812 has 8 GPIOs, which can be configured via the python API. The table below shows the various possible configurations for each GPIO.
What protocols are supported on the IOs?
How fast can I toggle a GPIO?
There are various ways to toggle an IO. If controlled manually by making individual API calls, the IO can be typically be toggled at approximately 1kHz. If the IO is configured as a PWM output, it can be toggled at 16MHz. Alternatively, if an arbitrary pattern is required, it’s possible to preload the pattern and play it at a selected time base, yielding a maximum toggle rate of 100kHz.
No, the UPG-812 has been designed from the ground up with python as the control interface in mind, allowing building own higher level control code above the API. It is therefore possible to create GUIs that use the python API underneath it, but this is not the primary intended use.
Is there a GUI to control the UPG-812
Can I use multiple UPG-812 devices on a single host PC?
Yes, it’s possible to instantiate each device by serial number, allowing multiple instances.
Register Your Interest in the UPG-812
Interested? Let us know! Sign up today to get updates and exclusive early access.
