Author Archives: Andi

Let Raspberry Pi do your Calling and Answering

In certain projects or experiments where you are monitoring an entity such as temperature or pressure, it is impractical to be physically present for any length of time. However, it may be important for you to know when the measured entity breaches a high or a low set point. For example, if something is not working out as it should – say temperature or humidity too high – you may wish to start or control another activity rather quickly to compensate.

In such cases, the handy, credit card sized single board computer, the Raspberry Pi or RBPi can be of immense help. RBPi can call, sms or inform you via web-interface, in case things are tending to go beyond their limits. Although sms and web-interface work equally well, for cases that are more important a call gets more attention than the others do.

When receiving a call, you expect the other party to speak up. Programs such as eSpeak and Festival endow an RBPi with capabilities of synthesized speech. Both tools allow you to cache speech as wav-files. eSpeak is more adjustable and creates wav files a bit faster than Festival; however, their performance is similar. You can select any one of the programs depending on your preference and install it with a ‘sudo apt-get install …’ command.

For making calls, it is simpler to use a sip/voip based system. Here again, you can select between two capable tools – PJSIP or Linphone. Of the two, Linphone is difficult to include into an application script. PJSIP has a command line interface and provides a powerful api that you can use within your own sip-based project. However, you will need to download and compile it for Raspbian.

After compilation, you may find some echo or jitter when making normal calls to another phone. To get rid of these, you will need two other tools – sipcall and sipserv. Sipcall will help you to make a completely automated call to a specified number using a text to speech converter. That makes it very useful when using via bash-scripts. For example, you can ask it to check the state of a sensor and place a call if a critical threshold is reached. On the other hand, Sipserv is more like a service, where you make a call to query information and/or execute a command via phone. Of course, your sip-provider must support inbound DTMF. Both tools are available here, but you will need the pkg-config-package tool to compile them.

The original author has also created simple bash-scripts that can check the actual load and place a call if the load is found too high. For stopping/starting the service available, he has provided a simple configuration and a bash-script that you can use for Sipserv. Readme files and general info is available for the user. For more details, refer here.

Although the tools are rather ‘proof of concept’ than a final product, they work well. The author permits changes and extensions to his original work and invites suggestions on any improvements, more especially for the current sound problems of echo and jitter.

Superconduction at nanowire levels

Superconduction At Nanowire Levels

Passing electricity through any conductor generates heat. Even the best conductor such as a copper wire offers some resistance to electrons passing through it. As electrons move through the ordinary conductor, they occasionally collide with its atoms and this releases energy as heat.

Cooling ordinary materials to very low temperatures changes the scenario drastically. Cold temperature dampens the Brownian motion of their atoms, allowing electrons to zip past with very few collisions. Therefore, very low voltage difference is required to pump electrons through ordinary materials when they are at cryogenic temperatures.

For example, Niobium Nitride, which is the base for several superconducting circuits, has a relatively high operating temperature of 16 degree Kelvin. This is equivalent to -257 degree Celsius and is achieved with liquid Helium. Within a superconducting chip, the liquid Helium circulates through a system of pipes in an insulating housing, much like Freon circulating inside a household refrigerator.

Although superconducting materials offer huge benefits, cooling to extremely low temperatures is very expensive and many researchers are working across the globe to make the process commercially viable. Researchers at MIT claim to have developed a circuit design that can help to make simple superconducting devices with extremely low electrical resistance much cheaper.

According to the researchers at MIT, chips made using the technology would make them 50-100 times more energy efficient compared to today’s chips. Although their working would not top the speed of current chips, recovering results of calculations that Josephson junctions perform would be made much simpler.

The current research at MIT has the cryotron as its basis. Cryotron or the Cryotron Computer, an experimental computing circuit, was developed by the MIT professor Dudely Buck in the 1950s. Although, the cryotron attracted a great deal of interest at the time as the possible future for a new generation of computers, the Integrated Circuit eclipsed it.

Current research at MIT in this field has resulted in the development of the nanocryotron. Researchers have tested superconducting circuits made with nanocryotron in light detectors and have been successful in registering the arrival of a single photon or light particle. They also wired several of these circuits together to produce the half-adder, a fundamental component of digital arithmetic. This square-centimeter chip has the nTron adder and performs computations using the new superconducting circuit.

