Uncategorized

SkatterBencher is working on a telemetry tool for the Raspberry Pi

Getting accurate data from your Raspberry Pi is easy using the vcgencmd command but this project from SkatterBencher measures every aspect of our favorite single board computer and handily records it to a CSV file. The project’s creator noticed a lack of comprehensive telemetry tools, noting that others had created their own projects for specific data (just like our project.) Skatterbencher wanted a tool that worked more like HWiNFO, a tool to monitor and record telemetry data during a stress test. While this script doesn’t (yet) perform a stress test, it does automatically record multiple datapoints for later analysis.Written in Python, this script calls the vcgencmd command and provides real-time data on how our Raspberry Pi is performing. We took it for a spin on our Raspberry Pi 5 housed inside Sunfounder’s Pironman 5 case.(Image credit: Tom’s Hardware)First of all, we get a plethora of Pi-data written to the Linux terminal. From the data, we know the clock speeds for our Arm CPU, GPU, UART, PWM, and many other interfaces. That Arm CPU temperature is displayed in its own section, just above the voltages for the CPU core and the onboard RAM. Next up we get data on CPU throttling which triggers once the CPU hits 82 degrees Celsius. Lastly, we get data on the PMIC (Power Management IC) which tells us about every aspect of the PMIC. This is especially useful for the new Raspberry Pi 5 which has a beefy PMIC compared to previous models.(Image credit: Tom’s Hardware)All of this data updates every second, so we get a constantly refreshed display. But for those of us who like to pore over the data in a spreadsheet, us included, then fear not, as the data is logged to a CSV file that can be easily imported into Microsoft Excel, LibreOffice, or even Google Sheets. The CSV output gives us granular-level data. We can see how our CPU is being used and its speed. We also get the data for PMIC, clocks, and temperature logged to the file every second.Running the code is a simple matter of cloning the repository.git clone https://github.com/SkatterBencher/rpi5-telemetry-python.gitChanging directory to the cloned repository, and we can then run the code using Python.Get Tom’s Hardware’s best news and in-depth reviews, straight to your inbox.cd rpi5-telemetry-python
python telemetry_printCsvWorks_b.pyWe get the real-time output and data logged to CSV for later use in a spreadsheet. All it needs now is a stress test option and we may have the perfect tool to stress and record our Raspberry Pis.The project source can be found on the SkatterBencher GitHub page. […]

Uncategorized

How to use SSH on Android with JuiceSSH

