Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
MarlinKimbra
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
machinery
MarlinKimbra
Commits
a60bcd96
Commit
a60bcd96
authored
May 20, 2016
by
MagoKimbra
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add MFRC522
parent
3f127b2a
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
491 additions
and
14 deletions
+491
-14
GCodes.md
Documentation/GCodes.md
+3
-2
changelog.md
Documentation/changelog.md
+1
-0
Configuration_Feature.h
MK/Configuration_Feature.h
+23
-0
marlinkimbra_v0_7_3.HMI
MK/Nextion FW/marlinkimbra_v0_7_3.HMI
+0
-0
marlinkimbra_v0_7_3.tft
MK/Nextion FW/marlinkimbra_v0_7_3.tft
+0
-0
MK_Main.cpp
MK/module/MK_Main.cpp
+26
-7
MFRC522_serial.cpp
MK/module/mfrc522/MFRC522_serial.cpp
+245
-0
MFRC522_serial.h
MK/module/mfrc522/MFRC522_serial.h
+108
-0
Nextion.h
MK/module/nextion/Nextion.h
+1
-0
Nextion_lcd.cpp
MK/module/nextion/Nextion_lcd.cpp
+76
-3
Nextion_lcd.h
MK/module/nextion/Nextion_lcd.h
+7
-2
README.md
README.md
+1
-0
No files found.
Documentation/GCodes.md
View file @
a60bcd96
...
...
@@ -121,6 +121,7 @@
*
M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).
*
M502 - reverts to the default "factory settings". You still need to store them in EEPROM afterwards if you want to.
*
M503 - print the current settings (from memory not from EEPROM)
*
M522 - Use for reader o writer tag width MFRC522. M522 T
<extruder>
R(read) W(write) L(print list data on tag)
*
M540 - Use S
[
0|1
]
to enable or disable the stop SD card print on endstop hit (requires ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED)
*
M595 - Set hotend AD595 offset and gain
*
M600 - Pause for filament change X
[
pos
]
Y
[
pos
]
Z
[
relative lift
]
E
[
initial retract
]
L
[
later retract distance for removal
]
...
...
Documentation/changelog.md
View file @
a60bcd96
### Version 4.2.82
*
Add DONDOLO_DUAL_MOTOR for DONDOLO bowden and dual extruder
*
Add reader TAG width MFRC522
### Version 4.2.81
*
Fix serial protocol for Repetier Host
...
...
MK/Configuration_Feature.h
View file @
a60bcd96
...
...
@@ -50,6 +50,7 @@
* - Filament diameter sensor
* - Filament Runout sensor
* - Power consumption sensor
* - RFID card sensor
* ADDON FEATURES:
* - EEPROM
* - SDCARD
...
...
@@ -1068,6 +1069,28 @@
/**************************************************************************
*********************** RIFD module card reader **************************
**************************************************************************
* *
* Support RFID module card reader width UART interface. *
* This module mount chip MFRC522 designed to communicate with *
* ISO/IEC 14443 A/MIFARE cards and transponders without additional *
* active circuitry *
* *
* New command for this system is: *
* M522 T<extruder> R<read> or W<write> *
* *
* Define if you used and Serial used. *
* *
**************************************************************************/
//#define RFID_MODULE
#define RFID_SERIAL 1
/**************************************************************************/
//===========================================================================
//============================= ADDON FEATURES ==============================
//===========================================================================
...
...
MK/Nextion FW/marlinkimbra_v0_7_
2
.HMI
→
MK/Nextion FW/marlinkimbra_v0_7_
3
.HMI
View file @
a60bcd96
No preview for this file type
MK/Nextion FW/marlinkimbra_v0_7_
2
.tft
→
MK/Nextion FW/marlinkimbra_v0_7_
3
.tft
View file @
a60bcd96
No preview for this file type
MK/module/MK_Main.cpp
View file @
a60bcd96
...
...
@@ -3095,12 +3095,21 @@ void gcode_get_destination() {
if
(
code_seen
(
axis_codes
[
E_AXIS
]))
IDLE_OOZING_retract
(
false
);
#endif
#if HOTENDS == 1
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
if
(
code_seen
(
axis_codes
[
i
]))
destination
[
i
]
=
code_value
()
+
(
axis_relative_modes
[
i
]
||
relative_mode
?
current_position
[
i
]
:
0
);
else
destination
[
i
]
=
current_position
[
i
];
}
#else
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
if
(
code_seen
(
axis_codes
[
i
]))
destination
[
i
]
=
code_value
()
+
(
axis_relative_modes
[
i
]
||
relative_mode
?
current_position
[
i
]
:
-
hotend_offset
[
i
][
active_extruder
]);
else
destination
[
i
]
=
current_position
[
i
];
}
#endif
if
(
code_seen
(
axis_codes
[
E_AXIS
]))
destination
[
E_AXIS
]
=
code_value
()
+
(
axis_relative_modes
[
E_AXIS
]
||
relative_mode
?
current_position
[
E_AXIS
]
:
0
);
...
...
@@ -6867,15 +6876,25 @@ inline void gcode_M503() {
if
(
code_seen
(
'R'
))
{
ECHO_LM
(
DB
,
"Put RFID on tag!"
);
#if ENABLED(NEXTION)
rfid_setText
(
"Put RFID on tag!"
);
#endif
Spool_must_read
[
target_extruder
]
=
true
;
}
if
(
code_seen
(
'W'
))
{
if
(
Spool_ID
[
target_extruder
]
!=
0
)
{
ECHO_LM
(
DB
,
"Put RFID on tag!"
);
#if ENABLED(NEXTION)
rfid_setText
(
"Put RFID on tag!"
);
#endif
Spool_must_write
[
target_extruder
]
=
true
;
}
else
else
{
ECHO_LM
(
ER
,
"You have not read this Spool!"
);
#if ENABLED(NEXTION)
rfid_setText
(
"You have not read this Spool!"
,
64488
);
#endif
}
}
if
(
code_seen
(
'L'
))
RFID522
.
printInfo
(
target_extruder
);
...
...
MK/module/mfrc522/MFRC522_serial.cpp
0 → 100644
View file @
a60bcd96
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* MFRC522 Serial
* Designed for module MFRC522 width UART
*
* Copyright (C) 2016 Alberto Cotronei MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "../../base.h"
#include <Arduino.h>
#ifdef RFID_MODULE
#include "MFRC522_serial.h"
uint8_t
MFRC522Data
[
20
];
/**
* Constructor.
*/
MFRC522
::
MFRC522
()
{
#if RFID_SERIAL > 0
#if RFID_SERIAL == 1
#define RFID Serial1
#elif RFID_SERIAL == 2
#define RFID Serial2
#elif RFID_SERIAL == 3
#define RFID Serial3
#endif
#else
#define RFID Serial1
#endif
}
/**
* Start Serial
*/
bool
MFRC522
::
init
()
{
RFID
.
begin
(
9600
);
HAL
::
delayMilliseconds
(
1000
);
write
(
MFRC522_HEADER
);
// Header
write
(
0x02
);
write
(
COMMAND_READ_ID
);
HAL
::
delayMilliseconds
(
500
);
if
(
available
())
{
clear
();
// Clear Buffer
return
true
;
}
else
{
return
false
;
}
}
bool
MFRC522
::
getID
(
int8_t
e
)
{
if
(
communicate
(
0x02
,
COMMAND_READ_ID
))
{
for
(
int
i
=
0
;
i
<
4
;
i
++
)
RfidDataID
[
e
].
RfidPacketID
[
i
]
=
MFRC522Data
[
i
];
return
true
;
}
return
false
;
}
bool
MFRC522
::
readBlock
(
int8_t
e
)
{
int8_t
Packetdata
=
0
;
byte
sendData
[
8
]
=
{
0x01
,
// block
MIFARE_KEYA
,
// key type
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
// key
};
for
(
uint8_t
sector
=
BLOCK_START
;
sector
<
BLOCK_TOTAL
;
sector
+=
4
)
{
sendData
[
0
]
=
sector
;
if
(
communicate
(
0x0A
,
// length
COMMAND_READ_BLOCK
,
// command
sendData
// sendData
))
{
for
(
int8_t
i
=
0
;
i
<
16
;
i
++
)
RfidData
[
e
].
RfidPacket
[
i
+
Packetdata
]
=
MFRC522Data
[
i
];
}
else
{
return
false
;
}
Packetdata
+=
16
;
HAL
::
delayMilliseconds
(
20
);
}
return
true
;
}
bool
MFRC522
::
writeBlock
(
int8_t
e
)
{
int8_t
Packetdata
=
0
;
byte
sendData
[
24
]
=
{
0x01
,
// block
MIFARE_KEYA
,
// key type
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
,
0xFF
};
for
(
uint8_t
sector
=
BLOCK_START
;
sector
<
BLOCK_TOTAL
;
sector
+=
4
)
{
sendData
[
0
]
=
sector
;
for
(
int8_t
i
=
0
;
i
<
16
;
i
++
)
{
sendData
[
i
+
8
]
=
RfidData
[
e
].
RfidPacket
[
i
+
Packetdata
];
}
if
(
!
(
communicate
(
0x1A
,
// length
COMMAND_WRITE_BLOCK
,
// command
sendData
// sendData
)))
{
return
false
;
}
HAL
::
delayMilliseconds
(
20
);
Packetdata
+=
16
;
}
return
true
;
}
/**
* Description: Comunication between MFRC522 and ISO14443.
* Command Format: Header + Lenght + Command + (Data)
* Return: Return STATUS_OK if success.
*/
bool
MFRC522
::
communicate
(
uint8_t
sendDataLength
,
uint8_t
command
,
uint8_t
*
sendData
)
{
// Send instruction to MFRC522
write
(
MFRC522_HEADER
);
// Header
write
(
sendDataLength
);
// Length (Length + Command + Data)
write
(
command
);
// Command
if
(
sendData
!=
NULL
)
{
for
(
uint8_t
i
=
0
;
i
<
sendDataLength
-
2
;
i
++
)
{
write
(
sendData
[
i
]);
// Data
}
}
// Read response to MFRC522
while
(
!
available
());
uint8_t
header
=
read
();
// Header
while
(
!
available
());
uint8_t
returnDataLength
=
read
();
// Length (Length + Command + Data)
while
(
!
available
());
uint8_t
commandResult
=
read
();
// Command result
for
(
int
i
=
0
;
i
<
returnDataLength
-
2
;
i
++
)
{
while
(
!
available
());
if
(
available
())
{
MFRC522Data
[
i
]
=
read
();
// Data
}
}
// Return
if
(
command
!=
commandResult
)
{
return
STATUS_ERROR
;
}
return
STATUS_OK
;
}
void
MFRC522
::
printInfo
(
int8_t
e
)
{
char
lung
[
30
];
ECHO_LMV
(
INFO
,
MSG_RFID_SPOOL
,
e
);
ECHO_LMT
(
INFO
,
MSG_RFID_BRAND
,
RfidData
[
e
].
data
.
brand
);
ECHO_LMT
(
INFO
,
MSG_RFID_TYPE
,
RfidData
[
e
].
data
.
type
);
ECHO_LMT
(
INFO
,
MSG_RFID_COLOR
,
RfidData
[
e
].
data
.
color
);
ECHO_LMV
(
INFO
,
MSG_RFID_SIZE
,
RfidData
[
e
].
data
.
size
);
ECHO_SMV
(
INFO
,
MSG_RFID_TEMP_HOTEND
,
RfidData
[
e
].
data
.
temphotendmin
);
ECHO_EMV
(
" - "
,
RfidData
[
e
].
data
.
temphotendmax
);
ECHO_SMV
(
INFO
,
MSG_RFID_TEMP_BED
,
RfidData
[
e
].
data
.
tempbedmin
);
ECHO_EMV
(
" - "
,
RfidData
[
e
].
data
.
tempbedmax
);
ECHO_LMV
(
INFO
,
MSG_RFID_TEMP_USER_HOTEND
,
RfidData
[
e
].
data
.
temphotend
);
ECHO_LMV
(
INFO
,
MSG_RFID_TEMP_USER_BED
,
RfidData
[
e
].
data
.
tempbed
);
ECHO_SMV
(
INFO
,
MSG_RFID_DENSITY
,
RfidData
[
e
].
data
.
density
);
ECHO_EM
(
"%"
);
unsigned
int
kmeter
=
(
long
)
RfidData
[
e
].
data
.
lenght
/
1000
/
1000
,
meter
=
((
long
)
RfidData
[
e
].
data
.
lenght
/
1000
)
%
1000
,
centimeter
=
((
long
)
RfidData
[
e
].
data
.
lenght
/
10
)
%
100
,
millimeter
=
((
long
)
RfidData
[
e
].
data
.
lenght
)
%
10
;
sprintf_P
(
lung
,
PSTR
(
"%i Km %i m %i cm %i mm"
),
kmeter
,
meter
,
centimeter
,
millimeter
);
ECHO_LMT
(
INFO
,
MSG_RFID_SPOOL_LENGHT
,
lung
);
}
// Private
/*
* Description:Write a byte data into MFRC522.
*/
void
MFRC522
::
write
(
uint8_t
value
)
{
RFID
.
write
(
value
);
}
/*
* Description:Read a byte data of MFRC522
* Return:Return the read value.
*/
byte
MFRC522
::
read
()
{
return
RFID
.
read
();
}
void
MFRC522
::
clear
()
{
while
(
available
())
RFID
.
read
();
}
/*
* Description:Returns true if detect card in MFRC522.
*/
bool
MFRC522
::
available
()
{
return
(
RFID
.
available
()
>
0
);
}
#endif // ENABLED(RFID_MODULE)
MK/module/mfrc522/MFRC522_serial.h
0 → 100644
View file @
a60bcd96
/**
* MK & MK4due 3D Printer Firmware
*
* Based on Marlin, Sprinter and grbl
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
* Copyright (C) 2013 - 2016 Alberto Cotronei @MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/**
* MFRC522 Serial
* Designed for module MFRC522 width UART
*
* Copyright (C) 2016 Alberto Cotronei MagoKimbra
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef MFRC522_H
#define MFRC522_H
//------------------MFRC522 register ---------------
#define MFRC522_HEADER 0xAB
#define COMMAND_READ_ID 0x02
#define COMMAND_READ_BLOCK 0x03
#define COMMAND_WRITE_BLOCK 0x04
#define STATUS_ERROR 0
#define STATUS_OK 1
#define MIFARE_KEYA 0x00
#define MIFARE_KEYB 0x01
#define BLOCK_START 5
#define BLOCK_TOTAL 26 // block total = block used + 1
class
MFRC522
{
public
:
MFRC522
();
bool
init
();
bool
getID
(
int8_t
e
);
bool
readBlock
(
int8_t
e
);
bool
writeBlock
(
int8_t
e
);
void
printInfo
(
int8_t
e
);
typedef
struct
{
char
brand
[
16
];
// 16 byte Block 5
char
serialnumber
[
16
];
// 16 byte Block 9
char
type
[
8
];
// 8 byte Block 13
char
color
[
8
];
// 8 byte Block 13
char
free1
[
12
];
// 12 byte Block 17
float
size
;
// 4 byte Block 17
int
temphotendmin
;
// 4 byte Block 21
int
temphotendmax
;
// 4 byte Block 21
int
tempbedmin
;
// 4 byte Block 21
int
tempbedmax
;
// 4 byte Block 21
int
temphotend
;
// 4 byte Block 25
int
tempbed
;
// 4 byte Block 25
int
density
;
// 4 byte Block 25
unsigned
long
lenght
;
// 4 byte Block 25
}
data_t
;
typedef
union
{
data_t
data
;
byte
RfidPacket
[
sizeof
(
data_t
)];
}
RfidPacket_t
;
typedef
union
{
unsigned
long
Spool_ID
;
byte
RfidPacketID
[
4
];
}
RfidPacketID_t
;
RfidPacket_t
RfidData
[
EXTRUDERS
];
RfidPacketID_t
RfidDataID
[
EXTRUDERS
];
private
:
void
write
(
uint8_t
value
);
byte
read
();
bool
communicate
(
uint8_t
sendDataLength
,
uint8_t
command
,
uint8_t
*
sendData
=
NULL
);
void
clear
();
bool
available
();
};
#endif // MFRC522_H
MK/module/nextion/Nextion.h
View file @
a60bcd96
...
...
@@ -35,5 +35,6 @@
//#include "NexWaveform.h"
#include "NexTimer.h"
#include "NexVar.h"
#include "NexDualStateButton.h"
#endif
/* #ifndef __NEXTION_H__ */
MK/module/nextion/Nextion_lcd.cpp
View file @
a60bcd96
...
...
@@ -104,6 +104,7 @@
NexVar
RFID
=
NexVar
(
1
,
27
,
"rfid"
);
NexPicture
Speedpic
=
NexPicture
(
1
,
28
,
"p9"
);
NexVar
VSpeed
=
NexVar
(
1
,
29
,
"vspeed"
);
NexVar
Extruder
=
NexVar
(
1
,
30
,
"extruder"
);
// Page 2 Temp
NexText
set0
=
NexText
(
2
,
2
,
"set0"
);
...
...
@@ -160,6 +161,17 @@
NexText
Tgcode
=
NexText
(
8
,
1
,
"tgcode"
);
NexButton
Benter
=
NexButton
(
8
,
41
,
"benter"
);
// Page 9 Gcode
NexPicture
MSD9
=
NexPicture
(
9
,
2
,
"p1"
);
NexButton
Rfid0
=
NexButton
(
9
,
5
,
"b0"
);
NexButton
Rfid1
=
NexButton
(
9
,
6
,
"b1"
);
NexButton
Rfid2
=
NexButton
(
9
,
7
,
"b2"
);
NexButton
Rfid3
=
NexButton
(
9
,
8
,
"b3"
);
NexButton
Rfid4
=
NexButton
(
9
,
9
,
"b4"
);
NexButton
Rfid5
=
NexButton
(
9
,
10
,
"b5"
);
NexDSButton
RfidR
=
NexDSButton
(
9
,
11
,
"bt0"
);
NexText
RfidText
=
NexText
(
9
,
13
,
"t0"
);
NexTouch
*
nex_listen_list
[]
=
{
&
Pstart
,
...
...
@@ -167,6 +179,7 @@
&
MSD3
,
&
MSD5
,
&
MSD6
,
&
MSD9
,
&
Fanpic
,
&
Speedpic
,
&
NPlay
,
...
...
@@ -200,6 +213,12 @@
&
ZDown
,
&
SpeedOk
,
&
Benter
,
&
Rfid0
,
&
Rfid1
,
&
Rfid2
,
&
Rfid3
,
&
Rfid4
,
&
Rfid5
,
NULL
};
...
...
@@ -250,12 +269,18 @@
Hotend21
.
setText
(
"BED"
);
#endif
Extruder
.
setValue
(
EXTRUDERS
);
VSpeed
.
setValue
(
100
);
#if HAS(FAN)
Fan
.
setValue
(
1
);
#endif
#if ENABLED(RFID_MODULE)
RFID
.
setValue
(
1
);
#endif
lcd_setstatus
(
lcd_status_message
);
}
...
...
@@ -406,6 +431,44 @@
}
#endif
#if ENABLED(RFID_MODULE)
void
rfidPopCallback
(
void
*
ptr
)
{
memset
(
buffer
,
0
,
sizeof
(
buffer
));
String
temp
=
"M522 "
;
uint32_t
Rfid_read
=
0
;
RfidR
.
getValue
(
&
Rfid_read
);
if
(
ptr
==
&
Rfid0
)
temp
+=
"T0 "
;
else
if
(
ptr
==
&
Rfid1
)
temp
+=
"T1 "
;
else
if
(
ptr
==
&
Rfid2
)
temp
+=
"T2 "
;
else
if
(
ptr
==
&
Rfid3
)
temp
+=
"T3 "
;
else
if
(
ptr
==
&
Rfid4
)
temp
+=
"T4 "
;
else
if
(
ptr
==
&
Rfid5
)
temp
+=
"T5 "
;
if
(
Rfid_read
)
temp
+=
"R"
;
else
temp
+=
"W"
;
temp
.
toCharArray
(
buffer
,
sizeof
(
buffer
));
enqueue_and_echo_commands_P
(
buffer
);
}
void
rfid_setText
(
const
char
*
message
,
uint32_t
color
/* = 65535 */
)
{
char
Rfid_status_message
[
25
];
strncpy
(
Rfid_status_message
,
message
,
30
);
RfidText
.
setColor
(
color
);
RfidText
.
setText
(
Rfid_status_message
);
}
#endif
void
ExitPopCallback
(
void
*
ptr
)
{
setpageInfo
();
}
...
...
@@ -523,7 +586,7 @@
for
(
uint8_t
i
=
0
;
i
<
10
;
i
++
)
{
NextionON
=
nexInit
();
if
(
NextionON
)
break
;
delay
(
1000
);
HAL
::
delayMilliseconds
(
1000
);
}
if
(
!
NextionON
)
{
...
...
@@ -549,6 +612,7 @@
MSD3
.
attachPop
(
setpageSDPopCallback
);
MSD5
.
attachPop
(
setpageSDPopCallback
);
MSD6
.
attachPop
(
setpageSDPopCallback
);
MSD9
.
attachPop
(
setpageSDPopCallback
);
sdlist
.
attachPop
(
sdlistPopCallback
);
ScrollUp
.
attachPop
(
sdlistPopCallback
);
ScrollDown
.
attachPop
(
sdlistPopCallback
);
...
...
@@ -557,6 +621,15 @@
NStop
.
attachPop
(
StopPopCallback
);
#endif
#if ENABLED(RFID_MODULE)
Rfid0
.
attachPop
(
rfidPopCallback
,
&
Rfid0
);
Rfid1
.
attachPop
(
rfidPopCallback
,
&
Rfid1
);
Rfid2
.
attachPop
(
rfidPopCallback
,
&
Rfid2
);
Rfid3
.
attachPop
(
rfidPopCallback
,
&
Rfid3
);
Rfid4
.
attachPop
(
rfidPopCallback
,
&
Rfid4
);
Rfid5
.
attachPop
(
rfidPopCallback
,
&
Rfid5
);
#endif
#if HAS_TEMP_0
hot0
.
attachPop
(
hotPopCallback
,
&
hot0
);
#endif
...
...
MK/module/nextion/Nextion_lcd.h
View file @
a60bcd96
...
...
@@ -77,6 +77,11 @@
void
UploadNewFirmware
();
#endif
#if ENABLED(RFID_MODULE)
void
rfidPopCallback
(
void
*
ptr
);
void
rfid_setText
(
const
char
*
message
,
uint32_t
color
=
65535
);
#endif
FORCE_INLINE
bool
lcd_hasstatus
()
{
return
false
;
}
FORCE_INLINE
void
lcd_buttons_update
()
{}
FORCE_INLINE
bool
lcd_detected
(
void
)
{
return
true
;
}
...
...
README.md
View file @
a60bcd96
...
...
@@ -45,6 +45,7 @@ Added total Power consumption writed in SD CARD.
Added total filament printed writed in SD CARD.
Added anti extruder idle oozing system.
Added Hysteresis and Z-Wobble correction (only cartesian printers).
Added support reader TAG width MFRC522
## Credits
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment