An Arduino and Java project based on @wizard97's repository iSkipper. With suitable arduino devices, this project can let you recieve or send any iClicker multiple choice answer, through an easy-to-use GUI program.
NOTE: THIS PROJECT IS FOR EXPERIMENTAL USE ONLY. CONTRIBUTORS OF THIS PROJECT ARE FREE OF RESPONSIBILITY OF ANY IMPROPER USE OF THIS PROJECT
-
Recieve other's answer.
-
Compatible with all the channels: AA, AB, AC, AD, BA, BB, BC, BD, CA, CB, CC, CD, DA, DB, DC, DD.
-
Send answers with a fixed ID, just like a normal remote.
-
Send answers with specific IDs, which allow you to send answers as "others".
-
Automatically select the most popular choice.
-
Show polling result in three different charts: Area Chart, Bar Chart, Pie Chart.
-
The channel and ID list are automatically saved on your computer.
-
Cross-platform friendly. (Windows, Mac OS, Linux...)
-
(Any features in original repository iSkipper, but some "dangerous" functions are not included in the GUI program, though they are supported here)
Materials
-
Any Arduino device with SPI interface and USB-Serial support. (Or you can use a USB-TTL converter)
-
(Optional) A breakout board, since RFM69 has 2.00mm pin spacing, which is different from most Arduino's 2.54mm. A breakout board is something like this, or you could just get a all-in-one modular like this.
-
(Optional) If you're using Arduino with 5.0V logic level, you'll need a 3.3V-5.0V logic level converter. There is a tutorial of using logic level converter here.
Connect your hardwares
Basically, just read your modular's pin maps and connect the SPI pins one-by-one. For example, you can check the tutorials of connecting Arduino Nano and RFM69 here.Though they are using RFM69HCW, it should still work fine.
You can go and check my related hardware project iSkipper-In-One-Package to design and manufacture your own iSkipper PCBs!
-
Get an Arduino IDE.
-
Go to the original iSkipper repository to download and install the iSkipper Library and related Libraries. Just copy them into your Arduino library folder.
-
Download the sketch of this project at
/iSkipper_Arduino_Sketch
here. -
Open
iSkipper_Arduino_Sketch/iSkipper_Arduino_Sketch.ino
and edit lines below to fit your hardware. Current setting is for Arduino Nano and RFM69HW.
//iSkipper_Arduino_Sketch/iSkipper_Arduino_Sketch.ino:
#define IS_RFM69HW true //make true if using w version
#define IRQ_PIN 3 // Must Be 3 for Nano
#define CSN 10 // NSS pin,10 for Nano
and
//The Fixed ID for emulating a normal iClikcer
const uint32_t FIXED_ISKIPPER_ID = 0xCDCDCDCD;
Please note that the iClicker ID is NOT totally random. The last byte of the ID is an 8-bit Xor Checksum of previous 3 bytes. For example, ABCDEF89
is a valid ID because 0x89 = 0xAB XOR 0xCD XOR 0xEF.
-
Burn the edited sketch into your device.
-
Open serial monitor at baudrate
115200
. If you see the output like thisInitialization Complete. Waiting for COM command...
, then congratulations! You have done the hardware/firmware part.
If you're not interesting in development of this software, you can skip following build process and use our binary release.
Requirements
- Java Development Kit (JDK) 11
- Apache Maven
Installing Apache Maven
-
Go to the website linked above and find the "Download" link for your OS.
-
Unless you know what you're doing (in which case you aren't reading this), you want to download the .zip version.
-
Unzip the .zip using your favorite decompression tool and move the resultant folder somewhere safe (Documents or something, just get it out of Downloads).
-
Add the "bin" folder (inside the folder you just moved) to your Path system variable. On Windows you do this by going to Control Panel > System and Secutirty > System > Advanced System Settings > Environment Variables and finding the "Path" variable. Select it, then select "edit" then "new" then "browse" and find the bin folder. Click "OK" until all the windows are gone (3 times) then click "Apply". You have now added the mvn command to your path. Restart CMD and type "mvn -v" to ensure you did this step correctly. On Mac or Linux do a google on how to do this.
Build
There two maven projects. One is iSkipper
(pom.xml here), and another is iSkipper-JavaFX
(pom.xml here).
-
Complie and install
iSkipper
into your local maven repository (useinstall
as goals).-
Navigate to iSkipper-Software-master\iSkipper-Software-master\Software\Java\iSkipper and open a powershell/cmd/terminal window here. If you're on Windows you can ctrl+shift+right-click and click "Open Powershell window here".
-
Type "
mvn install
" and you're done.
-
-
Compile and run
iSkipper-JavaFX
(Useclean compile exec:java
).-
Navigate to iSkipper-Software-master\iSkipper-Software-master\Software\iSkipper-JavaFX and open a powershell/cmd/terminal windows here. If you're on Windows you can ctrl+shift+right-click and click "Open Powershell window here".
-
Type "
mvn clean compile exec:java
" and you're done.
-
-
If you want export a single executable JAR, use
clean compile assembly:single
-
Navigate to iSkipper-Software-master\iSkipper-Software-master\Software\iSkipper-JavaFX and open a powershell/cmd/terminal windows here. If you're on Windows you can ctrl+shift+right-click and click "Open Powershell window here".
-
Type "
mvn clean compile assembly:single
" and you're done.
-
-
(Optional) To delivery a ready-to-use package, use
jlink
to generated our customize Java Runtime Enviroment(JRE):
jlink --no-man-pages --add-modules java.base,java.datatransfer,java.desktop,java.prefs,java.scripting,java.xml,jdk.jsobject,jdk.unsupported,jdk.unsupported.desktop,jdk.xml.dom --compress=2 --output iSkipper-JRE
- Implement session opening and closing.
- Implement full-auto modes.
The original iSkipper repository: wizard97/iSkipper.
Related Hardware Project:iSkipper-In-One-Package.