You’re at the store and suddenly you remember that you really need to start a script on a remote server. It could be your Raspberry Pi 5 or in my case, back in 2012 it was a misbehaving client project server which forced me to login and restart some services while I was browsing which pizza would be for dinner. I did everything from my smartphone using SSH (Secure Shell) and JuiceSSH, a free SSH client app for Android.In this how to we’ll install JuiceSSH on our Android smartphone and learn how to make a connection to a Raspberry Pi 5 on our home network.For this project you will need a device running an SSH server. Typically this is a Linux machine such as a Raspberry Pi. We’re using a Raspberry Pi 5 running the latest version of Raspberry Pi OS. You will also need an Android device.If you are setting up a Raspberry Pi from scratch, follow this guide to install Raspberry Pi OS with SSH ready to go. If your Raspberry Pi is already running, follow these steps to set up an SSH server.1. Open a terminal and as sudo, run raspi-config command.sudo raspi-config2. Using the arrow keys, scroll to Interface Options and press Enter.(Image credit: Tom’s Hardware)3. Select SSH and press Enter.Get Tom’s Hardware’s best news and in-depth reviews, straight to your inbox.(Image credit: Tom’s Hardware)4. Select Yes and press Enter to enable the SSH server.(Image credit: Tom’s Hardware)5. Select Ok to acknowledge that the SSH server is running.(Image credit: Tom’s Hardware)6. Select Finish and press Enter to exit. Close the terminal when done. You can now move on to the next part of this how to.(Image credit: Tom’s Hardware)Installing and using JuiceSSH on Android1.  From the Play Store, search for JuiceSSH and install the application.(Image credit: Tom’s Hardware)2. Open JuiceSSH.(Image credit: Tom’s Hardware)3. The JuiceSSH interface is broken down into four sections. Section 1 is Quick Connect, and we can use this to make a connection to a device. Section 2 will show a list of the connections that we frequently use. Section 3 is where we can create, update and delete SSH connections. Section 4 is where we can find app settings.(Image credit: Tom’s Hardware)4. Click on Quick Connect and in the next screen ensure that SSH is selected and then enter your username and the IP address / hostname of the device. Click OK to start the connection. Here we are connecting to a Raspberry Pi 5 which we know the IP address of. You can use a hostname if you prefer.(Image credit: Tom’s Hardware)5. Click ACCEPT for the host verification screen.(Image credit: Tom’s Hardware) 6. Enter your password and click OK to connect. Optionally you can save the password for a quicker login. Yes it does say Authentication Failure despite us never connecting to this Raspberry Pi via SSH. This is normal as the app will first try to connect without a password.(Image credit: Tom’s Hardware)7. Read the text and click OK – I’ve got it! We are logged in but the app will tell us how to resize terminal text (volume buttons), open the keyboard (press the terminal screen) and how to copy / paste (long press on the item). We can also use the up and down arrow keys to scroll through our command history, just like we were sitting at our desk.(Image credit: Tom’s Hardware)8. Update the software on the remote machine, then install neofetch. Type the command and press Enter to run. Press Y when prompted to confirm. With direct control of our remote system we can issue commands as if we are sitting in front of the machine.sudo apt update && sudo apt install neofetch(Image credit: Tom’s Hardware) 9. Run the neofetch command to confirm that everything has been installed correctly.(Image credit: Tom’s Hardware)10. Press CTRL and D on the terminal keyboard to exit the SSH session. Pressing the CTRL key will hold the key down enabling us to press the D key to exit.(Image credit: Tom’s Hardware)Managing ConnectionsA useful part of JuiceSSH is the Manage Connection section. Here we can list all of our connections and have them ready to go at a moment’s notice. We’re going to use the quick connection that we just created to create a permanent connection in JuiceSSH.1. Click on Manage Connections.(Image credit: Tom’s Hardware)2. From the list of connections, long press on the one that you would like to use. We’re going to reuse our connection that uses an IP address.(Image credit: Tom’s Hardware)3. From the list select Edit. We can also duplicate and delete connections via this menu.(Image credit: Tom’s Hardware)4. Set the nickname to something relevant and memorable and then click on the tick in the top right corner to save. If your device uses an alternative port to 22 (the default for SSH), change that here. We’re using a Raspberry Pi 5 inside of Sunfounder’s Pironman 5 case, hence our nickname.(Image credit: Tom’s Hardware)5. Click on the nickname to start the connection. At the Connections screen we can see that the IP address has been replaced with the nickname.(Image credit: Tom’s Hardware)6. Enter your password and click Remember Password, then press OK. Clicking Remember Password will make the login process much faster for future logins. If you did this earlier, then you will not see this dialog box.(Image credit: Tom’s Hardware)7. Once logged in, press CTRL + D to logout.(Image credit: Tom’s Hardware)8. Log back into the connection, this time you will not be asked for a password.(Image credit: Tom’s Hardware)We now have an SSH client on our Android device, ready for action the next time you need to login to a server or run some code on your Raspberry Pi. […]

Uncategorized

Sunfounder Pironman 5 Review: Some Avenging Assembly required

There seems to be an ever flowing stream of Raspberry Pi 5 cases since the launch of our favorite Raspberry Pi back in October 2023. This new case, from Sunfounder is the $79 Pironman 5, and while we can throw many super hero puns in your face, this case is in fact MARVELous but it does have its flaws.Looking like a tiny gaming PC, Pironman 5 channels that vibe into a cleverly thought out case that brings plenty of cooling, NVMe storage, GPIO access and RGB LEDs to the party.How does it perform? Let’s find out!Pironman 5… Assemble!(Image credit: Tom’s Hardware)The aluminum and acrylic case looks just like a tiny gaming PC, even down to the RGB LEDs. But assembly is a much different affair compared to the best PC cases. The case comes in two main sections. The main section is where we connect the Raspberry Pi 5 and the NVMe SSD breakout board. The other section is where the two RGB fans are located.Image […]

Uncategorized

Raspberry Pi Compute Module 4S Review: An Industrial Legacy

