diff --git a/.github/workflows/dmdreader.yml b/.github/workflows/dmdreader.yml index 76292479..98eee23f 100644 --- a/.github/workflows/dmdreader.yml +++ b/.github/workflows/dmdreader.yml @@ -38,7 +38,7 @@ jobs: strategy: fail-fast: false matrix: - dmd: ['ppucdmd', 'ppucdmd2'] + dmd: ['rp2040', 'rp2350'] name: Build for ${{ matrix.dmd }} @@ -72,17 +72,18 @@ jobs: - name: Build dmdreader run: | + VERSION="v${{ needs.version.outputs.tag }}" pio run -e ${{ matrix.dmd }} - cp .pio/build/${{ matrix.dmd }}/firmware.elf dmdreader-${{ matrix.dmd }}.elf - cp .pio/build/${{ matrix.dmd }}/firmware.uf2 dmdreader-${{ matrix.dmd }}.uf2 + cp .pio/build/${{ matrix.dmd }}/firmware.elf dmdreader-${{ matrix.dmd }}-${VERSION}.elf + cp .pio/build/${{ matrix.dmd }}/firmware.uf2 dmdreader-${{ matrix.dmd }}-${VERSION}.uf2 - name: Upload artifacts uses: actions/upload-artifact@v7 with: name: dmdreader-${{ matrix.dmd }} path: | - dmdreader-${{ matrix.dmd }}.elf - dmdreader-${{ matrix.dmd }}.uf2 + dmdreader-${{ matrix.dmd }}-v${{ needs.version.outputs.tag }}.elf + dmdreader-${{ matrix.dmd }}-v${{ needs.version.outputs.tag }}.uf2 VERSION LICENSE README.md @@ -96,10 +97,12 @@ jobs: - name: Package if: startsWith(github.ref, 'refs/tags/v') run: | - cd dmdreader-ppucdmd - zip ../dmdreader-ppucdmd.zip dmdreader-ppucdmd.elf dmdreader-ppucdmd.uf2 VERSION LICENSE README.md - cd ../dmdreader-ppucdmd2 - zip ../dmdreader-ppucdmd2.zip dmdreader-ppucdmd2.elf dmdreader-ppucdmd2.uf2 VERSION LICENSE README.md + VERSION="v${{ needs.version.outputs.tag }}" + + cd dmdreader-rp2040 + zip ../dmdreader-rp2040-${VERSION}.zip dmdreader-rp2040-${VERSION}.elf dmdreader-rp2040-${VERSION}.uf2 VERSION LICENSE README.md + cd ../dmdreader-rp2350 + zip ../dmdreader-rp2350-${VERSION}.zip dmdreader-rp2350-${VERSION}.elf dmdreader-rp2350-${VERSION}.uf2 VERSION LICENSE README.md cd .. - name: Release @@ -108,5 +111,5 @@ jobs: with: draft: true files: | - dmdreader-ppucdmd.zip - dmdreader-ppucdmd2.zip + dmdreader-rp2040-v${{ needs.version.outputs.tag }}.zip + dmdreader-rp2350-v${{ needs.version.outputs.tag }}.zip \ No newline at end of file diff --git a/README.md b/README.md index cc6073ca..d0f603c2 100644 --- a/README.md +++ b/README.md @@ -2,12 +2,6 @@ This project allows to read the contents of a pinball DMD using the Raspberry Pi Pico. Both the RP2040 and RP2350 are supported. -## Pico hardware setup - -The Pico is directly connected to all DMD data lines. Communication between the Pico and the consumer is implemented via SPI with an additional IRQ line. On this IRQ line, the Pico signals that a new frame is available, notifying the consumer to start the data transfer as soon as possible. The consumer acts as the SPI master, so it controls the clock frequency used to retrieve the data. - -This architecture accommodates consumers (especially Linux hosts like the Raspberry Pi) that are not real-time systems. - ## Officially supported pinball hardware systems * WPC95 & WPC -> 128x32 @@ -24,6 +18,10 @@ This architecture accommodates consumers (especially Linux hosts like the Raspbe * Sleic/Petaco -> 128x32 * Dotmation -> 192x64 +## Pico hardware setup + +The Pico is directly connected to all DMD data lines. Communication between the Pico and the consumer is implemented via SPI with an additional IRQ line. On this IRQ line, the Pico signals that a new frame is available, notifying the consumer to start the data transfer as soon as possible. This architecture accommodates consumers (especially Linux hosts like the Raspberry Pi) that are not real-time systems. + ## Reading data When reading data, we assume the data is sent correctly. @@ -34,11 +32,10 @@ The process is as follows: - Read frame (DMD dotloop PIO program) - Construct frame based on captured data (dmd_dma_handler IRQ) -## License +## Project credits -This project has been forked from https://github.com/pinballpower/code_dmd -Since the original project changed its license from MIT to GPL v3 on 2022-05-02, the license of this fork is now also GPL v3. +DMDreader would not exist without the foundational work done by [Daniel Matuschek](https://github.com/pinballpower). Since then, the project has grown significantly due to extensive contributions from [Markus Kalkbrenner](https://github.com/mkalkbrenner) and [Jan Vos](https://github.com/pastorl69), who have delivered numerous bug fixes, performance optimizations, and support for additional manufacturers. Today, DMDreader is an integral part of [PPUC/DMD](https://ppuc.github.io/docs/ppuc_dmd/). -## Project credits +## License -DMDreader would not exist without the foundational work done by [Daniel Matuschek](https://github.com/pinballpower). Since then, the project has grown significantly due to extensive contributions from [Markus Kalkbrenner](https://github.com/mkalkbrenner) and [Jan Vos](https://github.com/pastorl69), who have delivered numerous bug fixes, performance optimizations, and support for additional manufacturers. \ No newline at end of file +This project has been forked from https://github.com/pinballpower/code_dmd. Since the original project changed its license from MIT to GPL v3 on 2022-05-02, the license of this fork is now also GPL v3. \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 4eef6051..db807273 100644 --- a/platformio.ini +++ b/platformio.ini @@ -1,14 +1,14 @@ [platformio] -default_envs = ppucdmd +default_envs = rp2040 -[env:ppucdmd] +[env:rp2040] platform = https://github.com/maxgerhardt/platform-raspberrypi#79ce473e1a8010ed8096388690222fd2c94858a6 framework = arduino board = pico board_build.core = earlephilhower board_build.filesystem_size = 0.5m -[env:ppucdmd2] +[env:rp2350] platform = https://github.com/maxgerhardt/platform-raspberrypi#79ce473e1a8010ed8096388690222fd2c94858a6 framework = arduino board = rpipico2