Giter Site home page Giter Site logo

camelcasename / hub75nano Goto Github PK

View Code? Open in Web Editor NEW
34.0 4.0 6.0 653 KB

This Arduino library adds the basic functionality needed to drive a HUB 75 protocol LED Panel up to 64x32 Pixels RGB.

License: GNU General Public License v3.0

C++ 12.12% C 87.88%
arduino arduino-nano hub75 rgb matrix display panel iot arduino-library arduino-sketch

hub75nano's Introduction

HUB75nano

This Arduino library can be used to drive a HUB75 protocol LED Panel up to 64x32 Pixels RGB (tested with 64x32 and 32x16). It can also drive HUB75E type panels (icnd2153, stp1612pw05, FM6124C or similar chips) in 128x64 pixel resolutions (tested only with that size, but it should work with smaller panels as well)

It can display colors up to 8 bit colors for a full screen, a 1 or 2 bit rgb image buffer (dynamic) or 4 bit rgb buffers (static). It was originally written for the Arduino Nano (It should also work with the Arduino Uno), but is now being ported to a number of other chips in the nano formfactor (or with similar architecture). Refer to the list below for the current state of support.

Setup

Clone or download the archive and put it inside your Arduino IDE custom library folder.

Then just put #import <HUB75nano.h> and everything should work.

You can use these macros to configure the library and your desired modes

/////////////////////
// ######## THE FOLLOWING WORK REGARDLESS OF PANEL TYPE
// #define PANEL_BIG // use 2 bit rgb image buffer
// #define PANEL_FLASH // 4 bit flash buffer
// #define PANEL_NO_BUFFER // no buffer, immediate mode only
// #define PANEL_NO_FONT // disables everything font related, saves some flash
// #define PANEL_MAX_SPEED // uses more space but is faster, usually not needed
// #define PANEL_FLIP_VERTICAL // flips the panel vertically (in flash mode it flips the upper and lower half, but doesnt flip the whole panel)
// #define PANEL_FLIP_HORIZONTAL // flips the panel horizontally
// #define PANEL_X 64 // width in pixels
// #define PANEL_Y 32 // panel height in pixels
// #define PANEL_MAX_FRAMETIME 127 // shades all colors, should be one of these (255, 127, 63, 31, 15, 7)
// #define PANEL_3_PIN_ROWS // swaps the row addressing in 5(binary) to 3 pins(shift register)
// #define PANEL_HUB75E // switches output to a format compatible with most 128x64 flex panels (chips: icnd2153, stp1612pw05, FM6124C or similar)
// ######## ONLY WHEN IN THE HUB75E MODE:
// #define PANEL_SMALL_BRIGHT // gets the image muuuuch brighter on the hub75e 1 bit buffer at the cost of some slight ghosting
// #define PANEL_HIGH_RES // changes the size from effective 64x32 on the hub7e 128x64 panels to a full 64x64
// #define PANEL_GPIO_NON_INTRUSIVE // this saves the other pins on GPIOB on the nano and other smaller boards in hub75e mode
/////////////////////

Pinout/Connection reference

HUB75 Pinout

This is a pin description for the HUB75 connector on the panels. The file in the "additional documentation" folder also contains a mapping for directly soldering to a 16pin flat cable The corresponding pins on the arduino are as follows:

Pin mapping

Connector Nano Every Mega2560 UNO R4 MINIMA def. name function
A A0 11 22 11 RA First/Least significant row bit
B A1 12 23 12 RB Second row bit
C A2 13 24 13 RC Third row bit (needed for Panels with 9+ rows)
D A3 8 25 10 RD Fourth/Most significant row bit (needed for panels with 17+ rows)
E A4 2 26 8 RE (Only needed for Panels with 33+ rows)
R1 2 A3 47 A5 RF Set red LED on upper half
G1 3 A2 46 A4 GF Set green LED on upper half
B1 4 A1 45 5 BF Set blue LED on upper half
R2 5 A0 44 4 RS Set red LED on lower half
G2 6 A6 43 3 GS Set green LED on lower half
B2 7 A7 42 2 BS Set blue LED on lower half
CLK 9 9 37 A1 CLK Shifts the data on rising edge
LAT 10 10 36 A2 LAT Latches the data from the shift registers to the LED drivers
OE 11 5 35 A3 OE Enables the output of the LED drivers
GND GND GND GND GND - Ground reference

Connector refers to the HUB75 input connector on the panel. The pin names for the Arduino are the ones printed on the pcb.

You can deviate from this mapping but it comes at a speed cost. To use your own pins, refer to the table above (def. name coloumn) and just define the pin to one you like.

Example: #define RA 12 This puts the first row bit on D12 instead of A0.

Supported Arduino boards

✅: Fully supported and tested  
❌: Not yet supported, some maybe never will be supported
🅿️ : Support in progress 
Ⓜ️ : Maybe works, should in theory (probably needs a custom pin assignment)

5V boards, work just like that

board chip operating voltage supported
Arduino Nano ATmega328(p) 5V
Arduino Uno R3 Atmega328p 5V Ⓜ️
Arduino Uno WiFi Rev2 ATmega4809 5V Ⓜ️
Arduino Uno R4 Minima Renesas RA4M1 5V
Arduino Uno R4 WiFi Renesas RA4M1 5V Ⓜ️(pinout different than minima)
Arduino Nano Every ATMega4809 5V
Arduino Mega ATmega2560 5V

3.3V boards, usually need level shifters

You can use a dedicated shield like this or build one out of jumper wires and the adafruit(or similar) shifters for example.

board chip operating voltage supported shield
Arduino Nano 33 IOT Arm® Cortex®-M0 32-bit SAMD21 3.3V 🅿️ nano33IOTShield still WIP
Arduino Nano 33 BLE (Sense/Sense Rev2) nRF52840 3.3V -
Arduino Nano Esp32 u-blox® NORA-W106 3.3V -
Arduino Nano RP2040 Connect Raspberry Pi RP2040 3.3V 🅿️ -

Examples

This library also contains some examples on how to use it. The examples all are functioning arduino sketches ending with *.ino.

How the library works internally

A writeup on very very early stages of development is here.

Limitations:

voltage issues

  • when running more than 800 LEDs on full white, the color starts to deterioate quickly. this happens because the blue LEDs need more voltage to run than the others, therefore it turns into an orange color. You can get more white LEDs when running them in coloumns (max about 25*31) than rows (63*23). With full white rows it starts to turn orange at about 4 to 5 rows. this can be helped by overvolting the panel supply voltage to above 5V, but it is not recommended. Tests have shown 6 full rows of white at 5.7V and no rows at 4.6V.

No Panel Chaining really supported yet, is planned

hub75nano's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

hub75nano's Issues

row offset issues when testing on Arduino R4 Minima