This is an unusual review to write. Why? Because this is for a Raspberry Pi product that you cannot easily purchase. The Raspberry Pi Compute Module 4S isn’t an upgraded version of the original Compute Module 4. Rather it is a variant designed for companies which based its products on the original Compute Module form factor. As we said, this isn’t a board that you can just go out and buy. Well, unless you want 200+. You can only buy Compute Module 4S, which starts from $25 per unit, in batches of 200 to 1000 units for particular variants. The Compute Module 4S is made for industrial customers, those who based its products on the original Compute Module form factor, and can’t or won’t retool for the newer Compute Module 4 form factor. The Compute Module 4S has more RAM and storage options than its predecessors. Providing a cost effective pathway for industrial customers who have to keep their costs in check.(Image credit: Tom’s Hardware)How does the Compute Module 4S compare to the Compute Module 4? Is it missing any features and can we drop it into a product powered by the original Compute Module? Let’s find out.Compute Module 4S SpecificationsSwipe to scroll horizontallySoCBroadcom BCM2711 quad-core 64-bit Cortex-A72 (Arm v8) at 1.5GHzRAM1/2/4/8GB LPDDR4-3200 SDRAMStorage8/16/32GB eMMC (0GB for CM4S Lite)Connectivity1 x USB 2.0 (via carrier board)
46 GPIO pins
1 x SD90 2.0 (CM4S Lite only)WirelessNoneForm FactorDDR2-SODIMM (Not electrically compatible) 67.6 x 31mmThere are a plethora of Compute Module 4S variants to choose from. The lowest spec being the $25 1GB CM4S Lite which has no eMMC storage, requiring a carrier board with a micro SD card slot. The top spec board is the $75 8GB 32GB Compute Module 4S, which is what we have for review. Unlike the Compute Module 4, the Compute Module 4S does not come with onboard Wi-Fi or Bluetooth. Chiefly this is because it would mean that industrial customers would have to recertify its products for radio emissions. Rather than do that, the 4S omits wireless connectivity, ensuring that end users existing and pre-certified solutions are used instead.(Image credit: Tom’s Hardware)Just like the original Compute Modules and the LattePanda Mu, our System on Module (SoM) is pretty useless without a carrier board. Raspberry Pi supplied us with a Compute Module IO Board v3 for this review. It provides a single USB 2.0 port, two camera and two display ports. We also have a rather healthy amount of GPIO pins, of which 46 are general purpose pins, the rest are additional power connections, Ground and some special pins for the cameras. The IO board also comes with a micro SD card slot, and two micro SD ports. One is used for connecting to a computer in order to flash the eMMC. The other is used just for power. We don’t get the same PCIe slot, RTC battery or Ethernet port like with the Compute Module 4 IO board, but as the CM4S is set to replace legacy Compute Module boards that didn’t have that, it isn’t a big deal.With that being said, let’s flash the latest Raspberry Pi OS to the board.Setting Up the Compute Module 4S(Image credit: Tom’s Hardware)As with many Compute Modules, we have to follow a set workflow in order to flash the onboard eMMC. This involves downloading an application and part of a GitHub repository. Setting the USB Boot jumper, run the application and then connect the IO board to your computer, your Compute Module 4S is presented to the machine for an OS installation. We used Raspberry Pi Imager to flash the latest Raspberry Pi OS to the onboard eMMC. It wasn’t fast though. We didn’t time it, but we had plenty of time to make a cup of tea and be back to watch the progress bar. Once done, make a quick config change to enable USB ports, eject the drive, swap the jumper to disable USB boot and power the board up.(Image credit: Tom’s Hardware)You’ve now essentially got a Raspberry Pi 4 with access to all of the GPIO pins via the extended GPIO header. We can use Python to control the GPIO and build projects as if it were a “normal” Raspberry Pi 4. There is no active cooling, nor is it easy to add cooling to the Compute Module 4S while it is in the IO board. You could probably attach some self adhesive heatsinks to the SoC, or add a fan via the 5V GPIO pin.But there is a limitation that we must address, the single USB 2.0 port on the IO board. The Raspberry Pi 4 introduced USB 3 to the Pi, and this and the Compute Module 4 IO board do not have USB 3. If we’re building this into an industrial product, then USB 2 will do, but there will be some edge use cases that need the extra bandwidth that USB 3 affords. If that’s the case, you are out of luck.We have to remember that this is a board destined to replace the Compute Module 1 or 3 that are already integrated into products, and many of those are not home user products. But can we “upgrade” a Compute Module 1 based product with the Compute Module 4S? Let’s find out!Can we use the Compute Module 4S in our products?Image […]

Uncategorized

Raspberry Pi IPO set to raise $689 million

