Raspberry Pi PGenerator.
The affordable bit-perfect test pattern generator for all.
Before we begin with this walkthrough, I would first like to say that a huge debt of gratitude should go out to Riccardo Biasiotto and Juan Loya for the work involved in turning these amazing little devices into a perfectly accurate test pattern generator, and providing it free of charge to the calibration community.
Neither of these guys have ever asked for anything in return, but we (those of us that help support PGenerator within the community) have always thought that it would be good if somehow there was a way to repay them for their efforts in some way.
With this in mind, we have decided to set up a donation page, which @ConnecTEDDD will host at his website.
Whilst Ted is hosting this page, I would like to make it crystal clear that any and all donations, however large or small, will go directly to the two developers. No other person will ever see a penny of any donation made by you, the grateful PGenerator users.
Ted and I will continue to provide support here within this thread, and neither of us will never ask for anything in return.
Please click here if you wish to make a donation, and be sure to leave Ric & Juan a message of thanks.
The affordable bit-perfect test pattern generator for all.
Before we begin with this walkthrough, I would first like to say that a huge debt of gratitude should go out to Riccardo Biasiotto and Juan Loya for the work involved in turning these amazing little devices into a perfectly accurate test pattern generator, and providing it free of charge to the calibration community.
Neither of these guys have ever asked for anything in return, but we (those of us that help support PGenerator within the community) have always thought that it would be good if somehow there was a way to repay them for their efforts in some way.
With this in mind, we have decided to set up a donation page, which @ConnecTEDDD will host at his website.
Whilst Ted is hosting this page, I would like to make it crystal clear that any and all donations, however large or small, will go directly to the two developers. No other person will ever see a penny of any donation made by you, the grateful PGenerator users.
Ted and I will continue to provide support here within this thread, and neither of us will never ask for anything in return.
Please click here if you wish to make a donation, and be sure to leave Ric & Juan a message of thanks.
Note: At the end of this first post I am including an indexed list with links to any posts that contain relevant information that can be expanded upon as more features or tips become available
PGenerator, by Riccardo Biasiotto, is a software based, bit – perfect calibration test pattern generator based on Raspberry Pi. Tested and verified for its accuracy (as seen in The Cheap Test Pattern Generator Thread - credit to @Anger.miki), it has already become the go-to TPG for many home enthusiasts. Readily available at a price that anyone can afford, very easy to assemble and prepare with the required free ISO image file that contains the operating software, it gives access to an accurate and stable TPG to all home enthusiast calibrators.
Whilst the RPI PGenerator has been discussed ad nauseam in the aforementioned Cheap Test Pattern Generator thread, many of the finer details on this remarkable little device gets lost within the “Can I use my [insert streaming device here?]” questions. The purpose of this thread is to make an attempt to consolidate as much information as possible, giving users a ‘One Stop Shop’ of links and guides for set-up and operation of PGenerator only.
The PGenerator is also supported by some of the most popular calibration software solutions that enthusiasts use too!
Both LightSpace & ColourSpace support automatic connection within the Network Manager/Server.
CalMAN can connect via the SpectraCal Unified Pattern Generator Control Interface (UPGCI).
With HCFR, after opening the software, you simply select Automatic in the Generator pop up window, and within the Measures -> Generator -> Configure option window, select Raspberry Pi.
This thread is dedicated to setup of PGenerator and connection to your software of choice. It is not intended to provide general calibration information. It is suggested that for further tips and advice on display calibration, relevant threads are used that relate to your choice of software or your specific display brand/model.
Before any of this can happen though, you will first need your Raspberry Pi to get started!
Raspberry Pi Model 4 is now supported!!
PGenerator is now supported on the Raspberry Pi Model Pi1, Pi2, Pi3, Pi4, Pi Zero, and Pi Zero 2 W single board computers.
For additional information about the many benefits of using a Pi Model 4B board, please see this post.
PGenerator is now supported on the Raspberry Pi Model Pi1, Pi2, Pi3, Pi4, Pi Zero, and Pi Zero 2 W single board computers.
For additional information about the many benefits of using a Pi Model 4B board, please see this post.
For 1080p output at up to 60Hz, it is recommended that at least the Model 3B+ board is used.
For 2160p output at up to 60Hz, and exclusive additional features it is recommended that the Model 4B board is used with a minimum of 2GB RAM
It is also highly recommended that it is purchased in “kit” form which can be found at many online stores such as The Ultimate Raspberry Pi & Maker Store, Amazon, eBay and many others. It is much more cost effective this way, and it will come with the correct USB charger, housing casement for your specific choice of board, along with a Micro USB card (minimum of 16GB is required for PGenerator 1.2) which is used to store the operating software. The Raspberry Pi also has significant support from many third-party case manufacturers, so there are many choices in this regard should you wish to personalise your RPi unit with a different case/housing, or would like to add a fan.
With your choice of Raspberry Pi board in hand, the PGenerator will then need to be installed and configured, and to do this there will be a few downloads and additional steps required.
Device Control:
A browser-based user interface built upon the PERL platform that can be used to access what will hereafter be called a “Settings Template” to configure the PGenerator software. Device Control has many other functions beyond this, but for the purpose of PGenerator we will focus only the PGenerator template for now.
Device Control can be requested for download from THIS PAGE HERE
Follow the provided instructions described within the above link to download and install Device Control with Strawberry Perl (step 1 of 6 in the link) and create a Cloud User Account (step 4 of 6 in the link).
(If this is the first time you have used Device Control, you may have to add the PGenerator device before you can create the account. To do this, see below).
During installation of Device Control, make a note of the installation folder (e.g. I personally install Device Control to my Desktop for easier access) as you will need to navigate to this installation folder at a later time.
Note: Other instructional steps outlined within the above webpage refer to templates specifically designed for LG OLED connection and are irrelevant for PGenerator usage and can be ignored when setting up Device Control.
The main PGenerator ISO file that will be flashed to the SD card of the Raspberry Pi:
The latest version available is PGenerator 1.5 which can be downloaded for free from THIS GOOGLE DRIVE LINK. If at any time a future updated version of the PGenerator ISO image is released, I will update this post with the correct link for the latest available ISO image.
The general PGenerator ISO image will always be provided free of charge by the PGenerator development team, therefore you should not be required to pay a fee to download the general PGenerator ISO image. The download link for the general PGenerator ISO image is the only official download link for the software, and is the only version supported by the PGenerator development team or here in this thread.
(Please note, the only version of PGenerator that will ever require a modest fee to be paid is “Ted’s version of PGenerator which is outlined in post 4 of this thread)
For those updating from a previous build of PGenerator, please ensure you are using the latest version of Device Control before continuing further.
Updating from PGenerator 1.3 or lower is NOT supported via the PuTTy utility.
Updating from PGenerator 1.4 to PGenerator 1.5 is supported via the PuTTy utility.
The MD5 hash checksum for the the most current ISO Image file (linked above) is:
9475F0F2BF233733D37D3A51A13C308A
The SHA-256 hash checksum for the most current ISO image (linked above) is:
37D2118D1F054AB7FA459BDD2DC5DDB86FE311CBB9893E9C74B5730438B1B7DD
Updating from PGenerator 1.3 or lower is NOT supported via the PuTTy utility.
Updating from PGenerator 1.4 to PGenerator 1.5 is supported via the PuTTy utility.
The MD5 hash checksum for the the most current ISO Image file (linked above) is:
9475F0F2BF233733D37D3A51A13C308A
The SHA-256 hash checksum for the most current ISO image (linked above) is:
37D2118D1F054AB7FA459BDD2DC5DDB86FE311CBB9893E9C74B5730438B1B7DD
You can use THIS ONLINE TOOL to drag/drop the extracted RPI.img to easily verify the MD5 Checksum, or for those that comfortable using a terminal window in Windows, you can use the following command (modifying to account for your username) to verify the checksum.
For MD5:
Code:
Get-FileHash C:\Users\YOURUSERNAME\Downloads\RPI.img -Algorithm MD5| Format-List
Code:
Get-FileHash C:\Users\YOURUSERNAME\Downloads\RPI.img | Format-List
For users that are running PGenerator Version 1.4 or later, future updates and/or additional bug fixes can be downloaded and applied without the need to download a completely new ISO image by logging into PGenerator’s update utility using Secure Shell (SSH)
If future updates become available, they can be found by clicking on the link below which will contain information on the update along with instructions on how to do update. The direct link will be continuously updated to reflect any changes contained within the update and/or bug fix as and when the need arises.
A utility to flash the ISO image to the SD Card:
There are a few of these available but we recommend BalenaEtcher which is a free utility. Download it for free from https://www.balena.io/etcher/
With the required files downloaded, and Device Control/BalenaEthcer installed, PGenerator can be setup.
Insert the Micro USB into the card reader of your computer, launch BalenaEtcher and follow the very easy on screen instructions to flash the above downloaded ISO file to the inserted SD Card.
Please note: Since the release of PGenerator Ver.1.21, it is now possible to flash the ISO to a standard USB drive when used in combination with a Raspberry Pi 4 Only. USB installation is not supported on other Raspberry Pi devices, therefore for legacy RPi boards you must use the SD Card for installation. A USB drive installation has the potential to slightly decrease boot time of the device, for example when using a USB 3 supported drive. There are no other benefits in using a USB drive installation in normal TPG usage, however it can be useful if no micro SD card is avaliable. Installation is performed in the same way, using BalenaEtcher.
Please ensure there is no Micro SD in the Raspberry Pi device when using PGenerator with a USB, as the SD card slot is given priority upon boot
The ISO image will take just a few minutes to flash and verify. When it is complete, remove the SD Card from your computer and insert it into the SD Card slot of the Raspberry Pi. You will at this point also need a network connection of some kind. Direct LAN from notebook/desktop is the recommended method as it rules out any and all network interference. LAN connection via a router is also viable, and Bluetooth also provides a super stable connection in my experience. WiFi is NOT recommended.
For initial setup, a LAN cable connection from the Raspberry Pi to your home network router is the easiest, as most home routers will automatically assign an ip address using its DHCP server. Your Raspberry Pi/PGenerator will now also need to be connected to your display via HDMI and the correct input will need to be selected. Turn on the power to the device and you will see a splash screen of scrolling text as the boot up happens, eventually ending with a full black screen. The full black screen after start-up is normal and totally expected.
Direct LAN from notebook/desktop can also be used and is the recommended connection method during actual TPG usage as it rules out any and all network interference. However, some Windows and/or Firewall configurations have the potential to block the initial connection requiring user intervention during the initial set up.
Note: If using the Direct LAN connection method, the first time you connect the two devices with the LAN cable, Windows may ask if the Network is Private or Public. Please select "Private". If a connection is still not successfully established, please check your Firewall is not blocking the connection.
With the assumption that you have already created the Cloud User Account following the instructions referred to above, launch Device Control (device.pl) by navigating to the installation folder and selecting/double clicking the “device.pl” file.
The Device Control window will open, wait for the message to say "You can now connect to the url http://127.0.0.1:81/"
Open a web browser window and navigate to http://localhost:81/ (or http://127.0.0.1:81/) to open the Device Control interface.
You can now add the PGenerator as a new device in Device Control.
Click New -> New Device -> and in the pop-up window click the Device Template. A list will appear, scroll to the bottom and select RB8 PGenerator. Enter a name of your choice in the box below (e.g. RPi PGen) and the device ip address. Once complete, click the Pencil Icon to write the selected settings to the device.
If a direct LAN connection between your computer and PGenerator is used, enter “0” as the ip address. If LAN Connection is used via a router, you can use the “Auto Discovery” function, or manually enter the ip address if known. If Auto Discovery fails, to find the ip address of the PGenerator, you can access your router configuration page and find it there.
Note: You can also perform the initial set-up via Bluetooth Connection, but for simplicity, the LAN Connection is preferred.
Remember to click the “Pencil” icon to save the settings once complete
If at any time the PGenerators network connectivity settings are changed from one type to another within Modify Device, it is advised that you fully reboot the Raspberry Pi. This is to ensure the new connection method is activated as the device boots.
With the device added, you can now add the PGenerator Template.
In the top menu bar, click Cloud -> Cloud Refresh (assuming you have already created the Cloud User Account as explained the link provided above). The Cloud area will populate with various Templates.
Search for, and select “PGenerator 1.4 – Settings 1.4”, by “connected”. At the time of writing, it is on the very first page of cloud templates. However, due to the inability to control users uploading their own created/saved templates, it will over the course of time mean that it could be pushed onto another page. You can search for connected within the search box to find the template shown in the image if this is the case.
One the template has been located, drag it to your Local storage and confirm the Copy function that pops up.
You may delete the old Settings Template now if you desire. A quick and easy way to do this is to highlight the old Template by clicking on it within your local storage, and pressing "Shift + Delete" on your keyboard.
Select the new Settings 1.3 Template, and click Connect.
PGenerator can now be further configured within this Template.
Use the arrows (as highlighted in the above image) to toggle through the two configuration pages.
As shown above, the main “Admin” page will allow for configuration of output resolution. The list of available resolutions that appears here will vary based on the type of Raspberry Pi board you are using and what has been presented within the EDID of the connected display. For users of a Raspberry Pi 4 based board, you will be able to select up to 2160/60 if your display supports it, whereby older models of Raspberry Pi boards will be able to select up to 1080/60.
Please note that whenever you connect your Raspberry Pi running PGenerator to a different display, you must perform a full reboot of PGenerator so that the EDID of the newly connected display can be read by the device. When this happens, the list of available resolutions may change, and the order they are presented in the list may also differ. This means you will need to use the settings template to reselect the correct output resolution mode for the newly connected display.
Users with a Raspberry Pi 4 will also be presented with an additional configuration page for the various output formats available which will be explained in a dedicated post below. For all other Raspberry Pi boards, you will have limited options where you can select output resolution and configure connection settings.
The WiFi and Bluetooth module can now be enabled or disabled directly from within the template “Net” page.
The default PGenerator that can be downloaded from the link provided in this post will have both WiFi and Bluetooth enabled by default. Users of Ted’s version of PGenerator will find that both WiFi and Bluetooth are disabled by default.
Previously, to enable/disable either of these wireless connection modules you would have to mount your PGenerator SD card onto your PC and manually edit the config.txt, but now you can do this directly from within the Settings 1.3 Template.
Please be aware that to either enable or disable either of these options, or to configure the WiFi connection, you will first need an alternative connection type such as a wired LAN connection (either directly to your computer or via a router) as described above.
With both of the wireless connection modules enabled, you can configure one, or both of them, and see the relevant IP address required for connection.
The default PGenerator will have both wireless modules enabled
The WiFi AP IP will allow you to connect directly to PGenerator using the Rapsberry Pi as your access point. You can configure the name (SSID) and password here.
The WiFi Net section will allow you to connect to your home network router.
The Ethernet section will show your wired LAN connection IP address, if connected
The BT section will provide you with the BT module IP access point address.
Ted’s LightSpace CMS Calibration Disk, PGen Edition has both modules disabled.
Only the wired connection information will be visible.
When Enabling/Disabling either of the wireless modules, your Raspberry Pi will immediately reboot.
With PGen set up, connection to your calibration software is very simple.
LightSpace CMS uses the Network Manager to connect to PGenerator. Simply open Network Manager from the top toolbar and click Enable. The ip address will appear to let you know that PGen is connected.
ColourSpace CMS uses the Network Server to connect to PGenerator. Select the Hardware Options tab, select Network Server from the down menu, and click Connect. The ip address will appear as a Connected Client letting you know PGen is connected……Remember to set Calibration Patches to Automatic
ColourSpace also supports full direct integration with PGenerator 1.3 with its own dedicated hardware tab, allowing full control of all output formats and various other settings.
CalMAN uses the SpectraCal Unified Pattern Generator Control Interface (UPGCI). Click Find Source from the Source tab, select SpectraCal, UPGCI, and enter the ip address of the PGenerator, then click Connect.
Please note: When controlling PGenerator with CalMAN calibration software, only (approx) 10% Windows or 100% Full Field patterns are available as patch generation options.
For HCFR, when you click to open a new session, you will be given the option for Generator type. Select Automatic. Then, with the session window open, navigate to Measures -> Generator -> Configure. Ensure Raspberry Pi is selected. Raspberry Pi will appear as the Generator. Measurement patches will appear on screen when you call for the first patch automatically.
You are now connected to a bit-perfect, RGB Full external test pattern generator.
Further instructions and recommendations can be discussed in this thread dependant on the required needs for each individual’s set-up, and/or video chain.
Quick Links
- PGenerator Connectivity Guide
- PGenerator Software Configuration
- Ted's LightSpace CMS Calibration Disk - PGen Edition
- PGenerator + HD Fury = HDR TPG
- Raspberry Pi Model 4B exclusive features and functions
- Murideo SIX-G HDR10 Metadata - Default HDR10 Metadata Slots (for PGenerator + HD Fury Users) Provided by @ConnecTEDDD
- Solution for potential networking issues when using the Direct LAN connection method Credit and thanks to @mrtickleuk
- Forcing alternate pattern sizes or generating APL patterns with CalMAN software (applies to CalMAN users only)
- Useful information on using Ted's LightSpace CMS Calibration Disk -PGen Edition (Informative post courtesy of @ConnecTEDDD )
- Disable Wi-Fi & Bluetooth Radio via "config.txt" edit Instructions provided by @Callek
- Ted's Template for PGenerator / Solve Errors like: ''Error memory not found' / Character not permitted / Empty template entry without text'
- Enable HDR pattern generation on 2020/2021 LG displays using the HDMI Override Menu - No HD Fury device required Provided by @ConnecTEDDD
- HLG-HDR metadata for PGenerator users with compatible HD Fury device Provided by @ConnecTEDDD
- Raspberry Pi Model 4B support announced Provided by @ConnecTEDDD
- Mandatory DeviceControl Update - DeviceControl Interface 20.0.20 (23 January 2022) Provided by @ConnecTEDDD
- 2022 Model LG's reported to be enabling "PC MODE" when connected to a RPi 4 Reported by @SamuriHL and confirmed by @dwaleke
- ColourSpace License Upgrade for Ted's PGenerator Customers Provided by @ConnecTEDDD
- Generic Free PGenerator vs Ted's LightSpace CMS Pattern Disk PGenerator - Differences By @ConnecTEDDD