Posts | Comments

Planet Arduino

Archive for the ‘BLE’ Category

Considering their hardware specification, graphing calculators surely feel like an anachronism in 2019. There are plenty of apps and other software available for that nowadays, and despite all preaching by our teachers, we actually do carry calculators with us every day. On the other hand, never underestimate the power of muscle memory when using physical knobs and buttons instead of touch screen or mouse input. [epostkastl] combined the best of both worlds and turned his broken HP-48 into a Bluetooth LE keyboard to get the real feel with its emulated counterpart.

Initially implemented as USB device, [epostkastl] opted for a wireless version this time, and connected an nRF52 based Adafruit Feather board to the HP-48’s conveniently exposed button matrix pins. For the software emulation side, he uses the Emu48, an open source HP calculator emulator for Windows and Android. The great thing about Emu84 is that it supports fully customizable mappings of regular keyboard events to the emulated buttons, so you can easily map, say, the cosine button to the [C] key. The rest is straight forward: scanning the button matrix detects button presses, maps them to a key event, and sends it as a BLE HID event to the receiving side running Emu84.

As this turns [epostkastl]’s HP-48 essentially into a regular wireless keyboard in a compact package — albeit with a layout that outshines every QWERTY vs Dvorak debate. It can of course also find alternative use cases, for examples as media center remote control, or a shortcut keyboard. After all, we’ve seen the latter one built as stomp boxes and from finger training devices before, so why not a calculator?

This post is from Martino Facchin, who is in charge of the firmware development team at Arduino. Hopefully this is the first of a series of posts describing the inner workings of what we do.

The new, shiny and tiny Nano 33 BLE and Nano 33 BLE Sense are on their way to becoming a serious threat to any hacker’s summer vacation. (I’d recommend spending a couple of days at the lake or beach anyway despite the board’s awesomeness!)

Quoting Sir Isaac Newton (who walked the same streets of Cambridge, UK that the Arm engineers use to get to work everyday), starting from scratch is not always a clever idea. Tens of thousands of man-hours have been spent since the beginning of computer science to reinvent the wheel, sometimes with great results, other times just bringing more fragmentation and confusion.

Since we didn’t have an official Arduino core for the Nordic nRF52840 Cortex-M4 microcontroller, which the Nano 33 BLE and Nano BLE Sense are based upon, we took a look at the various alternatives:

  • Using Nordic softdevice infrastructure
  • Writing a core from scratch
  • Using Mbed OS as a foundation

Option one looks juicy but clashes with a cornerstone of Arduino: open-source software. In fact, softdevice’s closed source approach limits the user’s freedom.

Option two would take a lot of burden on our shoulders for a single board, making the core not very reusable.

So, we went to option three: basing the core on Mbed OS foundation, sharing its drivers and libraries.

As many of you may know, Mbed is a fully preemptive RTOS (real-time operating system), meaning you can run multiple “programs” (more specifically, threads) at the same time, much like what happens in your notebook or smartphone. At Arduino, we have been looking for an RTOS to use on our more advanced boards for a long time but we never found something we liked until we started working with the Mbed OS. Programming an RTOS is usually quite complicated (every university grade course on operating systems will be full of frightening terms like ‘mutex’ and ‘starvation’), but you don’t have to worry if you just want to use it as an Arduino; setup() and loop() are in their usual place, and nobody will mess with your program while it’s running.

But if you want to do MORE, all Mbed infrastructure is there, hidden under the mbed:: namespace. As a side effect of reusing its drivers, we can now support every Mbed board in Arduino with minimal to no effort. Plus, the structure of the core allows any Mbed developer to use Arduino functions and libraries, simply by prepending arduino:: before the actual function call.

Mbed also supports tickless mode; in this way, every time you write delay() in your code, the board will try to go in low power modes, knowing exactly when to wake up for the next scheduled event (or any external interrupt). We are able to achieve an impressive 4.5uA of lower consumption while running a plain old Blink on the Nano 33 BLE (a minimal hardware modification is needed to obtain this value but another blog post is coming). As for Bluetooth support, you can start creating your BLE devices today using the wonderful https://github.com/arduino-libraries/ArduinoBLE but we support plain Cordio APIs as well, in case you need features not yet available in Arduino BLE.

And of course, it’s all open-source! 

If you just want to make awesome projects with its plethora of onboard sensors, fire up your Arduino IDE, open the board manager and search for Nano 33 BLE; one click and you are ready to go! 

If you want to hack the core, add another Mbed board or merely take a look, your next entry point is the GitHub repo. Don’t be shy if you find a bug or have a suggestion; we love our community, and will try to be as responsive as possible. 