June 11 2024 and in a watershed moment for Raspberry Pi, it has listed on the London Stock Exchange (LSE) as Raspberry Pi Holdings PLC (Public Limited Company) and has the potential to raise $689.6 million (£541.6 million) at the commencement of conditional dealings. Shares started trading at 8am BST today, at an offer price of 280 pence ($3.57) per share. Looking at the LSE recent trades table we can see that the latest purchase of 266 shares was made at 10:49 BST at 354 pence per share ($4.64), just under a dollar over the original offer price. The Global Offer is made up of 45,935,065 ordinary shares that are being sold by the company’s majority shareholder, Raspberry Pi Mid Co Limited, a subsidiary of the Raspberry Pi Foundation. Another 2,125,115 “ordinary shares” are being sold by other shareholders and an additional 11,228,572 ordinary shares will be issued by Raspberry Pi Holdings PLC to raise approximately £31.4 million (approximately $40 million). Commencement of conditional dealings began at 8am BST on June 11, under the ticker of RPi. Investors who applied for ordinary shares in the global offer will be able to deal in shares at this time. Admission to the main market and unconditional dealings will take place on June 14 at 8am BST.Raspberry Pi chose to list on the LSE, bucking a trend where many UK companies chose to list on the U.S. stock market. Raspberry Pi CEO Eben Upton commented on the official LSE announcement letter. “The quality of the interactions during the marketing process has underlined our belief that London has the right calibre and sophistication of investor to support growing, ambitious technology businesses such as Raspberry Pi. The reaction that we have received is a reflection of the world-class team that we have assembled and the strength of the loyal community with whom we have grown.Welcoming new shareholders alongside our existing ones brings with it a great responsibility, and one that we accept willingly, as we continue on our mission to make high-performance, low-cost computing accessible to everyone.”Get Tom’s Hardware’s best news and in-depth reviews, straight to your inbox. […]

Uncategorized

How to work with layers and filters in GIMP

Layers are a clever and easy-to-use way to introduce elements to an image without destroying the source or main image. It works similarly to placing sheets of paper on top of each other. Each piece is a separate element of the composition, but when put together, they become the image you want the world to see.In this how-to we will use GIMP’s layers to take a stock image, remove the subject from the image, and apply effects just to the subject, leaving the background untouched. We’ll learn how to create new layers, manage layers, and apply effects to certain parts of an image using alpha selection.All you’ll need for this how-to is a copy of the free GIMP image editor, and this stock image of a car. Use this as a basis for experimenting with the image and the tools on hand.Working with layers(Image credit: Tom’s Hardware)At the bottom right of the GIMP interface, we find the layers tab. By default there is just one layer, our background. Many users will just paint / work directly to this layer, but if we need additional layers we need to do the following.Creating a new layer1. Click on the + icon at the bottom of the interface.(Image credit: Tom’s Hardware)2. Give the layer a name, fill the layer with transparency, and click OK to create. Give your layers meaningful names, once you are using multiple layers it can quickly become confusing.(Image credit: Tom’s Hardware)3. Ensure that the new layer is active. By default, GIMP will select the new layer as the active layer and any work will be done on that layer. Clicking on a layer will switch to that layer.Get Tom’s Hardware’s best news and in-depth reviews, straight to your inbox.(Image credit: Tom’s Hardware)Another way to create a new layer is to import an image as a new layer.1. Click on File > > Open as Layers.(Image credit: Tom’s Hardware)2. Select your file and click open. This will open the image a new layer, on top of the currently selected layer. The image can be manipulated on the layer, so we can resize / edit the image to match the other layers.Using layers in a compositionOur goal here is to take a stock image from pexels.com, remove the subject from the background and then create a new layer to superimpose the subject over itself. There we will create a border effect to make the subject stand out.Removing the subject from the image can be done via a number of online services such as remove.bg, or you can use Python to remove the background.We’ve chosen a stock car image and run the image through remove.bg to cut the car from the background. Now we have two images. The original image, and just the car.1. Open GIMP and click on File > > Open as Layers.2. Open the original image and it will be set as the active layer.(Image credit: Tom’s Hardware)3. Repeat the File > > Open as Layers process and open the cut-out image of the car. The cut-out image will be loaded on top of the original image, and because they are the same subject, we cannot see a big difference.(Image credit: Tom’s Hardware)4. Click on the eye icon next to each layer to set its visibility. Click on the bottom layer to remove the background, leaving just the subject on the top layer. Set both layers as visible before moving on to the next step.(Image credit: Tom’s Hardware)5. Double click on the layer name and edit to reflect what that layer refers to. It is important to name layers so that we can quickly understand the many layers that make the composition.(Image credit: Tom’s Hardware)6. Select the subject layer, and right click on the subject layer (the top layer in this example) and select Alpha to Selection. This will automatically select the subject as it is the only thing on that layer.(Image credit: Tom’s Hardware)7. From the main menu click Select > > Border.(Image credit: Tom’s Hardware)8. Set the border to 10 pixels around the subject, and click OK. The subject now has a 10px border around its perimeter.(Image credit: Tom’s Hardware)9. Create a new layer and call it “border”. Click OK to activate. The active layer will now shift to “border”, and it is on top of all other layers.(Image credit: Tom’s Hardware)10. Move the “border” layer so that it is between the subject and the background.(Image credit: Tom’s Hardware)11. Click on the Bucket icon, and hold the button down. Select the Gradient tool from the drop down.(Image credit: Tom’s Hardware)12. Select the saturation fill from the menu.(Image credit: Tom’s Hardware)13. Ensuring that the border layer is selected, click and drag across the image to create a colorful gradient border around the subject. Press Enter to set the gradient. The start and end points can be tweaked to change the color effect.(Image credit: Tom’s Hardware)14, Select the subject layer and click on the Mode drop down just above the layers. Here we can alter the properties of a layer so that the contents of the layer can be used for artistic effects.(Image credit: Tom’s Hardware)15. Try out a few different modes to see what suits your vision of the composition. For this step there is no right or wrong, it is an artistic choice. Multiply makes the image darker, Screen bright, and exclusion produces a negative image.Image […]

