Tag Archives: Uncategorized

How to build a Desktop Word Clock (in a morning)

via WyoLum Blog

Cost: $100, Time: 2-4 Hours, Difficulty: Easy, Tools: Laser Cutter, 3D printer

Thanks to the modern maker tool suite, it is getting easier and easier to make top notch builds very quickly.  In the process of revamping ClockTHREEjr, we decided to prototype and test the matrix driving circuitry.  A few short years ago (in the ClockTHREEjr era) addressable LEDs were not a thing yet.  A large array needed to be displayed one column (or row) at a time before moving to the next column (or row).  This makes the circuit and programming logic very complex.  Smart addressable LEDs (like the APA102) with a microchip in each peicepart make all of that complexity obsolete.  With only 2 pins from a microcontroller, these pixels can be commanded to set and hold any 24-bit color as long as power is maintained.  These frees up the processor to do other things like poll user interfaces and read subreddits.

So the task is to redesign the ClockTHREEjr board using these modern smart leds.  ClockTHREEjr  (C3jr) has 8 rows and 16 columns of dumb leds which can upgraded to smart pixels using 2 ULTiM8x8 (no solder) led panels.  What was originally just a proof of concept turned out to be so cool we decided to show it off and make the design public.

Once you have purchased the Bill of Materials (BoM), you can make this clock in a morning.  Once you get your 3D printer started on the baffle (.5-3 hours depending on printer and settings) you can move over to your laser cutter to make the front and back of the clock (1 hour).  Give yourself 30 minutes for final assembly and 30 minutes to program even though neither takes that much time.  That means you can make this project 4 hours with plenty of margin.  This project is a slam dunk.

Steps:

  1. Print baffle
  2. Lasercut faceplate
  3. Program Feather Huzzah
  4. Assemble

1. Print baffle

2. Lasercut faceplate

3. Program Feather Huzzah

Pre-requests: Install Arduino, Feather Huzzah dev env, adafruit IO account.

Download the code from github.  You can either download the zip file or clone the repository.  The stable code for this clock is stored in DesKlok_IO.  Remember this was originally just a prototype for a larger KlokTHREEjr.  The _IO in the name refers to the fact that we are using the Adafruit_IO library for controlling the clock.  This means we can leave of a tedious physical interface.

4. Assemble

 

 

The Raspberry Pi PiServer tool

via Raspberry Pi

As Simon mentioned in his recent blog post about Raspbian Stretch, we have developed a new piece of software called PiServer. Use this tool to easily set up a network of client Raspberry Pis connected to a single x86-based server via Ethernet. With PiServer, you don’t need SD cards, you can control all clients via the server, and you can add and configure user accounts — it’s ideal for the classroom, your home, or an industrial setting.

PiServer diagram

Client? Server?

Before I go into more detail, let me quickly explain some terms.

  • Server — the server is the computer that provides the file system, boot files, and password authentication to the client(s)
  • Client — a client is a computer that retrieves boot files from the server over the network, and then uses a file system the server has shared. More than one client can connect to a server, but all clients use the same file system.
  • User – a user is a user name/password combination that allows someone to log into a client to access the file system on the server. Any user can log into any client with their credentials, and will always see the same server and share the same file system. Users do not have sudo capability on a client, meaning they cannot make significant changes to the file system and software.

I see no SD cards

Last year we described how the Raspberry Pi 3 Model B can be booted without an SD card over an Ethernet network from another computer (the server). This is called network booting or PXE (pronounced ‘pixie’) booting.

Why would you want to do this?

  • A client computer (the Raspberry Pi) doesn’t need any permanent storage (an SD card) to boot.
  • You can network a large number of clients to one server, and all clients are exactly the same. If you log into one of the clients, you will see the same file system as if you logged into any other client.
  • The server can be run on an x86 system, which means you get to take advantage of the performance, network, and disk speed on the server.

Sounds great, right? Of course, for the less technical, creating such a network is very difficult. For example, there’s setting up all the required DHCP and TFTP servers, and making sure they behave nicely with the rest of the network. If you get this wrong, you can break your entire network.

PiServer to the rescue

To make network booting easy, I thought it would be nice to develop an application which did everything for you. Let me introduce: PiServer!

PiServer has the following functionalities:

  • It automatically detects Raspberry Pis trying to network boot, so you don’t have to work out their Ethernet addresses.
  • It sets up a DHCP server — the thing inside the router that gives all network devices an IP address — either in proxy mode or in full IP mode. No matter the mode, the DHCP server will only reply to the Raspberry Pis you have specified, which is important for network safety.
  • It creates user names and passwords for the server. This is great for a classroom full of Pis: just set up all the users beforehand, and everyone gets to log in with their passwords and keep all their work in a central place. Moreover, users cannot change the software, so educators have control over which programs their learners can use.
  • It uses a slightly altered Raspbian build which allows separation of temporary spaces, doesn’t have the default ‘pi’ user, and has LDAP enabled for log-in.