A system using liquid-Helium for cooling is sure to increase the power consumption of a superconducting chip. However, given that this increase starts at about one percent of the energy required for a conventional chip, the overall savings can potentially be enormous. For example, making single-photon detectors would become very cost-effective – this being an essential component in any information system exploiting the computational speedup promised by quantum computing.

The nanocryotron or, as the researchers prefer to call it, the nTron, is an individual layer of Niobium Nitrate on an insulator. The device gets its name from its pattern that looks much like a capital ‘T’. The junction of the base and the crossbar tapers to a narrow region, forming a switch to control the current flow through the crossbar by injecting a current in the base.

What is eco-friendly electronics?

Imagine an easy and non-polluting way of disposing of your old electronic gadgets that have outlived their usefulness. E-waste or waste from electronic products is a ticking time bomb that threatens to engulf us. For instance, about 85% of e-waste is discarded as landfills, releasing several toxins into the environment. Although only 2% of America’s trash in landfills is e-waste, it equals 70% of the overall toxic waste, with lead as the major element. Every year, worldwide, disposal of e-waste is nearing 50 million metric tons of which, only 12.5% is currently recycled.

To combat the menace of e-waste, SINTEF, a research organization in Scandinavia, is making progress in developing electronic components that can dissolve in water. The components are printed on silicon wafer and they contain extremely thin circuits, which are only a few nanometers thick. Being made of a combination of silicon, magnesium or silicon with magnesium additives, these circuits are water-soluble and disappear after a few hours.

Final working products are usually protected with a coating that prevents external fluids from reaching the inside of the packaging and degrading the circuit. Therefore, the requirement is that the circuit be designed to complete its job before that can happen. For example, a circuit package designed to operate in seawater and fitted with sensors to detect oil spills may have a film that remains in place for the few weeks when detection is due.

At present, SINTEF is not manufacturing final products, but only demo products that demonstrate how electronic components can have properties that make them degradable. As their project enters its second year, SINTEF is searching for an active industry partner and additional funding to carry their research further. However, they are confident eco-friendly electronics has a future of its own.

Apart from eco-friendly electronics, researchers are also working on electronic devices that are biodegradable. Such a device, when implanted in the body for different uses such as pain management or for combating infection, will dissolve over time after its objective is met. While several countries, especially America, has made colossal contributions towards resolving the issue of waste and building relations to medical applications, SINTEF s trying to find alternative approaches to this problem.

Other researchers are also working along similar lines. For example, the world’s only ‘biodegradable’ drone, built with biodegradable material, starts to break down upon impact in the event of a crash – eventually leaving no evidence of its existence. This drone was designed and built by a team of students from the Spelman college, Brown University and Stanford University, in collaboration with Ecovative Design for IGEM, a New York based biomaterials company.

Such an aerial vehicle, unmanned and made from biological materials, is ideal for venturing into sensitive areas, while leaving no trace of its existence in the event of a crash. Scientific expeditions with such drones will not contaminate the environment. It will be easy for covert military drones to conceal the fact that they have been spying.

In fact, the biological prototype drone may use a plant-root-like material such as mycelium. This is a part of a fungus, often used as a lightweight and sustainable material for packaging wine or for use in surfboard cores. Several other biological materials are being developed for making all parts of the drone biodegradable – including the sensors.

Integrate your Raspberry Pi to the Hackable Roomba

You do not find many robots in the consumer arena, unless it is the AVA 500, the telepresence robot from iRobot. Users can simply specify where they want AVA 500 to be and it automatically navigates to the destination without requiring any human intervention. It has advanced mapping technology combined with a real-time view of the environment. Another simpler consumer robot is Roomba, from the same company, iRobot.

iRobot has turned the highly successful Roomba 600 robot into a hackable Create 2 version. This is very useful for K12 and college level STEM education, because Create 2 can be programmed via a laptop, an onboard Arduino or a Raspberry Pi (RBPi). Although both AVA 500 and Roomba are Linux based, unlike the more sophisticated AVA 500, Roomba 600 was a modest, vacuuming robot, based on a simple Motorola HC12 micro-controller.

Create 2, the modified Roomba 600, is not meant for vacuuming, as iRobot has eliminated all the internal vacuuming equipment. That leaves Create 2 with plenty of space inside for adding custom hardware components. You can easily put in an RBPi there, using pre-programmed routines to control the bot. Other alternate methods of direct control are tethering Create 2 to a laptop via the serial Mini-Din port using a serial-to-USB cable.