Uncategorized

Raspberry Pi AI Kit Review: Brainiac

AI (Artificial Intelligence) is everywhere these days and even the humble Raspberry Pi 5 (and previous generations) are not immune to AI. Google’s Coral TPU (Tensor Processing Unit) has been around for some time now, but now there’s a $70 Raspberry Pi AI Kit, which uses an additional processor to bring more AI processing power to everyone’s favorite single-board computer. Based around the Hailo-8L entry level NPU (Neural Processing Unit) AI accelerator and the Raspberry Pi M.2 HAT+, this kit provides all the hardware that a Raspberry Pi 5 would need to beef up its AI powers. We got our hands on an early unit, on which this review is based. But before we begin, let’s caveat the review. At the time of writing the software was behind the rather excellent hardware and while we were able to run the preview demos, we were unable to write any code of our own. As such this means that we will revisit this kit once the software is ready and this may mean revising the score.With that in mind, let’s start testing!Raspberry Pi AI Kit Specifications(Image credit: Tom’s Hardware)Swipe to scroll horizontallyM.2 InterfaceRaspberry Pi M.2 HAT+AI AcceleratorHailo-8L “Entry-Level AI Accelerator in a 2242 packageTOPS (Tera-Operations Per Second)13Supported AI FrameworksTensorFlow, TensorFlow Lite, Keras, PyTorch & ONNXHost Architecture Supportx86 and ArmInstallation and Setup(Image credit: Tom’s Hardware)Using the Raspberry Pi M.2 HAT+ board is a smart move. It already exists, and it has the connection and bandwidth for the Hailo-8L board. It also means that it comes with plastic spacers, and a GPIO passthrough, which were a bone of contention for us in our previous review. Installation of the Hailo-8L is as easy as installing an M.2 NVMe SSD, but it does introduce one issue. Unless you have a board with dual M.2 connectors, you can only run the AI or an NVMe SSD. Not both. Fear not, we shall be testing a dual M.2 board later, and spoilers, it works if you put the effort in!The camera mount is from Freycraft and printed using our Elegoo Neptune 3 Pro. (Image credit: Tom’s Hardware)Our review kit came with the unit, Raspberry Pi Camera Module 3 and a micro SD card which had the latest Raspberry Pi OS release written to it. It also contained a directory of models and applications based around the rpicam application suite. For those who don’t know, the rpicam suite replaced the raspicam and raspitill terminal commands that are used to interact with the camera. Our assumption is that a Raspberry Pi OS update will enable these features. At the time of writing there are no PiCamera v2 based means to use the Hailo-8L and we confirmed this with Raspberry Pi. We spent the best part of two days working in Python virtualenv’s to figure out a means to do it, but alas we drew a blank.Could we run the models without the Hailo-8L card? We asked Raspberry Pi CEO Eben Upton and he confirmed that there is “currently no way to run these models without the board.” Upton did reveal that “integrated support for running unaccelerated TensorFlow models as a post-process is in the rpicam roadmap”, so in the future we should be able to run our own models.Using Raspberry Pi AI KitImage […]

Uncategorized

Qualcomm: Snapdragon coming to “all PC form factors,” including desktops.

Qualcomm CEO Christiano Amon has taken the stage at Computex Taipei and detailed the company’s AI advances with Snapdragon X Elite and CoPilot+, under the slogan off “The PC Reborn”. But the big news is that Qualcomm chips are coming to the desktop.Amon described the Snapdragon X Elite as “one of the most significant transitions in Windows” stating that he “personally believed it was as significant as the transition to Windows 95 [in the 1990s]” Claiming that the “the next generation PCs are here, now.”(Image credit: Tom’s Hardware)Snapdragon chips were typically used in mobile and low-power devices, but during the presentation, Amon announced that the Snapdragon X and CoPilot+ are “coming to all PC form factors.” Qualcomm are working with partners, Acer, Asus, Dell, HP, Lenovo, Microsoft and Samsung, across the myriad of form factors to produce a large range of Snapdragon powered PCs. Many of these devices will be available from June 18.Microsoft Chairman and CEO Satya Nadella appears in a video segment to talk about Microsoft’s partnership with Qualcomm, specifically AI. Right now there are 20+ Copilot+ PCs available with Snapdragon CPUs that feature NPUs that offer up to 45 TOPS.Image […]