As has been made abundantly clear by the advertising department of essentially every consumer electronics manufacturer on the planet: everything is improved by the addition of sensors and a smartphone companion app. Doesn’t matter if it’s your thermostat or your toilet, you absolutely must know at all times that it’s operating at peak efficiency. But why stop at household gadgets? What better to induct into the Internet of Things than 600 year old samurai weaponry?

Introducing the eKatana by [Carlos Justiniano]: by adding a microcontroller and accelerometer to the handle of a practice sword, it provides data on the motion of the blade as it’s swung. When accuracy and precision counts in competitive Katana exhibitions, a sword that can give you real time feedback on your performance could be a valuable training aid.

The eKatana is powered by an Adafruit Feather 32u4 Bluefruit LE and LSM9DS0 accelerometer module along with a tiny 110 mAh LiPo battery. Bundled together, it makes for a small and unobtrusive package at the base of the sword’s handle. [Carlos] mentions a 3D printed enclosure of some type would be a logical future improvement, though a practice sword that has a hollow handle to hold the electronics is probably the most ideal solution.

A real-time output of sword rotation, pitch, and heading is sent out by the Adafruit Feather over BLE for analysis by a companion smartphone application. For now he just has a running output of the raw data, but [Carlos] envisions a fully realized application that could provide the user with motions to perform and give feedback on their form.

Incidentally this isn’t the first motion-detecting sword we’ve ever covered, but we think this particular incarnation of the concept might have more practical applications.

taz-inter

Digital and craft maker lab Tazas recently worked with a group of master students on an interactive book/prototype to reflect on how gestures like swiping have become as natural as shaking hands. Digital Gestures is a metaphor of the human body’s physiological senses, which identifies 10 actions inherent to our daily interactions with technology: drag and drop, spread and squeeze, swipe, double tap, scroll, zoom, rotate, draw, press, press and hold.

The project was brought to life using four basic electronic components and some digital fabrication: a web server (VPS), an AtHeart Blend Micro Bluetooth module linking objects to the elements contained on the server, an iPod Touch connected viewing medium and conductive ink. All the elements are arranged on a laser cut wooden base, while an iPod digitally decrypts the printed* pages filed on its left.

To play, the viewer places an illustrated page on the support and touches a specific key point beforehand determined as conductive. When touching, the viewer has the ability to interact on the screen in order to understand the illustrated use. This experimental reflection raises many questions about the conditioning that man receives from the machine by accepting these precepts without altering their function. What will become of our so-called ‘daily’ gestures? Will our close to real behavioral experiment be upset? Answers that require that ‘use must be done.’

You can see how it magically works below!

 

Hardware hackers are always looking for devices to tear apart and scavenge from. It’s hardly a secret that purchasing components individually is significantly more expensive than the minuscule cost per unit that goes along with mass manufacturing. Bluetooth devices are no exception. Sure, they’re not exactly a luxury purchase anymore, but they’re still not dirt cheap either.

Luckily for [Troy Denton], it seems dollar stores have started carrying a Bluetooth camera shutter for just a few dollars (it was three bucks, perhaps the dollar store actually means divisible-by). The device is designed to pair with a smart phone, and has two buttons allowing you to control the camera from afar. The fact that it works at all at that price is a small miracle, but the device also has potential for hacking that adds to its appeal.

Inside is a Bluetooth chips with integrated ARM controller. It connects to an EEPROM via I2C. Using an oscilloscope, an Arduino, and a Bus Pirate, [Troy] has so far succeeded in dumping and deciphering the EEPROM and was successful in renaming the device. He has high hopes that he’ll be able to discover something juicy from his preliminary explorations of the USART on the Bluetooth chip.

Ultimately he plans to document his quest to rewrite which keys the device’s buttons emulate. Once that’s accomplished, this dollar store find will have a lot of potential for cheap Bluetooth control. If you’re a reverse engineering veteran we’d love to hear some suggestions of low hanging fruit for him to explore. If you’re eager to learn more about about what you can do with Bluetooth, check out our awesome BLE primer.


Filed under: Arduino Hacks, wireless hacks

Compare-Arduino-101Bluetooth Low-Energy (BLE) is a great bluetooth solution for your electronics product even if energy use isn't a factor.

Read more on MAKE

The post How to Develop a Sellable Bluetooth Low-Energy (BLE) Product appeared first on Make: DIY Projects and Ideas for Makers.

101

A few weeks ago, an announcement was posted on the Arduino Forum mentioning new improvements on the software side of the Arduino/Genuino 101. With this release, the board–which was developed in collaboration with Intel–is reaching its full potential, with not only better code generation but unlocking useful features to make your sketches even more interactive as well.

