LIN Protocol — One Wire Protocol for Automotive Applications

With the host of protocols available in electronics interfaces, choosing a protocol is a hard job. Some protocols are designed for long distance and reliable communication applications such as RS-485. Others are used for low cost and short range communication such as I2C, and so on.

The backbone car’s network is the Controller Area Network (CAN). CAN is reliable and adopted widely in automotive industry but it’s expensive to embed CAN interface in all aspects of the car’s sub-system. As a cheap alternative, today’s protocol LIN, is designed for low cost and multi-nodes automotive networks. LIN can be used to communicate with non-critical sub-systems such as: door-lock driver and window motors. Moreover, LIN is implemented to be a one wire interface.

LIN stands for Local Interconnect Network. According to the official LIN manual, the main properties of the LIN bus are:

  • single master with multiple slaves concept.
  • low cost silicon implementation based on common UART/SCI interface hardware, an equivalent in software, or as pure state machine.
  • self synchronization without a quartz or ceramics resonator in the slave nodes.
  • deterministic signal transmission with signal propagation time computable in advance low cost single-wire implementation.
  • speed up to 20 kbit/s.
  • signal based application interaction.

The LIN topology consists of one master and several slaves. The master provides the header which consists of a break and sync pattern (0x55) followed by an identifier.

The 0x55 Synch byte helps the slaves to be synchronized with the master clock. All messages are initiated by the master with unique ID; A slave will reply according to a given message identifier.

The identifier specifies the frame type which can be one of the following:

  • Unconditional frame
  • Event triggered frame
  • Sporadic frame
  • Diagnostic frames
  • User-defined frames

The nodes are typically microcontrollers, but as LIN is designed for automotive applications in the first place, some specialized transceivers can be added to the nodes such as Melexis MLX80030 which is basically a level shifter with some add-ons like low drop voltage regulator with some protection features since the available supply voltage in cars are mostly a spiky 12v.

Note: From the schematic above you may see that the MLX80031 has split the one wire (LIN BUS) to RX and TX for the microcontroller.

When it comes to software development, there is a standard API for LIN bus (slave and master) implemented in C language.

To know more about LIN protocol please refer to Hackaday article and to the official LIN manual.

SYNTHETIC SENSORS, All-In-One Smart Home Sensor

In the era of Internet of Things, we wanted most of our home appliances to become smart. But currently, smart devices may cost much more than their offline counterparts and they often do not communicate with each other. Trying to overcome these limitations, A Ph.D student invented a way to turn entire rooms into smart with a single low-cost device called “Synthetic Sensors“.

Gierad Laput, is a Ph.D. student of computer-human interaction at Carnegie Mellon University. His research program explores novel sensing technologies for mobile and wearable computing, smart environments, and the Internet of Things.

Synthetic Sensor is a general purpose sensor that is powered directly from a wall socket and tracks ambient environmental data to monitor an entire room. It removes the need to attach additional hardware to each of home appliances.

We explore the notion of general-purpose sensing, wherein a single, highly capable sensor can indirectly monitor a large context, without direct instrumentation of objects. Further, through what we call Synthetic Sensors, we can virtualize raw sensor data into actionable feeds, whilst simultaneously mitigating immediate privacy issues. We use a series of structured, formative studies to inform the development of new sensor hardware and accompanying information architecture. We deployed our system across many months and environments, the results of which show the versatility, accuracy and potential of this approach.

The device uses machine learning to recognize the events that happen in the room, like recognizing a particular sound pattern as taking a paper towel, but it cannot monitor when the roll may need to be changed. However, by using a “second order” sensors, the devices can capture counts and send notifications of the need to replenish. This capability can be scaled to an unlimited degree giving consumers highly specific and applicable feedback.

Developers can use the recognized events as triggers for other IoT applications. For example, one could use “left faucet on” to activate a room’s left paper towel dispenser and automatically schedule a restock when its supply runs low.

The Synthetic Sensor is still in prototyping phase, you can learn more about it by visiting its website and read the research paper. Watch this video to see Synthetic Sensors in action:

EAGLE Autorouter, When & How To Use

Designing a PCB layout is a work of engineering art, includes placing components and routing them through different layers. So when you assign the same job for different engineers, each one would make it in his own way. But sometimes when working on a complex design some help may be necessary to finish the work. Autodesk EAGLE provides an autorouter feature which may assist you in many cases.

The autorouter is a useful tool that creates many routing variations for the current component placement. However, it is not a completely replacement of manually routing method. It can help you in specific situations to augment your abilities, not replace them.

When to use the autorouter?

There are three main uses of the autorouter:

  • Optimizing Placement
    While there is no rule for placing the components of the circuits, you need to evaluate your placement to ensure that you can route all parts. Autorouter completion result could be used as an indicator of your parts placement, if it was 85% or greater this means you did a good job. If not, consider pushing your parts around.
  • Discovering Bottlenecks
    You can also use the autorouter to identify bottlenecks and other critical connection points that you might have missed when placing your components. Maybe you packed a couple of ICs too close together. Your autorouter can show you where you might need to leave more space between components.
  • Getting Inspired
    When you are stuck on a section and don’t know how to route your parts, then you can call the autorouter to see how it takes care of the job, then try routing that same spot yourself with your new perspective. You might just find a strategy for your traces that you didn’t see before your autorouter gave it a try.

