The Argon EON Pi NAS is a 4-Bay SATA NAS Enclosure powered by the versatile Raspberry Pi 4 Model B. Designed by electronics enthusiasts Argon40, the Argon EON is a Build Your Own Network Attached Storage (BYO-NAS) that provides you with full control over your own cloud storage.
The design of the Argon EON is both aesthetically pleasing and functional. The cyberpunk-inspired enclosure is made from space-grade aluminum, giving it a modern and angular look while maintaining its structural rigidity. The built-in controllable fan, combined with the aluminum's heat conductivity, ensures that the Raspberry Pi and hard disks remain cool even under heavy loads.
At the heart of the Argon EON are its four SATA hard drive ports, which can accommodate two 3.5" SATA HDDs and two 2.5" SATA HDD/SSDs, with a maximum capacity of 10 TB per bay for a total of 40 TB capacity. Plus, the built-in Real-time Clock makes it possible to schedule tasks that previously weren't possible with just a bare Raspberry Pi.
The Argon EON also features a programmable OLED display situated under the multi-function power button, allowing for seamless integration with the case. The display can show your IP address, CPU status, and other essential information needed for the operation of your NAS.
All the ports on the Argon EON are systematically situated at the back of the unit to hide unsightly cables. This includes easy access to the MicroSD card and GPIO pins via a removable cover. The Raspberry Pi's dual Micro-HDMI are also converted to full-size HDMI. You'll receive a UK 3-pin 12V 5A power supply that powers the entire unit, including your Raspberry Pi, so there's no need for another power supply.
One of the best things about the Argon EON is that it's compatible with all Raspberry Pi 4 compatible OS, including Raspberry Pi OS, Open Media Vault, Twister OS, and Ubuntu for Raspberry Pi. The NAS has 4 drive bays, which are compatible with 2.5" SATA HDD or SSD (max 4 drives) or 3.5" SATA HDD (max 2 drives). The max single volume size is 18TB. You'll also have access to RJ-45 1GbE LAN port x1, USB 3.0 x2, USB 2.0 x2, Raspberry Pi 40-pin GPIO header, HDMI ports - up to 4kp60 supported x2, and a 4-pole stereo audio and composite video port x1.
With the Argon EON Pi NAS, you'll have full control over your own cloud storage, allowing you to expand your storage capacity without monthly fees or limits. And with the Argon EON's clean design and versatile features, you'll have a powerful tool for your daily computing needs. In summary, the Argon EON is an excellent choice if you're looking to build your own NAS system. Get yours now!
]]>
Open up the packaging box and you should find the following:
1) NVIDIA Jetson Nano 2GB Developer Kit
2) Aluminum Case with Camera Mount
3) 5.1V 3A 15.3W USB-C Power Supply (Official Raspberry Pi )
4) 8MP CSI Raspberry Pi Camera Module V2 (Official)
5) 64GB A1 microSD Card Preinstalled with Jetson Nano SD Image (JetPack with Linux4Tegra L4T)
6) Plug and play USB WiFi dongle
7) USB microSD Card Reader
Follow the assembly guide here to assemble the case: https://makersupplies.sg/ai-starter-kit-case-assembly
Note: Install the cooling fan only if necessary as the fan will turn on whenever the main power switch is turn on, regardless of whether the power button on the case is pressed as the fan is powered via the GPIO pins.
Note: When installing the camera, take note of the orientation of the CSI cable, the metal contacts should be facing inwards.
Follow the guide by NVIDIA to setup your Jetson Nano 2GB for the first time: https://developer.nvidia.com/embedded/learn/get-started-jetson-nano-2gb-devkit#intro
Note: The microSD card provided with this kit already comes pre-installed with the correct OS for the Jetson Nano 2GB, hence you can skip the "Write Image to the microSD Card" section of the guide. However, if you do ever need to re-flash the microSD card for any reason, you can do so using the provided USB microSD card reader and instructions on the guide.
Get started learning about AI with the free Jetson AI Fundamentals Course. The full course outline can be found here: https://developer.nvidia.com/embedded/learn/jetson-ai-certification-programs#course_outline
]]>
Firmware Files can be downloaded on https://www.creality.com/download. Select the correct .zip file according to your motherboard version number and flash the .bin file with the phrase "With Adapter Board" in it's name.
For a more in-depth guide on how to use the BL Touch after installation, such as setting z-offset, please read: https://www.makersupplies.sg/blogs/tutorials/how-to-use-bl-touch-on-ender-3-v2-after-installation
After installing the new firmware and the BL Touch /CR Touch on your printer, to use the auto-leveling capabilities we have to first determine the Z-offset required
First, auto-home the printer. From the main menu, select “Prepare > Auto home”. You will realize that the printer now homes to the center of the bed instead of the bottom corner.
With the BL-Touch the Auto home function does not bring the Z position to 0. To adjust for the Z-offset, we must first move the nozzle position to 0. To do so, select “Move > Move Z > 0.0”. To prevent any accidental bed scratching, place a piece of paper at the bottom of the nozzle on the bed before moving the Z axis.
Now, to set the Z-offset, select “Back > Z-offset” and start to decrease the Z-offset value. Negative values mean the nozzle moves downwards. Start with decrements of 1 followed by 0.1 and 0.05 until you feel some resistance against the paper under the nozzle. Note that the nozzle only moves after you set the value and press the button to confirm. We find that typically the offset is somewhere between -2.50 to -3.50.
TIP: If you find that after you set a new Z-offset value, the motor does not move, change the Z-offset back to 0, auto-home again, move the Z-axis down as above and try again.
TIP: If your nozzle has some remnant filament from your previous print, heat up the nozzle and clear it away before doing this step as the excess stuck filament will affect the resistance you feel under the paper.
After the Z-axis offset is correctly set, it is time to test the auto bed leveling. Select the “Level” option on the main screen and wait for the auto leveling to be complete. The nozzle will move to 9 positions on the bed and measure the off-set values for each point, so that when you print a model, the printer takes into account the off-set values and prints higher or lower accordingly.
TIP: If at any point the BL Touch starts to flash red and the probe does not move, it means that the probe got stuck. To fix this, turn off the printer and manually pull down and push in the probe and restart the printer. If this happens very often, it might be time to change the probe which is also included in the kit.
Once the printer is done with the auto leveling, the next step is to do a test print to check that the leveling went well. We have adapted a GCODE file from CHEP to do just this.
Download Ender 3 V2 Leveling Test GCODE File
Copy this file into your microSD card and insert into your printer. (Remember to remove the firmware .bin file if you have not already if not the printer might reflash its firmware again) Select print and the printer will start to heat up and print the following grid pattern.
NOTE: Keep a finger on the power off switch to turn off the printer quickly if you see that the nozzle is going too low and is starting to scratch the bed.
To check the leveling, make sure that the test pattern printed is not too low or too high. If it is too low, you will not be able to see the filament printed out and in worse cases the nozzle will start to scratch the bed. If it is too high, the filament will be printed in the air. If you rub you finger lightly on the print, the filament should not come off too easily.
If you need to adjust the Z-offset, you can do so during the print. If you find that one corner is too high or too low, you can adjust the wheel manually during the print as well. Do a few of this test print to make sure that the leveling is good before starting to print your models.
NOTE: Whenever the printer is moved, we recommend doing the bed-leveling process again (Starting from Step 6) to prevent any accidental bed scratching.
NOTE: As of the time of writing, the firmware (V1.1.1) of Ender 3 V2 stores the BL Touch bed leveling data in the microSD card instead of the motherboard’s EEPROM. This means that you will need to re-do the leveling process if you change a microSD card.
We hope that this guide provides more information on how to use the BL Touch kit on your Ender 3 V2. If you still face issues with the product, feel free to comment down below and we will get back to you as soon as possible. Alternatively if you purchased the product from us, you can send us an email at contact@makersupplies.sg and we will be happy to assist you. Happy printing!
]]>
NOTE: If this is the first time using the Ender 3 V2, we highly recommend you setting up the printer without using the BL-Touch first and do a test print with manual leveling to ensure that all connections and the standard setup is completed correctly.
Remove the motherboard cover by unscrewing the 3 bolts (2 X M3*6, 1 X M3*8) on the underside of the printer and the 1 bolt (M3*6) from the top side of the printer as shown below
After opening the cover, take note of the motherboard version number. In our case the version is 4.2.2. At the time of writing, there are 2 versions of the Ender 3 V2 motherboard, the V4.2.2 and V4.2.7.
With the BL Touch, the printer detects the nozzle’s vertical position (Z-position) by using the probe on the BL-Touch instead of using the Z-axis end stop limit switch. As such we will need to remove the limit switch and connection to the motherboard to prevent conflicting information sent to the motherboard.
Remove the cable labelled “Z”, connected to the 3rd port from the top right as shown below.
To remove the wire completely from the enclosure, unscrew the 2 front facing screws as shown below.
With the screws removed, you will be able to remove the Z-axis cable from the gap:
Once that is done, you can reinstall the front facing screws.
Next, remove the Z-limit switch. This can be done easily by loosening these 2 screws.
With the Z-limit switch and cable removed, next is to connect the BL-Touch cable to the motherboard.
With the cable connected, you can either cable-tie the cable to the wire netting all the way to the nozzle assembly or for a neater look you can thread the cable through the wire netting.
To thread the cable through the wire netting, first remove the cable ties holding the cable netting such as the following:
Then, with the BL-Touch cable connected to the motherboard as shown, thread the other smaller connector end through the netting all the way to the nozzle assembly.
The threading of the cable through the netting can be quite tricky. One method to thread more easily is to drag the cable through from the outside as shown below:
After the cable is threaded, the 2 ends of the cable should look like this.
Once that is done, you can re-install the motherboard cover as we do not need to access it anymore.
To hold the BL-Touch in place, there is a bracket provided with the kit that is meant to be installed on the holes as shown below. Use the shorter 2 X M3*6 for this.
NOTE: Make sure the orientation of the bracket is as shown above as it is possible to install the bracket upside down and cause the probe to be too far from the nozzle height. Take note of the curved portion of the bracket.
Next, connect the cable to the BL-Touch. Do take note to ensure the cable is fully inserted as shown in the image below.
After that is done, mount the BL-Touch to the bracket with the other 2 provided screws as shown below. Use the longer 2 X M3*8 for this.
For the motherboard to work properly with the BL-Touch, a firmware update is required. To do so, we first have to obtain the correct firmware update file.
Download the latest firmware file from Creality’s official download page: https://www.creality.com/download
Take note to download the correct files for your motherboard version. After the download, open the folder with “BLtouch Non-adapter board firmware” in its name. This is the latest version which does not require an adapter board. This is also the version we currently carry.
The process for updating the firmware on the Ender 3 V2 is relatively easy. All you need to do is to delete all the files in the microSD card you use for your printer and place the downloaded .bin file inside. Once done, place the microSD card in the printer and turn on the power. Below is a short video showing the steps mentioned to flash the firmware.
When the power is turned on, the motherboard will automatically update its own firmware with the provided .bin file in the microSD card. Note that the screen will be blank for a few seconds before the Creality Logo shows up. Once the firmware update is completed, you should see a new option “Level” show up on the main page.
NOTE: If your screen does not turn on after firmware upgrade, check to make sure that the firmware file you are flashing is the correct one for your motherboard. To rollback to the previous version, use the file under the folder with “original firmware” of the downloaded zip file.
Before testing out the auto-leveling capabilities we have to first determine the Z-offset required
First, auto-home the printer. From the main menu, select “Prepare > Auto home”. You will realize that the printer now homes to the center of the bed instead of the bottom corner.
With the BL-Touch the Auto home function does not bring the Z position to 0. To adjust for the Z-offset, we must first move the nozzle position to 0. To do so, select “Move > Move Z > 0.0”. To prevent any accidental bed scratching, place a piece of paper at the bottom of the nozzle on the bed before moving the Z axis.
Now, to set the Z-offset, select “Back > Z-offset” and start to decrease the Z-offset value. Negative values mean the nozzle moves downwards. Start with decrements of 1 followed by 0.1 and 0.05 until you feel some resistance against the paper under the nozzle. Note that the nozzle only moves after you set the value and press the button to confirm. We find that typically the offset is somewhere between -2.50 to -3.50.
TIP: If you find that after you set a new Z-offset value, the motor does not move, change the Z-offset back to 0, auto-home again, move the Z-axis down as above and try again.
TIP: If your nozzle has some remnant filament from your previous print, heat up the nozzle and clear it away before doing this step as the excess stuck filament will affect the resistance you feel under the paper.
After the Z-axis offset is correctly set, it is time to test the auto bed leveling. Select the “Level” option on the main screen and wait for the auto leveling to be complete. The nozzle will move to 9 positions on the bed and measure the off-set values for each point, so that when you print a model, the printer takes into account the off-set values and prints higher or lower accordingly.
TIP: If at any point the BL Touch starts to flash red and the probe does not move, it means that the probe got stuck. To fix this, turn off the printer and manually pull down and push in the probe and restart the printer. If this happens very often, it might be time to change the probe which is also included in the kit.
Once the printer is done with the auto leveling, the next step is to do a test print to check that the leveling went well. We have adapted a GCODE file from CHEP to do just this.
Download Ender 3 V2 Leveling Test GCODE File
Copy this file into your microSD card and insert into your printer. (Remember to remove the firmware .bin file if you have not already if not the printer might reflash its firmware again) Select print and the printer will start to heat up and print the following grid pattern.
NOTE: Keep a finger on the power off switch to turn off the printer quickly if you see that the nozzle is going too low and is starting to scratch the bed.
To check the leveling, make sure that the test pattern printed is not too low or too high. If it is too low, you will not be able to see the filament printed out and in worse cases the nozzle will start to scratch the bed. If it is too high, the filament will be printed in the air. If you rub you finger lightly on the print, the filament should not come off too easily.
If you need to adjust the Z-offset, you can do so during the print. If you find that one corner is too high or too low, you can adjust the wheel manually during the print as well. Do a few of this test print to make sure that the leveling is good before starting to print your models.
NOTE: Whenever the printer is moved, we recommend doing the bed-leveling process again (Starting from Step 6) to prevent any accidental bed scratching.
NOTE: As of the time of writing, the firmware (V1.1.1) of Ender 3 V2 stores the BL Touch bed leveling data in the microSD card instead of the motherboard’s EEPROM. This means that you will need to re-do the leveling process if you change a microSD card.
We hope that this guide provides more information on how to install the BL Touch kit on your Ender 3 V2. If you still face issues with the product, feel free to comment down below and we will get back to you as soon as possible. Alternatively if you purchased the product from us, you can send us an email at contact@makersupplies.sg and we will be happy to assist you. Happy printing!
]]>
The GCODE files for the Ender 3 V2 which uses the 32-bit motherboard can be found here:
1) To move nozzle to each corner of bed, download this file.
2) To print test squares pattern, download this file.
]]>
]]>
]]>
1) Setup the circuit as shown below:
🔥 DANGER: LEDs have polarity. Connecting the positive and negative ends wrongly will likely spoil your LED. The positive end is usually longer than the negative end. The negative end connects to the resistor before joining the rest of the circuit.
🔥 DANGER: LEDs are not current limiting! That means that if there is no resistor in place, the LED will just draw as much current as possible from the Arduino which will cause the LED to burnout!
2) Connect the Arduino to your computer using the data cable
3) Open Arduino IDE and select the port corresponding to your Arduino under (Tools > Port)
⚠️ POTENTIAL PITFALL: Ensure that you choose the correct port as failure to do so will cause issues when trying to upload your code!
4) We begin by defining some variables to be used in our script.
For simplicity's sake, we use the integer data type represented by 'int' however, since these values will never be negative, you could use unsigned 'int' as well.
✨ FUN FACT: Arduino Microcontrollers have a built-in LED on pin 13 that’s frequently used to indicate an action or event.
5) Next, in our setup function, we need to define what mode the pins operate in,
6) Next, in the ‘loop’ function, we will set the microcontroller to alternate between sending a high voltage and low voltage to the pin for a specified time period.
The function ‘digitalWrite’ allows us to set the voltage of the pins at 5V (turns on the LED) or 0V (turns off the LED) using the keywords ‘HIGH’ and ‘LOW’. To set how long the pins will be in those states, we use the ‘delay’ function, which will effectively pause the script from running for the amount of milliseconds stated.
7) Click upload and watch your LED come to life! 💡
Do share your projects with us on Instagram by tagging us @makersupplies.sg
]]>
To prevent any issues with compatibility, always update the dependencies list on the Raspberry Pi and upgrade the libraries on the Pi before installing new libraries. Run the following commands in the terminal.
sudo apt-get update
This command updates the list of packages that can be installed, and checks if currently installed packages have any new updates. After the update of the list is completed, run the following command to install the updates.
sudo apt-get upgrade
It takes quite some time for the Raspberry Pi to be updated depending on which version of Raspbian you are using. Once that's done we can move on to the next step!
The Raspberry Pi runs off the ARM architecture and as of the writing of this article, NodeJS releases compiled Linux binaries for ARMv6, ARMv7 and ARMv8 architecture boards.
To find out which architecture your Raspberry Pi is running on, run the following command in the terminal
uname -m
For example, if we run the above command on the Raspberry Pi Zero W, we get the following output.
armv6l
For easy reference, we have compiled a list of common Raspberry Pi boards and their architectures. (Note that your board might have a different architecture even though the board name is the same as our table as within the same model number there are different revisions, safest bet is to run the above command)
Board Name | Architecture Version |
Raspberry Pi 4B | ARMv8 |
Raspberry Pi 3 /3B+ | ARMv7 |
Raspberry Pi 2B v1.2 | ARMv7 |
Raspberry Pi 2B | ARMv6 |
Raspberry Pi Zero /Zero W | ARMv6 |
Visit the NodeJS downloads page and copy the link to the version that you need.
If you cannot find your version's download link, it might be that it has not been released for the latest version of NodeJS. For example, the Raspberry Pi Zero W runs on ARMv6 architecture, but the link is not showing in our screenshot. This is because the ARMv6 binary for NodeJS v12 has not been released. To find the binary for the previous version of NodeJS, visit the previous releases page. Usually the version that is one major revision preceding the LTS version should have binaries for all the architectures. In our case, that is NodeJS v11. So on the page, we will look for "Node.js v11.X.X" where X is the latest revision of that major revision.
Once you have the link for the binaries, you can go ahead and download the archive onto your Raspberry Pi using wget.
wget [COPIED LINK HERE]
Replace [COPIED LINK HERE] with the link you copied from the downloads page. In our case, we needed the binaries for the ARMv6 architecture of the Raspberry Pi Zero W. At the time of writing, the latest NodeJS binary for ARMv6 was v11.15.0. Hence, our command to download was the following.
wget https://nodejs.org/download/release/v11.15.0/node-v11.15.0-linux-armv6l.tar.gz
The download may take some time depending on your internet connection. If the download fails you can always download the file on your laptop and transfer the file to your Raspberry Pi with a removable drive (assuming you are not running it headless)
Once the file in on your Raspberry Pi, you need to extract it. To do so, we can use the built in command "tar"
tar -xzf node-vXX.XX.X-linux-armvXl.tar.gz
Change X to your downloaded file name. In our example, we would use the following command
tar -xzf node-v11.15.0-linux-armv6l.tar.gz
The "-xzf" flag is actually 3 flags combined into one, it could also be written as "-x -z -f". The "-x" flag is to tell the program to "extract". The "-z" flag is to tell the program to use "gunzip" for the extraction as the file is an archive ending in ".gz". And finally the "-f" flag simply just means "perform operation on this file".
To be able to run node from any directory, we need to copy the files extracted to a folder that is in PATH. One possibility is to copy it to the "/usr/local" folder.
cd node-vXX.XX.X-linux-armvXl/
As before, change the X to whatever version you need. In our case, we used the following
cd node-v11.15.0-linux-armv6l/
To copy the files, we use the cp command. The "-R" flag is to signify to the program to copy all the files recursively, i.e include all files within folders. "*" just means to copy everything in the folder.
sudo cp -R * /usr/local/
To check if the installation was successful, simply run the following commands to check the versions of NodeJS and NPM in any directory.
node -v
npm -v
If all works well, the above commands should output the version numbers of NodeJS and NPM.
Well, that's all you need to do to install NodeJS and NPM on your Raspberry Pi. Hope that this tutorial has helped some of you out there. If you run into any issues, just leave us a comment down below and we will try to help you guys as soon as possible! :)
]]>
Common servo motors such as the SG90 servo and the MG90S servo come with a connector with 3 pins, one for connection to a 5V DC power source (usually red), one for connection to ground (usually black or brown) and the last one for controlling the position of the servo arm. (usually yellow, orange or white)
A typical connection to an Arduino is shown below:
I used an Arduino Mega here, but any other Arduino would work fine. Just make sure that the signal pin of the servo motor is connected to an output pin of the Arduino capable of pulse width modulation (PWM).
NOTE: On Arduino boards other than the Mega, the use of the Servo Library will disable the PWM functionality on pins 9 and 10. On the Mega, if more than 12 servos are used, the PWM functionality will be disabled on pins 11 and 12.
To control the servo motor, we can use Arduino's built-in Servo library. Here we have written some code to make the servo motor turn to the 0° position, wait for 3 seconds, turn to the 180° position, wait for 3 seconds and repeat the process.
Let's go through some key lines of code used.
And thats all the code you need to control the servo however you want! However, if your realized that your servo motor is not rotating the full range of motion of 180°, you might need to calibrate your servo at the next step.
A servo motor uses pulse width modulation (PWM) to understand which position the servo motor should turn to. The Servo library allows us to easily control the motor position in degrees by converting the degrees we specify into the microseconds of the pulse width required to "tell" the servo motor which angle to turn to.
If we look at the documentation for the .attach() function, we see the following:
Syntax
servo.attach(pin)
servo.attach(pin, min, max)Parameters
servo: a variable of type Servo
pin: the number of the pin that the servo is attached to
min (optional): the pulse width, in microseconds, corresponding to the minimum (0-degree) angle on the servo (defaults to 544)
max (optional): the pulse width, in microseconds, corresponding to the maximum (180-degree) angle on the servo (defaults to 2400)
We can see that the minimum pulse width that corresponds to the 0° position defaults to 544, while the maximum pulse width that corresponds to the 180° position defaults to 2400. However, these values are not always true for every make and model of the servo motor you bought. In fact, in my experience, even within the same make and model of servo motors, these max and min pulse widths differs slightly as well.
Therefore, if your servo motor is not turning to the full range of motion which you expect, try either reducing the minimum or increasing the maximum pulse width in microseconds using the servo.attach(pin,min,max) function. I found that for my servo, having 500 as the minimum and 2450 as the maximum pulse width did the trick!
That's all for this tutorial, hope it has helped some of you makers out there! If you are still having issues, feel free to leave a comment and I'll try my best to help you out!
]]>Here's a video by Geekworm themselves showing the full installation process.
Photo by Geekworm
Photo by Geekworm
And we are done! Enjoy your well-protected Jetson Nano! 😄
]]>