Uncategorized

LattePanda Mu Review: Faster than Raspberry Pi 5, But Much More Expensive

The Raspberry Pi 5, released in late 2023 has cemented itself as the most powerful Raspberry Pi, but what if you want power but not in a traditional SBC (Single Board Computer) layout?Thoughts will turn to Compute Modules, and at the time of writing the Raspberry Pi Compute Module 4 is the natural option, but we do take a performance hit. Sure there are alternatives from Pine and Radxa, but the latest to hit the market is from LattePanda, makers of the Sigma and 3 Delta, and its entry is the $139 LattePanda Mu which brings the Intel N100 CPU to the Compute form factor where it is a solid price, but around double the price of an 8GB Pi 5, before you add a carrier board.Based upon Intel’s Alder Lake, the N100 is an interesting mix of low power and impressive performance. The chip is often being used in low-cost and low power mini PCs, often retailing for under $150. Where the LattePanda Mu differs is in the compute module design which requires a carrier board in order to use it.(Image credit: Tom’s Hardware)You can purchase one of the reference carrier boards from DFRobot, the “Lite” Primer Carrier or the Full-Function Evaluation Carrier or you can make your own using the provided reference material and a PCB design application such as KiCAD, Altium, or Fusion 360.Is the LattePanda Mu any good? Can we use it as a desktop PC? Does it game? Can we use the GPIO? Let’s find out! But first, let’s compare the Mu to the two other LattePanda boards that we have reviewed. The Sigma and the 3 Delta.LattePanda Mu versus Sigma versus Delta SpecificationsSwipe to scroll horizontallyHeader Cell – Column 0 LattePanda MuLattePanda SigmaLattePanda 3 DeltaProcessorIntel N100 Quad-Core, Four-Thread up to 3.4 GHzIntel Core i5-1340PIntel Celeron N5105Row 1 – Cell 1 Performance core max: 4.6 GHz2.0-2.9GHz Quad-Core, Four-ThreadRow 2 – Cell 1 Efficient core max: 3.4 GHzRow 2 – Cell 3 GPUIntel UHD Graphics up to 750 MHzIntel Iris Xe Graphics 80 Execution Units, up to 1.45 GHzIntel UHD Graphics (Frequency: 450 – 800 MHz)RAM8GB LPDDR5 4800 MHz16 / 32GB, Dual-Channel LPDDR5 6400MHzLPDDR4 8GB 2933MHzStorage64GB eMMCM.2 NVMe/SATA SSD (sold separately) 500GB WD Black SN770 for review64GB eMMCConnectivityVia carrier boardM.2 Wireless Module (sold separately) Wi-Fi 6E AX211 for reviewWi-Fi 6 @ 2.4/5 GHzRow 7 – Cell 1 Row 7 – Cell 2 Bluetooth 5.2Row 8 – Cell 1 Row 8 – Cell 2 Gigabit EthernetGPIO4 x UART6 x Analog Inputs12 x Analog Inputs4 x I2CUp to 13x Digital Input/Output (7 PWM)Up to 23x Digital Input/Output (7 PWM)64 GPIOs via carrier board1 x UART1 x UARTRow 12 – Cell 1 1 x I2C1 x I2CRow 13 – Cell 1 1 x SPI1 x SPIRow 14 – Cell 1 1 x Audio Connector1 x Audio ConnectorRow 15 – Cell 1 1 x USB 2.0 Header1 x 4-Pin RS232 HeaderRow 16 – Cell 1 1 x CPU Fan1 x Fan Port (4 Pin 1.25mm PWM 5VRow 17 – Cell 1 1 x SATA Power1 x 4-Pin Header (Power and Switch)Row 18 – Cell 1 1 x COM (RS232/485)Row 18 – Cell 3 Row 19 – Cell 1 1 x 4-Pin Header (Power and Switch)Row 19 – Cell 3 Row 20 – Cell 1 eDP ConnectorRow 20 – Cell 3 Row 21 – Cell 1 Touch Panel ConnectorRow 21 – Cell 3 Row 22 – Cell 1 RTC BatteryRow 22 – Cell 3 USBVia carrier board2 x USB3.2 Gen2 Type-A (10Gbps)2 x USB 3.2 Gen1 Type AUp to 8 x USB 22 x Thunderbolt™ 4 Type-C (40Gbps)1 x USB 3.2 Gen2 Type A
1 x USB Type C, Supports PD, DP, USB 2.04 x USB 3.22 x USB2.0 Type-A (480Mbps)1 x USB 2.0 Pin HeaderDisplayVia carrier boardHDMI 2.1, up to 4096 x 2304 @ 60Hz1 x HDMI 2.0b: Up to 4096×2160 @ 60Hz HDR Support1 x eDP 1.4DP 1.4a via USB Type-C, up to 7680 x 4320 @ 60Hz1 x DP1.4: Up to 4096×2160 @ 60Hz HDR Support3 x HDMI 2 / DisplayPort 1.4eDP 1.4b, up to 4096 x 2304 @ 120Hz1 x eDP : Extendable Touch Displays up to 1920*1080Expansion SlotsVaries depending on carrier board1 x M.2 M Key: PCIe 3.0 x 41 x M.2 M Key, PCIe 3.0 2x, Supports NVMe SSDRow 30 – Cell 1 1 x M.2 M Key: PCIe 4.0 x 41 x M.2 B Key, PCIe 3.0 1x, Supports USB 2.0, USB 3.0, SATA, SIMRow 31 – Cell 1 1 x M.2 B Key: SATA III/PCIe 3.0 x 1, USB2.0, USB3.0, SIMRow 31 – Cell 3 Row 32 – Cell 1 1 x M.2 E Key: PCIe 3.0 x 1, USB2.0, Intel CNVioRow 32 – Cell 3 Row 33 – Cell 1 1 x Micro SIM Card SlotRow 33 – Cell 3 Co-ProcessorN/AAtmel ATMEGA32U4 (Arduino LeonardoAtmel ATMEGA32U4 (Arduino LeonardoRow 35 – Cell 1 ))PowerRow 36 – Cell 1 DC Jack Input: 19V DCDC Jack Input: 12V DCRow 37 – Cell 1 Type-C Input: 20V DCType-C Input: 12/15V DCDimensions60 x 69.6mm146 x 102 x 25mm125 x 78 x 16mmPrice$139 for module$579 (16GB) $629 (32GB)From $239$190 with Primer Carrier and Active Cooler. $240 with Full Evaluation CarrierRow 40 – Cell 2 Row 40 – Cell 3 Design of the LattePanda MuThe LattePanda Mu is a tiny module measuring just 60 x 69.6mm. But it is useless without a carrier board. We’ve got both of the official carrier boards for our tests, but let’s first take a look at the module. Using a SODIMM interface is a smart move, the connectors are cost-effective and proven to work. The Raspberry Pi Compute Modules used them until the Compute Module 4 switched to a custom pinout. The LattePanda Mu module is dominated by the Intel N100 Alder Lake CPU. There is 8GB of onboard LPDDR5 and a 64GB eMMC module. A decent combination of features for an Intel SBC, and LattePanda claims that the Mu is more powerful than the Raspberry Pi 5, something that we will later test.Image […]

Uncategorized

How to build an automated NASA wallpaper switcher

The stars above us have always been a source of wonder and knowledge. From a child I learnt about the Apollo programme which put humans on the moon, and managed to get Apollo 13 safely back to Earth. Space is beautiful, full of nebulae, stars, planets and other astronomical objects, and luckily for us NASA has a free resource that we can use to see daily images taken from radio telescopes, observatories and satellites. In this how-to, we will learn how to use NASA’s free service to change our Windows 10 and 11 wallpaper to the latest astronomical image.Getting a NASA API KeyNASA makes it really easy to use its resources, but to get the most from its resources we need an API key. API (Application Programming Interface) is a means for applications to use the resources provided by a company (or in our case, NASA.) The interface permits two or more machines to talk to one another and to make requests. In this project we will use the NASA API to get the daily Astronomy Picture of the Day (APOD.)1. In a browser go to NASA’s API page and sign up for an API key. It is free and enables access to thousands of NASA resources.(Image credit: Tom’s Hardware)2. Check your email for the API key, keep this handy but do not share it with anyone.Setting up the Python environmentWe need to install two extra Python libraries (modules) to provide extra features in our project code. The first is Win11Toast a popup notification tool for Windows 10 and 11 that we are using to show messages of success / failure when the app runs. The second library is pyinstaller, an exceptionally handy tool that packages Python projects and its dependencies into a single executable file. Previously we have used Auto Py to Exe, a GUI for this app to make executable files, but in this how-to, we just need a simple executable.Before you start this how to, ensure that you have Python installed on your Windows 10 / 11 computer. We have a how to covering this.Get Tom’s Hardware’s best news and in-depth reviews, straight to your inbox.1. Open a Command Prompt. Press Windows key and type CMD and press Enter.2. Use pip, the Python packaging tool to install the two libraries.pip install win11toast
pip install pyinstallerWriting the project codeWith the API key and Python environment setup, now we can start writing the project code. We’re using the Thonny Python editor, but you can use any editor. Notepad++ and Microsoft’s VS Code are both great alternatives.1. In a blank project page start by importing three libraries. Requests is used to request data from the NASA API. Ctypes enable our code to make changes to Windows DLLs. Win11toast, which imports just “toast” is used to make pop up notifications in Windows.import requests
import ctypes
from win11toast import toast2. Create an object called “url” and in there store the API request URL along with your API key. Your key should go after the = in the URL.url = “https://api.nasa.gov/planetary/apod?api_key=YOUR_API_KEY_HERE”3. Create an object, “r” and use that to store the returned data from making a request to the NASA API.r = requests.get(url)4. Create the first conditional test to check if there is data in the object “r”. If that is true, then a series of tasks are performed.if r:5. Create an object called “APOD” and use it to store the JSON data for the APOD. Essentially this will give us the URL for the APOD image of the day which is stored as a value in the JSON object. APOD = r.json()[‘url’]6. Create an object called “pic” and using the APOD object request the image from the NASA API. This downloads the file into memory, it is not yet written as a file to disk.pic = requests.get(APOD, allow_redirects=True)7. Add an additional if conditional test to check that the APOD update is a JPEG image and not a video. If there is no image for that day, a notification pops up in Windows to tell the user. NASA updates the APOD everyday, but some days the update is a YouTube video. Without this error handling test, the code will fail when a video update is provided. if “jpg” not in APOD:
toast(“No image for today, must be a YouTube video 📺”) 8. Using an else condition, open a file called APOD.jpg in your user account’s Pictures directory and then write the image stored in memory to the file. Change the user account name to match your own, ours is lespo. Remember to include double back-slashes (\) in the file path, otherwise Python will think we want to use escape characters. else:
open(“C:\Users\lespo\Pictures\APOD.jpg”, “wb”).write(pic.content)9. Using ctypes, update the DLL to set the wallpaper to the APOD.jpg file. Remember to use the full file path. ctypes.windll.user32.SystemParametersInfoW(20, 0, “C:\Users\lespo\Pictures\APOD.jpg”, 3)10. Using toast, create a pop up message to tell the user that the image has been changed. We can use emojis in our notifications, we sourced ours from Emojipedia. toast(“Enjoy the latest image from NASA 🚀”)11. Returning to the original if..else conditional statement (which handles if the APOD is an image or video), add an else condition and use it to print “Error” to the Python REPL.else:
print(“Error”)12. Save the code as apod.py and then test that it works in the editor. In Thonny we clicked Run and saw the notifications popup, along with the image being changed.I can’t see the notifications!When running the code, the Python REPL produced an error, “win11toast (,)” which didn’t mean a lot. Checking the Win11Toast Issues in Github we found that this error was produced when we chose to suppress popup notifications. The fix was easy.1. Go to Settings and select System.(Image credit: Tom’s Hardware)2. Select Notifications and actions and then turn on notifications. The granularity of which notifications you receive can be tweaked using the checkboxes.(Image credit: Tom’s Hardware)3. Close the application window and retry your code to ensure that the notifications appear.Creating an executable fileWith the project code tested and working our attention turns to creating an executable file. By doing this we can drop the file on any Windows computer and it will just work. How it does this is by using pyinstaller which takes a snapshot of the Python environment in which the application will run. It then creates its own environment inside of the executable file. So all of the libraries that we used (requests, ctypes, win11toast etc) are packaged into the file meaning that we do not have to install them on the target system. It also means that we can drop the executable into the startup directory, but more on that later.1. Open a Command Prompt. Press Windows key and type CMD and press Enter.2. Navigate to the directory where the project code is.3. Run pyinstaller with the -F argument and pass the name of the project file. Using -F will compact all of the Python environment into one file.pyinstaller -F apod.py(Image credit: Tom’s Hardware)4. Wait for the process to finish then close the Command Prompt.(Image credit: Tom’s Hardware)5. Open the directory where the project code was saved and look for and open the “dist” directory. Inside is the executable file.6. Double click on the file to test. The notification will popup to state that the image has been changed / it is a YouTube video. This proves that the file works.Automatically changing the wallpaperIt isn’t too difficult to double-click on the executable to change our wallpaper, but what if Windows could do it for us? We’re going to move the executable file to the startup directory, where it will be run each time Windows starts.1. Press Windows and R to open the run dialog and type shell:startup.(Image credit: Tom’s Hardware)2. Copy the apod.exe file from the dist folder, into the Start-up folder. This will set the application to run when Windows starts.(Image credit: Tom’s Hardware)3. Close the window and reboot Windows and watch for the notification in the panel.(Image credit: Tom’s Hardware)More Tutorials […]