Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
fa16ae7
Cosmetics (#52)
bruelltuete Jul 1, 2023
a248d72
Wrap header with ifdef for C++ compatibility
bruelltuete Jun 30, 2023
a4b5049
Add Adafruit Feather RP2040 DVI support
neuschaefer Feb 22, 2024
92c96bc
Add 720x480p 60Hz mode (270 MHz bit clock)
DLehenbauer Feb 9, 2024
8ecccce
Support 4-bit grayscale in packtiles
Wren6991 Mar 21, 2024
ca941ba
RP2350 changes (including RISC-V)
Wren6991 Aug 10, 2024
62c07fb
Add pin definitions for Waveshare RP2040-PiZero
dotsam Aug 10, 2024
692510b
Initial WIP
PaintYourDragon Jan 11, 2023
14542a5
Moar WIP
PaintYourDragon Jan 11, 2023
86a383d
Moar wip
PaintYourDragon Jan 11, 2023
e77c6fe
More WIP, trying different approach (soft links rather than include .…
PaintYourDragon Jan 11, 2023
4a8d322
Starting to work
PaintYourDragon Jan 11, 2023
314d526
Starting to work as a GFX subclass, still WIP
PaintYourDragon Jan 11, 2023
f9fe03d
Simpler org, soft link libdvi folder instead of each file
PaintYourDragon Jan 12, 2023
e2bc0d6
Some cleanup, clang-format
PaintYourDragon Jan 12, 2023
bf7c3c2
proto
PaintYourDragon Jan 12, 2023
c09bab4
Tweaklets
PaintYourDragon Jan 12, 2023
c41d52c
Update library.properties
PaintYourDragon Jan 12, 2023
96a866f
400x240 working (needs higher VREG voltage)
PaintYourDragon Jan 12, 2023
85a8bd1
README notes
PaintYourDragon Jan 12, 2023
c35a3a3
More Readme notes
PaintYourDragon Jan 12, 2023
fd9ad27
Decouple PicoDVI class allowing use as base for more framebuffer types
PaintYourDragon Jan 13, 2023
b4f9815
Various Readme & properties updates, add virtual_spitft boilerplate
PaintYourDragon Jan 13, 2023
18119d4
Can remove AVR mentions from example (bc RP2040 only)
PaintYourDragon Jan 13, 2023
bd5cfef
8bpp WIP
PaintYourDragon Jan 15, 2023
a8e4ddc
Simpler dealing with the framebuf size
PaintYourDragon Jan 15, 2023
a7b4dad
DVIGFX8 cleanup
PaintYourDragon Jan 15, 2023
2e91831
Add double-buffered 8-bit framebuf (requires GFX 1.11.4)
PaintYourDragon Jan 17, 2023
f603f4d
1bpp WIP
PaintYourDragon Jan 17, 2023
b306fc3
1bpp WIP
PaintYourDragon Jan 17, 2023
248763d
1bpp WIP
PaintYourDragon Jan 17, 2023
837a2f9
640x480 and 800x480 monochrome now working
PaintYourDragon Jan 17, 2023
2486500
Fix 1-bit examples built w/Pico SDK
PaintYourDragon Jan 17, 2023
0a16847
Quick port of the spitft2hdmi code into Arduino
PaintYourDragon Jan 17, 2023
6d00c64
virtual_spitft: handle rotation, malformed requests
PaintYourDragon Jan 18, 2023
9c99e42
virtual_spitft example: some cleanup
PaintYourDragon Jan 18, 2023
a4a97b3
Simplify virtual_spitft a bit
PaintYourDragon Jan 18, 2023
8a77cb3
Mono double-buffered working
PaintYourDragon Jan 18, 2023
75896fc
Add comments in examples
PaintYourDragon Jan 19, 2023
1f8a210
Text mode stuff WIP
PaintYourDragon Feb 11, 2023
10795d8
Minor text work
PaintYourDragon Feb 11, 2023
98e8b73
Some text progress
PaintYourDragon Feb 12, 2023
a5c14a4
Simplify resolution spec and switch some constructor args around
PaintYourDragon Feb 13, 2023
ea20cdd
Add skinny pixel modes, ability to print() to DVIterm1
PaintYourDragon Feb 13, 2023
278ff38
Replace font with canonical IBM VGA 8x8 CP437
PaintYourDragon Feb 13, 2023
fe9e829
Move wait_begin into PicoDVI class so subclasses in other source file…
PaintYourDragon Feb 13, 2023
40e1536
clang-format
PaintYourDragon Feb 13, 2023
382363a
Fix comment
PaintYourDragon Feb 14, 2023
eb000ea
Seems to address startup hang issue?
PaintYourDragon Feb 14, 2023
474ecf1
Terminal: vert scroll fix
PaintYourDragon Feb 14, 2023
2858950
Remove separate 8x2 class; double-buffered is a constructor arg
PaintYourDragon Feb 15, 2023
d03b6fb
Rename DVIterm1 class to DVItext1, because "term" Implies a Lot
PaintYourDragon Feb 15, 2023
f7ce41e
Some notes on text mode
PaintYourDragon Feb 22, 2023
c5334f2
Add Adafruit Feather DVI to pin configs
PaintYourDragon Mar 9, 2023
1c4bbae
Add Github workflows
PaintYourDragon Mar 9, 2023
7eee742
Disable clang-format part of CI because most code is from elsewhere
PaintYourDragon Mar 9, 2023
97bbc9d
Update githubci.yml
PaintYourDragon Mar 9, 2023
d006e19
Update githubci.yml
PaintYourDragon Mar 9, 2023
f66a28c
Update githubci.yml
PaintYourDragon Mar 9, 2023
7910e26
Update .gitignore
PaintYourDragon Mar 9, 2023
0b7be17
Mostly Doxygened
PaintYourDragon Mar 9, 2023
ff3a338
Update examples for Feather DVI pinout, fix comments
PaintYourDragon Mar 9, 2023
511276b
Remove soft link to libdvi (copy full directory instead)
PaintYourDragon Mar 9, 2023
8f7d9af
fix code to match comment
ladyada Mar 11, 2023
aeac173
Bump to 1.0.1
evaherrada Mar 14, 2023
8a6a572
Bumped to 1.0.2
evaherrada Mar 14, 2023
28f9316
new bell
ladyada Apr 2, 2023
ec5c86e
Add 4 more examples in "screensavers" subdir
PaintYourDragon Apr 18, 2023
52ca906
Bump version # for new examples
PaintYourDragon Apr 18, 2023
3335539
Add boing example
PaintYourDragon May 11, 2023
3d7a8c8
Update tvhost example
PaintYourDragon May 12, 2023
27edec7
Update CI action versions
evaherrada May 15, 2023
c93f1fc
Add 800x480p30 mode
jepler May 26, 2023
41844f5
Bumped to 1.0.7
evaherrada May 30, 2023
0de9720
Adafruit_CPFS compatibility (example included)
PaintYourDragon Jun 21, 2023
2d3e33a
file_access example: add begin() arg for CPFS 1.1.0
PaintYourDragon Jun 21, 2023
fc2a1bc
Avert some warnings
PaintYourDragon Jun 21, 2023
aad0f12
Add test.only file for file_access example (tinyusb)
PaintYourDragon Jun 21, 2023
c33ff22
fix small compile complaint
ladyada Sep 19, 2024
7af20b2
Add pin definitions for Olimex RP2040pc, RP2040-PICO-PC, Neo6502 Neo6…
robotfreak Jan 21, 2025
23fb7eb
Merge remote-tracking branch 'upstream/master' into test-upstream-rev2
Feb 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
Thank you for opening an issue on an Adafruit Arduino library repository. To
improve the speed of resolution please review the following guidelines and
common troubleshooting steps below before creating the issue:

- **Do not use GitHub issues for troubleshooting projects and issues.** Instead use
the forums at http://forums.adafruit.com to ask questions and troubleshoot why
something isn't working as expected. In many cases the problem is a common issue
that you will more quickly receive help from the forum community. GitHub issues
are meant for known defects in the code. If you don't know if there is a defect
in the code then start with troubleshooting on the forum first.

- **If following a tutorial or guide be sure you didn't miss a step.** Carefully
check all of the steps and commands to run have been followed. Consult the
forum if you're unsure or have questions about steps in a guide/tutorial.

- **For Arduino projects check these very common issues to ensure they don't apply**:

- For uploading sketches or communicating with the board make sure you're using
a **USB data cable** and **not** a **USB charge-only cable**. It is sometimes
very hard to tell the difference between a data and charge cable! Try using the
cable with other devices or swapping to another cable to confirm it is not
the problem.

- **Be sure you are supplying adequate power to the board.** Check the specs of
your board and plug in an external power supply. In many cases just
plugging a board into your computer is not enough to power it and other
peripherals.

- **Double check all soldering joints and connections.** Flakey connections
cause many mysterious problems. See the [guide to excellent soldering](https://learn.adafruit.com/adafruit-guide-excellent-soldering/tools) for examples of good solder joints.

- **Ensure you are using an official Arduino or Adafruit board.** We can't
guarantee a clone board will have the same functionality and work as expected
with this code and don't support them.

If you're sure this issue is a defect in the code and checked the steps above
please fill in the following fields to provide enough troubleshooting information.
You may delete the guideline and text above to just leave the following details:

- Arduino board: **INSERT ARDUINO BOARD NAME/TYPE HERE**

- Arduino IDE version (found in Arduino -> About Arduino menu): **INSERT ARDUINO
VERSION HERE**

- List the steps to reproduce the problem below (if possible attach a sketch or
copy the sketch code in too): **LIST REPRO STEPS BELOW**
26 changes: 26 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
Thank you for creating a pull request to contribute to Adafruit's GitHub code!
Before you open the request please review the following guidelines and tips to
help it be more easily integrated:

- **Describe the scope of your change--i.e. what the change does and what parts
of the code were modified.** This will help us understand any risks of integrating
the code.

- **Describe any known limitations with your change.** For example if the change
doesn't apply to a supported platform of the library please mention it.

- **Please run any tests or examples that can exercise your modified code.** We
strive to not break users of the code and running tests/examples helps with this
process.

Thank you again for contributing! We will try to test and integrate the change
as soon as we can, but be aware we have many GitHub repositories to manage and
can't immediately respond to every request. There is no need to bump or check in
on a pull request (it will clutter the discussion of the request).

Also don't be worried if the request is closed or not integrated--sometimes the
priorities of Adafruit's GitHub code (education, ease of use) might not match the
priorities of the pull request. Don't fret, the open source community thrives on
forks and GitHub makes it easy to keep your changes in a forked repo.

After reviewing the guidelines above you can delete this text from the pull request.
32 changes: 32 additions & 0 deletions .github/workflows/githubci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Arduino Library CI

on: [pull_request, push]

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- uses: actions/checkout@v3
- uses: actions/checkout@v3
with:
repository: adafruit/ci-arduino
path: ci

- name: pre-install
run: bash ci/actions_install.sh

- name: test platforms
run: python3 ci/build_platform.py pico_rp2040

# - name: clang
# run: python3 ci/run-clang-format.py -e "ci/*" -e "bin/*" -r .

- name: doxygen
env:
GH_REPO_TOKEN: ${{ secrets.GH_REPO_TOKEN }}
PRETTYNAME : "PicoDVI - Adafruit Fork"
run: bash ci/doxy_gen_and_deploy.sh
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@
Doxyfile*
doxygen_sqlite3.db
html
.vscode
build
42 changes: 42 additions & 0 deletions Readme.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,48 @@
Special Fork of PicoDVI for RP2040/RP2350 Arduino Philhower Core + Adafruit_GFX
========================================================================

Implements a few framebuffer types to which Adafruit_GFX drawing operations
can be made; not every permutation PicoDVI is capable of, but a useful subset.

WARNING: all video modes require overclocking (performed automatically at
run-time, nothing to select), occasionally over-volting (optionally selected
in sketch code), and higher resolutions may require reducing the QSPI clock
rate (Tools menu in future arduino-pico release). The RP2040 microcontroller
is being run WAY beyond spec and there is a VERY SMALL BUT NONZERO
POSSIBILITY OF PERMANENT DAMAGE. Please see LICENSE file; usual software
disclaimers about liability apply, user accepts risk.

Requires Earle Philhower III RP2040 Arduino core (not the "official" Arduino
RP2040 core).

Changes vs main PicoDVI repo:
- Add library.properties file, src and examples directories per Arduino
requirements.
- A full copy of software/libdvi is made in src (originally was soft-linked but Arduino Library Manager does not approve). If any updates are made in the original PicoDVI libdvi directory, copy them here!
- The file dvi_serialiser.pio.h, normally not part of the distribution and
generated during the Pico SDK build process, is provided here for Arduino
build to work. If any changes are made in dvi_serialiser.pio (either here
or by bringing in updates from upstream code), this header will need to be
regenerated.
- extern "C" around most function defs, to be linkable with C++ (Arduino).
- A couple compile-time constants have been changed to run-time configurable
because some color and resolution things aren't known until a constructor is
called: dvi_vertical_repeat and dvi_monochrome_tmds.
- DVI_1BPP_BIT_REVERSE is switched '1' by default (to work with bit order
used by GFXcanvas1 object). Pico SDK-built examples using 1-bit mode are
fixed by changing the corresponding CMakeLists.txt files to set this to 0.
Font data has had bit order reversed to match this layout.

All files from the PicoDVI repo are kept even if not used in this build
(e.g. apps and assets directories, among others) so same repo can still be
used via Pico SDK if desired.

Original Readme content:

Bitbanged DVI on the RP2040 Microcontroller
===========================================


![](img/mountains.jpg)

*640x480 RGB565 image, 640x480p 60 Hz DVI mode. 264 kB SRAM, 2x Cortex-M0+, system clock 252 MHz*
Expand Down
Loading
Loading