What can I do with PiServer?

Serve a whole classroom of Pis

In a classroom, PiServer allows all files for lessons or projects to be stored on a central x86-based computer. Each user can have their own account, and any files they create are also stored on the server. Moreover, the networked Pis doesn’t need to be connected to the internet. The teacher has centralised control over all Pis, and all Pis are user-agnostic, meaning there’s no need to match a person with a computer or an SD card.

Build a home server

PiServer could be used in the home to serve file systems for all Raspberry Pis around the house — either a single common Raspbian file system for all Pis or a different operating system for each. Hopefully, our extensive OS suppliers will provide suitable build files in future.

Use it as a controller for networked Pis

In an industrial scenario, it is possible to use PiServer to develop a network of Raspberry Pis (maybe even using Power over Ethernet (PoE)) such that the control software for each Pi is stored remotely on a server. This enables easy remote control and provisioning of the Pis from a central repository.

How to use PiServer

The client machines

So that you can use a Pi as a client, you need to enable network booting on it. Power it up using an SD card with a Raspbian Lite image, and open a terminal window. Type in

echo program_usb_boot_mode=1 | sudo tee -a /boot/config.txt

and press Return. This adds the line program_usb_boot_mode=1 to the end of the config.txt file in /boot. Now power the Pi down and remove the SD card. The next time you connect the Pi to a power source, you will be able to network boot it.

The server machine

As a server, you will need an x86 computer on which you can install x86 Debian Stretch. Refer to Simon’s blog post for additional information on this. It is possible to use a Raspberry Pi to serve to the client Pis, but the file system will be slower, especially at boot time.

Make sure your server has a good amount of disk space available for the file system — in general, we recommend at least 16Gb SD cards for Raspberry Pis. The whole client file system is stored locally on the server, so the disk space requirement is fairly significant.

Next, start PiServer by clicking on the start icon and then clicking Preferences > PiServer. This will open a graphical user interface — the wizard — that will walk you through setting up your network. Skip the introduction screen, and you should see a screen looking like this:

PiServer GUI screenshot

If you’ve enabled network booting on the client Pis and they are connected to a power source, their MAC addresses will automatically appear in the table shown above. When you have added all your Pis, click Next.

PiServer GUI screenshot

On the Add users screen, you can set up users on your server. These are pairs of user names and passwords that will be valid for logging into the client Raspberry Pis. Don’t worry, you can add more users at any point. Click Next again when you’re done.

PiServer GUI screenshot

The Add software screen allows you to select the operating system you want to run on the attached Pis. (You’ll have the option to assign an operating system to each client individually in the setting after the wizard has finished its job.) There are some automatically populated operating systems, such as Raspbian and Raspbian Lite. Hopefully, we’ll add more in due course. You can also provide your own operating system from a local file, or install it from a URL. For further information about how these operating system images are created, have a look at the scripts in /var/lib/piserver/scripts.

Once you’re done, click Next again. The wizard will then install the necessary components and the operating systems you’ve chosen. This will take a little time, so grab a coffee (or decaffeinated drink of your choice).

When the installation process is finished, PiServer is up and running — all you need to do is reboot the Pis to get them to run from the server.

Shooting troubles

If you have trouble getting clients connected to your network, there are a fewthings you can do to debug:

  1. If some clients are connecting but others are not, check whether you’ve enabled the network booting mode on the Pis that give you issues. To do that, plug an Ethernet cable into the Pi (with the SD card removed) — the LEDs on the Pi and connector should turn on. If that doesn’t happen, you’ll need to follow the instructions above to boot the Pi and edit its /boot/config.txt file.
  2. If you can’t connect to any clients, check whether your network is suitable: format an SD card, and copy bootcode.bin from /boot on a standard Raspbian image onto it. Plug the card into a client Pi, and check whether it appears as a new MAC address in the PiServer GUI. If it does, then the problem is a known issue, and you can head to our forums to ask for advice about it (the network booting code has a couple of problems which we’re already aware of). For a temporary fix, you can clone the SD card on which bootcode.bin is stored for all your clients.

If neither of these things fix your problem, our forums are the place to find help — there’s a host of people there who’ve got PiServer working. If you’re sure you have identified a problem that hasn’t been addressed on the forums, or if you have a request for a functionality, then please add it to the GitHub issues.