Hello, thanks for making this available. I am testing this out (version 2.3.1) with an Arduino R4 Minima and Waveshare RGB LED matrix (https://www.waveshare.com/wiki/RGB-Matrix-P2.5-64x32).

When I run the drawing example the diagonal line is broken into multiple line segments, with some segments up or down 4 pixels from where they should be relative to the starting segment. I am wondering if you can suggest a starting point for me to track down the issue.

typo G2 66,

Panel.cpp
Line 235 G2 66,
Should be G2 6,

I know it only a comment so won't affect code.

Letters repeating

Hello, I've been testing your code and I'm having an issue. I uploaded your library to the Arduino Nano and with this script

`
#include "Panel.h"

//create an instance of the panel
Panel panel(32, 64);
char out[81];
uint8_t length = 0;
uint8_t oldlength;
uint8_t fcolor = 3;
uint8_t bgcolor = 2;
char t;

void setup() {
panel.createBufferBG(panel.BLACK);//background

}

void loop() {

panel.drawBigChar(3,8,'A',panel.RED,3);
panel.drawBigChar(14,8,'|',panel.GREEN,1);
panel.displayBuffer(); //makes the buffer visible and the leds all blinky blinky
}`

I get this output

WhatsApp Image 2021-01-14 at 2 10 27 PM

I should get a red 'A' and a green '|'. What might be the problem?

Had a query for Panel Chaining?

Hi Mr. Seidel,
First of all Thank you very much for this greatly optimized library.
I wanted to add 2 panels daisy chained together by connecting the output port of first panel to the input port of 2nd panel. Does this library support that type of Chaining?
Would I have to change something to accomplish that?
Any help would be highly appreciated.
Thank you!

Unable to Upload to Nano 33 IoT

hello, just trying to run the basic color-example on a nano 33 iot for a 16x32 HUB75 panel. Haven't changed anything in the script or library and receiving the following errors. I went in and changed all the B0* and B1* to 0b* to remove that error, but no luck with the rest. Any idea what I'm doing wrong or what needs to be updated in the library to work with a nano 33 iot? Thanks!

Arduino: 1.8.13 (Windows 10), Board: "Arduino NANO 33 IoT"

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp: In constructor 'Panel::Panel(uint8_t, uint8_t)':

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:221:1: error: uninitialized const member in 'const uint8_t [96][2] {aka const unsigned char [96][2]}' [-fpermissive]

 Panel::Panel(uint8_t height,uint8_t width){

 ^~~~~

In file included from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:0:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:58:36: note: 'const uint8_t Panel::font4x6 [96][2]' should be initialized

         const uint8_t font4x6[96][2];

                                    ^

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp: In function 'void cnvColor(uint16_t, uint8_t*, uint8_t*, uint8_t*)':

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:435:31: warning: 'B00001111' is deprecated: use 0b00001111 instead [-Wdeprecated-declarations]

             *rt = (c >> 11) & B00001111;//in binary: RRRRRGGGGGGBBBBB >> 11 = 00000000000RRRRR

                               ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:131:3: note: declared here

   B00001111 DEPRECATED(0b00001111) = 15,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:436:30: warning: 'B00001111' is deprecated: use 0b00001111 instead [-Wdeprecated-declarations]

             *gt = (c >> 5) & B00001111; //in binary RRRRRGGGGGGBBBBB >> 5 = RRRRRGGGGGG, & B00111111(63) = 0000000000GGGGGG

                              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:131:3: note: declared here

   B00001111 DEPRECATED(0b00001111) = 15,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:437:23: warning: 'B00001111' is deprecated: use 0b00001111 instead [-Wdeprecated-declarations]

             *bt = c & B00001111;  //in binary RRRRRGGGGGGBBBBB & 31(B00011111) = 00000000000BBBBB

                       ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:131:3: note: declared here

   B00001111 DEPRECATED(0b00001111) = 15,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp: In member function 'void Panel::latch()':

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:478:14: warning: 'B00001000' is deprecated: use 0b00001000 instead [-Wdeprecated-declarations]

     PORTC |= B00001000; //LAT HIGH

              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:96:3: note: declared here

   B00001000 DEPRECATED(0b00001000) = 8,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:478:11: error: no match for 'operator|=' (operand types are '_EPortType' and '<unnamed enum>')

     PORTC |= B00001000; //LAT HIGH

     ~~~~~~^~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:478:11: note: candidate: operator|=(_EPortType&, int) <built-in>

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:478:11: note:   conversion of argument 1 would be ill-formed:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:478:14: error: cannot bind non-const lvalue reference of type '_EPortType&' to an rvalue of type '_EPortType'

     PORTC |= B00001000; //LAT HIGH

              ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:479:14: warning: 'B11110111' is deprecated: use 0b11110111 instead [-Wdeprecated-declarations]

     PORTC &= B11110111; //LAT LOW

              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:539:3: note: declared here

   B11110111 DEPRECATED(0b11110111) = 247,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:479:11: error: no match for 'operator&=' (operand types are '_EPortType' and '<unnamed enum>')

     PORTC &= B11110111; //LAT LOW

     ~~~~~~^~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:479:11: note: candidate: operator&=(_EPortType&, int) <built-in>

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:479:11: note:   conversion of argument 1 would be ill-formed:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:479:14: error: cannot bind non-const lvalue reference of type '_EPortType&' to an rvalue of type '_EPortType'

     PORTC &= B11110111; //LAT LOW

              ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:480:14: warning: 'B00000010' is deprecated: use 0b00000010 instead [-Wdeprecated-declarations]

     PORTB |= B00000010; //OE HIGH

              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:60:3: note: declared here

   B00000010 DEPRECATED(0b00000010) = 2,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:480:11: error: no match for 'operator|=' (operand types are '_EPortType' and '<unnamed enum>')

     PORTB |= B00000010; //OE HIGH

     ~~~~~~^~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:480:11: note: candidate: operator|=(_EPortType&, int) <built-in>

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:480:11: note:   conversion of argument 1 would be ill-formed:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:480:14: error: cannot bind non-const lvalue reference of type '_EPortType&' to an rvalue of type '_EPortType'

     PORTB |= B00000010; //OE HIGH

              ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:482:14: warning: 'B11111110' is deprecated: use 0b11111110 instead [-Wdeprecated-declarations]

     PORTC &= B11111110; //RA LOW

              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:546:3: note: declared here

   B11111110 DEPRECATED(0b11111110) = 254,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:482:11: error: no match for 'operator&=' (operand types are '_EPortType' and '<unnamed enum>')

     PORTC &= B11111110; //RA LOW

     ~~~~~~^~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:482:11: note: candidate: operator&=(_EPortType&, int) <built-in>

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:482:11: note:   conversion of argument 1 would be ill-formed:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:482:14: error: cannot bind non-const lvalue reference of type '_EPortType&' to an rvalue of type '_EPortType'

     PORTC &= B11111110; //RA LOW

              ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:483:14: warning: 'B11111101' is deprecated: use 0b11111101 instead [-Wdeprecated-declarations]

     PORTC &= B11111101; //RB LOW

              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:545:3: note: declared here

   B11111101 DEPRECATED(0b11111101) = 253,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:483:11: error: no match for 'operator&=' (operand types are '_EPortType' and '<unnamed enum>')

     PORTC &= B11111101; //RB LOW

     ~~~~~~^~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:483:11: note: candidate: operator&=(_EPortType&, int) <built-in>

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:483:11: note:   conversion of argument 1 would be ill-formed:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:483:14: error: cannot bind non-const lvalue reference of type '_EPortType&' to an rvalue of type '_EPortType'

     PORTC &= B11111101; //RB LOW

              ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:484:14: warning: 'B11111011' is deprecated: use 0b11111011 instead [-Wdeprecated-declarations]

     PORTC &= B11111011; //RC LOW

              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:543:3: note: declared here

   B11111011 DEPRECATED(0b11111011) = 251,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:484:11: error: no match for 'operator&=' (operand types are '_EPortType' and '<unnamed enum>')

     PORTC &= B11111011; //RC LOW

     ~~~~~~^~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:484:11: note: candidate: operator&=(_EPortType&, int) <built-in>

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:484:11: note:   conversion of argument 1 would be ill-formed:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:484:14: error: cannot bind non-const lvalue reference of type '_EPortType&' to an rvalue of type '_EPortType'

     PORTC &= B11111011; //RC LOW

              ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:485:14: warning: 'B11101111' is deprecated: use 0b11101111 instead [-Wdeprecated-declarations]

     PORTC &= B11101111; //RD LOW

              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:531:3: note: declared here

   B11101111 DEPRECATED(0b11101111) = 239,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:485:11: error: no match for 'operator&=' (operand types are '_EPortType' and '<unnamed enum>')

     PORTC &= B11101111; //RD LOW

     ~~~~~~^~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:485:11: note: candidate: operator&=(_EPortType&, int) <built-in>

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:485:11: note:   conversion of argument 1 would be ill-formed:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:485:14: error: cannot bind non-const lvalue reference of type '_EPortType&' to an rvalue of type '_EPortType'

     PORTC &= B11101111; //RD LOW

              ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:487:14: warning: 'B11111101' is deprecated: use 0b11111101 instead [-Wdeprecated-declarations]

     PORTB &= B11111101; //OE LOW

              ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:545:3: note: declared here

   B11111101 DEPRECATED(0b11111101) = 253,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:487:11: error: no match for 'operator&=' (operand types are '_EPortType' and '<unnamed enum>')

     PORTB &= B11111101; //OE LOW

     ~~~~~~^~~~~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:487:11: note: candidate: operator&=(_EPortType&, int) <built-in>

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:487:11: note:   conversion of argument 1 would be ill-formed:

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:487:14: error: cannot bind non-const lvalue reference of type '_EPortType&' to an rvalue of type '_EPortType'

     PORTB &= B11111101; //OE LOW

              ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp: In member function 'void Panel::selectLine(uint8_t)':

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:492:40: error: lvalue required as left operand of assignment

     PORTC = (k + (k > 7) * 8) + (k > 15); //sets all rows

                                        ^

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp: In member function 'void Panel::sendTwoPixels(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:550:9: error: 'PORTD' was not declared in this scope

         PORTD |= B00000100;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:550:9: note: suggested alternative: 'PORTC'

         PORTD |= B00000100;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:550:18: warning: 'B00000100' is deprecated: use 0b00000100 instead [-Wdeprecated-declarations]

         PORTD |= B00000100;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:73:3: note: declared here

   B00000100 DEPRECATED(0b00000100) = 4,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:553:9: error: 'PORTD' was not declared in this scope

         PORTD &= B11111011;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:553:9: note: suggested alternative: 'PORTC'

         PORTD &= B11111011;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:553:18: warning: 'B11111011' is deprecated: use 0b11111011 instead [-Wdeprecated-declarations]

         PORTD &= B11111011;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:543:3: note: declared here

   B11111011 DEPRECATED(0b11111011) = 251,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:557:9: error: 'PORTD' was not declared in this scope

         PORTD |= B00001000;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:557:9: note: suggested alternative: 'PORTC'

         PORTD |= B00001000;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:557:18: warning: 'B00001000' is deprecated: use 0b00001000 instead [-Wdeprecated-declarations]

         PORTD |= B00001000;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:96:3: note: declared here

   B00001000 DEPRECATED(0b00001000) = 8,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:560:9: error: 'PORTD' was not declared in this scope

         PORTD &= B11110111;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:560:9: note: suggested alternative: 'PORTC'

         PORTD &= B11110111;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:560:18: warning: 'B11110111' is deprecated: use 0b11110111 instead [-Wdeprecated-declarations]

         PORTD &= B11110111;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:539:3: note: declared here

   B11110111 DEPRECATED(0b11110111) = 247,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:564:9: error: 'PORTD' was not declared in this scope

         PORTD |= B00010000;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:564:9: note: suggested alternative: 'PORTC'

         PORTD |= B00010000;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:564:18: warning: 'B00010000' is deprecated: use 0b00010000 instead [-Wdeprecated-declarations]

         PORTD |= B00010000;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:135:3: note: declared here

   B00010000 DEPRECATED(0b00010000) = 16,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:567:9: error: 'PORTD' was not declared in this scope

         PORTD &= B11101111;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:567:9: note: suggested alternative: 'PORTC'

         PORTD &= B11101111;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:567:18: warning: 'B11101111' is deprecated: use 0b11101111 instead [-Wdeprecated-declarations]

         PORTD &= B11101111;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:531:3: note: declared here

   B11101111 DEPRECATED(0b11101111) = 239,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:571:9: error: 'PORTD' was not declared in this scope

         PORTD |= B00100000;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:571:9: note: suggested alternative: 'PORTC'

         PORTD |= B00100000;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:571:18: warning: 'B00100000' is deprecated: use 0b00100000 instead [-Wdeprecated-declarations]

         PORTD |= B00100000;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:198:3: note: declared here

   B00100000 DEPRECATED(0b00100000) = 32,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:574:9: error: 'PORTD' was not declared in this scope

         PORTD &= B11011111;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:574:9: note: suggested alternative: 'PORTC'

         PORTD &= B11011111;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:574:18: warning: 'B11011111' is deprecated: use 0b11011111 instead [-Wdeprecated-declarations]

         PORTD &= B11011111;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:515:3: note: declared here

   B11011111 DEPRECATED(0b11011111) = 223,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:578:9: error: 'PORTD' was not declared in this scope

         PORTD |= B01000000;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:578:9: note: suggested alternative: 'PORTC'

         PORTD |= B01000000;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:578:18: warning: 'B01000000' is deprecated: use 0b01000000 instead [-Wdeprecated-declarations]

         PORTD |= B01000000;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:293:3: note: declared here

   B01000000 DEPRECATED(0b01000000) = 64,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:581:9: error: 'PORTD' was not declared in this scope

         PORTD &= B10111111;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:581:9: note: suggested alternative: 'PORTC'

         PORTD &= B10111111;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:581:18: warning: 'B10111111' is deprecated: use 0b10111111 instead [-Wdeprecated-declarations]

         PORTD &= B10111111;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:483:3: note: declared here

   B10111111 DEPRECATED(0b10111111) = 191,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:585:9: error: 'PORTD' was not declared in this scope

         PORTD |= B10000000;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:585:9: note: suggested alternative: 'PORTC'

         PORTD |= B10000000;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:585:18: warning: 'B10000000' is deprecated: use 0b10000000 instead [-Wdeprecated-declarations]

         PORTD |= B10000000;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:420:3: note: declared here

   B10000000 DEPRECATED(0b10000000) = 128,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:588:9: error: 'PORTD' was not declared in this scope

         PORTD &= B01111111;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:588:9: note: suggested alternative: 'PORTC'

         PORTD &= B01111111;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:588:18: warning: 'B01111111' is deprecated: use 0b01111111 instead [-Wdeprecated-declarations]

         PORTD &= B01111111;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:419:3: note: declared here

   B01111111 DEPRECATED(0b01111111) = 127,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp: In member function 'void Panel::sendWholeRow(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:597:9: error: 'PORTD' was not declared in this scope

         PORTD |= B00000100;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:597:9: note: suggested alternative: 'PORTC'

         PORTD |= B00000100;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:597:18: warning: 'B00000100' is deprecated: use 0b00000100 instead [-Wdeprecated-declarations]

         PORTD |= B00000100;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:73:3: note: declared here

   B00000100 DEPRECATED(0b00000100) = 4,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:600:9: error: 'PORTD' was not declared in this scope

         PORTD &= B11111011;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:600:9: note: suggested alternative: 'PORTC'

         PORTD &= B11111011;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:600:18: warning: 'B11111011' is deprecated: use 0b11111011 instead [-Wdeprecated-declarations]

         PORTD &= B11111011;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:543:3: note: declared here

   B11111011 DEPRECATED(0b11111011) = 251,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:604:9: error: 'PORTD' was not declared in this scope

         PORTD |= B00001000;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:604:9: note: suggested alternative: 'PORTC'

         PORTD |= B00001000;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:604:18: warning: 'B00001000' is deprecated: use 0b00001000 instead [-Wdeprecated-declarations]

         PORTD |= B00001000;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:96:3: note: declared here

   B00001000 DEPRECATED(0b00001000) = 8,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:607:9: error: 'PORTD' was not declared in this scope

         PORTD &= B11110111;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:607:9: note: suggested alternative: 'PORTC'

         PORTD &= B11110111;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:607:18: warning: 'B11110111' is deprecated: use 0b11110111 instead [-Wdeprecated-declarations]

         PORTD &= B11110111;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:539:3: note: declared here

   B11110111 DEPRECATED(0b11110111) = 247,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:611:9: error: 'PORTD' was not declared in this scope

         PORTD |= B00010000;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:611:9: note: suggested alternative: 'PORTC'

         PORTD |= B00010000;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:611:18: warning: 'B00010000' is deprecated: use 0b00010000 instead [-Wdeprecated-declarations]

         PORTD |= B00010000;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:135:3: note: declared here

   B00010000 DEPRECATED(0b00010000) = 16,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:614:9: error: 'PORTD' was not declared in this scope

         PORTD &= B11101111;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:614:9: note: suggested alternative: 'PORTC'

         PORTD &= B11101111;

         ^~~~~

         PORTC

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:614:18: warning: 'B11101111' is deprecated: use 0b11101111 instead [-Wdeprecated-declarations]

         PORTD &= B11101111;

                  ^~~~~~~~~

In file included from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/ArduinoAPI.h:26:0,

                 from C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/arduino.h:23,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel75.h:46,

                 from C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:1:

C:\Users\jaluh\AppData\Local\Arduino15\packages\arduino\hardware\samd\1.8.13\cores\arduino/api/Binary.h:531:3: note: declared here

   B11101111 DEPRECATED(0b11101111) = 239,

   ^~~~~~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:618:9: error: 'PORTD' was not declared in this scope

         PORTD |= B00100000;

         ^~~~~

C:\Program Files (x86)\Arduino\libraries\HUB75nano-master\src\Panel.cpp:618:9: note: suggested alternative: 'PORTC'

         PORTD |= B00100000;

         ^~~~~

         PORTC

truncated errors because post too long

exit status 1

Error compiling for board Arduino NANO 33 IoT.

Can this library work with a 1/8 scan rate display?

Hi leonhard,

Thanks a lot for this library and the examples.
I have a question for you :
I have a 64x32 rgb display with a 1/8 scan rate, can this library drive this display too? if not, is it possible to have it working with some minimal updates, like updating some parameters on the library?

With the 1/8 scan rate, there is no D line, It's marked NC on the display PCB.

Kind regards,
Abdelali

Line 16 blinking when refresh

Hi again,

Here I bring you a new incident. I am making a countdown timer and when changing something on the screen every second line 16 of the panel (counted from 1 to 32) turns on at maximum intensity and returns to normal intensity in a fraction of a second making a flicker effect.

VID_20231112_130704.mp4

This only happens with line 16 since the rest work fine. And it does it whatever the color and whatever it is drawn.
I attach the code with which I have tested.

I have tried to record a video so that the effect can be seen.

Do you know what could be happening?

Thanks

This is the code I've used.

#define PANEL_BIG 1
#define MAX_BRIGHTNESS_SLEEP_MUSEC 100
#define BRIGHTNESS_SLEEP_MUSEC 100

#define RA 14 // row selector a
#define RB 15 // row selector b
#define RC 16 // row selector c
#define RD 17 // row selector d 12
#define RE 18 // row selector e 19
#define RF 2 // red first byte
#define GF 3 // green first byte
#define BF 4 // blue first byte
#define RS 5 // red second byte
#define GS 6 // green second byte
#define BS 7 // blue second byte
#define CLK 9 // clock signal 8
#define LAT 10 // data latch 17
#define OE 11 // output enable 9

#include "HUB75nano.h"

int color_r       =  0;
int color_g       =  0;
int color_b       =  0;

unsigned long startMillis;  // Guardará el momento en que el temporizador comenzó
unsigned long currentMillis;
const unsigned long period = 1000;  // El periodo de tiempo para cada segundo (1000 ms)
unsigned int seconds = 40;  // Duración del temporizador en segundos

// create an instance of the panel
Panel panel = {};

void setup() {
    // Iniciamos el monitor serie para monitorear la comunicación
    Serial.begin(9600);
    
    panel.fillBuffer(panel.BLACK); // background red

    startMillis = millis();  // Inicializa el temporizador

    color_r       =  0;
    color_g       =  3;
    color_b       =  0;
  }

void loop() {
    panel.displayBuffer(); // makes the buffer visible and the leds all blinky blinky

    currentMillis = millis();
    if (currentMillis - startMillis >= period && seconds >= 0) {
        // Ha pasado un segundo
        seconds--;  // Reduce los segundos restantes
        Serial.println(seconds);  // Muestra los segundos restantes
        startMillis = currentMillis;  // Reinicia la referencia de tiempo para el próximo segundo

        if (seconds > 30) {
          panel.drawRect(8, 8, 48, 24, panel.GREEN, true);
        }
        else if (seconds > 0 && seconds <= 30) {
          panel.drawRect(8, 8, 48, 24, panel.ORANGE, true);
        }
        else {
          panel.drawRect(8, 8, 48, 24, panel.RED, true);
        }
        
        if (seconds == 30) {
            color_r       =  3;
            color_g       =  2;
            color_b       =  0;
        }
        if (seconds == 0) {
            // El temporizador ha llegado a cero
            color_r       =  3;
            color_g       =  0;
            color_b       =  0;
        }
    }
  }

Line misplacement

Somehow the 17th line is placed in the first, which could be a hardware issue

hi

hi

i can't speak english.
I don't want to blink.
blinking too much now

and

panel.cpp 254 line
LED buffer[bsize + 1];
unused variable

Write Big Chars on Panel

Hi, I was checking your library and its not possible to write a big string, like for example 10:30 in the whole LED display. Do you have any function for that?

How to add new fonts

Hello,

Thanks again for the library.

Just wondering, how to add other fonts? Adafruit_GFX has many fonts, is it possible to add them to this library? if so, how?

Kind regards,

pic2led.exe

I've tried using the pci2led tool, and pasted the picture path, but nothing happened ! just the cmd window closing.

I have tested with a 64x32 image.

Kind regards,

Problems with my nano and 64x32 panel

Hi, I'm trying to use this library and I've started with the simplest, color-example.ino, but I can't get it to show anything on the screen.
My connections between HUB75 and Arduino change in some pin with yours, these are the ones that I use and that I have changed in the HUB75NANO.h

// MY current pin numbers
#define RA A0 // register selector a
#define RB A1 // register selector b
#define RC A2 // register selector c
#define RD 12 // register selector d
#define RE 18 // register selector e
#define RF 2 // network first byte
#define GF 3 // green first byte
#define BF 4 // blue first byte
#define RS 5 // network second byte
#define GS 6 // green second byte
#define BS 7 // blue second byte
#define CLK 8 // clock signal
#define LAT A3 // data latch
#define OE 9 // output enable

RE is not conected because my panel only have A,B,C,D

Setting this configuration, the panel remains black. If I modify the CLK to pin 9 and remove pin 12 from RD, at least rows 1-8 and 16-24 light up but the rest remain black. I have checked the connections in case there were any errors but they are the ones I put in at the beginning.

I have even followed the steps mentioned in

https://projecthub.arduino.cc/CamelCaseName/running-a-32x64-rgb-led-panel-with-only-an-arduino-nano-092d16

and with those steps I have managed to illuminate all the pixels but of course, only with one color.

My panel is a P5 64x32 1/16

Any suggestions on where I can get the error?

Thanks.

Making pong the game

@CamelCaseName hello, I'm wondering if you could help me , i'm trying to make the game pong I have got this code working on arduino mega uno and nano so there should be no board limitations. I have tried a few things which didn't work so I was hoping you could help me. Thanks for all your hard work on this project many thanks

Set Font to Display

I used your library and examples but the font is not my favorite.
How can I use my favorite font or at least the international English font?

IMG_20240309_004604

Library not working on Arduino Nano

When trying to #include <HUB75nano.h> with the board and port set to "Arduino Nano RP2040 COM3 Serial Port (USB)", Arduino IDE gives an error:

error: #error "This library only supports the Arduino nano and Uno, so the atm368p with 2kb sram, 1kb eeprom and 32kb flash. For other chips/boards, please see the internet or try to adapt this library here, but no guarantees"

even though I am using an Arduino Nano

Buffer saturation

Hello, I wanted to comment on the following problem.

My arduino nano receives a payload with data through the serial port every 30s. After receiving it, it displays it on the panel automatically.
After 9 hours of this, the panel starts showing random things.
I have been able to verify that it is a matter of saturation of the buffer. Do you have any idea why this could be happening?

Thanks

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.