Using EAGLE Autorouter

Now when you find yourself stuck on some area or you feel that you need to optimize your placement or discover the bottlenecks, it is time to launch the autorouter. Follow these steps to know how it works:

  1. Open your PCB layout (.brd) file from your Autodesk EAGLE Control Panel.
  2. Select the Autorouter tool on the left-hand side of your interface to open the Autorouter Main Setup dialog.
  3. There’s quite few settings here that you can adjust:
    You’re in complete control of the autorouter setup with settings for effort, CPU threads, and routing directions.
    • Preferred direction: if you need a specific direction of the route, like vertical or horizontal, select it for each layer or you can set it to Auto. N/A means that the autorouter will not use this layer.
    • Effort: this option defines how the autorouter will work, higher effort will take more time and will provide more more routing variances.
    • Number of threads: how many threads of the CPU you want the autorouter to use? This surely will affect the time it takes to finish.
      After selecting your settings, press the Continue button.
  4. Within the Routing Variants dialog, you’ll see a list of all the routing variations the autorouter will attempt. Select the Start button to begin the autorouting process.

    Eagle Autorouting with five potential routing variations
    Autorouting on a low effort mode produced five potential routing variations that the autorouter will attempt.
  5. Once the routing is complete, select the Evaluate button, and you’ll see your completion percentage in the bottom-left corner of the interface.

If you want to unroute your board you can use the Undo (Ctrl + Z), or use the RIPUP command. Just type RIPUP ; in the command line and all of your routed traces will convert back to airwires.

To learn more about routing and autorouting you can read this tutorial, it is a part of series about Autodesk EAGLE features and how to use it. You can also view the previous tutorial about placing components.

2.7V to 38V/500 mA low noise buck-boost charge pump

Graham Prophet @ eedesignnewseurope.com discuss about Linear’s low noise buck-boost converter LTC3246, able to produce 3.3V, 5V or ADJ regulated with an input range of 2.7V to 38V :

LTC3246 is a low noise buck-boost charge pump with integrated watchdog timer capable of up to 500 mA of output current. It uses multimode switched capacitor conversion to maintain regulation over a 2.7V to 38V input voltage range and produces a regulated 3.3V, 5V, or externally adjustable (2.5V to 5V) output.

2.7V to 38V/500 mA low noise buck-boost charge pump – [Link]

PD Buddy Sink – USB Power Delivery for everyone

Clayton G. Hobbs @ hackaday.io published some details of his project, a USB power delivery board. He writes:

USB Power Delivery is a cool standard for getting lots of power—up to 100 W—from a USB Type-C port. Being an open standard for supplying enough power to charge phones, laptops, and just about anything else under the sun, USB PD is poised to greatly reduce the amount of e-waste produced worldwide from obsolete proprietary chargers. Unfortunately, like all USB standards, it’s quite complex, putting it out of reach of the average electronics hobbyist.

PD Buddy Sink – USB Power Delivery for everyone – [Link]

Pi Desktop Case – include peripherals too

The ‘Pi Desktop’ kit from element14 offers some great features like Wi-Fi, Bluetooth, a real-time clock, an interface for an mSATA-SSD hard drive, an optional camera, heat sink, a neat power switch and of course the sleek black case. [via]

The Raspberry Pi is a well designed, powerful and inexpensive board, but not a complete computer. Some distributors know you need more than just a plastic case and a mains-adapter power supply (or USB cable). The ‘Pi Desktop’ kit from element14 contains everything you need and more, turning your RPi into a fully fledged computer.

Pi Desktop Case – include peripherals too – [Link]

Virtual telescope makes first image of a black hole

by Eric Bogers @ elektormagazine.com discuss about a new project that aims to create the first image of a black hole. He writes:

A powerful network of radio telescopes, spread around our planet, attempts for the first time to create an image of a black hole. Black holes are intangible gravitational ‘vanishing holes’, the existence if which was already predicted in 1915 by Albert Einstein. The South Pole Telescope of the University of Chicago is part of this Event Horizon Telescope, in which eight observatories, spread across six widely dispersed locations, together form a single virtual telescope, which is so powerful (has sufficiently great resolving power) that it could detect a penny on the surface of the moon.

Virtual telescope makes first image of a black hole – [Link]

What is Embedded FPGA — Known as eFPGA

Today’s market requirements change faster than the typical development time for a new device or the ability of designers of SoCs to know. To solve this problem, FPGAs/MCUs are used so developers can change the configuration/firmware later.

As known, MCU IP is static and you can’t change the silicon design (RTL design) after fabrication. FPGA chips are used to overcome this limitation but the FPGA high cost is a concern compared to the price of the MCUs. From this point a new technology called Embedded FPGA (eFPGA) was invented. This technology can give the flexibility of allowing SoCs to be customized post-production with no high expenses.

Image courtesy of FlexLogic