The post The Raspberry Pi PiServer tool appeared first on Raspberry Pi.

On Willful Ignorance [or Age of Unreason]

via WyoLum Blog

[We take a departure from open hardware to discuss a dangerous trend in society]

I’m confused.  How in the world did we get here?  The war on science, reason, and logic has not seen this much success since the dark ages.  Four in ten Americans reject evolution and many politicians deny climate change.  The relentless fusillade on expertise has taken its toll and it is now open season on observation itself.   Now we are told the truth doesn’t even matter.

oh… and by the way…. the Earth is flat (like your head).  I know this goes against what you’ve been taught, but let’s dig a little deeper and suppress the initial reaction to reject the claim immediately.  We can approach this scientifically and make observations that will either support or reject the claim.

In case you missed it, the Flat Earth Society suggests that the Earth is a flat disk with the North pole as its center and an ice wall near Antarctica preventing us from falling off.  According to this theory, the sun is about 35 miles across and is suspended 3000 miles above the disk, completing one revolution per day around a circle centered 3000 miles above the North Pole.  The seasons are caused by the changing radius of the circular path of the sun.

The image below shows in green, the path the sun makes over the course of a month.  An orange shows my point of observation outside Washington D.C.  The grey band shows the location of the sun over the course of a year.

We now have a scientific test we can apply to the Flat Earth conjecture.  I’ve computed the elevation angle of the sun from my vantage point over the course of a year.  Elevation angle is the angle of an object made by the horizon, the observer, and the object in the vertical plane.  Below, the elevation angle is plotted vs azimuth.

They used to say “the sun never sets on the British Empire” well according to the Flat Earth society, the sun never sets on D.C. either!  According to this model, the sun should NEVER go beneath the horizon.  This contradicts the fact that we can observe the sun elevation angle reaching zero (when the sun sets). In fact, I should never witness the sun dip below 10 degrees elevation.  Indeed there is no place on earth where the sun sets according to the Flat Earth Society.  Can you please make an observation for me?  If you’ve seen a sunset in your life, can you please state the time and location in the comments?  Its citizen science in action.

A cult is an organization that asks you to reject your own observations and adhere to another explanation on faith.  The Flat Earth Society is only one example.  Crowd size is anorther. Denying Russian collusion is another.  The question is why? and why now?  As with any cult, there is power in deception.  After the truth is cast out, a cult leader can fill the void with whatever he wants.

Science, not indignation, is the cure for ignorance: hypothesis, observe, conclude.

 

PlayerUnknown’s Battlegrounds on a Game Boy?!

via Raspberry Pi

My evenings spent watching the Polygon Awful Squad play PlayerUnknown’s Battlegrounds for hours on end have made me mildly obsessed with the record-breaking Steam game.

PlayerUnknown's Battlegrounds Raspberry Pi

So when Michael Darby’s latest PUBG-inspired Game Boy build appeared in my notifications last week, I squealed with excitement and quickly sent the link to my team…while drinking a cocktail by a pool in Turkey ☀️🍹

PUBG ON A GAMEBOY

https://314reactor.com/ https://www.hackster.io/314reactor https://twitter.com/the_mikey_d

PlayerUnknown’s Battlegrounds

For those unfamiliar with the game: PlayerUnknown’s Battlegrounds, or PUBG for short, is a Battle-Royale-style multiplayer online video game in which individuals or teams fight to the death on an island map. As players collect weapons, ammo, and transport, their ‘safe zone’ shrinks, forcing a final face-off until only one character remains.

The game has been an astounding success on Steam, the digital distribution platform which brings PUBG to the masses. It records daily player counts of over a million!

PlayerUnknown's Battlegrounds Raspberry Pi

Yeah, I’d say one or two people seem to enjoy it!

PUBG on a Game Boy?!

As it’s a fairly complex game, let’s get this out of the way right now: no, Michael is not running the entire game on a Nintendo Game Boy. That would be magic silly impossible. Instead, he’s streaming the game from his home PC to a Raspberry Pi Zero W fitted within the hacked handheld console.

Michael removed the excess plastic inside an old Game Boy Color shell to make space for a Zero W, LiPo battery, and TFT screen. He then soldered the necessary buttons to GPIO pins, and wrote a Python script to control them.

PlayerUnknown's Battlegrounds Raspberry Pi

The maker battleground

The full script can be found here, along with a more detailed tutorial for the build.

In order to stream PUBG to the Zero W, Michael uses the open-source NVIDIA steaming service Moonlight. He set his PC’s screen resolution to 800×600 and its frame rate to 30, so that streaming the game to the TFT screen works perfectly, albeit with no sound.

PlayerUnknown's Battlegrounds Raspberry Pi

The end result is a rather impressive build that has confused YouTube commenters since he uploaded footage for it last week. The video has more than 60000 views to date, so it appears we’re not the only ones impressed with Michael’s make.

314reactor

If you’re a regular reader of our blog, you may recognise Michael’s name from his recent Nerf blaster mod. And fans of Raspberry Pi may also have seen his Pi-powered Windows 98 wristwatch earlier in the year. He blogs at 314reactor, where you can read more about his digital making projects.

Windows 98 Wrist watch Raspberry Pi PlayerUnknown's Battlegrounds

Player Two has entered the game

Now it’s your turn. Have you used a Raspberry Pi to create a gaming system? I’m not just talking arcades and RetroPie here. We want to see everything, from Pi-powered board games to tech on the football field.

Share your builds in the comments below and while you’re at it, what game would you like to stream to a handheld device?

The post PlayerUnknown’s Battlegrounds on a Game Boy?! appeared first on Raspberry Pi.

SKELLY the Skeleton Robot

via Arduino Blog

While it might seem like a long time away to most people, if you’re looking to make an amazing automated display for Halloween, it’s time to start planning! One idea would be an automated skeleton robot like SKELLY.

This particular robot was built using an Arduino Mega, a Cytron PS2 Shield, a modified sensor shield, and a wireless PS2 controller. SKELLY is equipped with a total of eight servos: six for bending his shoulders, elbows and wrists, one for running his mouth, and another for turning his head. There is also a pair of LEDs for eyes, and a small motor in his head with a counterweight that allows him to shake.

SKELLY is programmed using the Visuino visual programming environment. As seen in the videos below, the robot–which is the author’s first–is quite nimble, waving and moving along with an automatic piano!

3D print your own Rubik’s Cube Solver

via Raspberry Pi

Why use logic and your hands to solve a Rubik’s Cube, when you could 3D print your own Rubik’s Cube Solver and thus avoid overexerting your fingers and brain cells? Here to help you with this is Otvinta‘s new robotic make:

Fully 3D-Printed Rubik’s Cube Solving Robot

This 3D-printed Raspberry PI-powered Rubik’s Cube solving robot has everything any serious robot does — arms, servos, gears, vision, artificial intelligence and a task to complete. If you want to introduce robotics to your kids or your students, this is the perfect machine for it. This robot is fully 3D-printable.

Rubik’s Cubes

As Liz has said before, we have a lot of Rubik’s cubes here at Pi Towers. In fact, let me just…hold on…I’ll be right back.

Okay, these are all the ones I found on Gordon’s desk, and I’m 99% sure there are more in his drawers.

Raspberry Pi Rubik's Cube Solver

And that’s just Gordon. Given that there’s a multitude of other Pi Towers staff members who are also obsessed with the little twisty cube of wonder, you could use what you find in our office to restock an entire toy shop for the pre-Christmas rush!

So yeah, we like Rubik’s Cubes.

The 3D-Printable Rubik’s Cube Solver

Aside from the obvious electronic elements, Otvinta’s Rubik’s Cube Solving Robot is completely 3D-printable. While it may take a whopping 70 hours of print time and a whole spool of filament to make your solving robot a reality, we’ve seen far more time-consuming prints with a lot less purpose than this.

(If you’ve clicked the link above, I’d just like to point out that, while that build might be 3D printing overkill, I want one anyway.)

Rubik's Cube Solver

After 3D printing all the necessary parts of your Rubik’s Cube Solving Robot, you’ll need to run the Windows 10 IoT Core on your Raspberry Pi. Once connected to your network, you can select the Pi from the IoT Dashboard on your main PC and install the RubiksCubeRobot app.

Raspberry Pi Rubik's Cube Solver

Then simply configure the robot via the app, and you’re good to go!

You might not necessarily need a Raspberry Pi to create this build, since you could simply run the app on your main PC. However, using a Pi will make your project more manageable and less bulky.

You can find all the details of how to make your own Rubik’s Cube Solving Robot on Otvinta’s website, so do make sure to head over there if you want to learn more.

All the robots!

This isn’t the first Raspberry Pi-powered Rubik’s Cube out there, and it surely won’t be the last. There’s this one by Francesco Georg using LEGO Mindstorms; this one was originally shared on Reddit; Liz wrote about this one; and there’s one more which I can’t seem to find but I swear exists, and it looks like the Eye of Sauron! Ten House Points to whoever shares it with me in the comments below.

The post 3D print your own Rubik’s Cube Solver appeared first on Raspberry Pi.