Based on the original Roomba 600, Create 2 is a round, 3.58-Kilo robot, measuring 340 mm in diameter and 92 mm in height. The market has several models of the Roomba robot, but Roomba 600 is the cheapest. iRobot offers 3D printing files that help you in adding electronics and peripherals to Create 2. They provide instructions for replacing the bin with a cargo tray that you can 3D print. They also supply a faceplate drill template.

Rechargeable batteries on the Create 2 allow a three-hour run before needing a recharge. As with the original Roomba 600, Create 2 will also return to its charging dock when it is time for a recharge. Sensors, such as IR transceivers on Create 2 enable it to escape cul-de-sacs and move around obstacles.

To interface with the Motorola MCU and related components, Create 2 comes with a programming environment, the Roomba OI or Open Interface. With the Roomba OI, a user can program the behavior, sounds, movements and read its sensors. The OI provides several commands for the sensors, cleaning, song, actuator and mode settings.

RBPi Model A is the most suitable for controlling Create 2 as you can run it off the serial connector of the robot. Power requirements for the Model A and its camera are just within the headroom of the on-board thermal resettable fuse of Create 2. It is also possible to work with RBPi models A+, B or B+; however, you will have to power them independently.

The RBPi will need an SD card of at least 4GB, pre-installed with the Raspbian Linux. Other hardware that you will require are an RBPi camera board, a switching DCDC converter, a micro-USB male cable, a 5V to 3.3V level converter and a USB to Wi-Fi module. iRobot provides several programming samples and starter projects with varying levels of difficulty.

New Generation BLDC Motor Drives

The introduction of Li-ion batteries and brushless DC or BLDC motors has opened up a new market for battery powered motor driven products. You will find brushless motors powered with rechargeable batteries being used in products such as uninterruptible power supplies, wheelchairs, e-bikes and other small electric vehicles and in small tools such as leaf blowers, chainsaws and drills. To take advantage of the integration of BLDC motors with Li-ion batteries for providing power requires updated MOSFET bridge drivers.

Although batteries such as lead-acid, Ni-MH and Ni-Cd are more popular, Li-ion batteries with their high energy density offer significant advantages over other battery technologies. Li-ion batteries typically offer two to three times the energy density as compared to what other conventional battery technologies currently offer. With higher energy density, users can make do with smaller battery packs that lead to lighter and more compact hand-held tools. Wheelchairs and e-bikes can operate for longer times without any increase in the physical size of their original battery pack.

However, there are some disadvantages associated with the high energy density of Li-ion batteries. It is customary to think of batteries as voltage sources, but for Li-ion batteries, this is not the case. Li-ion batteries have a significantly high internal inductance that generates considerable ripples on its voltage as a consequence of driving the motor with PWM or Pulse Width Modulation methods. Although this can be easily offset by adding sufficient capacitance across the MOSFET bridge, there can be enclosure limitations leading to prohibitive cost increases.

Low capacitance on the MOSFET bridge can lead to significant voltage ripples. For example, the ripple voltages found on a typical 18-20V Li-ion battery under heavy load can range from 5V at minimum to 36V at the maximum. Additionally, the battery voltage is likely to fall to an abysmally low value when the motor is overloaded to a stall or locked rotor condition. Therefore, presence of a controller is necessary to decide on how to react to such extreme operating conditions.

Compared to conventional brushed DC motors, BLDC motors offer significant advantages. For example, brushes limit the speed of a brushed DC motor, but the BLDC motor has no such limitations; the design of its rotor decides its maximum operating speed or RPM. Most applications do not require the full speed of the motor and a transmission with a gear reduction is used to bring down the motor speed to the desired RPM. A BLDC motor can rotate at significantly higher RPMs compared to the speed of a brushed motor. Therefore, the required torque at the output of the device can be achieved easily with a smaller BLDC motor and a corresponding transmission gear ratio.

As BLDC motors do not have brushes, they do not produce EMI as the brushed motors do. Additionally, the absence of brushes leads to lower maintenance and an increase in the efficiency of BLDC motors. On average, a BLDC motor is 1.5 times or more efficient than a brushed motor is. However, the drive electronics adds complexity to the application of a BLDC motor, requiring ICs to reduce component count, real estate and BOM costs, especially where space is a constraint.