The idea behind eFPGA is to embed the FPGA core to SoCs without the other components of typical FPGA chips such as: surrounding ring of GPIO,SERDES, and PHYs. This core can be customized in a post-production stage with no need to change the RTL design and manufacturing the chips again.

Image courtesy of QuickLogic

One of eFPGA use cases is an always-on sensor hub for sensor data acquisition. In this use case, the eFPGA can be used to run sensor hub at a very low power level, while the main CPU is hibernated until relevant data is available. eFPGA has other useful uses such as ,and not limited to: software reconfigurable I/O pin multiplexing and Customize GPIO and Serial Interfaces in software.

Moreover, eFPGA is expected to have a brilliant future and to be adapted widely according to the CEO of Flex Logix Technologies in an article published on Circuit Cellar magazine. That’s because of increasing mask cost: approximately $1 million for 40 nm, $2 million for 28 nm, and $4 million for 16 nm, and the need for constantly changing in standards and protocols besides application of AI and machine learning algorithms.

For more information about eFPGA, please refer to this article: Make SoCs flexible with embedded FPGA.

Open-V, The Open Source RISC-V 32bit Microcontroller

Open source has finally arrived to microcontrollers. Based on RISC-V instruction set, a group of doctoral students at the Universidad Industrial de Santander in Colombia have been working on an open source 32-bit chip called “Open-V“.

Onchip, the startup of the research team, is focusing on integrated systems and is aiming to build the first system-on-chip designed in Colombia. The team aims to contribute to the growth of the open source community by developing an equivalent of commercial microcontrollers implemented with an ARM M0 core.

The Open-V is a 2x2mm chip that hosts built-in peripherals which any modern microcontroller could have. Currently, it has ADC, DAC, SPI, I2C, UART, GPIO, PWM, and timer peripherals designed and tested in real silicon. Other peripherals, such as USB 2, USB3, internal NVRAM and/or EEPROM, and a convolutional neural network (CNN) are under development.

Open-V Chip Specifications

  • Package: QFN-32
  • Processor RISC-V ISA version 2.1 with 1.2 V operation
  • Memory: 8 KB SRAM
  • Clock: 32 KHz – 160 MHz, Two PLLs, user-tunable with muxers and frequency dividers
  • True Random Number Generator: 400 KiB/s
  • Analog Signals: Two 10-bit ADC channels, each running at up to 10 MS/s, and two 12-bit DAC channels
  • Timers: One general-purpose 16-bit timer, and one 16-bit watch dog timer (WDT)
  • General Purpose Input/Ouput: 16 programmable GPIO pins with two external interrupts
  • Interfaces: SDIO port (e.g., microSD), two SPI ports, I2C, UART
  • Programming and Testing
    • Built-in debug module for use with gdb and JTAG
    • Programmable PRBS-31/15/7 generator and checker for interconnect testing
    • Compatible with the Arduino IDE

RISC-V is a new open instruction set architecture (ISA) designed to support architecture research and education. RISC-V is fully available to public and has advantages such as a smaller footprint size, support for highly-parallel multi-core implementations, variable-length instructions to support an optional dense instruction, ease of implementation in hardware, and energy efficiency.

Open-V core provides compatibility with Arduino, so it is possible to benefit from its rich resources. Also when finish preparing the first patch, demos and tutorials will be released showing how Open-V can be used with the Arduino and other resources.

The Open-V microcontroller uses several portions of the Advanced Microcontroller Bus Architecture (AMBA) open standard for on-chip interconnection. This makes any Open-V functional block, such as the core or any of the peripherals, easy to incorporate into existing chip designs that also use AMBA. We hope this will motivate other silicon companies to release RISC-V-based microcontrollers using the peripherals they’ve already developed and tested with ARM-based cores.
We think buses are so important, we even wrote a paper about them for IEEE LASCAS 2016.

Open-V Development Board Specifications

Onchip team are also developing a fully assembled development board for their Open-V. It is a 55 mm x 30 mm board that features everything you need to get start developing with the Open-V microcontroller, include:

  • USB 2.0 controller
  • 1.2 V and 3.3 V voltage regulators
  • Clock reference
  • Breadboard-compatible breakout header pins
  • microSD receptacle
  • Micro USB connector (power and data)
  • JTAG connector
  • 32 KB EEPROM
  • 32-pin QFN Open-V microcontroller

Compared with ARM M0+ microcontrollers, power and area simulations show that a RISC-V architecture can provide similar performance. This table demonstrates a comparison between Open-V and some other chipsets.

OnChip Open-V microcontroller designs are fully open sourced, including the register-transfer level (RTL) files for the CPU and all peripherals and the development and testing tools they use. All resources are available at their GitHub account under the MIT license.

We think open source integrated circuit (IC) design will give the semiconductor industry the reboot it needs to get out of the deep innovation rut dug by the entrenched players. Just like open source software ushered in the last two decades of software innovation, open source silicon will unleash a flood of hardware innovation. The Open-V microcontroller is one concrete step in that direction.

A crowdfunding campaign with $400k goal has been launched to support manufacturing of Open-V. The chip is available for $49 and the development board for $99. There are also many options and offers.