GithubHelp home page GithubHelp logo

yaki4 / flipdots Goto Github PK

View Code? Open in Web Editor NEW

This project forked from owenmcateer/flipdots

0.0 0.0 0.0 15.11 MB

Processing sketch for draw/animate and control FlipDot displays

License: GNU General Public License v3.0

JavaScript 27.82% Processing 70.74% CSS 0.15% HTML 1.29%

flipdots's Introduction

FlipDot display

This repo contains a Processing sketch to control FlipDot panels from AlfaZeta. It uses a virtual display you can draw and animate on that then gets cast to your FlipDot display panels.

Note: if you don't have a FlipDot display you can still use this software as a FlipDot simulator.

FlipDot Controller simulator

FlipDot-Processing.mp4

More examples

What are FlipDot displays?

Flip-dots or Flip-disc, are made of small disks with a permanent magnetic that physically flip back and forth revealing one side or the other. Powered by a small electromagnetic to flip it retains its state even after power is disconnected. Click here if you’d like to know more.

The AlfaZeta XY5 FlipDot display includes its own controller board that communicates over a RS485 serial connection using its own protocol. This repo simplifies connecting and streaming images to the FlipDot display.

Hardware requirements

Remember if you don't have a FlipDot display you can still use this software as a FlipDot simulator.

Setup

Each 28x14 panel is made up of two 7x28 panels on one board, each with their controller we need to daisy chain together.
!SAFETY PRECAUTION! If you don't know what you're doing, ask for help. 24V might not kill you but it will hurt and break your equipment.

1) Wiring

FlipDot control board

  • Connect 24V power supply to the 24V DC in screw terminals
  • Connect RS485 +/- with a JR11 plug or the screw terminals

2) DIP switches

Each controller has two DIP switches that need to be set. 3-pin Baud-rate and 8-pin Panel address

FlipDot DIP pins

Baud-rate (3-pin DIP)

Communication transfer rate is set as follows. For my setup I went with the fastest value of 57600 ↓↑↑ as I found 9600 too slow to handle 20fps.

Value ON Baud rate
0 ↓↓↓ N/A
1 ↑↓↓ N/A
2 ↓↑↓ N/A
3 ↑↑↓ 9600
4 ↓↓↑ 19200
5 ↑↓↑ 38400
6 ↓↑↑ 57600
7 ↑↑↑ 9600
OFF

Address (8-pin DIP)

This is the address ID used when pushing out the image data, each panel listens for its data.

Pins Description
0-5 Address in binary code (natural)
6 Magnetising time: OFF: 500μs(default), ON: 450μs
7 Test mode: ON/OFF. OFF = normal operation

Note: Reducing the magnetising time to 450μs will flip the dots faster but runs the risk of them not flipping at all.

3) Serial data

To send frame data from your computer to the display you can do so over ETH or USB. For small displays USB is fine but larger displays will require an ETH solution.
See suggested serial products above.

ETH convertor

PC > ETH > ETH-RS485 convertor > FlipDot panels

For an ETH solution set the following settings in config.pde
Set castOver to 1
List all ETH convertor IP addresses and port numbers in netAdapters

USB convertor

PC > USB-RS485 convertor > FlipDot panels

For an USB solution set the following settings in config.pde
Set castOver to 2
List all USB convertor COMs port address and baud rate serialAdapters

4) Processing

Install Processing 4 for your system and launch FlipDot/FlipDot.pde

config.pde
Make sure you have set your convertor type as shown above.

Set config_cast to true to cast data.

Next set the FlipDot panels and display settings config.pde. For a Single 28x14 panel you can leave config.pde as it is.
Add a config line for each FlipDot panel you have:
panels[0] = new Panel(0, 1, 0, 0);

  1. Adapter ID (see net/serialAdapters)
  2. Panel ID (set on the 3-pin DIP switch)
  3. X-position in total display
  4. Y-position in total display

Finally set the number of panels you have in the following line: Panel[] panels = new Panel[2];

See config.pde for more examples and layouts.

5) Coding animations

Now you can draw and animate whatever you want! Everything gets drawn to virtualDisplay, I recommend looking at example_anim.pde and example_blips.pde for some examples of coding animations.

Don't forget to share your creations with me @motus_art on IG/TW

FlipDot.mp4

Games

Any pixel based game will work great on these displays. While not quite Doom in this resolution, think Snake, Tetris and Pong.

Tetris

A fully playable Tetris game on a FlipDot display. You can find the code here: games_tetris.pde

tetris-video.mp4

flipdots's People

Contributors

owenmcateer avatar dependabot[bot] avatar loelkes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.