Wireless charging – what’s new?

The convenience of having your mobile charged wirelessly, while you sip coffee at the corner shop, is now fast approaching reality with passing time. Wireless charging is now entering a phase where manufacturers are turning up the power so that it is possible to charge wirelessly handheld medical equipment, tablets and larger phablets. For example, a new set of receivers and transmitters from Freescale can now handle up to 15W. These chips use the Qi technology that the Wireless Power Consortium has defined.

According to the MCU group director of global marketing and business development at Freescale, the latest mobile products are offering a broader range of features. As compared to earlier, current products have bigger form factors and improved functionalities, necessitating larger batteries. Accordingly, wireless charging systems must also upgrade to accommodate the larger power requirements and faster recharge speeds.

Freescale’s transmitter chips – WCT1012/WCT1111 – are available as standard and premium versions. Together with the receiver chip – WPR1516 – Freescale now offers wireless charging system for mobile and other devices with bigger batteries. Compared to their 5W predecessors, the new chipsets from Freescale can recharge more than three times faster.

The typical 5W charging system produces one ampere of current, allowing charging to be completed in one hour. The new chips handle 15W and theoretically, should cut down the charging time by a third because of improved power handling capacity.

Modern smart devices such as the Samsung Galaxy Tab and the Apple iPad have power ratings reaching 12W, but existing wireless charging devices cannot handle this power. According to IHS Analysts, fast charging capabilities are expected to grow rapidly in and after 2015. The new 15W specifications will accommodate such devices allowing them to be charged faster.

Manufacturer’s feel that a 15W wireless charger has more value since it is able to charge simultaneously many devices belonging to different power classes in multiple scenarios. Compare this to a charger that targets charging only media tablets. For example, the new wireless chargers will charge not only your media tablets consuming 12-15W, but also manage the charging of your phone at standard or fast charging and a wearable device consuming 0.5 to 3W or more. That certainly makes it a valuable product to own.

Inside the Freescale transmitter is a 100MHz DSC core that consumes less than 30mA loop current. DSP functionality within the core helps to reduce the system losses and improve its capability for charging. Additional programmability built into the premium transmitter provides access to flash memory on the chip. Extra IOs on the transmitter device allows building of applications such as chargers that support multiple devices at the same time. On the other hand, the Freescale receiver has capabilities to support buck output and LDO power topologies.

The Freescale chips work on magnetic induction principles using closely coupled coils. The chips comply with two standards – Qi and another specification from the Power Matters Association. However, the Freescale devices are not compatible to the resonant standard using loosely coupled coils that the Alliance for Wireless Power follows. According to Freescale, inductive charging is healthy for the ecosystem.

Fun projects for the Raspberry Pi Model A+ – Part 1

Fun Projects for the Raspberry Pi Model A+ – Part 1

The latest release of the Raspberry Pi, the RBPi Model A+ is not only smaller, it is cheaper as well. That makes it an ideal device for taking a plunge into coding and for trying out new projects. Here are some fun projects that you may find interesting.

A Garden with Digits

With a Pibrella add-on board, your RBPi can run several small motors to create a digital garden. Define the garden to your exact specifications with ornate flowers that you could make out of card or cloth. Add artificial bees and make then spin when you press a button. You could also arrange a relaxing setup of plants and have some soothing music going on at the same time. For details, look here.

Juggle With Illuminated Pins

This is for those who like to juggle things. While juggling, let your RBPi help you out with the routing using some extra LED lights. You will need a Pibrella board and some custom Python code to make the project work independently. Although this may be a niche case, the project is worth undertaking. Lauren Egts has a blog post.

Console for Retro Games

Arcade cabinets of yesteryears still draw a lot of interest. Both young and old enjoy retro games and your RBPi can work as the basis for such a console. With RetroPie, you can simply load emulator software. All you need is an SD card and some USB peripherals. This simple but fun project can be completed within one hour. Life hacker has a guide.

Control Your Pottery Kiln via Wi-Fi

Those using kilns for firing up potteries will find this project useful. RBPi provides remote capabilities for automatic temperature control using a thermocouple and a stepper motor. Temperature stability is maintained with a system of closed-loop feedback. Visit the RBPi blog for code and photos.