You can easily upgrade the core using the Arduino IDE’s Board Manager (pictured below), while Arduino Create users will be automatically updated, so no action is required–the cool thing about the cloud!

Core-package

In more detail:

  • The GCC compiler has been updated to support hardware extensions to the ARC EM core in the Intel® Curie™ module. This provides significant improvements in floating point operations, bit shifting, and other operations to enhance Sketch performance.
  • The Arduino/Genuino 101 platform offers 2MB Flash storage onboard, which is now enabled for user sketches.
  • An experimental driver has been implemented to enable the I2S interface via the CurieI2S library. Connecting the I2S bus to an external DAC (digital to analog converter) allows users to play high-quality music (HiFi).

Other improvements and bug fixes:

  • Motion Sensor: Several sample sketches, like MotionDetection, have been implemented to demonstrate the application of the IMU data
  • Bluetooth LE: Several new examples for BLE peripheral library added
  • IMU: Correct motion detection setting implemented
  • Library CurieTimerOne APIs are now compatible with the TimerOne library

For comprehensive release notes refer to the Intel Open Source Technology Center on GitHub.

We’ve seen a few remote controlled turret builds in the past, but this one from [Noel Geren] is pretty neat: it shoots water and uses Bluetooth Low Energy (BLE) for control. Check it out in action in the video below.

[Noel] used the guts of a Nerf Thunderstrike water gun for the firing mechanism, combined with a 3D-printed enclosure and a servo that rotates the turret top. The pump from the gun is connected to a simple relay that replaces the trigger. Both the relay and the servo are connected to an RFDuino with a servo shield, which is programmed to respond to simple commands to rotate and fire.

It’s a nice junk build, and [Noel] has released all of the files for download if you want to build your own. It would make a nice weekend build or a project to do with the kids.


Filed under: Arduino Hacks

In the dark ages, you had to use a key to lock and unlock your car doors. Just about every car now has a remote control on the key that lets you unlock or lock with the push of a button. But many modern cars don’t even need that. They sense the key on your person and usually use a button to do the lock or unlock function. That button does nothing if the key isn’t nearby.

[Pierre Charlier] wanted that easy locking and unlocking, so he refitted his car with a Keyduino to allow entry with an NFC ring. What results is a very cool fistbump which convinces your car to unlock the door.

Keyduinio is [Pierre’s] NFC-enabled project, but you can also use a more conventional Arduino with an NFC and relay shield. The demo also works with a smartphone if you’re not one for wearing an NFC ring. Going this round, he even shows how to make it work with Bluetooth Low Energy (BLE).

In the video below, you can see how he removed the car’s internal lock switch and modified the wire harness to take the connection to the Arduino. He’s also included all the code. About the only tricky part is doing the actual wiring in your car and finding a suitable source of power. That varies from car to car, so it isn’t easy to give specific instructions.

Opening doors of one kind or another is a popular project theme. While [Pierre’s] project might open the door on a coupe, we’ve seen another project that works on a coop.


Filed under: Arduino Hacks, car hacks, wireless hacks

[Brian] managed to resist the draw of the Left Shark costume and went as a cyberpunk for Halloween this year. Among his costume’s props was a small, one-handed chording keyboard that fit easily into one of his pockets. Now he could have just glued a couple of key caps to something small and called it a day. Instead, [Brian] made a fully functional and modular chording keyboard that can communicate over Bluetooth or USB.

What is a chording keyboard, you ask? Instead of entering keystrokes one at a time, a much smaller set of keys are mashed in meaningful combinations called chords. Once you know what you’re doing, it’s much faster than a standard keyboard. If you’ve ever seen a court reporter hammering away on a tiny machine, you have seen a chording keyboard in action. Our own [Elliott Williams] covered the topic in detail over the summer.

[Brian]’s keyboard has seven keys, one for each finger and three for the thumb. Any key found on a standard 104-key can be made by pressing a combination of keys with the fingers in relation to the center, near, or far thumb keys. We’re pretty impressed that he was able to stuff all of that hardware in such a small 3D-printed package. It’s based on an Arduino micro and uses an Adafruit EZ Key for Bluetooth communication with a phone or tablet.

The ultimate plan is to make this into a wrist-mounted chording keyboard that extends or retracts with the flick of your wrist. [Brian] has made some progress on this, having developed and printed the mechanism. But as you can see in the video after the break, adding the keyboard to it is just too much for the hobby servos he chose to move. Still, if he can dial it in this is going to be awesome!

The keyboard also has an ADXL335 accelerometer breakout, which means it can function as a tilt mouse. Neither the Bluetooth nor the tilt mouse functionality are imperative, though—if you want to make your own and leave either of these out, there is no need to alter the code.


Filed under: Arduino Hacks


  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook