So I saw the Circuit Digest tutorial on making a function generator with the Arduino Nano, but I am trying to modify it where it has an A and B pulse (out of phase, both square wave). I have some ideas but am not sure if it would work so I would appreciate any suggestions.
Robot-sumo bouts can be a great way to pit your automation skills against others. Participating normally means a lot of hard work to get your bot functioning properly, and likely a fair amount of travel to meet your opponents. SurrogateTV, however, has a new alternative with their SumoBots Battle Royale game that allows you to fight actual robots over the Internet.
Their customized “pushers” from JSumo are made out of steel sheets, powered by an Arduino, a motor shield and a lithium-ion battery — all housed inside a 3D-printed enclosure — and tracked by a computer vision system. Four motors are used for movement and a servo on the top flips them right side up as needed.
The ring isn’t just a traditional circle either, but an area that is always dynamically changing. SurrogateTV decided on an interactive floor that drops as the game goes on, voted upon by the chat/viewers. A quick overview of the build process and how it works can be seen in the video below.
Portal 2 is one of RobotsWithRyan’s favorite games, so he — of course — decided to build his own personality core character from this title.
His Space Core is 3D-printed from a model that he found online, scaled up by 300% to fit the electronics inside, including an Arduino Uno and eight servo actuators. As with many projects, there was barely enough room to fit the electrical components, but as seen in the video below, it looks delightfully glitchy.
The Arduino controls the servo-driven eye movement and is linked to a smartphone over Bluetooth for remote operation. A second phone is integrated into the moving eye section, which displays an image of the personality core’s iris, and plays game quotes through its music app.
When it comes to giving your projects wireless capabilities, the 433Mhz ASK Hybrid Transmitter and receiver is a common choice among engineers, developers, and hobbyists because of Its Low Price, easy to use libraries and its community support. We have also built few projects like RF controlled Home Automation and Wireless Doorbell using this 433MHz RF module.
YouTuber MrTeslonian was asked if he could create an automatic fishing pole for someone with a serious disability. While this would seem like a daunting task, he was able to build one using a spring-loaded mechanism, a number of motors, and an Arduino board.
His portable device takes commands over WiFi, allowing control from a smartphone or computer. When it receives the signal, the pole is automatically pulled back and tension is added to a large spring via a winch. This tension is then released with a servo-actuated system, and a small gearmotor reels the bait back in… hopefully with a fish attached!
Nerf guns can be a lot of fun, but what if you want your launcher to shoot 10 projectiles simultaneously? Is so, then look no further than James Bruton’s custom blaster.
His 3D-printed project employs two BLDC-powered rollers to accelerate cartridges of 10 darts each, and allows for quick reloading via a clever manual locking mechanism. The device holds five magazines, for total of 50 darts.
When loaded, an arcade-style button fires the darts, pushing them into the rollers at the same time using a couple of servo motors. Everything is powered by a six-cell 24V LiPo battery, while an Arduino Mega is used for control, and to track which cartridge is in place, enabling the operator to concentrate on getting shots downrange!
This post is from Edoardo Tenani, DevOps Engineer at Arduino.
In this blog, we’re going to answer: How does one store sensitive data in source code (in this case, Ansible playbooks) securely and in a way that the secrets can be easily shared with the rest of the team?
Ansible is an open source community project sponsored by Red Hat, it’s the simplest way to automate IT. Ansible is the only automation language that can be used across entire IT teams from systems and network administrators to developers and managers.
At Arduino, we started using Ansible around the beginning of 2018 and since then, most of our infrastructure has been provisioned via Ansible playbooks: from the frontend servers hosting our websites and applications (such as Create Web Editor), to the MQTT broker at the heart of Arduino IoT Cloud.
As soon as we started adopting it, we faced one of the most common security problems in software: How does one store sensitive data in source code (in this case, Ansible playbooks) securely and in a way that the secrets can be easily shared with the rest of the team?
Ansible configuration system comes to the rescue here with its built-in mechanism for handling secrets called Ansible Vault, but unfortunately it had some shortcomings for our use case.
The main disadvantage is that Vault is tied to Ansible system itself: In order to use it, you have to install the whole Ansible stack. We preferred a more self-contained solution, possibly compiled in a single binary to ease portability (i.e. inside Docker containers).
The second blocker is the “single passphrase” Ansible Vault relies on: a shared password to decrypt the entire vault. This solution is very handy and simple to use for personal projects or when the team is small, but as we are constantly growing as a company we preferred to rely on a more robust and scalable encryption strategy. Having the ability to encrypt different secrets with different keys, while being able to revoke access to specific users or machines at any time was crucial to us.
The first solution we identified has been Hashicorp Vault, a backend service purposely created for storing secrets and sensitive data with advanced encryption policies and access management capabilities. In our case, as the team was still growing, the operational cost of maintaining our Vault cluster was considered too high (deploying a High Available service that acts as a single point of failure for your operations is something we want to handle properly and with due care).
Around that same time, while reading industry’s best practices and looking for something that could help us managing secrets in source code, we came across mozilla/sops, a simple command line tool that allows strings and files to be encrypted using a combination of AWS KMS keys, GCP KMS keys or GPG keys.
Sops seemed to have all the requirements we were looking for to replace Ansible Vault:
- A single binary, thanks to the porting from Python to Golang that Mozilla recently did.
- Able to encrypt and decrypt both entire files and single values.
- Allow us to use identities coming from AWS KMS, identities that we already used for our web services and where our operations team had access credentials.
- A fallback to GPG keys to mitigate the AWS lock-in, allowing us to decrypt our secrets even in the case of AWS KMS disruption.
- The same low operational cost.
Sops’ adoption was a great success: The security team was happy and the implementation straightforward, with just one problem. When we tried to use Sops in Ansible configuration system, we immediately noticed what a pain it was to encrypt variables.
We tried to encrypt/decrypt single values using a helper script to properly pass them as extra variables to ansible-playbook. It almost worked, but developers and operations were not satisfied: It led to errors during development and deployments and overall felt clumsy and difficult.
Next we tried to encrypt/decrypt entire files. The helper script was still needed, but the overall complexity decreased. The main downside was that we needed to decrypt all the files prior to running ansible-playbook because Ansible system didn’t have any clue about what was going on: those were basically plain ansible var_files. It was an improvement, but still lacking the smooth developer experience we wanted.
As Ansible configuration system already supports encrypted vars and storing entire files in Ansible Vault, the obvious choice was to identify how to replicate the behaviour using Sops as the encryption/decryption engine.
Following an idea behind a feature request first opened upstream in the Ansible repository back in 2018 (Integration with Mozilla SOPS for encrypted vars), we developed a lookup plugin and a vars plugin that seamlessly integrate Ansible configuration system and Sops.
No more helper scripts needed
Just ensure Sops executable is installed, correct credentials are in place (ie. AWS credentials or GPG private key) and run ansible-playbook as you normally would.
We believe contributing to a tool we use and love is fundamental in following the Arduino philosophy of spreading the love for open source.
You can test it out right away by downloading the plugin files from the PRs and adding them in your local Ansible controller installation. You will then be able to use both plugins from your playbooks. Documentation is available, as for all Ansible plugins, in the code itself at the beginning of the file; search for DOCUMENTATION if you missed it.
If you can leave a comment or a GitHub reaction on the PR, that would be really helpful to expedite the review process.
What to do from now on?
If you’re a developer you can have a look at Sops’ issues list and contribute back to the project!
The Sops team is constantly adding new features (like a new command for publishing encrypted secrets in latest 3.4.0 release, or Azure Key Vault support) but surely there are interesting issues to tackle. For example, the Kubernetes Secret integration being discussed in issue 401 or the –verify command discussed in issue 437.
Made with <3 by the Arduino operations team!
Ansible® is a registered trademark of Red Hat, Inc. in the United States and other countries.
[Amirreza Nasiri] sends in this cool USB keystroke injector.
The device consists of an Arduino, a Bluetooth module, and an SD card. When it’s plugged into the target computer the device loads the selected payload from the SD card, compromising the system. Then it does its unique trick which is to switch the injector over to Bluetooth mode. Now the attacker has much more control, albeit local, over the system.
While we would never even be tempted to plug this device into a real computer, we like some of the additional features, like how an added dip switch can be used to select from up to eight different payloads depending on the required attack. The addition of a photo diode is also interesting, and makes us dream of all sorts of impractical movie hacker scenarios. [Amirreza] says it’s to trigger when the person leaves the room and turns the lights off.
[Amirreza] has all the code and design files on the GitHub. There are also a few payload examples, which should be fun to hack on. After all, one of life’s pleasures is to find new ways to mess with your friends.
Maker Jeremy S. Cook has been building Theo Jansen-style walkers for literally years, and after several iterations has come up with what he calls the “ClearCrawler.”
This little guy stands at just over 15 inches tall — including its comparatively large clear cylindrical head — and travels around via a pair of motors that move four legs on either side like tank treads.
For control, Cook is using an Arduino Nano onboard, along with a motor driver, plus an Uno and joystick shield as the remote unit. Communication between the two is accomplished by a pair of nRF24L01+ radio modules.
Code for the project is available on GitHub, and the build is split up into an electronics and mechanical section in the videos below.