Watch Birds with Infrared

Although this is a project for birdwatchers, others can adapt it for their own requirements. An RBPi makes it possible to watch what birds are doing inside the bird box. This way, you are in complete control of watching birds on the outside as well as on the inside of the bird box. The RBPi even makes it possible to set up a live internet stream if your bird box is in a remote location. You will need the RBPi NoIR camera board and some infrared LEDs. The RBPi site has more details.

RBPi Weather Station

You do not need to rely on forecasts from the radio or television any more. Make your own weather station with the RBPi. This project is very cheap and requires very little energy. Of course, some extra hardware is necessary, but nothing too complicated. For details on the setup, visit DragonTail.

Transmit Morse code

Although this is ancient technology, people dabbling in Amateur Radio still find Morse code very useful. Building an RBPi powered Morse code station will be a very exciting project. With this, you can have device for encoding and decoding Morse code. If you add a vintage Morse key, the authenticity of the project will increase dramatically. For complete details, head over to the RBPi website.

Raspberry Pi gets a stepper-motor hat

Robotics enthusiasts find the credit card sized single board computer, Raspberry Pi or RBPi – a versatile unit for controlling various functions. With several add-ons or HATs readily available in the market, the RBPi can be a formidable force to reckon with. With its latest Motor HAT from Adafruit, your RBPi can control up to four DC motors or two stepper motors using PWM to achieve full speed control.

Although the RBPi has several GPIO pins, not many of them work as PWM. That means, to control motor direction and speed, you require a fully dedicated PWM driver chip onboard. Such chips will handle all the motor and speed controls, while communicating with the RBPi on only two pins – SDA & SCL. These pins follow the I2C standard protocol for communication. Therefore, you can connect this Motor HAT to any other device working with the I2C protocol.

In case you need to control a larger number of motors, as it is often required in robotics, you can easily stack up several of these Motor HAT boards. A total number of 32 boards are allowed by the I2C standard. Therefore, you will be able to control simultaneously 64 stepper motors or 128 DC motors, or a mix of both. To do this, you will have to replace the header on the Motor HAT with a stacking header.

Typically, stepper motor drivers rely on L293D chips. However, the Adafruit Motor HAT uses TB6612 MOSFET drivers. These drivers have the flyback diodes built-in and provide a huge improvement over the L293D – you get 1.2A per channel with 3A as peak current capability. The Motor HAT board comes with a small prototyping area and a polarity protection FET on the power pins. Adafruit offers the Motor HAT fully assembled and tested. All that a user has to do is to solder on the included terminal blocks and the 2×20 plain headers. However, stacking headers are not included.

Looking at the specs of the Motor HAT, you will find four H-bridges with thermal shutdown protection and internal kickback protection diodes. The bridges are capable of driving motors operating from 4.5VDC to 13.5VDC. Each board is capable of driving up to four bi-directional DC motors with individual speed selection using 8-bits or 0.5% resolution. Alternately, you can drive up to two stepper motors – unipolar or bipolar. These could be of single coil or double coil type and the driving could be interleaved or micro stepping.

Motors require a good amount of current for producing the required torque. The huge terminal block connectors allow use or 18-26AWG wires for drive and power. External power can come from a 5-12VDC power supply; the two-pin terminal block connector on the board is polarity protected.

Adafruit Motor HAT board is best suited for RBPi models B+ and A+. For using with models A and B, you have to use an extra-tall 2×13 header in place of the 2×20 header supplied. Adafruit supplies the easy-to-use Python library that makes driving motors a breeze with the RBPi wearing the HAT.

Telegram, Raspberry Pi and Remote Control

People from an older generation may still recall the days the postman would land on the doorstep and deliver a slip of paper with some message in it. Those were the days of Telegrams associated with Morse Code, the dots and dashes way of communicating with far-off places. Mobiles and instant messaging services have now replaced that and other such slow modes of communication. As a result, you can always remain in instant contact with people across the globe.

Similar to the WhatsApp messenger service, Telegram is another application that allows you to chat and share documents with your contacts. Telegram surfaced when WhatsApp crashed about a year back. Being a cross-platform messenger app from Berlin, it gained above five million users within 24 hours and more, since Facebook purchased WhatsApp.

Although at first introduction Telegram and WhatsApp seem identical, there are interesting differences. Both require the telephone number of the recipient for sending them a message. In addition, chatting to individual contacts or to groups is possible. Both have a single and double track system for knowing if the recipient has received your message and has read it.

However, unlike WhatsApp, Telegram allows you to send your messages, videos and photos with a self-destruct timer. Once the set time ends, all your shared documents disappear within a ‘secret chat’. This has a huge advantage. Under secret chat, all documents, locations, videos and images remain encrypted end-to-end and only the sender and the recipient can read them; nobody else can read them, not even the staff at Telegram. The timer can be programmed to activate either after two seconds or up to a week.

Using Telegram on the RBPi is fun and you can use the versatile instant messaging service on the same phone number with different devices simultaneously. Apart from simply using the messaging service to exchange messages, it is also possible to make the RBPi take specific actions automatically, based on the message received by it. For example, if the text message sent is say, “photo”, the RBPi responds by taking a snap of the surroundings with its camera and sends the image to the sender. Similarly, if the message says “lamp”, RBPi can turn on a lamp or open a garage door if the message says “open”.

For using Telegram for remote control, it is best to use the RBPi model B or B+ and have the latest version of the Raspbian as the operating system. However, you can also use the pre-installed Raspbian on the 8GB Class 10 Micro SD card available here. Follow the configuration given in this tutorial as a starting point.

RBPi will be intercepting new incoming messages with Lua, a lightweight, fast, powerful and embeddable scripting language application. Lua uses extensible semantics and associative arrays by combining the simple procedural syntax to powerful data description constructs. That means Lua has the capability to understand text and interpret the action to be taken. In fact, Lua uses a lookup file “action.lua”, much as we use a dictionary, to correlate specific text messages received and the actions that RBPi will take. For details of programming, refer to this blog.

What is a dual screen smartphone?

Most of us use smartphones that sport dual features such as two cameras, two flashes and two SIM sockets. Some manufacturers also make phones with two glass layers for encasing the device. However, one manufacturer has literally followed the adage – two heads are better than one – and produced a smartphone with two screens.

The world’s first dual screen phone – YotaPhone 2 – Is a product of the Russian company, YotaPhone. While the primary display measures 5.0 inches and is an AMOLED display of 1080x1920p resolution and a pixel density of 441ppi, there is a second display on the rear panel. This has a dimension of 4.7 inches, a resolution of 960x540p, a pixel density of 235ppi and is an e-ink display.

The e-ink, rear panel display of YotaPhone 2 has a back matte finish that makes it easy to read from the black and white display. Both, the primary front AMOLED display and the secondary rear e-ink display are protected with a highly resilient layer of Corning Gorilla Glass 3.

Since the secondary display is fully touch-sensitive, you can personalize it easily. For example, rig it up to display notifications and it will show all information of your choice. The main advantage of having a secondary display is power savings. Waking up the full-color display just to check on notifications about messages and mails requires a lot of power. Using the secondary display consumes only a fraction of the power required by the main display.

While on the high-resolution front display you can play games and watch movies, the monochrome rear display is more suitable for static functions such as reading e-books. It is easy to operate one screen at a time, since you can lock out the other one. Operating with the monochrome display saves considerable battery power. However, there is one disadvantage with the monochrome display. An imprint of the previous image can still linger on when you have changed to a new one.

The driver behind the YotaPhone 2 is a Qualcomm Snapdragon 800 SoC. This runs on a 2.3GHz quad core Krait 400 CPU and an Adreno 330 GPU. A healthy RAM storage of 2GB is supplemented with a phone memory of 32GB. YotaPhone 2 comes with an 8MP rear camera and a 2MP front-facing camera. Out of the box, the phone runs Android 4.4 and to accommodate the secondary screen functions, YotaPhone provides the necessary firmware tweaks.

A non-removable, 2500mAH battery powers the device. The phone is capable of being wirelessly charged. YotaPhone has, by design, not provided a very large battery as the secondary screen provides power saving benefits. Additionally, the lighter weight of the battery offsets the increase in the weight of the phone because of the presence of two screens. Additional weight would have made the phone inconvenient to carry. As such, the presence of two displays has significantly increased the thickness of the device.

YotaPhone 2 is fitted with a glass fiber body. This is solid enough considering the weight of the phone at 140gms and a thickness of 8.9mm. The soft curvy edges deserve applause.